【问题标题】:Track configuration changes with Git and Puppet使用 Git 和 Puppet 跟踪配置更改
【发布时间】: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


【解决方案1】:

Puppet 有一个配置参数postrun_command,理论上你可以在每次 Puppet 运行后运行一个脚本来执行你的 git 提交(但不是在你要求的每次资源更改之后)。

但是,我同意其他 cmets 的观点,即混合使用 Git 和 Puppet 进行配置管理是一个奇怪的想法。我能看到的唯一可行的原因是您仅将 Git 用作时间点审计跟踪。我建议你看看 Puppet 自己的Auditing features

【讨论】:

  • 感谢您对 Puppet 的 postrun_commandauditing features 的提示。正如@LukeBigum 所提到的,我们使用Git 来审核服务器上的更改,但这与Puppet 配合得不好(参见上面我的comment)。
猜你喜欢
  • 2012-12-13
  • 2017-07-06
  • 2020-02-13
  • 1970-01-01
  • 1970-01-01
  • 2016-01-10
  • 2015-10-09
  • 2021-12-19
  • 1970-01-01
相关资源
最近更新 更多