Ansible on a great Moscow DevOps CM battle

50 %
50 %
Information about Ansible on a great Moscow DevOps CM battle
Technology

Published on April 26, 2014

Author: alexclear

Source: slideshare.net

Description

My slides on Ansible from a Moscow DevOps meetup Apr'14

Опыт использования Ansible для управления конфигурацией Место для смешного подзаголовка Александр Чистяков, главный инженер Git in Sky, 2014

Кто я? § Меня зовут Саша § Я главный инженер в компании Git in Sky § Ночью — разработчик ПО § Днем — инженер отдела эксплуатации § Или наоборот Опыт использования Ansible для управления конфигурацией. 2014

Кто вы? § С вами все ясно Опыт использования Ansible для управления конфигурацией. 2014

Доклад о том, как Ansible помогает мне § Объективное сравнение невозможно § Поэтому сравнения не будет вообще § Я расскажу о своих use cases § Начну с того, что расскажу о себе § Такой вот я эгоист Опыт использования Ansible для управления конфигурацией. 2014

Феерическая расстановка точек над всеми § Набор навыков: “Разработчик” § Набор навыков: “Системный администратор” § Набор навыков: “Автоматизатор” § Все три абилки смешать нельзя, будет взрыв § “Ой, у меня засорилась труба!” § ^ Кого из трех обычно вызывают? (никого) Опыт использования Ansible для управления конфигурацией. 2014

Пара слов обо мне § Я не автоматизатор § Скучно, нету драйва и челленджа § Не пытайтесь повторить дома => § (если что — я на мотоцикле не езжу, не люблю экстрим) § Меня вызывают! (это про прошлый слайд) Опыт использования Ansible для управления конфигурацией. 2014

Как устроен Ansible § Это программа на языке Python § Она умеет применять playbooks к хостам § На хостах не нужны никакие агенты § Все, что нужно на хосте — Python § Коммуникация между управляющей машиной и хостом идет по SSH Опыт использования Ansible для управления конфигурацией. 2014

Мой типичный use case § Хочу на всех машинах пользователя chistyakov § Хочу, чтобы у него shell был zsh § Хочу oh-my-zsh с моей темой § ^ Промпт синенького цвета ОБЯЗАТЕЛЬНО! § Хочу UID 0 у chistyakov § atop с интервалом 30 сек, tmux, другие приятные мелочи Опыт использования Ansible для управления конфигурацией. 2014

Доп. условия § Кастомеров много, а я одна § ^ отлично, playbook храним у меня § На машинах везде Ubuntu 12.04/14.04 § ^ отлично, сценарий будет один и тот же § Цели ясны, задачи определены Опыт использования Ansible для управления конфигурацией. 2014

Инвентаризация § Inventory file — файл в формате INI, группы:хосты § Штатно - /etc/ansible/hosts, может быть где угодно Опыт использования Ansible для управления конфигурацией. 2014

Необходимые приготовления на хостах § Завести везде пользователя (пусть он сразу будет chistyakov) § Добавить его в /etc/sudoers, разрешить sudo без пароля § Прописать ему в ~/.ssh/authorized_keys мой ключ § ^ Приготовления логичны, должен же я туда как-то попасть? Опыт использования Ansible для управления конфигурацией. 2014

Анатомия playbook § Это YAML-файл, определяющий что и где запускать, от кого запускать и в каком порядке Опыт использования Ansible для управления конфигурацией. 2014

Анатомия задачи § У задачи есть имя (лучше делать его уникальным), название модуля, который будет выполняться, параметры этого модуля (у каждого — свои) и атрибуты самой задачи § После исполнения задача может нотифицировать хэндлеры, если они указаны Опыт использования Ansible для управления конфигурацией. 2014

Анатомия хэндлера § У хэндлера есть имя (оно точно должно быть уникальным), а в остальном хэндлер это просто обычная задача, объявленная в секции handlers § Не нотифицировали — не будет вызван Опыт использования Ansible для управления конфигурацией. 2014

Порядок применения хэндлеров § Обычно хэндлеры запускаются в самом конце, после выполнения всех задач § Бывает необходимым запустить уже нотифицированные хэндлеры до какой-то задачи, иначе она не пройдет Опыт использования Ansible для управления конфигурацией. 2014

Условное выполнение § Некоторые задачи нужно сделать только один раз (Например — перестать писать на PHP) § Регистрируем результат выполнения задачи в переменной, и в следующей задаче проверяем ее значение Опыт использования Ansible для управления конфигурацией. 2014

Что не попало в этот use case? § Можно использовать переменные и связывать их с конкретными хостами § Это делается через файлы вида host_vars/hostname, где hostname — FQDN хоста § Выглядит так: Опыт использования Ansible для управления конфигурацией. 2014

