Работа с плейбуками
Плейбуки записывают и выполняют функции Ansible по настройке, развертыванию и оркестрации. В них можно описать политику, которую должны обеспечивать ваши удаленные системы, или набор шагов общего ИТ-процесса.
Если модули Ansible — это инструменты в вашей мастерской, то плейбуки — инструкции к ним, а инвентарь хостов — исходный материал.
На базовом уровне плейбуки можно использовать для управления конфигурациями удаленных машин и развертывания на них. На более продвинутом уровне с их помощью можно упорядочивать многоуровневые развертывания с последовательными обновлениями и делегировать действия другим хостам, взаимодействуя по ходу работы с серверами мониторинга и балансировщиками нагрузки.
Плейбуки создаются так, чтобы их было удобно читать людям, и пишутся на простом текстовом языке. Существует несколько способов организовать плейбуки и включаемые в них файлы; мы предложим несколько рекомендаций по этому вопросу и по эффективному использованию Ansible.
- Шаблонизация (Jinja2)
-
Использование фильтров для обработки данных
- Обработка неопределенных переменных
- Определение разных значений для true/false/null (тернарный оператор)
- Управление типами данных
- Форматирование данных: YAML и JSON
- Объединение и выбор данных
- Рандомизация данных
- Управление переменными-списками
- Выбор из множеств или списков (теория множеств)
- Вычисления (математика)
- Управление сетевыми взаимодействиями
- Хеширование и шифрование строк и паролей
- Обработка текста
- Обработка строк
- Управление UUID
- Обработка дат и времени
- Получение имен ресурсов Kubernetes
- Тесты
- Поиски
- Python 3 в шаблонах
- Функция now: получение текущего времени
- Функция undef: добавление подсказки для неопределенных переменных
- Циклы
- Управление местом выполнения задач: делегирование и локальные действия
- Условные выражения
- Блоки
-
Обработчики: выполнение операций при изменениях
- Пример обработчика
- Уведомление обработчиков
- Уведомления и циклы
- Именование обработчиков
- Порядок включения обработчиков в сценарий
- Управление временем запуска обработчиков
- Определение условий, при которых задачи считаются изменившими состояние
- Использование переменных с обработчиками
- Обработчики в ролях
- Включения и импорты в обработчиках
- Мета-задачи в качестве обработчиков
- Ограничения
- Обработка ошибок в плейбуках
- Настройка удаленного окружения
- Работа с менеджерами версий для конкретных языков
- Повторное использование артефактов Ansible
- Роли
- Значения модулей по умолчанию
- Интерактивный ввод: запросы
-
Использование переменных
- Создание допустимых имен переменных
- Простые переменные
- Когда заключать переменные в кавычки (подводный камень YAML)
- Переменные-списки
- Переменные-словари
- Объединение переменных
- Регистрация переменных
- Обращение к вложенным переменным
- Преобразование переменных с помощью фильтров Jinja2
- Где задавать переменные
- Приоритет переменных: где следует задавать переменную?
- Использование расширенного синтаксиса переменных
- Обнаружение переменных: факты и магические переменные
- Проверка аргументов сценария
- Формат спецификации
- Пример спецификации
- Пример плейбука: непрерывная доставка и последовательные обновления
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks.html