我有多个相同引擎的实例在相同的环境和系统上作为 Windows 服务运行,它们指向不同的队列时连接字符串略有不同。除了配置文件(XML)中的几行之外,应用程序的其余部分完全相同(配置和二进制文件)。当对所有实例进行配置更改时,这会非常耗时,因此我正在研究以可扩展和版本控制的方式管理配置文件的最佳方法。目前我使用批处理文件来复制默认引擎目录和配置,然后查找并替换各个字符串。我希望有一个可以更新的模板配置,它根据实例和环境为连接字符串提取设置变量。我知道这可能使用厨师,puppet 或 ansible 但据我了解,这些更多用于系统配置而不是单个应用程序文件?有谁知道 gitlab 或 AWS 是否可以做到这一点?在致力于学习曲线之前,我试图辨别上述配置管理工具之一对于这种情况或现实的解决方案是否会过度杀伤?
问问题
20 次
1 回答
0
我知道这可能使用 chef、puppet 或 ansible 来实现,但据我了解,这些更多用于系统配置而不是单个应用程序文件?
管理单个文件,包括其内容的详细信息,是配置管理的一个常见方面。Chef、Puppet 和 Ansible 都可以相对轻松地做到这一点。
有谁知道 gitlab 或 AWS 是否可以做到这一点?
毫无疑问,有人这样做。我预计但无法确认,两者的答案都是“是”。
在致力于学习曲线之前,我试图辨别上述配置管理工具之一对于这种情况或现实的解决方案是否会过度杀伤?
如果您描述的特定任务是您唯一考虑使用它们的任务,那么配置管理系统几乎肯定会过大。
目前我使用批处理文件来复制默认引擎目录和配置,然后查找并替换各个字符串。我希望有一个可以更新的模板配置,它根据实例和环境为连接字符串提取设置变量。
首先,如果它没有坏,就不要修理它。另一方面,如果它坏了,并且切换到基于模板的方法是解决问题的合理方法,那么您当然可以使用专用的本地脚本来实现它,而无需引入配置管理的所有设备系统。
如果您确实决定需要替换当前机制,请放弃批处理文件。它是有史以来对人类造成的最糟糕的脚本语言之一。PowerShell 将是 Windows 上的自然替代品,但您也可以考虑使用 Python 或几乎任何您知道的编程语言。
于 2022-02-22T17:30:03.480 回答