Как стать автором
Обновить

Комментарии 8

Несколько вопросов (возможно, на некоторые был дан ответ, но я невнимательно прочел):
— «Сервер» — это нода или сервер chef'a?
— Надо ли закачивать cookbook на ноды вручную или это можно настроить так, чтобы нода сама скачивала кукбуки? Если можно, то как?
— Как сделать обновление кукбуков? Появился новый релиз, как сделать так, чтобы все ноды выполнили обновление?
1. Сервер это в данном случае — chef-сервер. Еще там упоминается master — но это уже конкретный пример различия между нодами на определенной задаче, озвученной мной.
2-3. Процесс chef-client, который при bootstrap — устанавливает клиента на узел, можно запускать по расписанию (используя cron или windows scheduler), соответственно он периодически связывается с сервером и проверяет изменения. Cookbook-и скачиваются этим же процессом.
Хоть и не автор, попробую ответить:
— сервер — имеется в виду chef-сервер;
— при каждом запуске chef клиента, кукбуки на нодах синхронизируются с теми что есть на сервере.
— ввиду второго пункта третий отпадает.
Тем, кто захочет заняться шефом вплотную могут помочь следующие keywords:
vagrant (упоминалось в статье и именно с него стоит начать), chef-zero, berkshelf, vagrant-berkshelf, vagrant-omnibus.

Сейчас идёт очень хорошая тенденция к универсальности в плане VM провайдеров: для knife есть масса плагинов для интеграции с различными облаками, vagrant так же интегрируется с различными системами виртуализации, облаками и т.д.

Полезное видео (eng): www.youtube.com/watch?v=hYt0E84kYUI
От авторов berkshelf

Если у вас линукс, можно попробовать ещё vagrant-lxc (сам пока не пробовал).
Есть ещё test-kitchen, но он пока сыроват.

Когда сам начал в этом разбираться — знание об этих тулах могло сэкономить мне пару недель.
Изучение и разработка значительно ускоряется.

Спасибо большое, полезная информация, действительно. У меня она частично запланирована на другую часть. Думаю, что люди, жаждущие разобраться — все равно придут к berkshelf и vagrant, ибо удобно решать зависимости и быстро разворачивается. С другой стороны — как уже упоминал я в статье — AWS это реально интересно и востребовано. Спасибо еще раз за собирательный комментарий.
НЛО прилетело и опубликовало эту надпись здесь
На этапе регистрации узлов на Chef-сервере неизвестно, какой узел является master, а какой – slave. Что делать, не руками же назначать каждому? Решилось все просто до невозможности. Каждый узел получал, в зависимости от своего назначения, атрибут env_role = master или slave, который был доступен Chef-серверу. Сервер, в свою очередь, по всем зарегистрированным на нем узлам, проводил поиск по данному атрибуту и в зависимости от значения – раздавал cookbook-и (посредством ролей, о которых мы поговорим в дальнейшем).


Не совсем понятно, узлы сами знали, кем они являются?
Идентификация узлов лежит на нас, поэтому каждому из них — назначался атрибут (он же метка, упомянутая в статье). Назначался он путем конфигурации клиента и параметра json_attribs. В итоге узел знал, кто он, но не знал, что с этой меткой делать — пока не регистрировался на сервере.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий