From 6eab2b3d405ec6d011061ae35f6ecc25e98ce8bf Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Fri, 26 Aug 2016 13:07:28 -0400 Subject: [PATCH] 1st draft of include role docs --- utilities/logic/include_role.py | 56 +++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 utilities/logic/include_role.py diff --git a/utilities/logic/include_role.py b/utilities/logic/include_role.py new file mode 100644 index 00000000000..b2e76ba8dfb --- /dev/null +++ b/utilities/logic/include_role.py @@ -0,0 +1,56 @@ +#!/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 . + +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' +notes: + - THIS IS EARLY PREVIEW, THINGS MAY CHANGE + - Only basic roles have been tested for now, some things might not work as expected. + - Handlers are made available to the whole play. + - Currently role variables are not pushed up to the play. + - "Things not tested (yet): loops, plugin overrides, nesting includes, role dependencies, used as handler, other stuff I did not think of when I wrote this." +''' + +EXAMPLES = """ +- include_role: name=myrole + +- name: Run tasks/other.yml instead of 'main' + include_role: + role: myrole + tasks_from: other + +- name: Pass variables to role + include_role: + name: myrole + vars: + rolevar1: 'value from task' + +""" + +RETURN = """ +# this module does not return anything except tasks to execute +"""