用于存储每个环境配置的工具


11

我需要在每个环境中将配置信息存储在工具中。

这是一个带有GUI的工具,用于添加/更新配置值(例如,连接字符串)。这应该具有默认值,并且能够根据不同的环境进行更改。

应该有一个API,可以在部署到特定环境以添加到应用程序期间检索这些配置值。

我搜索了一段时间,找不到适合此账单的任何工具。有什么建议吗?

注意:当前设置在TeamCity变量中,并且通过PowerShell脚本进行部署。


付钱买东西?您有任何配置管理系统吗?您使用什么来部署?
Tensibai

付费选项将被配置。当前,这些设置位于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用于机密,因此它们永远不会出现在源代码管理中。
不退款

Answers:


6

有许多工具可以做到这一点,包括Chef,Ansible或Puppet等配置管理工具;以及Consul和etcd等KVS工具。您也可以将其集成为CI服务器中的构建步骤,或者在运行时针对外部配置存储(再次使用Consul或etcd之类的东西,或任何数据库)使用实时配置来回避问题。


1

可能是其他回购?一个带有质量检查,UAT,产品(不包括)的分支机构。与常规“代码即代码”和“基础结构即代码”存储库不同的存储库。

这是非常细微的。每个环境多少配置。是否在发行版之间切换?即使二进制部署,这些切换状态是否仍应保持状态。您要维护配置的哪个客户,客户,来宾或用户?

在过去的5年中,我写了很多关于该主题的博客文章(以及原型/演示),包括用于切换的UI(如果需要)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.