ansible.builtin.include_vars module – Load variables from files, dynamically within a task
Note
This module is part of ansible-core
and included in all Ansible
installations. In most cases, you can use the short
module name
include_vars
even without specifying the collections keyword.
However, we recommend you use the Fully Qualified Collection Name (FQCN) ansible.builtin.include_vars
for easy linking to the
module documentation and to avoid conflicting with other collections that may have
the same module name.
Synopsis
Loads YAML/JSON variables dynamically from a file or 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.
To assign included variables to a different host than
inventory_hostname
, usedelegate_to
and setdelegate_facts=yes
.
Note
This module has a corresponding action plugin.
Parameters
Parameter |
Comments |
---|---|
When using Default: |
|
The directory name from which the variables should be loaded. If the path is relative and the task is inside a role, it will look inside the role’s vars/ subdirectory. If the path is relative and not inside a role, it will be parsed relative to the playbook. |
|
List of file extensions to read when using Default: |
|
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. |
|
Limit the files that are loaded within any directory to this regular expression. |
|
This module allows you to specify the ‘file’ option directly without any other options. There is no ‘free-form’ option, this is just an indicator, see example below. |
|
If set to If omitted ( This option is self-contained and does not apply to individual files in Choices:
|
|
List of file names to ignore. |
|
Ignore unknown file extensions within the directory. This allows users to specify a directory containing vars files that are intermingled with non-vars files extension types (e.g. a directory with a README in it and vars files). Choices:
|
|
The name of a variable into which assign the included vars. If omitted (null) they will be made top level vars. |
Attributes
Attribute |
Support |
Description |
---|---|---|
Support: partial While the action plugin does do some of the work it relies on the core engine to actually create the variables, that part cannot be overridden |
Indicates this has a corresponding action plugin so some parts of the options can be executed on the controller |
|
Support: none |
Supports being used with the |
|
Support: none |
Is usable alongside become keywords |
|
Support: none |
Forces a ‘global’ task that does not execute per host, this bypasses per host templating and serial, throttle and other loop considerations Conditionals will work as if This action will not work normally outside of lockstep strategies |
|
Support: none |
These tasks ignore the |
|
Support: full |
Can run in check_mode and return changed status prediction without modifying target, if not supported the action will be skipped. |
|
Support: none |
Uses the target’s configured connection information to execute code on it |
|
Support: partial While parts of this action are implemented in core, other parts are still available as normal plugins and can be partially overridden |
This is a ‘core engine’ feature and is not implemented like most task actions, so it is not overridable in any way via the plugin system. |
|
Support: partial while variable assignment can be delegated to a different host the execution context is always the current inventory_hostname connection variables, if set at all, would reflect the host it would target, even if we are not connecting at all in this case |
Can be used in conjunction with delegate_to and related keywords |
|
Support: none |
Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode |
|
Support: none |
The action is not subject to conditional execution so it will ignore the |
|
Platforms: all |
Target OS/families that can be operated against |
|
Support: full |
Allows for the ‘tags’ keyword to control the selection of this action for execution |
|
Support: full |
Denotes if this action obeys until/retry/poll keywords |
See Also
See also
- ansible.builtin.set_fact
Set host variable(s) and fact(s).
- Controlling where tasks run: delegation and local actions
More information related to task delegation.
Examples
- name: Include vars of stuff.yaml into the 'stuff' variable (2.2).
ansible.builtin.include_vars:
file: stuff.yaml
name: stuff
- name: Conditionally decide to load in variables into 'plans' when x is 0, otherwise do not. (2.2)
ansible.builtin.include_vars:
file: contingency_plan.yaml
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.
ansible.builtin.include_vars: "{{ lookup('ansible.builtin.first_found', params) }}"
vars:
params:
files:
- '{{ansible_distribution}}.yaml'
- '{{ansible_os_family}}.yaml'
- default.yaml
paths:
- 'vars'
- name: Bare include (free-form)
ansible.builtin.include_vars: myvars.yaml
- name: Include all .json and .jsn files in vars/all and all nested directories (2.3)
ansible.builtin.include_vars:
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)
ansible.builtin.include_vars:
dir: vars/all
name: test
- name: Include default extension files in vars/services (2.2)
ansible.builtin.include_vars:
dir: vars/services
depth: 1
- name: Include only files matching bastion.yaml (2.2)
ansible.builtin.include_vars:
dir: vars
files_matching: bastion.yaml
- name: Include all .yaml files except bastion.yaml (2.3)
ansible.builtin.include_vars:
dir: vars
ignore_files:
- 'bastion.yaml'
extensions:
- 'yaml'
- name: Ignore warnings raised for files with unknown extensions while loading (2.7)
ansible.builtin.include_vars:
dir: vars
ignore_unknown_extensions: True
extensions:
- ''
- 'yaml'
- 'yml'
- 'json'
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
A list of files that were successfully included Returned: success Sample: |