Основная структура задачи (task) в Ansible:
В Ansible плейбуке каждая задача (task) представляет собой единицу работы, которая выполняется на целевых узлах. Задачи выполняются последовательно и описывают, что именно должно быть сделано на каждом узле. Задачи в плейбуке определяются как список под ключом tasks.
Основная структура задачи (task) в Ansible:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
tasks: - name: <описание задачи> <модуль>: # Имя модуля, который будет использоваться для выполнения задачи <аргументы> # Аргументы, необходимые для модуля register: <variable> # (Опционально) Регистрация результата выполнения задачи в переменной when: <условие> # (Опционально) Условие выполнения задачи ignore_errors: <yes|no> # (Опционально) Игнорировать ошибки задачи changed_when: <условие> # (Опционально) Определяет, что считать изменением failed_when: <условие> # (Опционально) Определяет, что считать ошибкой retries: <число> # (Опционально) Количество попыток при ошибке delay: <число> # (Опционально) Задержка между попытками until: <условие> # (Опционально) Условие для повторного выполнения задачи notify: <handlers> # (Опционально) Уведомляет обработчики tags: <теги> # (Опционально) Теги для фильтрации задач environment: # (Опционально) Установить переменные окружения для задачи <ключ>: <значение> |
Подробное объяснение ключевых элементов задачи:
name:- Описание задачи, которое помогает понять, что она делает. Это поле необязательно, но рекомендуется для ясности.
<модуль>:- Основная часть задачи, указывающая модуль Ansible, который будет использоваться (например,
copy,yum,service). - Аргументы модуля указываются как ключ-значение (например,
path: /tmp/file,state: present).
- Основная часть задачи, указывающая модуль Ansible, который будет использоваться (например,
register:- Используется для сохранения результата выполнения задачи в переменной. Полезно для дальнейшего использования в других задачах.
when:- Условие, которое должно быть выполнено, чтобы задача выполнялась. Например,
when: ansible_os_family == 'Debian'.
- Условие, которое должно быть выполнено, чтобы задача выполнялась. Например,
ignore_errors:- Позволяет задаче продолжить выполнение, даже если она завершится с ошибкой. Значение:
yesилиno.
- Позволяет задаче продолжить выполнение, даже если она завершится с ошибкой. Значение:
changed_when:- Условие, которое указывает, что считать изменением состояния после выполнения задачи.
failed_when:- Условие, определяющее, что считать ошибкой при выполнении задачи, даже если модуль завершился успешно.
retriesиdelay:- Указывают, сколько раз повторять выполнение задачи и с какой задержкой между попытками. Используются совместно с
until.
- Указывают, сколько раз повторять выполнение задачи и с какой задержкой между попытками. Используются совместно с
until:- Условие, которое должно быть выполнено, чтобы завершить повторное выполнение задачи.
notify:- Указывает на обработчик (handler), который должен быть вызван после успешного выполнения задачи.
tags:- Позволяет помечать задачи тегами для последующего выполнения или исключения задач на основе тегов.
environment:- Определяет переменные окружения, которые будут использоваться только в рамках данной задачи.
Пример задачи в Ansible плейбуке:
|
1 2 3 4 5 6 7 8 9 10 11 |
tasks: - name: Установка пакета Nginx apt: name: nginx state: present when: ansible_os_family == 'Debian' register: install_result notify: Restart Nginx tags: - webserver |
В этом примере задача устанавливает Nginx на целевых узлах с операционной системой семейства Debian, регистрирует результат установки в переменной install_result, и, если задача выполнена успешно, уведомляет обработчик Restart Nginx о необходимости перезапустить сервис.
Recommended Posts
Плейбук Ansible по развертыванию haproxy
15.02.2024
