Chef provisioning предлагает библиотеку для создания машин и инфраструктур с именованием шеф-повара.Обеспечение шеф-поваром с помощью Vagrant
Существует также driver for using Vagrant.
С небольшими изменениями мне удалось получить простой пример работы с моим локальным ноутбуком. Я помещаю код ниже в файл Ruby vagrant_linux.rb
, а затем запускаю его с chef-client -z vagrant_linux.rb
.
require 'chef/provisioning/vagrant_driver'
with_driver 'vagrant'
with_machine_options :vagrant_options => {
'vm.box' => 'ubuntu/trusty64'#,
},:vagrant_config => <<EOF
config.vm.provider 'virtualbox' do |v|
v.memory = 4096
v.cpus = 2
end
EOF
machine 'mario' do
converge true
end
Когда я создаю рецепт Chef, основанный на этом примере, загрузить, что мой шеф-сервер, а затем применить к узлу, это последовательно терпит неудачу с сообщением
[2016-06-20T20:16:36+02:00] ERROR: machine[mario] (ok-test::default line 99) had an error: RuntimeError: vagrant up mario --provider virtualbox failed!
STDOUT:
STDERR:Vagrant failed to initialize at a very early stage:
Vagrant is attempting to interface with the UI in a way that requires
a TTY. Most actions in Vagrant that require a TTY have configuration
switches to disable this requirement. Please do that or run Vagrant
with TTY.
поиска Google показывает, что это общее проблема, для которой, похоже, не существует хорошего/рабочего исправления или обходного пути.
Это заставляет меня задаться вопросом, пытаюсь ли я сделать что-то, чего я не должен, потому что он не поддерживается, и есть лучший способ сделать это.
Vagrant - это, конечно же, инструмент, который работает на локальном ноутбуке. Обычно он не используется на сервере.
Что я должен использовать для создания простых машин VirtualBox на сервере?
'test-kitchen' на самом деле хорошо работает для этого, и это то, что я использую для создания запасной виртуальной машины, даже если я не тестирую поваренную книгу. –