Spec-Zone.ru › Ansible

Работа с плейбуками

Плейбуки записывают и выполняют функции Ansible по настройке, развертыванию и оркестрации. В них можно описать политику, которую должны обеспечивать ваши удаленные системы, или набор шагов общего ИТ-процесса.

Если модули Ansible — это инструменты в вашей мастерской, то плейбуки — инструкции к ним, а инвентарь хостов — исходный материал.

На базовом уровне плейбуки можно использовать для управления конфигурациями удаленных машин и развертывания на них. На более продвинутом уровне с их помощью можно упорядочивать многоуровневые развертывания с последовательными обновлениями и делегировать действия другим хостам, взаимодействуя по ходу работы с серверами мониторинга и балансировщиками нагрузки.

Плейбуки создаются так, чтобы их было удобно читать людям, и пишутся на простом текстовом языке. Существует несколько способов организовать плейбуки и включаемые в них файлы; мы предложим несколько рекомендаций по этому вопросу и по эффективному использованию Ansible.

  • Шаблонизация (Jinja2)
    • Пример Jinja2
  • Использование фильтров для обработки данных
    • Обработка неопределенных переменных
    • Определение разных значений для true/false/null (тернарный оператор)
    • Управление типами данных
    • Форматирование данных: YAML и JSON
    • Объединение и выбор данных
    • Рандомизация данных
    • Управление переменными-списками
    • Выбор из множеств или списков (теория множеств)
    • Вычисления (математика)
    • Управление сетевыми взаимодействиями
    • Хеширование и шифрование строк и паролей
    • Обработка текста
    • Обработка строк
    • Управление UUID
    • Обработка дат и времени
    • Получение имен ресурсов Kubernetes
  • Тесты
    • Синтаксис тестов
    • Проверка строк
    • Vault
    • Проверка истинности
    • Сравнение версий
    • Тесты теории множеств
    • Проверка наличия значения в списке
    • Проверка того, что значение в списке равно True
    • Проверка путей
    • Проверка форматов размера
    • Проверка результатов задач
    • Проверки типов
  • Поиски
    • Функция lookup
    • Функция query/q
  • Python 3 в шаблонах
    • Представления словарей
    • dict.iteritems()
  • Функция now: получение текущего времени
  • Функция undef: добавление подсказки для неопределенных переменных
  • Циклы
    • Сравнение циклов
    • Использование циклов
    • Обеспечение передачи списка в loop: использование query вместо lookup
    • Добавление управляющих параметров в циклы
    • Вложенные циклы
    • Переход с with_X на loop
  • Управление местом выполнения задач: делегирование и локальные действия
    • Задачи, которые нельзя делегировать
    • Делегирование задач
    • Шаблонизация в контексте делегирования
    • Делегирование и параллельное выполнение
    • Делегирование фактов
    • Локальные плейбуки
  • Условные выражения
    • Основные условные выражения с when
    • Отладка условных выражений
    • Часто используемые факты
  • Блоки
    • Группировка задач с помощью блоков
    • Обработка ошибок с помощью блоков
  • Обработчики: выполнение операций при изменениях
    • Пример обработчика
    • Уведомление обработчиков
    • Уведомления и циклы
    • Именование обработчиков
    • Порядок включения обработчиков в сценарий
    • Управление временем запуска обработчиков
    • Определение условий, при которых задачи считаются изменившими состояние
    • Использование переменных с обработчиками
    • Обработчики в ролях
    • Включения и импорты в обработчиках
    • Мета-задачи в качестве обработчиков
    • Ограничения
  • Обработка ошибок в плейбуках
    • Игнорирование ошибок команд
    • Игнорирование ошибок недоступности хостов
    • Сброс состояния недоступных хостов
    • Обработчики и сбои
    • Определение сбоя
    • Определение состояния «изменено»
    • Обеспечение успешного выполнения command и shell
    • Прерывание сценария на всех хостах
    • Управление ошибками в блоках
  • Настройка удаленного окружения
    • Настройка удаленного окружения в задаче
  • Работа с менеджерами версий для конкретных языков
  • Повторное использование артефактов Ansible
    • Создание повторно используемых файлов и ролей
    • Повторное использование плейбуков
    • Когда следует преобразовать плейбук в роль
    • Повторное использование файлов и ролей
    • Повторное использование задач в качестве обработчиков
  • Роли
    • Структура каталогов роли
    • Хранение и поиск ролей
    • Использование ролей
    • Проверка аргументов роли
    • Многократный запуск роли в одном сценарии
    • Использование зависимостей ролей
    • Встраивание модулей и плагинов в роли
    • Общий доступ к ролям: Ansible Galaxy
  • Значения модулей по умолчанию
    • Группы значений модулей по умолчанию
  • Интерактивный ввод: запросы
    • Хеширование значений, заданных с помощью vars_prompt
    • Разрешение специальных символов в значениях vars_prompt
  • Использование переменных
    • Создание допустимых имен переменных
    • Простые переменные
    • Когда заключать переменные в кавычки (подводный камень YAML)
    • Переменные-списки
    • Переменные-словари
    • Объединение переменных
    • Регистрация переменных
    • Обращение к вложенным переменным
    • Преобразование переменных с помощью фильтров Jinja2
    • Где задавать переменные
    • Приоритет переменных: где следует задавать переменную?
    • Использование расширенного синтаксиса переменных
  • Обнаружение переменных: факты и магические переменные
    • Факты Ansible
    • Сведения об Ansible: магические переменные
  • Проверка аргументов сценария
  • Формат спецификации
  • Пример спецификации
  • Пример плейбука: непрерывная доставка и последовательные обновления
    • Что такое непрерывная доставка?
    • Развертывание сайта
    • Повторно используемое содержимое: роли
    • Конфигурация: переменные групп
    • Последовательное обновление
    • Управление другими балансировщиками нагрузки
    • Непрерывная доставка от начала до конца

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API