Я пытаюсь выполнить загрузку данных базы данных в рецепте шеф-повара на системе 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