я был бы велик для помощи. Я вообще не понимаю, как мне управлять данными Node локально с моей системой управления версиями Git?
Исключение из документации Chef: http://wiki.opscode.com/display/chef/Nodes
knife node create foobar
{
"normal": {
},
"name": "foobar",
"override": {
},
"default": {
},
"json_class": "Chef::Node",
"automatic": {
},
"run_list": [
"recipe[zsh]",
"role[webserver]"
],
"chef_type": "node"
}
Я понял, я могу управлять этими данными на сервере с помощью ножа над редактором !!. И, похоже, есть опция командной строки для локального chef-client (скорее всего, -j JSON_ATTRIBS). => Но шеф-клиент работает локально, и мне нужно загрузить данные на сервер, а затем эти атрибуты узла нужно отправить клиенту. это единственное жизнеспособное решение в более крупной среде
Но как выгрузить эти данные ножом? Вроде нет для этого варианта? (только вариант с редактором в ноже вроде присутствует?)
Спасибо, Франсуа
В Chef авторитет - это узел. Лучше всего использовать нож чтобы настроить систему для запуска Chef и интегрировать ее с сервером Chef.
Большая часть данных атрибутов узла генерируется узлом динамически, когда шеф-клиент работает, где он использует ohai для получения информации о себе. Другие данные могут быть получены из поваренных книг и ролей. Ваш поваренные книги и роли обязательно должны храниться в вашем репозитории системы контроля версий, в том, что обычно называется Репозиторий шеф-повара.
Основная причина хранить узлы локально - это захват их списков выполнения. Мы рекомендуем иметь в своем репозитории документ Runbook (например, README :)), который описывает, какие у вас есть серверы и каковы их роли.
Сейчас я думаю о том, как отслеживать изменения узла run_list в репозитории. И единственное, что мне приходит в голову, - это создать роль для каждого узла с тем же именем, что и узел. Например:
И всякий раз, когда нам нужно изменить run_list, мы меняем роль, и run_list остается прежним.