我有一个 octopus 部署,需要进入负载平衡环境,但是两台服务器之间的配置有一些小的变化。
所以,总结一下:
- 它部署到相同的环境 (PreProd)
- 它被部署到链接到该环境的两个不同服务器
- 两台服务器之间的两个 web.config 文件之间存在细微变化。
我已经有一个 web.preprod.config
,它会转换为 web.config
。这是否意味着我需要创建更多配置文件,即。 web.server1.preprod.config
和 web.server2.preprod.config
或者还有其他更简洁的方法吗?这是一个不同的整个部分,因此不仅仅是一个 appSetting。
最佳答案
过去在类似场景中对我来说效果很好的解决方案(特别是 OctopusDeploy)是使用 web.{environment}.config 转换来获取正确的配置结构到位,但要使用 variable substitution并在转换文件中定义占位符,以在 Octopus 中保留运行时环境特定的定义。如何分解替换语法实际上取决于您的配置,但您可以使用 Octopus 变量的机器作用域功能来控制注入(inject)的实际值。
这个场景是 web.config 转换开始模糊配置管理边缘的一个很好的例子;特定于环境的配置实际上是 Octopus 的领域(或者更具体地说,是一个集中式配置存储),但这里提出的解决方案是将其从 Octopus 中取出并放回到源存储库中,这是 Octopus 实际设计的问题之一来解决。
例如;如果您在预生产负载均衡器中引入第三个节点会怎样?这需要代码更改、构建、版本升级和打包,考虑到上述情况,这可以完全避免。
关于teamcity - 八达通部署到相同环境和不同服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32564583/