Я пытаюсь использовать Chef для управления новыми виртуальными машинами. Я использую выделенный сервер Chef и выполняю всю эту работу с отдельной рабочей станции vm.
То, как я сейчас это делаю, клонирует базовый образ vm, а затем использует загрузочный бункер для установки Chef и доводит vm до согласованного состояния.
Я могу указать среду или список запуска для vm; Я могу переопределить некоторые настройки в моей среде, например. У меня есть chef-client интервал в блоке "overrides" тестовой среды, установленный для запуска клиента каждые 60, пока я тестирую Мне не нужно вручную запускать chef-client каждый раз.
Например, мой рабочий процесс таков:
-
шаблон clone vm и запуск vm
-
установить имя хоста вручную (обновить/etc/hostname и /etc/hosts ) и перезагрузить
-
Загрузите node с помощью начальных рецептов
нож bootstrap chef-test1 -r 'рецепт [ntp], рецепт [chef-client]'
-
отредактируйте node, чтобы отобразить новую среду
Проблема, с которой я столкнулась, заключается в настройке атрибутов per-w632 > . Я хотел бы использовать hostname cookbook для установки имени хоста node, если я установил это в роли, тогда каждый сервер будет иметь создать новую роль. Но когда я пытаюсь загрузить и включить эту роль, я получаю сообщение об ошибке:
chef-test1 * log[Please set the set_fqdn attribute to desired hostname] action write[2013-12-09T16:26:56-07:00] WARN: Please set the set_fqdn attribute to desired hostname
Когда я загружаю без этого рецепта и пытаюсь отредактировать node и установить атрибут "set_fqdn", я не могу сохранить этот атрибут, например. это json:
{
"name": "chef-test1",
"set_fqdn": "chef-test1.local.fqdn",
"chef_environment": "test-dev1",
"normal": {
"tags": [
]
},
"run_list": [
"recipe[ntp]",
"recipe[chef-client]",
"recipe[hostname]"
]
}
когда я выхожу из своего редактора, нож говорит мне:
Node not updated, skipping node save
Я попытался отредактировать этот атрибут в chef gui, и атрибут не будет сохранен.
Я нашел этого парня, который создает json в /etc/chef/chef.json, делая в основном то, что я ожидаю, но я не уверен, как /etc/chef/chef.json входит в игру (обновляйте его для каждого нового node? Я не использую шеф-повара, поэтому, возможно, там, где мое замешательство).
В соответствии с этот поток электронной почты невозможно переопределить атрибуты по умолчанию с помощью ножа node, но "set_fqdn" не является по умолчанию. Я хотел бы избежать создания роли для каждого node, и я думаю, что могу использовать кучную книгу имени хоста, чтобы облегчить необходимость вручную установить имя хоста, например:
knife bootstrap saucy64 -r 'recipe [ntp], рецепт [chef-client], recipe [имя хоста]' --json ' "{set_fqdn": "chef-test1.local.tld", "chef_client": { "интервал": "600" } '
knife bootstrap fedora19 -r 'recipe [ntp], recipe [chef-client], recipe [hostname]' --json ' "{set_fqdn": "chef-test2.local.tld", "chef_client": { "интервал": "60" } '
Я ценю помощь.