这是一个带有GUI的工具,用于添加/更新配置值(例如,连接字符串)。它应该具有一个默认值,并且能够根据不同的环境进行更改。 >
我搜索了一段时间,找不到适合该法案的任何工具。有什么建议吗?
注意:当前设置在TeamCity变量中,并且部署是通过PowerShell脚本进行的。
#1 楼
有很多工具可以做到这一点,包括Chef,Ansible或Puppet等配置管理工具;以及Consul和etcd等KVS工具。您也可以将其集成为CI服务器中的构建步骤,或者在运行时针对外部配置存储(再次使用Consul或etcd之类的东西,或任何数据库)使用实时配置来回避问题。#2 楼
可能是其他回购?一个带有质量检查,UAT和产品分支的分支机构(不得多)。与常规“代码即代码”和“基础结构即代码”存储库不同的存储库。它非常细微。每个环境多少配置。是否在发行版之间切换?即使二进制部署,那些切换状态仍应保持状态。您要为哪个客户,客户,访客或用户维护配置?
五年来,我针对该主题写了很多博客文章(以及原型/演示),包括用于切换的UI(如果您需要它们)。
评论
买东西付钱?您有任何配置管理系统吗?您使用什么来部署?付费选项将被配置。当前,设置位于TeamCity变量中,并且通过PowerShell脚本进行部署。
严格来说,这不是一个答案,而是一个注释-您是否考虑过使用Octopus Deploy进行部署,因为它允许您以高度灵活的方式管理环境配置。
如果使用像ClearCase这样的稀疏分支源代码控制系统,则可以简单地分支分支并进行修改,可以查看用于处理VCS中OSD(取决于操作系统)更改的策略。如果使用git,则需要不断重新设置非默认分支。一些配置工具通过变量对每个环境进行设置。在Ansible中,我的文件具有用于非生产环境的可变默认值和覆盖图。不要在CI工具中存储任何设置,它们应该全部在VCS中。包括TC配置。
建议将所有配置与源一起存储。我们有多个Azure服务,并且将Azure转换语法用于所有环境自定义。请参阅msdn.microsoft.com/zh-CN/library/dd465318(v=vs.100).aspx。实际上,在安装时,我们会在部署时使用powershell进行此操作。根据您在管道中钩住的位置,可以在将位放到盒子上之前执行此操作,或者在输入密码之后执行此操作。我们将Azure Key Vault用于秘密,因此它们永远不会出现在源代码管理中。