在更新清单/事实时触发人偶 运行

Trigger puppet run on update of manifest / facts

我正在开发一种使用 puppet 管理 WordPress 实例的工具。流程如下:用户在 web 界面中添加新 WordPress 安装的数据,然后 web 界面应该向 puppet master 发送一条消息,告诉它把它部署到选定的机器上。

目前,设置是通过包含所有 WordPress 实例声明的清单文件完成的,并通过 puppet apply 在 puppet 代理上手动应用。这引出了我的 2 个问题:

要回答你的第一个问题,是的,绝对有一种方法可以通过 puppetmaster 来做到这一点,你现在拥有的是一个无主设置,它假设你正在使用某种版本控制分发你的配置(比如 git) 或手动过程。如果您不想要集中式主控,这是一种完全git即时的处理方式。

如果你想使用 master,你需要将你的清单放在你的 master 的 $modulepath 中(它取决于你的版本,你可以在你的 master 上使用 puppet config print modulepath 找到它)然后将傀儡代理指向主人。

如果您想沿着主路线走下去,我建议您遵循 puppet documentation 这将帮助您入门。

第二个问题让我进入'is this really want you want to do?'

的哲学论证

Puppet 传统上(在我看来)是一种声明式配置管理工具,旨在使您的系统看起来像某种方式。您编写代码来确定 'this is how I want it to look',Puppet 将收敛以使其看起来像那样。您要做的更多是编排任务(即当 X 执行 Y 时)。有一些方法可以使用 Puppet 执行此操作,例如使用由 webhook 管理的 mcollective(触发人偶 运行),但我认为有更好的工具来完成这项工作。

我建议查看 ansible, saltstack or Chef's knife tool 进行这样的部署。