2015-10-06 102 views
1

我正嘗試在基於Chef 11.10.4的客戶端的Ubuntu 14.04系統上的廚師食譜中執行數據庫數據加載。我做的紅寶石塊中的數據負載,這裏是錯誤的日誌中的相關部分:廚師:如何在紅寶石塊中增加Mixlib :: ShellOut的CommandTimout?

Mixlib::ShellOut::CommandTimeout

Command timed out after 600s:

Command exceeded allowed execution time, killed by TERM signal.

[2015-10-06T01:24:00+00:00] ERROR: ruby_block[Load Dataset] (chef-virtuoso::load line 178) had an error: Mixlib::ShellOut::CommandTimeout: Command timed out after 600s:

任何人都知道如何增加默認的CommandTimeout到3600的紅寶石塊shell_out!

這裏是從配方紅寶石塊失敗:

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

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

回答

1

根據mixlib-shellout code和廚師混入shell_out code,你應該能夠使用timeout選項是這樣的:

ruby_block "Load Dataset" do 
    block do 
    shell_out!(DATA_LOAD_COMMAND, :timeout => 3600) 
    end 
end 

你不必將類發送到配方,它已經是DSL的一部分。