Ansible simplified yaml inventory
Project description
Kheops Ansible Roster Plugin
This repository contains an Ansible inventory plugin to generate inventory from a subjectively simpler inventory description file while having more possibilities.
Supports ranges (eg: "[0:9]") and regex hostnames (eg: "(dev|prd)-srv")
Installation
Install latest version:
python3 -mpip install --pre -U kheops-roster
Features
-
Subjectively simpler syntax
-
'Labels' that behave like groups but that do not create groups.
-
Ranges and Regex support:
sql-[0:9].example.com
,(front|back)end-[0:9].example.com
-
List appending / merging with '+=' operator
-
Glob file inclusion support: '- include: [ "include-*.yml" ]
Usage
'Roster' inventory file
The roster inventory file is a typical yaml file.
A sample, commented, file named 'roster.yml.tpl' is located at the root of the git repository.
In order for ansible to use the plugin and parse your roster file, several conditions must be met.
-
Your yaml file must contain a line indicating that the file is in the roster format.
-
You must activate plugins and enable the roster inventory plugin in your ansible.cfg
Sample roster.yml
---
plugin: roster
include:
- "includes/file-one.yml"
vars:
global_var: "global_value"
hosts:
localhost:
Sample edited ansible.cfg
[defaults]
# The following line prevents having to pass -i to ansible-inventory.
# Filename can be anything as long as it has a 'yml' or 'yaml' extension although
# the plugin will directly accept any file named 'roster.yml'.
inventory = roster.yml
[inventory]
# You must enable the roster plugin if 'auto' does not work for you
enable_plugins = roster
Verify that the plugin is correctly found:
ansible-inventory --graph
Development
To run unit tests, you can simply run the make target:
# run all tests:
make check
It's also possible to quickly check the output inventory:
export PYTHONPATH="$PYTHONPATH:$(pwd)"
ANSIBLE_INVENTORY_ENABLED=roster ansible-inventory --list -i roster.yml
License
This project is licensed under the MIT License - see the LICENSE file for details
Locations
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_roster-0.3.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29124acf9272e3ff9cfbb317b72f89da98d01003f7c10418c30ea4d81fd6577c |
|
MD5 | 9b14fa2f0a3971172749b2e3acd36d0e |
|
BLAKE2b-256 | b1f97ab1b3a41504437913a482e1283fe3b4b2c56912ead8c4475bf9c9e4fcaf |