Подготовка шеф-повара с помощью Vagrant Driver - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь оторваться от земли с помощью Chef Provisioning и пытаюсь запустить мой первый пример. Я немного растерялся, потому что то, что я думал, будет легким примером, не работает для меня, очевидно, есть еще один шаг, которому я должен следовать, чтобы продолжить.

Используемые версии программного обеспечения:

Chef Development Kit Version: 3.0.36
chef-client version: 14.1.12
delivery version: master (7206afaf4cf29a17d2144bb39c55b7212cfafcc7)
berks version: 7.0.2
kitchen version: 1.21.2
inspec version: 2.1.72

После запуска следующих команд:

mkdir chef-repo
cd chef-repo
chef generate app cool-app
mkdir -p cool-app/provision/recipes
nano cool-app/provision/recipes/app-cluster.rb 

Измените содержимое cool-app / provision / recipes / app-cluster.rb следующим образом:

require 'chef/provisioning/vagrant_driver'
with_driver 'vagrant'

vagrant_box 'centos-7.1' do
  url 'https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.1/vagrant-centos-7.1.box'
end

with_machine_options :vagrant_options => {
  'vm.box' => 'centos-7.1'
}

machine 'db' do
  recipe 'postgresql'
  converge true
end

num_webservers = 2
machine_batch do
  1.upto(num_webservers) do |i|
    machine "web#{i}" do
      recipe 'apache'
      converge true
    end
  end
end

Затем я пытаюсь запустить пример с командой

chef provision --no-policy --cookbook ./cool-app/provision/ -r app-cluster

В этот момент я получаю следующий вывод:

================================================================================
Recipe Compile Error in D:/cooking/provisioning/chef-repo/cool-app/provision/recipes/app-cluster.rb
================================================================================

LoadError
---------
cannot load such file -- chef/provisioning/vagrant_driver

Cookbook Trace:
---------------
  D:/cooking/provisioning/chef-repo/cool-app/provision/recipes/app-cluster.rb:1:in `from_file'

Relevant File Content:
----------------------
D:/cooking/provisioning/chef-repo/cool-app/provision/recipes/app-cluster.rb:

  1>> require 'chef/provisioning/vagrant_driver'
  2:  with_driver 'vagrant'
  3:
  4:  vagrant_box 'centos-7.1' do
  5:    url 'https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.1/vagrant-centos-7.1.box'
  6:  end
  7:
  8:  with_machine_options :vagrant_options => {
  9:    'vm.box' => 'centos-7.1'
 10:  }

System Info:
------------
chef_version=14.1.12
ruby=ruby 2.5.1p57 (2018-03-29 revision 63029) [x64-mingw32]
program_name=C:/opscode/chefdk/bin/chef
executable=C:/opscode/chefdk/bin/chef

Error: cannot load such file -- chef/provisioning/vagrant_driver

Мне нужно что-то сделать, чтобы добавить бродячего водителя в поваренную книгу шеф-повара. В приведенном ниже примере ничего не говорится о добавлении файла vagrant_driver, поэтому я подумал, что он будет встроен?

1 Ответ

0 голосов
/ 05 сентября 2018

После того, как chef-provisoning-vagrant был рубиновым камнем, я смог проверить, установлен ли он. Я проверил свою библиотеку драгоценных камней, и ее не было, там были только варианты aws и fog.

Я запустил команду chef gem install chef-provisioning-vagrant, которая затем установила провайдер, и после этого она работала лучше. Я предполагаю, что этот провайдер был удален из ChefDK с тех пор, как была написана книга, на которую я смотрел.

...