我需要在GIT存储库中进行版本控制,特定平台的configuration分布在多个服务器上。 考虑到在每个这些服务器中有完全不同的configuration,而应用程序是相同的。 做这个的最好方式是什么?
为每个服务器创build一个分支
为每个服务器创build一个具有不同目录的单个回购
为每个服务器创build一个回购
还有其他方法,这种情况下的最佳做法是什么? 我应该使用我觉得最舒服的那个吗?
韩国社交协会,
Gulden PT
Bcfg2是一个很好的configurationpipe理系统,可以用于任何版本控制系统。
我为所pipe理的所有系统使用一个存储库。 Bcfg2通过附加主机名或组名来优化文件名来处理不同机器和组的configuration文件的差异。 Bcfg2为您的系统提供每个ConfigFile条目的最具体的文件。
所以,在你的configuration描述中你将会有:
<ConfigFile name="/etc/network/interfaces" />
你的configuration文件将是:
# ls Cfg/etc/network/interfaces interfaces interfaces.H_server1 interfaces.H_server2
用Bcfg2比Puppet和Cfengine看到的主要好处是,Bcfg2不是运行脚本来configuration系统,而是决定你的系统如何不符合你的规范,并做出必要的修改。
实际上,最简单的方法是通过configurationpipe理工具来运行所有的东西。 我更喜欢厨师,但木偶和cfengine也解决了同样的问题。 厨师,至less是build立的意图或期望的configuration将被存储在版本控制。
但是,如果不重做基础架构,您应该将单个configuration文件复制到一个公共目录,确保如果这些文件没有被命名为不言而喻的,则将它们包装在一个感性命名的文件夹中,在服务器名称。
所以:
--networkDrive ----ServerName1 ------WebServerConfig ------AppServerConfig ----ServerName ------AnotherAppConfig ----ServerName
…等等…
从那里可以很容易的把它和提交(这也很容易脚本)。