我希望我的 chef-client 在菜谱发生变更时运行。这可能吗?
我发现“在 X 分钟内运行一次”这个方法不太理想。当我更改某些内容时,我希望它立即应用,这样我就可以注意到是否出了问题。除此之外,它可以在 4 小时内运行一次,只是为了确保配置处于良好状态。
答案1
很有可能,但不是内置的。一种选择是将您的食谱放在源代码控制中,然后使用 CI 工具(如 Jenkins)knife ssh
在食谱更新时触发 chef-client 运行。
或者,您可以在更新食谱后手动在所有机器上knife ssh
运行。chef-client
Chef 服务器没有内置推送功能。
答案2
安装配方审计工具,例如https://github.com/jbz/knife-audit。作为上传食谱的脚本的一部分,查询 chef 服务器以查找使用该食谱的所有节点并在其上调用 chef-client。