使用git来管理/etc?

使用git来管理/etc?

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

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

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

如果发生“不需要的”/etc更改,这可能是很好的可见性(甚至可以调整警报脚本来观察)。

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

答案1

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

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

答案2

跟踪 in 的配置的问题/etc在于git,这样做您真正获得的只是版本控制(大多数git新手甚至不知道如何正确tag操作branch,因此在这一点上不太可能)和回滚的能力(同样,如果您不这样做的话)不对tagging,除了指责别人的木头之外,你什么也得不到);但是你会失去模板(无法使用模板,因为 git 不提供模板)、横向扩展(你无法在其他地方应用配置;特别是如果你使用像 Elasticsearch 这样的分布式数据库)和自动化系统管理(同样,git 不提供此功能) )。

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

添加到此; Ansibleansible-pull可以从以下位置提取您的 playbook 的最新存储库git:对于Chef来说也是如此。基本上,现代 Linux 管理员不应该使用诸如etckeeper. Chef 还具有客户端-服务器模式,您可以在其中管理基于chef-clientenvironmentrolesCookbook 版本的所有系统;你无法git单独大规模地做的事情。

相关内容