include_role – Загрузка и выполнение роли
Описание
- Динамически загружает и выполняет указанную роль в качестве задачи.
- Может быть использован только там, где разрешены задачи Ansible — внутри
pre_tasks,tasks, илиpost_tasksобъектов playbook, или как задача внутри роли. - Ключевые слова, циклы и условные операторы уровня задачи применяются только к самому оператору
include_role. - Для применения ключевых слов к задачам внутри роли передайте их с помощью опции
applyили используйте import_role вместо этого. - Игнорирует некоторые ключевые слова, такие как
untilиretries. - Этот модуль также поддерживается для целевых платформ Windows.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_duplicates boolean |
| Переопределяет настройку метаданных роли для разрешения использования роли более одного раза с теми же параметрами. |
| apply - добавлено в 2.7 | Принимает хеш ключевых слов задач (например, tags, become) которые будут применены ко всем задачам в включённой роли. | |
| defaults_from строка | Значение по умолчанию: "main" | Файл для загрузки из каталога defaults/ роли. |
| handlers_from строка добавлено в 2.8 | Значение по умолчанию: "main" | Файл для загрузки из каталога handlers/ роли. |
| name строка / обязательно | Имя роли, подлежащей выполнению. | |
| public boolean добавлено в 2.7 |
| Этот параметр определяет, будут ли vars и defaults роли доступны playbook. Если установлено значение yes, переменные будут доступны задачам, следующим за задачей include_role. Эта функциональность отличается от стандартной экспозиции переменных для ролей, перечисленных в заголовке roles или import_role, так как они экспонируются на этапе разбора playbook и доступны и для более ранних ролей и задач. |
| tasks_from строка | Значение по умолчанию: "main" | Файл для загрузки из каталога tasks/ роли. |
| vars_from строка | Значение по умолчанию: "main" | Файл для загрузки из каталога vars/ роли. |
Примечания
Примечание
- Обработчики доступны для всего выполнения.
- До Ansible 2.4, как и в
include, эта задача могла быть статической или динамической. Если статическая, это означало, что ей не потребуется шаблонизация, циклы или условные операторы, и включённые задачи будут отображаться в параметрах--list. Ansible пыталась автоматически определять необходимость, но вы можете установитьstaticнаyesилиnoна уровне задачи для управления этим. - После Ansible 2.4 вы можете использовать import_role для поведения
staticи это действие дляdynamic.
См. также
См. также
- import_playbook – Импорт playbook
- Официальная документация модуля import_playbook.
- import_role – Импорт роли в выполнение
- Официальная документация модуля import_role.
- import_tasks – Импорт списка задач
- Официальная документация модуля import_tasks.
- include_tasks – Динамический импорт списка задач
- Официальная документация модуля include_tasks.
- Включение и Импорт
- Дополнительная информация об включении и импорте playbook, ролей и задач.
Примеры
- include_role:
name: myrole
- name: Run tasks/other.yaml instead of 'main'
include_role:
name: myrole
tasks_from: other
- name: Pass variables to role
include_role:
name: myrole
vars:
rolevar1: value from task
- name: Use role in loop
include_role:
name: '{{ roleinputvar }}'
loop:
- '{{ roleinput1 }}'
- '{{ roleinput2 }}'
loop_control:
loop_var: roleinputvar
- name: Conditional role
include_role:
name: myrole
when: not idontwanttorun
- name: Apply tags to tasks within included file
include_role:
name: install
apply:
tags:
- install
tags:
- always
Статус
- Этот модуль гарантированно будет иметь обратную совместимость в будущих изменениях интерфейса. [stableinterface]
- Этот модуль поддерживается основной командой Ansible. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля Red Hat можно найти в этой статье базы знаний Red Hat.
Авторы
- Команда Ansible Core (@ansible)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/include_role_module.html