advertisement

Chef, Puppet, Salt, Ansible on SECON 2014

50 %
50 %
advertisement
Information about Chef, Puppet, Salt, Ansible on SECON 2014
Technology

Published on March 14, 2014

Author: alexclear

Source: slideshare.net

Description

My presentation from SECON 2014
advertisement

Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible Александр Чистяков, главный инженер Git in Sky, 2014

Давайте познакомимся, я: § Живу на Северо-Западе § Работаю главным инженером в компании Git in Sky § Занимаюсь поддержкой инфраструктуры разных проектов, больших и маленьких § Постоянно что-нибудь конфигурирую Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Давайте познакомимся, Вы: § Занимаетесь разработкой веб-проектов? § Занимаетесь поддержкой веб-проектов? § Не занимаетесь? А чем занимаетесь? § Готов поспорить, вы немного конфигурируете? § Если нет, кто-то делает это за вас. § (Надеюсь, вы знаете, кто именно, и доверяете ему) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Зачем нужны CM системы? § Системы управления конфигурацией позволяют: § Управлять конфигурацией (сюрприз!) § Добиваться повторимости § Рассматривать конфигурацию как код § За что мы любим библиотеки? § Переиспользовать код, в том числе, и чужой Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

How to configure like a pro! § 70-е Сначала был UNIX shell (почему «был», он и сейчас есть) § 90-е CFEngine 1, CFEngine 2 (ядро проекта - на языке C, кстати, кто-нибудь здесь разрабатывает на языке C?) § 00-е Puppet (на Ruby), Bcfg2 (на Python) § 10-е Chef (Ruby), Salt (Python), Ansible (Python), Juju (Go), Rundeck (Java), Babushka (Ruby), Marelle (Prolog) Как видите, выбор есть! (Наверняка, я перечислил не всё) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Мужской справочник по СМ системам: § Задача: выбрать систему управления конфигурацией § План действий (два варианта): Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Меня зовут Саша, и у меня есть проблема: Как решал эту задачу я: § Начало 2011-го, Puppet и Chef уже есть, выбираю из них § Не знаю ни Chef, ни Puppet, ни Ruby § Но! Про Puppet есть книга! § Книга — источник знаний? § Книга — показатель «взрослости» проекта! § http://goo.gl/MKe5Ni (опубликована Feb 4, 2008) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Назад в будущее: Я из 2011-го и эта же задача сейчас: § 2014: Puppet, Chef, Salt, Ansible, Fabric, ... § Про Chef есть книга...две книги...три книги § Про Puppet есть три книги...или больше? § (Packt Publishing — это круто!) § O_O Нужно менять критерии отбора! Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Придумываем критерии: § Порог вхождения (низкий, высокий, средний) § Сложность развертывания (низкая, высокая, средняя) § Язык ядра проекта (Ruby, Python, C, Java, Prolog, ...) § Язык описания конфигурации (custom DSL, YAML, XML, eDSL, Ruby) § Парадигма описания конфигурации (императивная, декларативная) § Сложность поддерживания сервиса (низкая, высокая, средняя) § Ресурсоемкость (низкая, высокая, средняя) § Дружелюбность и компетентность сообщества § Классификация получилась очень субъективная и не очень стройная § Но другой у меня для вас нет (может, есть у вас для меня?) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Порог вхождения: Сильно зависит от вашего пути: § Я начинал с Puppet, и мне было сложно § Через три года мы вернулись - «так здесь же все понятно!» § Мы уже знали анатомию типичной CM системы § Мы знали, что именно нам необходимо (все CM системы похожи) § Новая информация про Puppet в сети, новые книги, etc Тем не менее, у разных систем порог вхождения разный Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Порог вхождения: § Про CFEngine тоже есть книга § Я пытался читать ее, уже имея опыт с Puppet и Chef § Сначала я сломался прямо на оглавлении § Потом я не смог найти, как в CFEngine устроена генерация конфигов при помощи шаблонов § Так, до сих пор, и не знаю, возможно, никак не устроена § Да, я не хочу читать никакие книги, я хочу описывать конфигурацию, где мой «Getting started»? Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

