Using Hiera in Puppet
Using the Hiera functions, the data stored in Hiera can be retrieved by the Puppet Master while compiling the catalog. In our manifests, we can have something like the following:
$dns_servers = hiera("dns_servers")
Note that the name of the Puppet variable need not be the same as that of the Hiera one, so the previous code can also be as follows:
$my_dns_servers = hiera("dns_servers")
This assigns to the variable $my_dns_servers
the top value (the first one found while crossing the hierarchy of data sources) retrieved by Hiera for the key dns_servers
.
We can also merge arrays and hashes here; so in order to retrieve an array of all the values in the hierarchy's data sources of a given key and not just the first one, we can use
hiera_array()
as follows:
$my_dns_servers = hiera_array("dns_servers")
If we expect a hash value for a given key, we can use the
hiera()
function to retrieve the top value found, or we can use
hiera_hash()
to merge...