我们如何在收敛阶段处理厨师错误。我正在检查在程序包资源运行期间解决错误以及获取该异常/错误时它会通知其他资源执行。
我理解我们可以使用处理程序处理,但是如果遇到某种类型的stderr或发生异常,如何编写处理程序模块来执行代码。
e.g。
3: package "mdadm" do
4: timeout '300'
5: end
6:
Mixlib::ShellOut::ShellCommandFailed: package[mdadm] (cookbook-common::raid line 3) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received ''
---- Begin output of /usr/bin/python /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/provider/package/yum-dump.py --options --installed-provides --yum-lock-timeout 30 ----
STDOUT:
STDERR: Fatal Python error: pycurl: libcurl link-time version is older than compile-time version
答案 0 :(得分:2)
Chef是一个围绕承诺理论建立的融合系统。没有针对错误的具体处理,因为每个承诺单元(通常是Chef中的资源)应该是内部幂等的并且本身就处理这种事情。如果资源被强制错误,则认为它是全局致命的。