community.general.hiera lookup – get info from hiera data

Note

This lookup plugin is part of the community.general collection (version 8.4.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.general. You need further requirements to be able to use this lookup plugin, see Requirements for details.

To use it in a playbook, specify: community.general.hiera.

Synopsis

  • Retrieves data from an Puppetmaster node using Hiera as ENC.

Requirements

The below requirements are needed on the local controller node that executes this lookup.

  • hiera (command line utility)

Terms

Parameter

Comments

Terms

list / elements=string / required

The list of keys to lookup on the Puppetmaster.

Keyword parameters

This describes keyword parameters of the lookup. These are the values key1=value1, key2=value2 and so on in the following examples: lookup('community.general.hiera', key1=value1, key2=value2, ...) and query('community.general.hiera', key1=value1, key2=value2, ...)

Parameter

Comments

config_file

string

File that describes the hierarchy of Hiera.

Default: "/etc/hiera.yaml"

Configuration:

executable

string

Binary file to execute Hiera.

Default: "/usr/bin/hiera"

Configuration:

Notes

Note

  • When keyword and positional parameters are used together, positional parameters must be listed before keyword parameters: lookup('community.general.hiera', term1, term2, key1=value1, key2=value2) and query('community.general.hiera', term1, term2, key1=value1, key2=value2)

Examples

# All this examples depends on hiera.yml that describes the hierarchy

- name: "a value from Hiera 'DB'"
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.hiera', 'foo') }}"

- name: "a value from a Hiera 'DB' on other environment"
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.hiera', 'foo environment=production') }}"

- name: "a value from a Hiera 'DB' for a concrete node"
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.hiera', 'foo fqdn=puppet01.localdomain') }}"

Return Value

Key

Description

Return value

list / elements=string

a value associated with input key

Returned: success

Authors

  • Juan Manuel Parrilla (@jparrill)

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.