The hierarchy
So far, we've only used a single Hiera data source (common.yaml
). Actually, you can have as many data sources as you like. Each usually corresponds to a YAML file, and they are listed in the hierarchy
section of the hiera.yaml
file, with the highest-priority source first and the lowest last:
hierarchy: ... - name: "Host-specific data" path: "nodes/%{facts.hostname}.yaml" - name: "OS release-specific data" path: "os/%{facts.os.release.major}.yaml" - name: "OS distro-specific data" path: "os/%{facts.os.distro.codename}.yaml" - name: "Common defaults" path: "common.yaml"
In general, though, you should keep as much data as possible in the common.yaml
file, simply because it's easier to find and maintain data if it's in one place, rather than scattered through several files.
For example, if you have some Hiera data which is only used on the monitor
node, you might be tempted to put it in a nodes/monitor.yaml
file. But, unless it has to override some settings...