【问题标题】:chef: How do I increase the CommandTimout for Mixlib::ShellOut in a ruby block?厨师:如何在红宝石块中增加 Mixlib::ShellOut 的 CommandTimout?
【发布时间】:2016-01-02 19:27:00
【问题描述】:

我正在尝试在具有基于 Chef 11.10.4 的客户端的 Ubuntu 14.04 系统上的厨师食谱中执行数据库数据加载。我正在 ruby​​ 块中加载数据,以下是日志中错误的相关部分:

Mixlib::ShellOut::CommandTimeout

命令在 600 秒后超时:

命令超出了允许的执行时间,被 TERM 信号杀死。

[2015-10-06T01:24:00+00:00] ERROR: ruby​​_block[Load Dataset] (chef-virtuoso::load line 178) 出现错误: Mixlib::ShellOut::CommandTimeout:命令在 600s 后超时:

有人知道如何将 ruby​​ 块中 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

【问题讨论】:

    标签: ruby chef-infra


    【解决方案1】:

    根据 mixlib-shellout code 和 chef mixin shell_out code 你应该可以像这样使用timeout 选项:

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

    您不必将 Class 发送到 Recipe,它已经是 DSL 的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多