chef: ¿Cómo puedo aumentar el CommandTimout para Mixlib::ShellOut en un bloque Ruby?

chef: ¿Cómo puedo aumentar el CommandTimout para Mixlib::ShellOut en un bloque Ruby?

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_blockrecurso y probablemente se beneficiaría más de un recurso scripto execute.

Ambos admiten una propiedad de recurso de tiempo de espera que haría lo mismo. Encontrará documentación adicional sobre el executerecurso en los documentos oficiales:https://docs.chef.io/resource_execute.html

información relacionada