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