我正在尝试在具有基于 Chef 11.10.4 的客户端的 Ubuntu 14.04 系统上的厨师食谱中执行数据库数据加载。我在 ruby 块中进行数据加载,以下是日志中错误的相关部分:
Mixlib::ShellOut::CommandTimeout
命令在 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!
接受一个可选的第二个参数散列,它可以指定一个超时:话虽如此,根据您的示例,看起来您确实不需要使用
ruby_block
资源,并且可能会从 ascript
或execute
资源中受益更多。这两个都支持超时资源属性,它会做同样的事情。您可以
execute
在官方文档中找到有关该资源的其他文档:https ://docs.chef.io/resource_execute.html