Подготовка шеф-повара с помощью Vagrant

Подготовка Chef предлагает библиотеку для идемпотентного создания компьютеров и инфраструктур в Chef.

Существует также драйвер для использования 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 на основе этого примера, загружаю его на свой сервер 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 на сервере?


person onknows    schedule 20.06.2016    source источник
comment
test-kitchen на самом деле хорошо подходит для этого, и я использую его, чтобы получить подготовленную чистую виртуальную машину, даже если я не тестирую кулинарную книгу.   -  person Karen B    schedule 20.06.2016


Ответы (1)


Chef Provisioning больше не является проектом, на основе которого вы, вероятно, должны начать новую работу, см. https://coderanger.net/provisioning/ для подробностей. Как упоминалось в комментарии, Test Kitchen — это правильный инструмент для настройки разработки и тестирования виртуальных машин либо локально через Vagrant, либо с помощью одного из различных облачных плагинов.

person coderanger    schedule 20.06.2016