include_tasks#
Модуль ansible.builtin.include_tasks динамически включает список задач во время выполнения сценария.
Внимание
Модуль является частью ядра Ansible, поэтому не может быть переопределен или расширен.
Модули ansible.builtin.import_tasks и ansible.builtin.include_tasks выполняют схожие, но принципиально разные функции и применяются в разных ситуациях:
ansible.builtin.import_tasks импортирует задачи на этапе загрузки сценария, то есть до начала его выполнения. Поэтому директивы управления потоком (
when,loop,registerи так далее) не применяются к ansible.builtin.import_tasks напрямую, а должны быть указаны внутри самих импортируемых задач.ansible.builtin.include_tasksвключает задачи динамически: во время выполнения сценария, в момент выполнения этой директивы. Это позволяет применять к ней управляющие конструкции снаружи, на уровне включения.ansible.builtin.include_tasksподдерживает все конструкции управления, кромеdo-until.
Параметры#
Модуль принимает следующие параметры:
- apply#
Словарь параметров (например,
tags,become), которые будут применяться ко всем задачам в импортируемом файле.Позволяет централизованно задать поведение для всех включаемых задач.
- file#
Название файла со списком задач, который будет добавлен в текущий сценарий.
Модуль также поддерживает упрощенную форму записи, в которой название файла указывается без явного использования параметра
file.Например, описания этих двух задач эквивалентны:
--- # ... tasks: - name: Include tasks using parameter ansible.builtin.include_tasks: file: tasks/setup.yml - name: Include tasks using short form ansible.builtin.include_tasks: tasks/setup.yml
Атрибуты#
Атрибуты определяют особенности поведения модуля в различных режимах Ansible.
Атрибут |
Описание |
|---|---|
|
Модуль не имеет соответствующего расширения действия (action plugin), которое выполняет работу на управляющем узле. |
|
Модуль не поддерживает асинхронное выполнение. |
|
Модуль не поддерживает повышение привилегий. |
|
Модуль не поддерживает глобальное выполнение задачи. |
|
Модуль обрабатывает директивы |
|
Модуль не работает в режиме проверки. |
|
Модуль не использует информацию о подключении к управляемым узлам для выполнения своего кода на них. |
|
Функциональность модуля не может быть изменена с помощью расширений. |
|
Модуль не поддерживает |
|
Модуль не поддерживает режим сравнения. |
|
Модуль обрабатывает директиву |
|
Модуль поддерживает все платформы, с которыми может работать Ansible. |
|
Модуль поддерживает директиву |
|
Модуль не поддерживает механизм повторных попыток. |
Примеры#
Для изучения возможностей модуля ознакомьтесь с приведенными ниже примерами.
Базовое включение задач#
Следующий пример демонстрирует включение файла stuff.yaml во время выполнения сценария:
---
# ...
tasks:
- name: Include task list in play
ansible.builtin.include_tasks:
file: stuff.yaml
Использование сокращенной формы записи#
Следующий пример демонстрирует использование упрощенной записи без параметра file:
---
# ...
tasks:
- name: Include task list using free-form
ansible.builtin.include_tasks: stuff.yaml
Динамический выбор файла задач#
Следующий пример демонстрирует подстановку названия файла в параметр file, чтобы включать соответствующий список задач в зависимости от операционной системы:
---
# ...
tasks:
- name: Include OS-specific tasks
ansible.builtin.include_tasks: "setup_{{ ansible_facts['os_family'] | lower }}.yml"