通过 SSH 将服务器配置纳入版本控制

通过 SSH 将服务器配置纳入版本控制

我在生产环境中有一堆 *nix 服务器。我想将其重要的配置文件放入版本控制中

我的基本想法是

  • 放置分布式版本控制系统,以便每个系统的配置都保存在自己的驱动器上。

  • 改变配置的方式是通过编辑器或通过外部源。

  • 假设在 shell 中使用 $EDITOR,则有可能在保存文件时添加额外的命令(因此文件随后被添加到 git)。这可能会有问题,因为用户并不总是执行 vim /etc/my.cnf ,它可能会在 vim 中打开 my.cnf

  • 另一个变化源可以通过 cron 脚本捕获,该脚本每小时运行一次并将内容添加到版本控制中(这已经足够了)。然后可以将 git repo 拉到一个中心位置进行安全保管。1 小时就足够了,因为假设第一种捕获变化的方法在大多数情况下都有效。

我想知道是否有一些工具已经可以做到这一点(或者做得更好)。理想的情况是,每次用户发起配置更改时,都会提示他/她将更改添加到本地存储库中。

答案1

我做过类似的事情。但是,我们会在 Puppet 中管理配置文件,然后将其存储在 SVN 中。我在一个由 160 台服务器组成的服务器场中还有另外两名 Linux 管理员,这种方法效果很好。它提供了更改历史记录(SVN)以及通过 Puppet 进行的配置管理。

答案2

看一眼etckeeper- 它非常接近您所寻找的。

答案3

研究 puppet 或 cfengine 等工具。在我看来,这通常会带来更好的结果。

相关内容