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