我有一个系统,需要在多个系统上复制并进行一些小的更改,例如更改 less/css 变量和配置文件。
有没有针对此类问题的最佳实践?
我目前正在做:
git clone repo
cp ../default/config.js config.js
... for several files
或者我应该创建同一个仓库的不同分支
或者我应该为这些变化创建一个 repo?
目前是可行的,但如果我得到超过 5 个类似的系统就会很烦人。
答案1
研究将 git 和 puppet 结合起来用于部署模型。虽然 git 可以直接工作,但很麻烦(恕我直言)。
puppet 中的模板对于因系统而异的配置文件非常有用。模板文件选项对于静态部署的内容非常有用。
在这种情况下,至少有两种常用的模型。Git 可用于从单个存储库部署大部分内容,第二个配置仅使用 puppet 配置文件的 git 存储库来部署每个服务器内容。
也可以将内容和配置文件保存在同一个存储库中,但可能需要进行一些工作流程更改才能使其正常工作。
编辑:
我最熟悉 Puppet,但我的理解是 Chef 和 cfengine 都提供类似的功能。
当使用 git 和 puppet 文件时,一个非常有用的功能是将 git 分支映射到单个环境。它可以轻松从 QA 过渡到生产环境,甚至对于您的配置文件也是如此。
答案2
我的情况类似,我会使用不同的分支,因为如果您将来不需要更改代码中的任何内容,这会更容易。但这不是我的情况,可能也不是您的情况。
我建议您使用脚本来设置您的配置,并继续使用存储库上的相同分支。