Chef

廚師:如何在紅寶石塊中增加 Mixlib::ShellOut 的 CommandTimout?

  • October 17, 2015

我正在嘗試在具有基於 Chef 11.10.4 的客戶端的 Ubuntu 14.04 系統上的廚師食譜中執行數據庫數據載入。我在 ruby​​ 塊中進行數據載入,以下是日誌中錯誤的相關部分:

Mixlib :: ShellOut :: 命令超時

命令在 600 秒後超時:

命令超出了允許的執行時間,被 TERM 信號殺死。

$$ 2015-10-06T01:24:00+00:00 $$錯誤:ruby_block$$ Load Dataset $$(chef-virtuoso::load line 178) 出現錯誤:Mixlib::ShellOut::CommandTimeout: 命令在 600 秒後超時:

shell_out!任何人都知道如何將紅寶石塊中的預設 CommandTimeout 增加到 3600 ?

這是配方中失敗的紅寶石塊:

::Chef::Recipe.send(:include, Chef::Mixin::ShellOut)

ruby_block "Load Dataset" do
 block do
   shell_out!(DATA_LOAD_COMMAND)
 end
end

shell_out!接受一個可選的第二個參數散列,它可以指定一個超時:

shell_out!(DATA_LOAD_COMMAND, timeout: 7200)

話雖如此,根據您的範例,看起來您確實不需要使用ruby_block資源,並且可能會從 ascriptexecute資源中受益更多。

這兩個都支持超時資源屬性,它會做同樣的事情。您可以execute在官方文件中找到有關該資源的其他文件:https ://docs.chef.io/resource_execute.html

引用自:https://serverfault.com/questions/726944