Querying Hiera
In Puppet manifests, you can use the lookup()
function to query Hiera for the specified key (you can think of Hiera as a key-value database, where the keys are strings and values can be any type).
In general, you can use a call to lookup()
anywhere in your Puppet manifests where you might otherwise use a literal value. The following code shows some examples of this (lookup2.pp
):
$apache_pkg = lookup('apache_pkg') unless lookup('apparmor_enabled') { exec { 'apt-get -y remove apparmor': } } notice("dns_allow_query enabled: ", lookup('dns_allow_query'))
Typed lookups
You can make your code more reliable and catch possible errors by specifying the required data type of the key you're looking up. For example, passing Boolean
as the second argument to lookup()
will cause Puppet to raise an error unless the retrieved value is of type Boolean (lookup_type.pp
):
notice(lookup('apparmor_enabled', Boolean))
If you accidentally look up the wrong key, or mistype the value in the data file...