Skip to main content

Keep track of Ansible host context variables

Project description

ansible-variables

PyPI version PyPI platforms pre-commit Ruff

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 command_simple

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.

command_simple_verbose

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ansible_variables-0.8.1.tar.gz (48.3 kB view details)

Uploaded Source

Built Distribution

ansible_variables-0.8.1-py3-none-any.whl (33.7 kB view details)

Uploaded Python 3

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

Hashes for ansible_variables-0.8.1.tar.gz
Algorithm Hash digest
SHA256 6b15494c264fddcd6978c70b8b58cb136ce655d2aefbd1f6cfbc7706e7120e09
MD5 d5b7a73de59d52d0a5ec2e05e3250299
BLAKE2b-256 1a68d3a8fb88eb39ccde95d77ac06a3a0bf076b41386d7f8298d1f771a3bcd43

See more details on using hashes here.

File details

Details for the file ansible_variables-0.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ansible_variables-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c8464c8ad9148a86cb261838d3276f989d691546a565a7c05254e4ea219bb6c8
MD5 060b6fa52dedebc0ccc4ab844a9ec411
BLAKE2b-256 167b0c6f1a8525a4dfa02d8c36a4efb91ab8aebb5161937d93a58a8d000a7b9c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page