alexisfacques.ansible_module_check_structure
ansible-module-check-structure
ansible-module-check-structure is a handy custom Ansible module allowing you
assert the type of Ansible facts, and validate
the structure (or schema) of dictionaries and lists.
This is done by crafting an Ansible fact in which each hierarcherical element is a string representing one of python's built-in types, apply this structure to a fact you want to check.
You may for instance want to check that each element of a list is a dictionary
in which the foo key defined, and paired to a string value...
struct:
- foo: str
... or check that each element of a list is an integer:
struct:
- int
Possibilities are endless!
Getting started
Installing
The "Ansible role" way
Clone this repository to your Ansible
role_path, or install viaansible-galaxy;ansible-galaxy install alexisfacques.ansible_module_check_structureImport the role in your playbooks before running any role or task that require the
check_structuremodule:- hosts: all roles: - alexisfacques.ansible_module_check_structure tasks: - name: Ensure variable is a string check_structure: struct: - str var: -"{{ is_this_a_str }}"
The "Ansible library" way
Alternatively, if importing a role is too much of a hassle, you can store this
module in the library directory defined in your ansible.cfg file
(Default is a sub-directory called library in the directory that contains
your playbooks):
[defaults]
library = /path/to/your/library
Usage
Parameters
| Parameter | Choices/Defaults | Comments |
|---|---|---|
| struct - / required |
The schema that the variable should validate. | |
| var - / required |
The variable you want to test. |
Example of use
Examples of use can be found here.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Check typings and (dict/list) structures of variables easily
ansible-galaxy install alexisfacques.ansible_module_check_structure