Что было хорошо? § Нет необходимости разворачивать и поддерживать сервер § Нет необходимости разворачивать на хостах клиент § И, кстати, клиент потребляет ровно 0 мегабайт RSS § Модуль service умеет обращаться с SMF-сервисами (это в Solaris) § Местный DSL очень немногословен Опыт использования Ansible для управления конфигурацией. 2014

Что еще было хорошо? § SmartOS — достаточно капризная система § Это не просто клон Solaris, а клон Solaris, работающий с USB- устройства § Поэтому некоторые конфиги при рестартах он просто теряет (это ожидаемое поведение) § Другие коллеги используют bash-скрипты, я использую Ansible, запускаемый при старте хоста “Взять файлы в git, натравить на них Ansible” Опыт использования Ansible для управления конфигурацией. 2014

Это не все, не расходитесь! § Поменять UID у того же пользователя, под которым открыта сессия - это не совсем просто § Особенно, если вы хотите потом залогинится еще раз § usermod так не умеет § Зато так умеет Augeas, для которого есть модуль для Ansible! (Всего две CM системы из известных мне знают про Augeas) Опыт использования Ansible для управления конфигурацией. 2014

Что вызывало вопросы? § А достаточно ли быстр SSH для массового удаленного выполнения команд? § Есть еще один файл — ansible.cfg и параметр в нем (по умолчанию выключен, надо сначала убрать requiretty в /etc/sudoers, иначе сломаете sudo): Опыт использования Ansible для управления конфигурацией. 2014

Снимем показания счетчика § Без pipelining § С pipelining Опыт использования Ansible для управления конфигурацией. 2014

Что было ужасно? § При выполнении playbook на одной из машин со SmartOS его исполнение намертво зависло § Проблема в core library — модуль service разрешает и запускает SMF-сервисы рекурсивно, что при определенном стечении обстоятельств приводит к попыткам запустить на выполнение в бесконечном цикле конфигурационный файл Опыт использования Ansible для управления конфигурацией. 2014

Что ужасно до сих пор? § Фреймворк юнит-тестирования плейбуков отсутствует § В документации вообще нет ни слова про юнит-тесты § Привычка присваивать ролям номера версий отсутствует § Да, роли — я о них не рассказал, так как не пользуюсь, но они есть § “Роль” это просто переиспользуемый кусок плейбука (ну почти) Опыт использования Ansible для управления конфигурацией. 2014

Выводы: § Некоторые еще и лимонад добавляют § ^ Ничего не имею против § Больше систем, хороших и разных! § Ключевое слово: “хороших”, а не “разных” § ^ Не поваляешь — не поешь Опыт использования Ansible для управления конфигурацией. 2014

С вами был Александр Чистяков, главный инженер Git in Sky alex@gitinsky.com http://gitinsky.com http://meetup.com/DevOps-40 Пожалуйста, ваши вопросы. Спасибо за внимание! http://devconf.ru/offers/ - ПРОГОЛОСУЙТЕ, ПОЖАЛУЙСТА, ЗА МОИ ЗАЯВКИ!

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

Salt and Ansible - Python-based CM systems - Technology

Salt and Ansible - Python-based CM systems Jun 16, 2015 Technology alex-chistyakov ...
Read more

News Roundup | Techrights - Part 40

Posted in News Roundup at 6:05 pm by Dr. Roy Schestowitz. ... all branches of CM from CM10.2 and forward will be ... DevOps tool Ansible gets a major overhaul.
Read more

New Items in University Libraries - utoledo.edu

... the WWII Battle of Saipan / Jennifer F. McKinnon, ... Great Britain : Harriman House Ltd., {u00A9} ... 22 cm. CARLSON General.
Read more

www.bl.uk

1 New records - 30 November 2016 Computer science, information & general works 001.3 Intellectual discourse in reform era China : the debate on the spirit ...
Read more

Read About Beta Testing | Bugwolf

Read About Beta Testing | Bugwolf. ... Devops joins testing and development to create a group of interactive teams, ... a battle that is still be played out
Read more

Archive News & Video for Wednesday, 19 Aug 2015 | Reuters.com

Site Archive for Wednesday, 19 Aug 2015. ... ICD-10-CM Transition ... First American Named One of the 10 Best Workplaces in Insurance by Fortune and Great ...
Read more

Weather Mashups | ProgrammableWeb

Search the Largest App and Mashup Directory on the Web. Search Mashups. Filter Mashups
Read more

culture | Noise

The Moscow Court rejected ... kilometers of imagery at 50 cm resolution and 220,594 ... more suitable to Agile/DevOps methodologies and culture.
Read more