2016-06-20 8 views
0

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 на сервере?

+1

'test-kitchen' на самом деле хорошо работает для этого, и это то, что я использую для создания запасной виртуальной машины, даже если я не тестирую поваренную книгу. –

ответ

1

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