Chef
廚師:如何在紅寶石塊中增加 Mixlib::ShellOut 的 CommandTimout?
我正在嘗試在具有基於 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
資源,並且可能會從 ascript
或execute
資源中受益更多。這兩個都支持超時資源屬性,它會做同樣的事情。您可以
execute
在官方文件中找到有關該資源的其他文件:https ://docs.chef.io/resource_execute.html