如何防止厨师在 ruby 代码上失败?

How prevent chef failure on ruby code?

有时 Chef 在下一个代码上失败(此代码不在块或任何资源中):

tmp = title.force_encoding("ISO-8859-1").encode("UTF-8")
title = tmp.encode('ISO8859-1').force_encoding('UTF-8')

我得到的错误:

NoMethodError

nil:NilClass

的未定义方法“force_encoding”

我的问题是如何最好地忽略任何代码错误并继续 运行 休息食谱,谢谢

你没有显示 title 的来源,所以我能说的最好的办法是将你的代码放在 ruby_block 资源中并使用 ignore_failure 属性 .您还可以将普通的 Ruby rescue 块用于命令式代码,但要注意它如何与资源交互(或者更确切地说,不与资源交互),请参阅 https://coderanger.net/two-pass/ 了解有关加载过程的一些详细信息厨师使用。