«Getting started» Типичные действия: § Развернуть и настроить сервер, пусть в минимальном варианте (если сервер вообще предусмотрен) § Настроить агент на клиентских машинах, связать их с сервером § Начать описывать конфигурацию § Протестировать описание § Применить описание Казалось бы, пять простых пунктов! Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Анатомия СМ-системы: § Сервер (если есть, обычно — есть) § Агент на клиентских узлах (если есть, часто — есть) § Описания конфигурации (хранятся на сервере, применяются на клиенте), состоят из: § Описаний установленных пакетов § Описаний разрешенных и запущенных сервисов § Шаблонов конфигурационных файлов и правил генерации § Описаний параметров сред (логических групп серверов) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Шаг 1: развернуть сервер Сервер нормального человека: Сервер курильщика (Chef): Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Шаг 1: развернуть сервер § В настоящее время (после выхода Chef 11) любой CM сервер разворачивается через один-два однострочника § При этом количество компонентов Chef-сервера не уменьшилось — их там по-прежнему хватает на целую диаграмму Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Шаг 2: настроить агент на клиентах § Плюс-минус однострочник для всех систем § Надо только решить, как будет работать агент: как постоянно загруженный сервис, либо через cron § В случае, если агент написан на Ruby, крайне рекомендую использовать cron § Кстати, в книге про Puppet так и написано: “используйте лучше cron” § Потому что Ruby-машина так устроена, что если что-то взяла, то обратно уже не отдаст Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Шаг 3: описываем конфигурацию § Лучшее описание — декларативное § Сам процесс применения описания императивен из-за тяжелого наследия UNIX shell и других технологий 70-х § Выберите тот DSL, который вам будет понятнее (DSL курильщика тоже есть) § Привыкните к мысли, что никакого DSL не хватит и придется либо писать свои модули, либо исполнять ad hoc скрипты § По возможности, делайте их идемпотентными § Берите систему с тем языком ядра, который знаете — вам с ним еще интегрироваться, а, возможно, и патчи на ядро выпускать Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

DSL курильщика § В докладе Стаса Богатырева «Chef-сервер не нужен» есть отличный слайд, отображающий 15 разных мест в описании конфигурации, где могут быть объявлены атрибуты ноды (управляемой машины) § Описание конфигураций для Salt с применением Python, а не YAML — чистая магия, хотел с гордостью показать вам, как я это умею, но потом мне стало стыдно § Вообще, чем больше и сложнее описываемая конфигурация, тем больше метрика WTF/LOC при изучении ее описания § По субъективным ощущениям для описаний под Chef эта метрика будет, при прочих равных, наименьшей Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Дружелюбность и компетентность сообщества § В трекере Chef до сих пор висят незакрытые проблемы от 2012-го года § Я попытался отправить патч в один из Chef cookbook'ов — через полгода (!) меня попросили подписать отказ от прав § Один человек в мейл-листе Salt жаловался, что его прогнали из сообщества Ansible § В связи со всем этим: § Сообщество — это вы сами § Вам придется владеть кодом (скорее всего, всем) § Дружелюбность и компетентность оцените в зеркале Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Все СМ-системы системы похожи? § С большого расстояния — да § Если подойти поближе, то у них окажется разный цвет и разная форма ушей § Кроме того, у каждой будет уникальный характер Поговорим об уникальных отличиях Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

