Я пытаюсь настроить генератор Chef-Zero для выполнения списка запуска из файла JSON-узлов. Вот как выглядит мой Vagrantfile.Список пулов шеф-повара пуст. Chef-Zero Vagrant Provisioner
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu-14.04_Base_image"
config.vm.hostname = "app_node"
config.omnibus.chef_version = '12.0.3'
config.vm.provision "chef_zero" do |chef|
chef.cookbooks_path = ["../kitchen/cookbooks", "../kitchen/site-cookbooks"]
chef.roles_path = "../kitchen/roles"
chef.data_bags_path = "../kitchen/data_bags"
chef.nodes_path = "../kitchen/nodes"
chef.node_name = "app_node"
end
end
Когда я запускаю бродягу, я получаю следующий результат от создателя шеф-повара.
==> default: Running provisioner: chef_zero...
==> default: Detected Chef (latest) is already installed
Generating chef JSON and uploading...
==> default: Warning: Chef run list is empty. This may not be what you want.
==> default: Running chef-zero...
==> default: stdin: is not a tty
==> default: [2015-01-08T01:19:51+00:00] INFO: Started chef-zero at http://localhost:8889 with repository at /tmp/vagrant-chef/bec99a1a4e96279669bc5bb3140c0f2e, /tmp/vagrant-chef/2cbca02c0b5c49646d765ae1c9c0738f
==> default: One version per cookbook
==> default: data_bags at /tmp/vagrant-chef/72ac2a17a7c339d91d27a954fc49f8c3/data_bags
==> default: nodes at /tmp/vagrant-chef/83a9002a19a985bce4d26b8c9d050540/nodes
==> default: roles at /tmp/vagrant-chef/9cdb44a6dfefce6070b32ff28cb96535/roles
==> default: [2015-01-08T01:19:51+00:00] INFO: Forking chef instance to converge...
==> default: [2015-01-08T01:19:51+00:00] INFO: *** Chef 12.0.3 ***
==> default: [2015-01-08T01:19:51+00:00] INFO: Chef-client pid: 1731
==> default: [2015-01-08T01:19:57+00:00] INFO: Run List is []
==> default: [2015-01-08T01:19:57+00:00] INFO: Run List expands to []
==> default: [2015-01-08T01:19:57+00:00] INFO: Starting Chef Run for jira
==> default: [2015-01-08T01:19:57+00:00] INFO: Running start handlers
==> default: [2015-01-08T01:19:57+00:00] INFO: Start handlers complete.
==> default: [2015-01-08T01:19:59+00:00] INFO: Chef Run complete in 1.831177529 seconds
==> default: [2015-01-08T01:19:59+00:00] INFO: Skipping removal of unused files from the cache
==> default: [2015-01-08T01:19:59+00:00] INFO: Running report handlers
==> default: [2015-01-08T01:19:59+00:00] INFO: Report handlers complete
Мой вопрос: почему пуст? Я указал каталог узлов и имя узла в модуле chef_zero. Файл JSON, который указывает список запуска для «app_node», существует в каталоге узлов, и я вижу, что шеф-повар копирует все файлы cookbook/узлов/ролей на сервер правильно.
Я чувствую, что здесь что-то отсутствует. Любая помощь приветствуется. Если что-то неясно, дайте мне знать.
Что делает файл json, определяющий runlist, похожим (и как он называется)? Возможно, я ошибаюсь, так как я не использую chef_zero, но «nodes_path» предназначен для сохранения объекта узла в конце запуска, а не для его подготовки.Vagrant переопределяет в любом случае runlist с json-файлом, сгенерированным из файла vagrant, поэтому вы должны добавлять рецепты и роли в свой файл vagrant или использовать опцию 'CUSTOM JSON DATA' в вашем бродячем файле (см. [Здесь] (http: // docs. vagrantup.com/v2/provisioning/chef_solo.html) для документа о нем) – Tensibai
Файл называется «app_node.json» и выглядит так: «{" name ":" app_node "," platform ":" debian " , "postgresql": {'password': {"postgres": "foobar"}, "run_list": ["role [foo]", "recipe [auth]", "recipe [postgres]"} ". Невозможно ли указать параметр Vagrantfile для использования атрибутов и runlist в моем файле JSON? – PaulM