2017-09-14 20:27:56 +00:00
|
|
|
#!/usr/bin/python
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# Copyright: Ansible Project
|
|
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
|
|
|
|
from __future__ import absolute_import, division, print_function
|
|
|
|
__metaclass__ = type
|
|
|
|
|
|
|
|
|
2017-11-22 22:05:29 +00:00
|
|
|
ANSIBLE_METADATA = {
|
|
|
|
'metadata_version': '1.1',
|
|
|
|
'status': ['preview'],
|
|
|
|
'supported_by': 'core'
|
|
|
|
}
|
2017-09-14 20:27:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
DOCUMENTATION = '''
|
|
|
|
---
|
2017-11-22 22:05:29 +00:00
|
|
|
author: Ansible Core Team (@ansible)
|
2017-09-14 20:27:56 +00:00
|
|
|
module: include_tasks
|
2017-11-22 22:05:29 +00:00
|
|
|
short_description: Dynamically include a task list
|
2017-09-14 20:27:56 +00:00
|
|
|
description:
|
2017-11-22 22:05:29 +00:00
|
|
|
- Includes a file with a list of tasks to be executed in the current playbook.
|
2017-09-14 20:27:56 +00:00
|
|
|
version_added: "2.4"
|
|
|
|
options:
|
2018-05-31 17:08:38 +00:00
|
|
|
file:
|
2017-09-14 20:27:56 +00:00
|
|
|
description:
|
2017-11-22 22:05:29 +00:00
|
|
|
- The name of the imported file is specified directly without any other option.
|
|
|
|
- Unlike M(import_tasks), most keywords, including loops and conditionals, apply to this statement.
|
2018-05-31 17:08:38 +00:00
|
|
|
version_added: '2.7'
|
|
|
|
apply:
|
|
|
|
description:
|
|
|
|
- Accepts a hash of task keywords (e.g. C(tags), C(become)) that will be applied to the tasks within the include.
|
|
|
|
version_added: '2.7'
|
|
|
|
free-form:
|
|
|
|
description:
|
|
|
|
- |
|
|
|
|
Supplying a file name via free-form C(- include_tasks: file.yml) of a file to be included is the equivalent
|
|
|
|
of specifying an argument of I(file).
|
2017-09-14 20:27:56 +00:00
|
|
|
notes:
|
2017-11-22 22:05:29 +00:00
|
|
|
- This is a core feature of the Ansible, rather than a module, and cannot be overridden like a module.
|
2017-09-14 20:27:56 +00:00
|
|
|
'''
|
|
|
|
|
|
|
|
EXAMPLES = """
|
|
|
|
- hosts: all
|
|
|
|
tasks:
|
|
|
|
- debug:
|
|
|
|
msg: task1
|
|
|
|
|
2017-11-22 22:05:29 +00:00
|
|
|
- name: Include task list in play
|
|
|
|
include_tasks: stuff.yaml
|
2017-09-14 20:27:56 +00:00
|
|
|
|
|
|
|
- debug:
|
|
|
|
msg: task10
|
|
|
|
|
|
|
|
- hosts: all
|
|
|
|
tasks:
|
|
|
|
- debug:
|
|
|
|
msg: task1
|
|
|
|
|
2017-11-22 22:05:29 +00:00
|
|
|
- name: Include task list in play only if the condition is true
|
|
|
|
include_tasks: "{{ hostvar }}.yaml"
|
2017-09-14 20:27:56 +00:00
|
|
|
when: hostvar is defined
|
2018-05-31 17:08:38 +00:00
|
|
|
|
|
|
|
- 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
|
2017-09-14 20:27:56 +00:00
|
|
|
"""
|
|
|
|
|
|
|
|
RETURN = """
|
2017-11-22 22:05:29 +00:00
|
|
|
# This module does not return anything except tasks to execute.
|
2017-09-14 20:27:56 +00:00
|
|
|
"""
|