У каждой системы свой жаргон На мой взгляд, это довольно глупая уникальность. Но создателей CM-систем тоже можно понять – они втайне хотят, чтобы остался только один игрок. Раньше я приводил в докладах словарики этого жаргона. Но, говоря о четырех системах сразу, я не вижу смысла этого делать. Теперь о действительно уникальном. Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Chef: сделано рубистами для рубистов § Chef-Librarian и Berkshelf — dependency managers (то же, что Bundler (Ruby), Composer (PHP), Bower (Node), etc) § Chef появился как SaaS, и в этом качестве он лучше всех § Шифрование sensitive данных — функция ядра системы (Для Puppet есть подпроект Hiera-Puppet и отдельный плагин hiera-gpg для шифрования) § foodcritic — lint tool § test-kitchen — integration testing tool § ChefSpec, Cucumber-chef, rspec-chef — unit testing tools Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Puppet: сделано для RHEL § В отличие от Chef, Puppet всегда таргетировался на RHEL-based системы и нормально на них работал § Полная поддержка команд Augeas: § Augeas — это API и tool для управления конфигурационными файлами § Сhef с Augeas не работает вообще, Salt поддерживает только команду «set», для Ansible есть сторонний модуль. Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Salt: сделано для быстрых и грязных § Клиенты держат постоянное соединение с сервером § Очень удобно выполнять ad hoc команды § Исходно Salt — parallel execution tool § Сравните с тем, как параллельное исполнение сделано, например, в Chef! (если вкратце, оно там сделано очень плохо) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Ansible: сделано для нас § Сервер — это не всегда сервер § Меньше забот о безопасности § Агента на управляемых хостах нет вообще! § Ничего не надо устанавливать, кроме Python, все по SSH § OpenBSD? Да, конечно! § DragonflyBSD? Да, конечно! § SmartOS? Да, конечно! Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Ansible: момент истины § Честно говоря, до сегодняшней ночи я вообще не знал, что это такое § Но я знал, что такое SmartOS: § Потомок OpenSolaris § Запускается с флешки — часть каталогов read-only, конфигурация восстанавливается хитрыми shell scripts, которые у всех свои и не работают § Используется у нас в инфраструктуре в качестве гипервизора и очень нам нравится § Через сорок минут после прочтения Getting Started я мог управлять SmartOS при помощи Ansible (и был очень, очень удивлен и рад этому) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Всё вместе и я § Мой личный опыт использования: § Chef — 2 года § Puppet — 3 месяца § Salt — 9 месяцев § Ansible — менее суток § Можно ли мне верить? § Верить можно только исходным кодам приложения Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

Выводы: § Знать одну CM систему лучше, чем ни одной! § Знать несколько CM систем лучше, чем одну! § План не изменился § Но теперь у вас есть схема магазина (я надеюсь) § Кстати, наша торговая точка здесь http://gitinsky.com Заходите! Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014

С вами был Александр Чистяков, главный инженер Git in Sky alex@gitinsky.com http://gitinsky.com http://meetup.com/DevOps-40 Пожалуйста, ваши вопросы. Спасибо за внимание!

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

SECON 2014 - Сравнение современных ...

Пензы SECON 2014 ... Chef, Puppet, SaltStack и Ansible в ... with Ansible (Jan 2014 ...
Read more

Review: Puppet vs. Chef vs. Ansible vs. Salt – BicaraIT ...

Review: Puppet vs. Chef vs. Ansible vs. Salt ... Puppet or Chef? Ansible or Salt? ... December 2014; November 2014;
Read more

Taste Test: Puppet vs Chef vs SaltStack vs Ansible

Save weeks of effort with this book that compares Puppet, Chef, Salt, and Ansible so ... tools like Puppet, Chef, SaltStack, and Ansible are ... Our second ...
Read more

Moving away from puppet: SaltStack or Ansible? | Ryan D Lane

Moving away from Puppet: SaltStack or Ansible? ... my second choice. Both Salt and Ansible are ... repository rather than change to ansible or salt or chef.
Read more

Compute Engine Management with Puppet, Chef, Salt, and Ansible

Puppet, Chef, Salt, and Ansible are all capable of: ... and Puppet, Chef, and Salt implement both. Master/Agent versus Standalone management.
Read more

Chef, Ansible, Puppet, Salt - Software Engineering ...

Chef, Ansible, Puppet, Salt ... infoworld.com/d/data-center/review-puppet-vs-chef-vs-ansible-vs-salt-231308. ... www.ansible.com/blog/2014/02/19/ansible-vault.
Read more

Vagrat, SaltStack, Ansible, Docker, Chef, Puppet, Packer ...

Vagrat, SaltStack, Ansible, Docker, Chef, Puppet, Packer.. ... Puppet, Chef, Ansible and Salt are IT automation ... The second powerful part is the tools ...
Read more

Salt vs. Chef - UpGuard - IT Visibility, Risk Management ...

Salt vs. Chef. Posted by UpGuard ... to run on all of them within a five second window. If it ... com/d/data-center/review-puppet-vs-chef-vs-ansible-vs ...
Read more