import_tasks#

Модуль ansible.builtin.import_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.

Параметры#

Модуль принимает следующие параметры:

file#

Название файла со списком задач, который будет добавлен в текущий сценарий.

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

Например, описания этих двух задач эквивалентны:

---
# ...
  tasks:
    - name: Import tasks using parameter
      ansible.builtin.import_tasks:
        file: tasks/setup.yml

    - name: Import tasks using short form
      ansible.builtin.import_tasks: tasks/setup.yml

Атрибуты#

Атрибуты определяют особенности поведения модуля в различных режимах Ansible.

Атрибут

Описание

action

Модуль не имеет соответствующего расширения действия (action plugin), которое выполняет работу на управляющем узле.

async

Модуль не поддерживает асинхронное выполнение.

become

Модуль не поддерживает повышение привилегий.

bypass_host_loop

Модуль частично поддерживает глобальное выполнение задачи. Условия срабатывают при использовании run_once. Значения переменных берутся с первого доступного узла. Это действие не работает при использовании стратегии, отличной от lockstep.

bypass_task_loop

Циклы не применяются к самому модулю, но применяются к импортированным задачам.

check_mode

Модуль не работает в режиме проверки.

connection

Модуль не использует информацию о подключении к управляемым узлам для выполнения своего кода на них.

core

Функциональность модуля не может быть изменена с помощью расширений.

delegation

Модуль не поддерживает delegate_to, то есть не может выполняться на другом узле.

diff_mode

Модуль не поддерживает режим сравнения.

ignore_conditional

Модуль игнорирует директиву when.

platform

Модуль поддерживает все платформы, с которыми может работать Ansible.

tags

Модуль поддерживает директиву tags.

until

Модуль не поддерживает механизм повторных попыток.

Примеры#

Для изучения возможностей модуля ознакомьтесь с приведенными ниже примерами.

Базовое включение задач#

Следующий пример демонстрирует импорт файла setup.yml в список задач:

---
# ...
  tasks:
    - name: Import setup tasks
      ansible.builtin.import_tasks:
        file: setup.yml

Использование сокращенной формы записи#

Следующий пример демонстрирует упрощенную запись без использования параметра file:

---
# ...
  tasks:
    - name: Import tasks using short form
      ansible.builtin.import_tasks: setup.yml

Условное выполнение импортированных задач#

Следующий пример демонстрирует применение условия к задачам внутри файла audit.yml, а не к самому модулю:

---
# ...
  tasks:
    - name: Conditionally import audit tasks
      ansible.builtin.import_tasks: audit.yml
      when: ansible_facts['os_family'] == "Astra Linux"