2016-08-26 17:07:28 +00:00
#!/usr/bin/python
# -*- mode: python -*-
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
2016-12-06 10:35:05 +00:00
ANSIBLE_METADATA = { ' status ' : [ ' preview ' ] ,
' supported_by ' : ' core ' ,
' version ' : ' 1.0 ' }
2016-08-26 17:07:28 +00:00
DOCUMENTATION = '''
- - -
author :
- " Ansible Core Team (@ansible) "
module : include_role
short_description : Load and execute a role
description :
- " Loads and executes a role as a task, this frees roles from the `role:` directive and allows them to be treated more as tasks. "
version_added : " 2.2 "
options :
name :
description :
- The name of the role to be executed .
required : True
tasks_from :
description :
- " File to load from a Role ' s tasks/ directory. "
required : False
default : ' main '
2016-08-27 01:55:40 +00:00
vars_from :
description :
- " File to load from a Role ' s vars/ directory. "
required : False
default : ' main '
defaults_from :
description :
- " File to load from a Role ' s defaults/ directory. "
required : False
default : ' main '
2016-10-18 15:17:39 +00:00
allow_duplicates :
description :
- Overrides the role ' s metadata setting to allow using a role more than once with the same parameters.
required : False
default : True
2016-09-06 18:05:15 +00:00
private :
description :
- If True the variables from defaults / and vars / in a role will not be made available to the rest of the play .
default : None
2016-08-26 17:07:28 +00:00
notes :
- Handlers are made available to the whole play .
2016-08-26 20:40:00 +00:00
- simple dependencies seem to work fine .
2016-12-19 10:45:01 +00:00
- As with C ( include ) this task can be static or dynamic , If static it implies that it won ' t need templating nor loops nor conditionals and will show included tasks in the --list options. Ansible will try to autodetect what is needed, but you can set `static` to `yes` or `no` at task level to control this.
2016-08-26 17:07:28 +00:00
'''
EXAMPLES = """
2016-11-15 20:21:47 +00:00
- include_role :
name : myrole
2016-08-26 17:07:28 +00:00
- name : Run tasks / other . yml instead of ' main '
include_role :
2016-09-14 14:15:48 +00:00
name : myrole
2016-08-26 17:07:28 +00:00
tasks_from : other
- name : Pass variables to role
include_role :
name : myrole
vars :
rolevar1 : ' value from task '
2016-09-06 18:05:15 +00:00
- name : Use role in loop
include_role :
name : myrole
with_items :
2016-12-09 10:59:50 +00:00
- ' {{ roleinput1 }} '
- ' {{ roleinput2 }} '
2016-09-06 18:05:15 +00:00
loop_control :
loop_var : roleinputvar
- name : conditional role
include_role :
name : myrole
when : not idontwanttorun
2016-08-26 17:07:28 +00:00
"""
RETURN = """
# this module does not return anything except tasks to execute
"""