Version on Galaxy Codacy Badge Documentation Status

When we were starting to work with puppet v4 we realize the benefits of hiera. Its strenghts of merging configurations of different levels of precendence can solve so many problems of having duplicated data. The decission of Ansible to deprecate and remove the possiblity of merging configuration hashes is also understandable because merging can create very complex scenarios. With this collection we want to give you the decision to organise your configuration in another way.

Installation

The collection is hosted on galaxy, so you can simply use ansible-galaxy to install it.

ansible-galaxy collection install codeaffen.hieradata

Alternatively you can install it from source.

git clone https://github.com/codeaffen/ansible-hiera-data.git
cd ansible-hiera-data
make dist
ansible-galaxy collection install codeaffen-hieradata-<version>.tar.gz

Configuraton

vars plugin configuration

The plugin comes with useful defaults to start to use the hieradata vars plugin without any configuration.

But if you need to customize the configuration you can see in documentation you can configure the vars plugin eigther via ansible.cfg parameter in section hieradata or via environment variables.

You have to keep in mind that the paths for basedir and config are relative to your inventory directory. Without any configuration you have to place the basedir and config as followed.

.
├── ansible.cfg
├── hieradata
├── hieradata.yml
└── hosts

If you want to use a different base then hieradata you can override it by exporting HIERADATA_BASE_DIR environment variable. This directory also has to belongs to inventory dirctory.

.
├── ansible.cfg
└── inventory
    ├── hieradata
    │   └── customer_a
    ├── hieradata.yml
    └── hosts

In this example you need to do export HIERADATA_BASE_DIR=hieradata/customer_a if you want to use hieradata/customer_a as hiera basedir.

further resources

To get more information you can use the following sources: