chef: Как увеличить CommandTimout для Mixlib::ShellOut в блоке Ruby?

chef: Как увеличить CommandTimout для Mixlib::ShellOut в блоке Ruby?

Я пытаюсь выполнить загрузку данных базы данных в рецепте шеф-повара на системе Ubuntu 14.04 с клиентом на базе Chef 11.10.4. Я выполняю загрузку данных в блоке Ruby, и вот соответствующие части ошибки в журнале:

Mixlib::ShellOut::CommandTimeout

Время ожидания команды истекло через 600 с:

Команда превысила допустимое время выполнения, прекращена сигналом TERM.

[2015-10-06T01:24:00+00:00] ОШИБКА: ruby_block[Load Dataset] (chef-virtuoso::load line 178) произошла ошибка: Mixlib::ShellOut::CommandTimeout: Время ожидания команды истекло через 600 с:

Кто-нибудь знает, как увеличить значение CommandTimeout по умолчанию до 3600 для shell_out!блока Ruby?

Вот рубиновый блок из рецепта, который не получается:

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

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

решение1

shell_out!принимает необязательный второй параметр хэш, который может указывать тайм-аут:

shell_out!(DATA_LOAD_COMMAND, timeout: 7200)

Тем не менее, исходя из вашего примера, на самом деле не похоже, что вам нужно использовать ruby_blockресурс, и, скорее всего, вместо этого вы выиграете от использования ресурса scriptили execute.

Оба они поддерживают ресурсное свойство timeout, которое делает то же самое. Дополнительную документацию по executeресурсу вы найдете в официальных документах:https://docs.chef.io/resource_execute.html

Связанный контент