Estoy intentando realizar una carga de datos de base de datos en una receta de chef en un sistema Ubuntu 14.04 con un cliente basado en Chef 11.10.4. Estoy cargando datos en un bloque Ruby y aquí están las partes relevantes del error en el registro:
Mixlib::ShellOut::CommandTimeout
El comando expiró después de 600 segundos:
El comando excedió el tiempo de ejecución permitido y fue cancelado por la señal TERM.
[2015-10-06T01:24:00+00:00] ERROR: ruby_block[Cargar conjunto de datos] (chef-virtuoso::cargar línea 178) tuvo un error: Mixlib::ShellOut::CommandTimeout: Se agotó el tiempo de espera del comando después de 600 segundos:
¿Alguien sabe cómo aumentar el CommandTimeout predeterminado a 3600 para un shell_out!
bloque Ruby?
Aquí está el bloque de rubí de la receta que falla:
::Chef::Recipe.send(:include, Chef::Mixin::ShellOut)
ruby_block "Load Dataset" do
block do
shell_out!(DATA_LOAD_COMMAND)
end
end
Respuesta1
shell_out!
toma un segundo hash de parámetro opcional que puede especificar un tiempo de espera:
shell_out!(DATA_LOAD_COMMAND, timeout: 7200)
Dicho esto, según su ejemplo, realmente no parece que necesite utilizar un ruby_block
recurso y probablemente se beneficiaría más de un recurso script
o execute
.
Ambos admiten una propiedad de recurso de tiempo de espera que haría lo mismo. Encontrará documentación adicional sobre el execute
recurso en los documentos oficiales:https://docs.chef.io/resource_execute.html