// codeart.ru / Обзоры / Оказалось, что chef-solo для меня удобнее чем chef-server Форум

Оказалось, что chef-solo для меня удобнее чем chef-server rss подписка

Автор: Evgeniy Sergeev

Напомню, что не так давно начал разбираться с утилитами управления конфигурацией сервера, в частности с Chef. Я попробовал как централизованный вариант, когда конфигурация располагается на сервере. Так и локальный вариант, когда все необходимые «рецепты» располагаются непосредственно по месту установки. В итоге пришел к выводу, что второй вариант предпочтительнее и далее несколько слов почему.

Есть такое слово «простота»

Изначально использование утилит конфигурирования должно облегчать жизнь, а не усложнять. В случае с централизованным вариантом возникает куча мелочей, которые нужно постоянно держать в голове. Например, нужно разбивать серверы на группы, создавать для них роли, раздавать права, распределять рецепты и т.д. и т.п.

Безусловно, все эти мелочи далеко не бесполезны, каждая из них позволяет сократить затраты на сопровождение инфраструктуры в будущем. НО! Все это имеет смысл только в случае если количество серверов, которыми нужно управлять, исчисляется если не сотнями, то десятками точно. В противном случае управлять конфигурацией становится мучительно больно. Нет, правда! Когда у тебя всего десяток серверов, которые похожи друг на друга как братья близнецы, то совсем не хочется создавать все эти роли, раздавать права и т.д.

Короче, я так и не смог для себя найти комфортного варианта работы с chef-server. Например, я так и не понял как должен осуществляться деплой конфигурации в промышленных масштабах. Для того чтобы конфигурация применилась на сервере нужно запустить команду «chef-client». Единственный вариант, при котором не нужно заходить на сервер для запуска этой команды, — это запуск chef-client по расписанию. Но тогда не понятно как быть с повторным применением рецептов. Да и вообще, как-то некрасиво все это :-)

Есть такое слово «контроль»

Зато гораздо интереснее мне показалось использование chef-solo. Здесь для развертывания конфигурации нужно «доставить» рецепты на целевой сервер и запустить команду chef-solo, скормив ей при этом необходимую конфигурацию. Несмотря на то, что в данном случае так же нужно запускать команду на сервере данная схема мне показалась более прозрачной. Хотя бы потому что я сам могу решать каким механизмом доставить необходимые рецепты на сервер. Так же я сам могу подготовить наборы рецептов, которые будут представлять из себя своеобразные пакеты установки. Я могу иметь несколько таких пакетов, для развертывания системы. Так же я могу иметь пакеты для обновления уже установленного программного обеспечения и т.д. Каждый пакет — это просто архив, который закидывается и исполняется на сервере.

В итоге у меня родилась следующая схема. На стороне сервера по расписанию запускается скрипт, который проверяет наличие новых архивов с рецептами (пакетов). В случае если пакет найден, то скрипт его распаковывает и выполняет. После чего удаляет пакет или перемещает в специальную директорию для исполненных пакетов. В конце можно так же добавить отправку отчета об успешной установке пакета.

Сам пакет готовится на моей локальной машине и закидывается на сервер через ssh, здесь так же можно написать небольшой скрипт, который будет раскладывать пакеты на нужное количество серверов. :-) В итоге получается более прозрачная и контролируемая схема, чем вариант с использованием chef-server.

Сразу оговорюсь, что данный вариант, пожалуй, подходит для небольшого количества серверов. В случае сильного разрастания инфраструктуры могут возникнуть трудности. Тогда можно будет и к централизованному варианту перейти :-)

Есть такое слово «расширяемость»

Еще одна идея с chef-solo связана с «синхронизацией» локальной виртуалки для разработки и боевого сервера. Здесь так же можно автоматизировать за счет применения скриптов. Скажем, сначала пакет закидывается на виртуалку. Происходит его инсталляция, прогон всех тестов и в случае успеха последних деплой пакета на боевой сервер. В итоге имеем соответствие на боевом и тестовом сервере, которая работает в полуавтоматическом режиме. Что совсем даже неплохо.

Leave a Reply

« »