include_role - Загрузка и выполнение роли
Новая версия с 2.2.
Обзор
- Динамически загружает и выполняет роль как задачу. Это освобождает роли от директивы
roles:и позволяет рассматривать их как задачи. - В отличие от import_role, большинство ключевых слов, включая циклы и условные операторы, применяются к этому оператору.
- Этот модуль также поддерживается для целевых систем Windows.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_duplicates | Значение по умолчанию: yes | Переопределяет параметр метаданных роли, разрешая использование роли более одного раза с одними и теми же параметрами. |
| defaults_from | Значение по умолчанию: main | Файл для загрузки из каталога defaults/ роли. |
| name обязательно | Имя выполняемой роли. | |
| private | Значение по умолчанию: None | Если True, переменные из defaults/ и vars/ в роли не будут доступны остальной части воспроизведения. |
| 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
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Поддержка
Для получения дополнительной информации о поддержке этого модуля 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.5/modules/include_role_module.html