chef: Como faço para aumentar o CommandTimout para Mixlib::ShellOut em um bloco Ruby?

chef: Como faço para aumentar o CommandTimout para Mixlib::ShellOut em um bloco Ruby?

Estou tentando realizar um carregamento de dados de banco de dados em uma receita de chef em um sistema Ubuntu 14.04 com um cliente baseado em Chef 11.10.4. Estou carregando os dados em um bloco Ruby e aqui estão as partes relevantes do erro no log:

Mixlib::ShellOut::CommandTimeout

O comando expirou após 600s:

O comando excedeu o tempo de execução permitido, eliminado pelo sinal TERM.

[2015-10-06T01:24:00+00:00] ERRO: ruby_block[Load Dataset] (chef-virtuoso::load line 178) apresentou um erro: Mixlib::ShellOut::CommandTimeout: O comando expirou após 600s:

Alguém sabe como aumentar o CommandTimeout padrão para 3600 para um shell_out!bloco Ruby?

Aqui está o bloco Ruby da receita que está falhando:

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

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

Responder1

shell_out!recebe um hash de segundo parâmetro opcional que pode especificar um tempo limite:

shell_out!(DATA_LOAD_COMMAND, timeout: 7200)

Dito isto, com base no seu exemplo, realmente não parece que você precisa usar um ruby_blockrecurso e provavelmente se beneficiaria mais com um recurso scriptou execute.

Ambos suportam uma propriedade de recurso de tempo limite que faria a mesma coisa. Você encontrará documentação adicional sobre o executerecurso nos documentos oficiais:https://docs.chef.io/resource_execute.html

informação relacionada