使用 git 来管理 /etc?

pet*_*erh 19 configuration git

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

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

如果/etc必须在多台机器上提交修改,则可以通过一些合并脚本轻松完成。

如果发生“不需要的”/etc更改,这可能很明显(甚至可以调整警报脚本以查看)。

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

Vol*_*gel 11

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

它默认安装在 Ubuntu Linux 中,并处理何时自动提交的常见情况。
它在安装包之前提交,以防有未提交的手动更改,以及安装之后。


小智 7

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

话虽如此,您可能正在寻找的是配置管理;这与模板git和基本脚本有关,以管理配置。这当然是沿着 DevOps 和基础设施即代码的方向发展的。

添加到此;Ansibleansible-pull可以从git; 厨师也是如此。基本上,现代 Linux 管理员不应该使用类似etckeeper. 厨师也有客户端-服务器模式,您可以管理与所有系统的chef-client基础上environmentroles和菜谱的版本; 你不能git单独和大规模地做的事情。