Назад | Перейти на главную страницу

шеф: Как увеличить CommandTimout для Mixlib :: ShellOut в рубиновом блоке?

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

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! в рубиновом блоке?

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

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

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

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

shell_out!(DATA_LOAD_COMMAND, timeout: 7200)

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

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