【发布时间】:2015-07-31 00:31:46
【问题描述】:
我们使用 Puppet 来管理我们的 Debian 服务器。
我们的程序是在 Git 下管理 /etc 目录并跟踪服务器上的任何配置更改(例如安装包、添加新用户等)
对于 Puppet:有没有办法在 Puppet 应用更改后(最好是在每次配置更改后)在 /etc 目录中执行带有有意义的提交消息的 git commit .?
Puppet 是否提供类似钩子的东西来实现上述目标?
【问题讨论】:
-
等一下。 /etc 是“在 Git 下管理”还是 puppet 管理“配置更改”。 Puppet 可以使用 Exec() 类型运行 git,或者 git 可以使用 post commit hook 运行 puppet。但是你需要清楚谁在负责,在回滚的情况下会发生什么等等
-
通常的政策是,一旦 Puppet 生效,它应该是唯一对
/etc/进行更改的人,从而使 etckeeper 和朋友过时。然后,您的版本控制发生在 Puppet 代码级别。 -
感谢您的建议和cmets。我们使用 Git 来审核对服务器的任何更改(我们甚至使用空提交来添加关于谁和在服务器上做了什么的注释)。由于我们也在服务器上进行手动更改(只有基本配置是使用 Puppet 完成的),所以我们不能只将其留给 Puppet。此外,我了解到 Puppet 会根据依赖关系生成执行计划,这使得我最初的想法无法将配置更改分组并以逻辑单元进行跟踪。
标签: git puppet server-configuration