如何使用 Chef 复制 Puppet 空运行选项来验证机器是否具有与配方匹配的状态?
2 回答
Opscode 去年确实推出了自己的试运行模式,称为“为什么运行”,www.opscode.com/blog/2012/09/07/chef-10-14-0-released/。但是您必须小心,因为所有这些自我监控功能的准确性都有限制,如下所述:http: //blog.afistfulofservers.net/post/2012/12/21/promises-lies-and-dryrun -模式/
使用外部工具根据已知的良好状态验证机器的当前状态可能是更好的选择。查看http://www.metaforsoftware.com/它将在大量机器上运行差异算法,这样您就可以准确地看到它们之间的变化和缺失。它处于免费测试阶段,我们计划始终提供免费版本。(FD:我是联合创始人,所以所有注意事项都适用;-)
显然,你不能。)-:
您可以通过使用报告处理程序在厨师客户端运行结束时检查更新资源的数量来实现稍微相似的效果:
http://wiki.opscode.com/display/chef/Exception+and+Report+Handlers
和一个相关的示例处理程序:
http://jtimberman.posterous.com/a-simple-report-handler
但是,这并不能真正替代 --dry-run 选项,其中不会执行修改状态的操作。
此外,很容易懒惰地编写配方,无论需要与否,动作都会一直执行。这会导致报告处理程序中更新操作的计数不为零,但机器上的状态没有更改。