Documentation

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
bool
    Choices:
  • no
  • yes ←
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
bool
    Choices:
  • no ←
  • yes
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.

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 flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

Support

For more information about Red Hat’s support of this module, please refer to this Knowledge Base article

Author

  • Ansible Core Team (@ansible)

Hint

If you notice any issues in this documentation you can edit this document to improve it.