import_role – Import a role into a play
New in version 2.4.
Synopsis
- Much like the
roles:keyword, this task loads a role, but it allows you to control it when the role tasks run in between other tasks of the play. - Most keywords, loops and conditionals will only be applied to the imported tasks, not to this statement itself. If you want the opposite behavior, use include_role instead. To better understand the difference you can read the Including and Importing Guide.
Parameters
| Parameter | Choices/Defaults | Comments |
|---|---|---|
| allow_duplicates boolean |
| Overrides the role's metadata setting to allow using a role more than once with the same parameters. |
| defaults_from - | Default: "main" | File to load from a role's defaults/ directory. |
| name - / required | The name of the role to be executed. | |
| private boolean |
| This option is a no op, and the functionality described in previous versions was not implemented. This option will be removed in Ansible v2.8. |
| tasks_from - | Default: "main" | File to load from a role's tasks/ directory. |
| vars_from - | Default: "main" | File to load from a role's vars/ directory. |
Notes
Note
- Handlers are made available to the whole play.
- Since Ansible 2.7: variables defined in
varsanddefaultsfor the role are exposed at playbook parsing time. Due to this, these variables will be accessible to roles and tasks executed before the location of theimport_roletask. - Unlike
include_rolevariable exposure is not configurable, and will always be exposed.
Examples
- hosts: all
tasks:
- import_role:
name: myrole
- name: Run tasks/other.yaml instead of 'main'
import_role:
name: myrole
tasks_from: other
- name: Pass variables to role
import_role:
name: myrole
vars:
rolevar1: value from task
- name: Apply condition to each task in role
import_role:
name: myrole
when: not idontwanttorun
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Core Team. [core]
Red Hat Support
More information about Red Hat’s support of this module is available from this Red Hat Knowledge Base article.
Authors
- Ansible Core Team (@ansible)
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 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/import_role_module.html