ansible.builtin.include_role – Загрузка и выполнение роли
Примечание
Этот модуль является частью ansible-base и включен во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля include_role даже без указания ключевого слова collections:. Несмотря на это, мы рекомендуем использовать полное имя класса (FQCN) для легкой ссылки на документацию модуля и для избежания конфликтов с другими коллекциями, которые могут иметь то же самое имя модуля.
Новое в версии 2.2: от ansible.builtin
Описание
- Динамически загружает и выполняет указанную роль как задачу.
- Может использоваться только там, где разрешены задачи Ansible — внутри
pre_tasks,tasks, илиpost_tasksобъектов playbook, или как задача внутри роли. - Ключевые слова, циклы и условные операторы на уровне задачи применяются только к самому оператору
include_role. - Для применения ключевых слов к задачам внутри роли передайте их с помощью параметра
applyили используйте ansible.builtin.import_role вместо этого. - Игнорирует некоторые ключевые слова, такие как
untilиretries. - Этот модуль также поддерживается для целевых платформ Windows.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_duplicates булево |
| Переопределяет настройку метаданных роли для разрешения использования роли более одного раза с одинаковыми параметрами. |
| apply строка добавлено в версии 2.7 от ansible.builtin | Принимает хеш ключевых слов задач (например, tags, become) которые будут применены ко всем задачам внутри включённой роли. | |
| defaults_from строка | Значение по умолчанию: "main" | Файл для загрузки из каталога defaults/ роли. |
| handlers_from строка добавлено в версии 2.8 от ansible.builtin | Значение по умолчанию: "main" | Файл для загрузки из каталога handlers/ роли. |
| name строка / обязательно | Имя роли, которая должна быть выполнена. | |
| public булево добавлено в версии 2.7 от ansible.builtin |
| Этот параметр определяет, будут ли 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, вы можете использовать ansible.builtin.import_role для поведения
staticи это действие дляdynamic.
См. также
См. также
- ansible.builtin.import_playbook
-
Официальная документация модуля ansible.builtin.import_playbook.
- ansible.builtin.import_role
-
Официальная документация модуля ansible.builtin.import_role.
- ansible.builtin.import_tasks
-
Официальная документация модуля ansible.builtin.import_tasks.
- ansible.builtin.include_tasks
-
Официальная документация модуля ansible.builtin.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
Авторы
- Команда 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.10/collections/ansible/builtin/include_role_module.html