Можно ли отлаживать рецепты шеф-поваров из бродячего бокса?
Я борюсь с рецептами шеф-повара для бродячего бокса. Я использую шеф-повара.
Мне не очень нравится Ruby (я никогда не использовал его раньше), поэтому процесс написания моих рецептов очень длинный, если я должен делать vagrant provision
каждый раз.
Есть ли способ отладки конкретного рецепта? Даже из оболочки виртуальной машины.
Я видел, что chef-shell
существует (http://docs.opscode.com/chef_shell.html), и я могу запустить его (он работает), когда я внутри виртуальной машины, но я не могу понять, как загрузить мои рецепты и протестировать их.
Ответы
Ответ 1
Вы можете использовать chef-solo непосредственно из оболочки внутри вашей виртуальной машины, но для этого требуется другая файловая структура, чем то, что у вас есть для бродяг.
Это немного похоже на то, что сделано здесь:
- Вам нужен каталог ваших кулинарных книг
- Вам нужен файл .json, содержащий все ваши данные, которые находятся в
chef.json
в вашем Vagrantfile
- И вам нужен rubper script для обертки/запуска, как тот, который указан выше.
В общем, попробуйте найти учебники, которые объяснят шеф-повара без Vagrant.
Ответ 2
Правильный способ включить отладочный вывод в текущем резервном шеф-поваре для бродяг: chef.log_level, а не с шеф-поваром вручную или с chef.arguments:
Vagrant.configure("2") do |config|
# ...
config.vm.provision :chef_solo do |chef|
chef.log_level = :debug
# ...
end
end
Ответ 3
В дополнение к указанному выше вводу, который является execllent; -)
Выполнение chef-solo
в режиме отладки (включение вывода отладки) определенно поможет.
Например
chef-solo -c solo.rb -j node.json -l debug
Ответ 4
Если вы запустите chef-solo внутри Vagrant, дополнительные дополнительные аргументы (для регистрации/отладки) могут быть введены из Vagrantfile следующим образом:
Vagrant.configure("2") do |config|
# ...
config.vm.provision :chef_solo do |chef|
chef.arguments = '-l debug'
# ...
end
end