include_role – Загрузка и выполнение роли
Новое в версии 2.2.
Описание
- Загружает и выполняет роль как задачу динамически. Это освобождает роли от директивы
roles:и позволяет рассматривать их скорее как задачи. - В отличие от import_role, большинство ключевых слов, включая loop, with_items и условия, применяются к этому оператору.
- Цикл do until не поддерживается в include_role.
- Этот модуль также поддерживается для целевых систем Windows.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_duplicates boolean |
| Переопределяет настройку метаданных роли, разрешая использование роли более одного раза с одними и теми же параметрами. |
| apply - добавлен в 2.7 | Принимает хеш ключевых слов задачи (например, tags, become), которые будут применены к задачам внутри включения. | |
| defaults_from - | Значение по умолчанию: "main" | Файл для загрузки из каталога defaults/ роли. |
| name - / обязательно | Имя роли для выполнения. | |
| private - | Этот параметр — пустая операция, и функциональность, описанная в предыдущих версиях, не реализована. Этот параметр будет удалён в Ansible v2.8. | |
| public boolean добавлен в 2.7 |
| Этот параметр определяет, будут ли переменные vars и defaults роли доступны в плейбуке. Если установлен в yes, переменные будут доступны задачам, следующим за задачей include_role. Эта функциональность отличается от стандартного доступа к переменным для ролей, перечисленных в разделе roles или import_role, поскольку они доступны во время разбора плейбука и доступны также более ранним ролям и задачам. |
| tasks_from - | Значение по умолчанию: "main" | Файл для загрузки из каталога tasks/ роли. |
| vars_from - | Значение по умолчанию: "main" | Файл для загрузки из каталога vars/ роли. |
Примечания
Примечание
- Обработчики предоставляются всему плейбуку.
- Перед Ansible 2.4, как и с
include, эта задача могла быть статической или динамической. Если статическая, это подразумевало, что ей не потребуются шаблонизация, циклы или условные операторы, и включённые задачи будут отображаться в параметрах–list. Ansible пытался автоматически определить, что необходимо, но вы можете установитьstaticвyesилиnoна уровне задачи, чтобы контролировать это. - После Ansible 2.4 вы можете использовать import_role для 'статического' поведения и это действие для 'динамического'.
Примеры
- 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: myrole
with_items:
- '{{ 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
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается командой разработчиков 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.7/modules/include_role_module.html