include_tasks - Dynamically include a task list

New in version 2.4.

Synopsis

Parameters

Parameter Choices/Defaults Comments
apply
(added in 2.7)
Accepts a hash of task keywords (e.g. tags, become) that will be applied to the tasks within the include.
file
(added in 2.7)
The name of the imported file is specified directly without any other option.
Unlike import_tasks, most keywords, including loops and conditionals, apply to this statement.
free-form
Supplying a file name via free-form - include_tasks: file.yml of a file to be included is the equivalent of specifying an argument of file.

Notes

Note

  • This is a core feature of the Ansible, rather than a module, and cannot be overridden like a module.

Examples

- hosts: all
  tasks:
    - debug:
        msg: task1

    - name: Include task list in play
      include_tasks: stuff.yaml

    - debug:
        msg: task10

- hosts: all
  tasks:
    - debug:
        msg: task1

    - name: Include task list in play only if the condition is true
      include_tasks: "{{ hostvar }}.yaml"
      when: hostvar is defined

- name: Apply tags to tasks within included file
  include_tasks:
    file: install.yml
    apply:
      tags:
        - install
  tags:
    - always

- name: Apply tags to tasks within included file when using free-form
  include_tasks: install.yml
  args:
    apply:
      tags:
        - install
  tags:
    - always

Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

Maintenance

This module is flagged as core which means that it is maintained by the Ansible Core Team. See Module Maintenance & Support for more info.

For a list of other modules that are also maintained by the Ansible Core Team, see here.

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.