我试图在一个基于Chef 11.10.4的客户端的Ubuntu 14.04系统上的厨师食谱中执行数据库数据加载。 我正在做一个ruby块的数据加载,这里是在日志中的错误的相关部分:
Mixlib :: ShellOut ::的CommandTimeout
命令在600s后超时:
命令超过允许的执行时间,被TERM信号所杀死。
- 厨师安装依赖关系的本地apt_package
- 与厨师testing厨房SSH硬化。 如何告诉testing厨房如何连接?
- 从厨师更改registry项的权限
- 如何运行一个厨师食谱?
- 厨师私钥无法从/user.pem加载
[2015-10-06T01:24:00 + 00:00]错误:ruby_block [加载数据集](chef-virtuoso :: load line 178)出现错误:Mixlib :: ShellOut :: CommandTimeout:600s后超时:
任何人都知道如何增加一个shell_out!
的默认CommandTimeout为3600 shell_out!
在一个ruby块?
这里是从配方的ruby块是失败的:
::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
资源, ruby_block
可能从script
或execute
资源中获益更多。
这两个支持超时资源属性,这将做同样的事情。 您可以在官方文档中find有关execute
资源的其他文档: https : //docs.chef.io/resource_execute.html