如何在厨师中处理错误STDERR

时间:2015-12-16 12:46:13

标签: error-handling chef

我们如何在收敛阶段处理厨师错误。我正在检查在程序包资源运行期间解决错误以及获取该异常/错误时它会通知其他资源执行。

我理解我们可以使用处理程序处理,但是如果遇到某种类型的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

1 个答案:

答案 0 :(得分:2)

Chef是一个围绕承诺理论建立的融合系统。没有针对错误的具体处理,因为每个承诺单元(通常是Chef中的资源)应该是内部幂等的并且本身就处理这种事情。如果资源被强制错误,则认为它是全局致命的。