我正在考虑一个系统,/etc
在远程 git 存储库上进行跟踪。我正在考虑 git 工作流程,其中每台主机都有不同的分支。
每台机器上的每个先前版本都可以轻松跟踪、比较、合并。
如果/etc
必须在许多机器上提交修改,则可以通过一些合并脚本轻松完成。
如果发生“不需要的”/etc
更改,这可能是很好的可见性(甚至可以调整警报脚本来观察)。
有人使用过这样的配置吗?它有任何安全问题吗?
答案1
该程序etckeeper
确实管理/etc
in git
,您只需将默认的 vcs 后端从 更改bzr
为git
in /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-client
、environment
和roles
Cookbook 版本的所有系统;你无法git
单独大规模地做的事情。