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.16.
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.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fcc50929823c4e236d0b54a2bb09ebbafa9381a2ace24671846349a151003d1 |
|
MD5 | 12bbf1fe91579b8fb0a35579af3f3f82 |
|
BLAKE2b-256 | 3ab916625a2746b5cbe5ae58059fa25f669e9fbb1f2aa94a038d06b857426334 |