Работа с Playbook
Playbooks — это язык конфигурации, развертывания и оркестрации Ansible. Они могут описывать политику, которую вы хотите, чтобы ваши удалённые системы применяли, или набор шагов в общем ИТ-процессе.
Если модули Ansible — инструменты в вашем инструментальном ящике, то playbooks — ваши руководства по эксплуатации, а ваш инвентарь хостов — ваш исходный материал.
На базовом уровне playbooks можно использовать для управления конфигурациями и развертываниями на удалённых машинах. На более продвинутом уровне они могут упорядочивать многоуровневые развертывания, включающие поэтапные обновления, и могут делегировать действия другим хостам, взаимодействуя при этом с серверами мониторинга и балансировщиками нагрузки.
Несмотря на большой объём информации, нет необходимости изучать всё сразу. Вы можете начать с малого и добавлять новые функции по мере необходимости.
Playbooks предназначены для удобного чтения и разрабатываются на простом текстовом языке. Существует множество способов организации playbooks и файлов, которые они включают, и мы предложим несколько советов по этому поводу и по эффективному использованию Ansible.
При чтении документации по playbook вы должны ознакомиться с Примерами Playbooks. Они иллюстрируют лучшие практики, а также то, как объединить множество различных концепций.
- Введение в Playbooks
- Создание повторно используемых Playbooks
-
Использование переменных
- Создание допустимых имен переменных
- Определение переменных в инвентаре
- Определение переменных в Playbook
- Определение переменных во включённых файлах и ролях
- Использование переменных с Jinja2
- Преобразование переменных с помощью фильтров Jinja2
- Внимание! Особенности YAML
- Переменные, полученные от систем: Факты
- Регистрация переменных
- Доступ к сложным данным переменных
- Доступ к информации о других хостах с помощью магических переменных
- Определение переменных в файлах
- Передача переменных в командной строке
- Порядок приоритета переменных: куда поместить переменную?
- Использование расширенного синтаксиса переменных
- Шаблонизация (Jinja2)
- Условные операторы
- Циклы
- Блоки
-
Расширенные возможности Playbooks
- Понимание повышения привилегий: become
- Асинхронные действия и опрос
- Режим проверки («сухой запуск»)
- Отладчик Playbook
- Делегирование, поэтапные обновления и локальные действия
- Настройка окружения (и работа с прокси)
- Работа с менеджерами версий конкретных языков
- Обработка ошибок в Playbooks
- Расширенный синтаксис
- Работа с плагинами
- Подсказки
- Тэги
- Использование Vault в Playbooks
- Начало и шаг
- Ключевые слова Playbook
- Обращения к данным
- Значения по умолчанию модулей
- Управление выполнением Playbook: стратегии и многое другое
-
Рекомендованные практики
- Организация контента
- Этап разработки против производства
- Поэтапные обновления
- Всегда указывайте состояние
- Группировка по ролям
- Изменчивость операционной системы и дистрибутива
- Объединение модулей Ansible с playbook
- Отступы и комментарии
- Всегда называйте задачи
- Держите просто
- Управление версиями
- Переменные и хранилища
- Пример playbook: Непрерывная доставка и поэтапные обновления
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/user_guide/playbooks.html