【问题标题】:(Octopus Deploy) Define different deployment processes for same application(Octopus Deploy) 为同一个应用定义不同的部署流程
【发布时间】:2015-03-04 09:16:11
【问题描述】:
我想为一个应用程序定义不同的部署过程。这里的想法是我有一个应用程序,我想将它部署到不同的环境中。这是同一个应用程序,但我想将它部署在一个具有设置 A 和步骤数 A 的环境中,然后假设在一周内部署相同的应用程序,但设置不同 B 和另一个步骤数到另一个环境。这两种环境没有任何共同点,也不在同一个生命周期中,但它们都需要相同的应用程序。有没有办法做到这一点。现在我只看到一种定义另一个项目(相同)的方法,我可以在其中定义一个新的部署过程。帮助表示赞赏。谢谢你。
【问题讨论】:
标签:
deployment
integration
web-deployment
octopus-deploy
【解决方案1】:
我将对您拥有的工具做一些假设,但如果您没有,请澄清:
因此,一旦您设置了基本部署架构,您就可以决定您希望如何推广您的代码。这两个环境是否被认为与它们自己的版本以及它们自己的代码提升路径完全分开?如果是这样,您应该将它们构建为具有单独构建的单独项目。这样,您可以将一个构建设置启用为环境 1 的自动部署,而另一个可以设置为自动部署到环境 2。更大的频率问题(CI、计划或手动)也会影响多少不同的构建定义你应该有。对我来说,我会将它们定义为 OD 中的两个单独项目和两个单独的构建,这些构建基于您编写的内容,从而为部署自动化和进一步定制(不同的步骤合二为一,安全等)提供了灵活性。希望这对 GL 有帮助。
【解决方案2】:
这里的想法是我有一个要部署的应用程序
到不同的环境。这是同一个应用程序,但我想要
将其部署在具有设置 A 和步骤数 A 的环境中,
然后假设在一周内部署相同的应用程序,但使用
不同的设置 B 和 另一个步骤到另一个
环境。
如果您要更改的只是设置(如 web.config 或 app.config),那么变量就是您的答案。使用变量选项卡根据部署到的环境交换/更改值。在此处阅读有关变量的更多信息:http://docs.octopusdeploy.com/display/OD/Variables
环境确实不需要任何共同点(除了服务器角色) - 但有点不寻常的是为什么您在不同的环境中需要不同的步骤。跨环境采用相同步骤的最佳实践或更确切地说是为了保持一致性——如果您的部署过程始终相同,那么在暂存中部署的任何内容都应该在生产中工作。
配置之类的细节无疑会因环境而异 - 所以我想第一个问题是:so 环境之间有什么不同,需要您为一个环境而不是另一个环境设置步骤?
有几种方法可以按照您的要求执行步骤:
就像你提到的,添加另一个项目可以解决这个问题。
变量 - 同样,在处理配置更改时始终使用变量 - 无需真正手动编写脚本或为每个环境设置不同的步骤
如果您真的需要针对不同的环境有不同的步骤,您可以在“条件”部分的底部指定步骤应针对哪个环境。只需添加该步骤只允许运行的环境。
您所要求的可能都在同一个项目中 - 并且根据正在完成的工作,对于 特定环境 有 特定步骤 并不是一个好习惯> 如果没有更多细节,我不确定我们如何帮助您解决这个问题。