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 boolean |
| Переопределяет настройку метаданных роли для разрешения использования роли более одного раза с теми же параметрами. |
| apply строка добавлено в 2.7 от ansible.builtin | Принимает хеш ключевых слов задач (например, tags, become), которые будут применены ко всем задачам внутри включённой роли. | |
| defaults_from строка | Значение по умолчанию: "main" | Файл для загрузки из каталога defaults/ роли. |
| handlers_from строка добавлено в 2.8 от ansible.builtin | Значение по умолчанию: "main" | Файл для загрузки из каталога handlers/ роли. |
| name строка / обязательный | Имя роли, которая должна быть выполнена. | |
| public boolean добавлено в 2.7 от ansible.builtin |
| Эта опция определяет, будут ли vars и defaults роли доступны для playbook. Если установлено yes, переменные будут доступны задачам, следующим за задачей include_role. Эта функциональность отличается от стандартной экспозиции переменных для ролей, перечисленных в заголовке roles или import_role, так как они экспонируются для playbook на стадии парсинга, и доступны также для более ранних ролей и задач. |
| rolespec_validate boolean добавлено в 2.11 от ansible.builtin |
| Выполнить валидацию спецификации аргументов роли, если такая спецификация определена. |
| tasks_from строка | Значение по умолчанию: "main" | Файл для загрузки из каталога tasks/ роли. |
| vars_from строка | Значение по умолчанию: "main" | Файл для загрузки из каталога vars/ роли. |
Примечания
Примечание
- Обработчики делаются доступными для всего playbook.
- До 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 (@ansible)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/include_role_module.html