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_block
recurso e provavelmente se beneficiaria mais com um recurso script
ou execute
.
Ambos suportam uma propriedade de recurso de tempo limite que faria a mesma coisa. Você encontrará documentação adicional sobre o execute
recurso nos documentos oficiais:https://docs.chef.io/resource_execute.html