在厨师中捕获运行时异常

时间:2018-03-20 08:48:17

标签: ruby chef chef-recipe

我有以下代码结构:

begin
  <block of code>
rescue Exception => e
  <block of code>
end

这无法捕获运行时错误,而且Chef运行失败。

有没有办法在Chef的运行时捕获异常?

1 个答案:

答案 0 :(得分:1)

这只会在编译时捕获异常,而不是收敛时间。由于我们的双通道加载模型,Chef本质上是异步的。您可以在https://coderanger.net/two-pass/了解更多相关信息。一般来说唯一的选择是ignore_errors属性,虽然它仍然会显示一个讨厌的错误跟踪,它只是在资源出错时不会中止运行。更具体地说,您需要说出您正在谈论的代码类型。您可能希望使用保护条件(not_if / only_if)以避免在出现问题时收敛资源并且它将失败。