【问题标题】:Continuous Integration: managing configuration files targeting different environments?持续集成:管理针对不同环境的配置文件?
【发布时间】:2011-10-07 23:53:27
【问题描述】:

我正在为我们的开发设置一个 CI,并想了解有关管理针对不同环境的配置文件的想法/最佳实践。

想到的第一个方法是在不同的目录中保持环境特定的配置文件受版本控制,并使用构建平台如 NAnt 将正确的配置文件按顺序复制到环境中:

比如我的CI流程基本遵循这个流程:

subversion -> 1. buildarea -> 2. test env -> 3. beta. env. -> 4. live

在版本控制下有三个文件夹,称为:

dev.config/: global.asa, app.config
test.config/: gloval.asa, app.config
live.config/: global.asa, app.config

在连续的步骤 2、3、4 中,使用 NAnt 将正确的配置文件复制到环境中。但这可能不是很理想。

【问题讨论】:

  • 如果配置包含very-secret-keys-from-3rd-party-API怎么办?普通开发人员不应使用阶段和生产配置。我会更好地使用 puppet 或 Chef 提供配置
  • 是的,这里的安全性也是一个问题,考虑到某些密码很敏感,我也在考虑如何最好地构建授权。我会很感激想法和替代方法。
  • 所以通过 puppet 传递配置,或者从每个服务器上的一些 main.config-dist 手动编辑它们
  • 什么是傀儡?能否请您指出一些有关如何使用 puppet 或从 main.config-dist 手动使用的 Web 资源。欢呼
  • 好的,干杯,我会阅读 Puppet 和 Chef

标签: svn deployment continuous-integration nant


【解决方案1】:

更侧重于持续交付而不是持续集成的工具将对您要部署到的环境以及部署过程进行建模。好的将允许您使用特定环境的特定参数,并更新模板配置文件(并保持机密内容的安全)。我认为这与 puppet 的策略类似。

【讨论】:

    猜你喜欢
    • 2018-11-09
    • 2012-11-25
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多