2011-10-07 91 views
1

我正在为我们的开发设置配置项,并想知道如何管理针对不同环境的配置文件的想法/最佳实践。持续集成:管理针对不同环境的配置文件?

,想到的第一个办法是保持在不同的目录特定环境的配置文件版本控制之下,并使用一个构建平台,如恶性,以正确的配置文件复制到一个环境,以便:

例如,我的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将正确的配置文件复制到环境中。但也许这可能不是很理想。

+1

如果配置包含来自第三方API的非常密钥,该怎么办?阶段和生产配置不应该提供给常规开发人员。我会提供伪装或厨师配置更好 – zerkms

+0

是安全也是一个问题在这里,我也在研究如何最好的结构授权考虑到一些密码敏感。我会欣赏想法和替代方法。 – Terman

+1

所以通过木偶提供配置,或者从每个服务器上的一些'main.config-dist'手动编辑它们 – zerkms

回答

1

工具侧重于持续交付而不是持续集成将模拟您部署的环境以及部署过程。好的将允许你特定的环境特定参数,并更新模板配置文件(并保证秘密的东西安全)。我认为这与傀儡类似。