Keep track of Ansible host context variables
Project description
ansible-variables
The Ansible inventory provides a very powerful framework to declare variables in a hierarchical manner. There a lof of different places where a variable can be defined (inventory, host_vars, groups_vars, ...) and Ansible will merge them in a specific order (variable precedence).
ansible-variables
will help to keep track of your host context variables:
- inventory file or script group vars
- inventory group_vars/all
- inventory group_vars/*
- inventory file or script host vars
- inventory host_vars/*
Based on one host it will return a list with all variables, values and variable type.
Tested with ansible-core
2.11 - 2.15.
Installation
pip install ansible-variables
Usage
The command line usage is similar to the official Ansible CLI tools, especially like ansible-inventory, thus to see all possible commands and options run
ansible-variables --help
Get all variables for a host
The basic usage is pretty simple, you only need to pass the Ansible hostname to it:
ansible-variables mywebserver
This results in following simple rich formatted output
The verbosity can be increased Ansible like with -v
, -vvv
, ...
With -v
the inventory files where the variable is defined, will be printed. The last file wins.
With -vvv
it will also print all files which were considered to look for the variable.
Get one specific variables for a host
If you are only interested in one variable you can specify it with --var
:
ansible-variables mywebserver --var foo
Same es above, the verbosity can also increase here.
More customization
With --help
you will see which further arguments are possible, e.g. you can set the path to your inventory with -i
ansible-variables mywebserver -i /path/to/inventory
Implementation
This tool is tightly coupled to the Ansible library (ansible-core
) and simple reuses what is already there.
The whole structure and implementation was inspired and oriented by the implementation of ansible-inventory
.
To get the source and the inventory files in which Ansible will look for a variable, we are using a debug flag in Ansible's get_vars
method.
As as result, the output of ansible-variables
can be fully trusted as it uses the same methods as Ansible to get the variable precedence.
Limitations
- as written in the description, this tool only shows host context variables and does not know anything about playbook or role variables or command line options.
Credits
- the screenshots used in this README where created with termshot
License
This project is licensed under the GNU General Public License v3.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ansible_variables-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b97c842ded4f83f3838af222d532f0a5d58e23d4993eb170fa4bf3e89e1277b0 |
|
MD5 | 56fbee3f6e46aab4513d623aa14f0f44 |
|
BLAKE2b-256 | 8c1959be3aca543a4b4f811ee79b382bed4af27c082c995a508ad034702c94b5 |