使用git管理/ etc?


14

我正在考虑一个系统,在/etc远程git存储库上对其进行了跟踪。我在考虑git工作流,其中每个主机都在一个不同的分支。

每台机器上的每个以前的版本都可以轻松地进行跟踪,比较和合并。

如果/etc必须在多台计算机上进行修改,则可以通过合并脚本轻松地进行修改。

如果发生“不必要的” /etc更改,则该更改可能是显而易见的(甚至可以调整警报脚本以进行监视)。

有人已经使用过这样的配置吗?它有任何安全问题吗?


6
etckeeper这已经使用在许多系统上。它不提供您要求的所有功能。例如,每个主机有一个存储库,而不是中央存储库。
jofel 2014年

您对哪些文件感兴趣,或者过去不需要更改哪些文件?我之所以问是因为,我认为Git不是解决工作流中另一点引起的问题的正确方法。此外:如果有人忘记提交多个更改,则Git毫无价值。您能解释一下您的环境吗?您是否具有与生产相同的测试质量保证环境?您是否拥有超过两个或三个相同类型/用途的主机,或者它是异类的?更重要的是:比较主机配置或随时间跟踪一个主机配置?
try-catch-finally

Answers:


8

该程序etckeeper确实/etc在中管理git,您只需要将默认vcs后端从更改bzrgitin即可/etc/etckeeper/etckeeper.conf

它默认安装在Ubuntu Linux中,并处理何时自动提交的常见情况。
如果未进行手动更改,则在安装软件包之前以及安装之后提交。


5

与跟踪配置问题/etcgit是,所有你真的这样做增益版本控制(大多数git新手甚至不知道如何tagbranch正确的,因此不太可能在这一点上)并能够回滚(再说,如果你不是活得牛逼tagging正确,你将不会得到任何东西,但一个日志责怪的人); 但是您失去了模板(无法使用模板,因为git不提供模板),横向扩展(您无法将配置应用于其他任何地方;尤其是在使用像Elasticsearch这样的分布式数据库的情况下)和自动化系统管理(同样,git无法提供此功能) )。

话虽如此,您可能正在寻找的是配置管理。与模板git和基本脚本一起管理配置。当然,这正沿着DevOps和Infrastructure as Code的方向发展。

加上 Ansible ansible-pull可以从中提取您的剧本的最新仓库git;厨师也是如此。基本上,现代Linux管理员不应该使用etckeeper。厨师也有客户端-服务器模式,您可以管理与所有系统的chef-client基础上environmentroles和菜谱的版本; 您无法git独自大规模地完成的事情。


不仅回滚使我有了git。我也得到了可比性(机器之间和时间之间),以及同步。但是我认为有关一些更有针对性的工具的想法很有用。
彼得-恢复莫妮卡
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.