在运行 Puppet 之前和之后执行命令

如果你希望在每次运行 Puppet 之前执行命令,可以在配置文件中使用 prerun_command 配置。 类似地,你也可以使用 postrun_command 配置运行 Puppet 之后需要执行的命令。 这种机制为 Puppet 与其他软件的集成提供了强大的钩子,甚至可以触发其他机器上的事件。

prerun 和 postrun 命令必须能成功运行(即其返回的状态码为 0),否则 Puppet 将报告一个错误。这可以让你通过 Puppet 的报告机制获得任何命令的错误报告。

操作步骤

在 puppet.conf 中设置 prerun_command 或 postrun_command 要执行的命令:

prerun_command  = /usr/local/bin/before-puppet-run.sh
postrun_command = /usr/local/bin/after-puppet-run.sh

更多用法

你可以使用 prerun 和 postrun 命令将 Puppet 与 Ubuntu 的 etckeeper 版本库整合起来。 Etckeeper 是一种用于跟踪 /etc 目录中文件变化的版本控制系统。 为了实现此功能,在 puppet.conf 配置文件中定义如下的执行命令:

prerun_command=/etc/puppet/etckeeper-commit-pre
postrun_command=/etc/puppet/etckeeper-commit-post