2015-10-06 70 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的一部分。