【问题标题】:How prevent chef failure on ruby code?如何防止红宝石代码的厨师失败?
【发布时间】:2017-10-25 12:01:04
【问题描述】:

有时 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'

我的问题是如何忽略任何代码错误并继续运行其余食谱的最佳做法,谢谢

【问题讨论】:

    标签: ruby chef-infra recipe


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多