Я пытаюсь использовать Chef для управления новыми виртуальными машинами. Я использую выделенный сервер Chef и выполняю всю эту работу с отдельной рабочей станции vm.Лучшая практика для настройки уникальных атрибутов афера для шеф-повара
То, как я сейчас делаю это, клонирует базовое изображение vm, а затем использует загрузочный бункер для установки шеф-повара и доводит vm до согласованного состояния.
Я могу указать среду или список запуска для vm; Я могу переопределить некоторые настройки в моей среде, например. У меня есть интервал chef-client в блоке «overrides» тестовой среды, установленный для запуска клиента каждые 60, пока я тестирую, поэтому мне не нужно вручную запускать chef-client каждый раз.
Например, мой рабочий процесс заключается в следующем:
шаблон клон VM и запустить VM
установить имя хоста вручную (обновление/и т.д./имя хоста и/и т.д./хосты) и перезагрузки
Бутстрап узел с начальными рецептов
knife bootstrap chef-test1 -r 'recipe[ntp],recipe[chef-client]'
редактировать узел, чтобы отразить новую среду
Проблемой я имею установки для каждого узла атрибутов. Я хотел бы использовать кулинарную книгу hostname для установки имени хоста узла, если бы я установил это в роли, то каждому серверу пришлось бы создать новую роль. Но когда я пытаюсь самонастройки и включить эту роль, я получаю сообщение об ошибке:
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
Когда я самонастройки без этого рецепта и попытаться изменить узел и установить «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
Я попытался изменить этот атрибут в шеф-гуй и атрибут не спасут.
Я нашел this guy, который создает json в /etc/chef/chef.json, делая в основном то, что я ожидаю, но я не уверен, как вступает в игру /etc/chef/chef.json (обновите его для каждого нового узла? Я не использую шеф-повара, так что, возможно, это и есть моя путаница).
В соответствии с this email thread невозможно переопределить атрибуты по умолчанию с помощью редактирования узла ножа, но «set_fqdn» не является значением по умолчанию. Я хотел бы, чтобы не создавать роли для каждого узла, и я думаю, что я могу использовать имя хоста поваренную книгу, чтобы облегчить необходимость вручную установить имя хоста, что-то вроде:
knife bootstrap saucy64 -r 'recipe[ntp],recipe[chef-client],recipe[hostname]' --json '"{ set_fqdn": "chef-test1.local.tld", "chef_client": { "interval": "600" }'
knife bootstrap fedora19 -r 'recipe[ntp],recipe[chef-client],recipe[hostname]' --json '"{ set_fqdn": "chef-test2.local.tld", "chef_client": { "interval": "60" }'
Я ценю помощь.
Я борюсь на том же, чтобы установить имя хоста, используя повара экземпляров ec2. пожалуйста, помогите – user3086014