teamcity - 八达通部署到相同环境和不同服务器

标签 teamcity octopus-deploy

我有一个 octopus 部署,需要进入负载平衡环境,但是两台服务器之间的配置有一些小的变化。

所以,总结一下:

  • 它部署到相同的环境 (PreProd)
  • 它被部署到链接到该环境的两个不同服务器
  • 两台服务器之间的两个 web.config 文件之间存在细微变化。

我已经有一个 web.preprod.config,它会转换为 web.config。这是否意味着我需要创建更多配置文件,即。 web.server1.preprod.configweb.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/

相关文章:

powershell - 我如何从TeamCity构建中运行的Powershell脚本收到有意义的错误消息?

continuous-integration - 八达通部署在同一台机器上

tfs - 自动化 .Net 项目的发布过程

sql-server - 如果尚未安装,仅安装 PowerShell PackageProvider 和 Module

version-control - TeamCity 和 IBM Rational Team Concert (RTC) 集成

msbuild 从属性组创建项目组

nuget - LOCAL SYSTEM 帐户的 nuget 缓存在哪里?

teamcity - 如何从项目文件创建 NuGet 包以使其包含必要的程序集?

azure - 部署到 Azure 应用服务时迁移数据库

azure-devops - VSTS + Octopus 部署?为什么我看到很多 CI/CD 设置都有这两者?