@ -5,27 +5,29 @@ from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = { ' metadata_version ' : ' 1.1 ' ,
' status ' : [ ' stableinterface ' ] ,
' supported_by ' : ' core ' }
ANSIBLE_METADATA = {
' metadata_version ' : ' 1.1 ' ,
' status ' : [ ' stableinterface ' ] ,
' supported_by ' : ' core '
}
DOCUMENTATION = '''
- - -
author : " Allen Sanabria (@linuxdynasty) "
author : Allen Sanabria ( @linuxdynasty )
module : include_vars
short_description : Load variables from files , dynamically within a task .
short_description : Load variables from files , dynamically within a task
description :
- Loads variables from a YAML / JSON files dynamically from within a file or from a directory recursively during task runtime . If loading a directory ,
the files are sorted alphabetically before being loaded .
- This module is also supported for Windows targets .
- Loads variables from a YAML / JSON files dynamically from within a file or from a directory recursively during task
runtime . If loading a directory , the files are sorted alphabetically before being loaded .
- This module is also supported for Windows targets .
version_added : " 1.4 "
options :
file :
version_added : " 2.2 "
description :
- The file name from which variables should be loaded .
- If the path is relative , it will look for the file in vars / subdirectory of a role or relative to playbook .
- The file name from which variables should be loaded .
- If the path is relative , it will look for the file in vars / subdirectory of a role or relative to playbook .
dir :
version_added : " 2.2 "
description :
@ -35,13 +37,13 @@ options:
name :
version_added : " 2.2 "
description :
- The name of a variable into which assign the included vars , i f omitted ( null ) they will be made top level vars .
- The name of a variable into which assign the included vars . I f omitted ( null ) they will be made top level vars .
default : null
depth :
version_added : " 2.2 "
description :
- When using C ( dir ) , this module will , by default , recursively go through each sub directory and load up the variables .
By explicitly setting the depth , this module will only go as deep as the depth .
- When using C ( dir ) , this module will , by default , recursively go through each sub directory and load up the
variables. By explicitly setting the depth , this module will only go as deep as the depth .
default : 0
files_matching :
version_added : " 2.2 "
@ -57,65 +59,65 @@ options:
version_added : " 2.3 "
description :
- List of file extensions to read when using C ( dir ) .
default : [ ' yaml ' , ' yml ' , ' json ' ]
default : [ yaml , yml , json ]
required : False
free - form :
description :
- This module allows you to specify the ' file ' option directly w / o any other options .
There is no ' free-form ' option , this is just an indicator , see example below .
- This module allows you to specify the ' file ' option directly w ithout any other options .
There is no ' free-form ' option , this is just an indicator , see example below .
notes :
- This module is also supported for Windows targets .
- This module is also supported for Windows targets .
'''
EXAMPLES = """
- name : Include vars of stuff . y ml into the ' stuff ' variable ( 2.2 ) .
- name : Include vars of stuff . y a ml into the ' stuff ' variable ( 2.2 ) .
include_vars :
file : stuff . y ml
file : stuff . y a ml
name : stuff
- name : Conditionally decide to load in variables into ' plans ' when x is 0 , otherwise do not . ( 2.2 )
include_vars :
file : contingency_plan . y ml
file : contingency_plan . y a ml
name : plans
when : x == 0
- name : Load a variable file based on the OS type , or a default if not found . Using free - form to specify the file .
include_vars : " {{ item }} "
with_first_found :
- " {{ ansible_distribution }}.y ml"
- " {{ ansible_os_family }}.y ml"
- " default.yml "
- " {{ ansible_distribution }}.y a ml"
- " {{ ansible_os_family }}.y a ml"
- default . yaml
- name : b are include ( free - form )
include_vars : myvars . y ml
- name : B are include ( free - form )
include_vars : myvars . y a ml
- name : Include all . json and . jsn files in vars / all and all nested directories ( 2.3 )
include_vars :
dir : ' vars/all '
dir : vars / all
extensions :
- json
- jsn
- name : Include all default extension files in vars / all and all nested directories and save the output in test . ( 2.2 )
include_vars :
dir : ' vars/all '
dir : vars / all
name : test
- name : Include default extension files in vars / services ( 2.2 )
include_vars :
dir : ' vars/services '
dir : vars / services
depth : 1
- name : Include only files matching bastion . y ml ( 2.2 )
- name : Include only files matching bastion . y a ml ( 2.2 )
include_vars :
dir : ' vars '
files_matching : ' bastion.yml '
dir : vars
files_matching : bastion . yaml
- name : Include all . y ml files except bastion . y ml ( 2.3 )
- name : Include all . y a ml files except bastion . y a ml ( 2.3 )
include_vars :
dir : ' vars '
ignore_files : ' bastion.yml '
extensions : [ ' yml ' ]
dir : vars
ignore_files : bastion . yaml
extensions : [ yaml ]
"""
RETURN = '''
@ -128,6 +130,6 @@ ansible_included_var_files:
description : A list of files that were successfully included
returned : success
type : list
sample : [ ' /path/to/file.y ml' , ' /path/to/file.json ' ]
sample : [ ' /path/to/file.y a ml' , ' /path/to/file.json ' ]
version_added : 2.4
'''