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.18.
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
File details
Details for the file ansible_variables-0.8.1.tar.gz
.
File metadata
- Download URL: ansible_variables-0.8.1.tar.gz
- Upload date:
- Size: 48.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b15494c264fddcd6978c70b8b58cb136ce655d2aefbd1f6cfbc7706e7120e09 |
|
MD5 | d5b7a73de59d52d0a5ec2e05e3250299 |
|
BLAKE2b-256 | 1a68d3a8fb88eb39ccde95d77ac06a3a0bf076b41386d7f8298d1f771a3bcd43 |
File details
Details for the file ansible_variables-0.8.1-py3-none-any.whl
.
File metadata
- Download URL: ansible_variables-0.8.1-py3-none-any.whl
- Upload date:
- Size: 33.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8464c8ad9148a86cb261838d3276f989d691546a565a7c05254e4ea219bb6c8 |
|
MD5 | 060b6fa52dedebc0ccc4ab844a9ec411 |
|
BLAKE2b-256 | 167b0c6f1a8525a4dfa02d8c36a4efb91ab8aebb5161937d93a58a8d000a7b9c |