include_role – Загрузка и выполнение роли
Новая в версии 2.2.
Описание
- Динамически загружает и выполняет указанную роль как задачу.
- Может использоваться только там, где разрешены задачи 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 (@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.8/modules/include_role_module.html