Interpolation in Hiera data
Hiera data is not restricted to literal values; it can also include the value of Facter facts or Puppet variables, as in the following example:
backup_path: "/backup/%{facts.hostname}"
Anything within the %{}
delimiters inside a quoted string is evaluated and interpolated by Hiera. Here, we're using the dot notation to reference a value inside the $facts
hash.
Using lookup()
Helpfully, you can also interpolate Hiera data in Hiera data, by using the lookup()
function as part of the value. This can save you repeating the same value many times, and can make your data more readable, as in the following example (also from hiera_sample.yaml
):
ips: home: '130.190.0.1' office1: '74.12.203.14' office2: '95.170.0.75' firewall_allow_list: - "%{lookup('ips.home')}" - "%{lookup('ips.office1')}" - "%{lookup('ips.office2')}"
This is much more readable than simply listing a set of IP addresses with no indication of what they represent, and it prevents you accidentally...