Spec-Zone.ru › Ansible

Работа с playbook

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

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

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

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

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

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/playbook_guide/playbooks.html

Spec-Zone.ru

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