Config file syntax:
The hiera.yaml file is a YAML file, containing a hash with up to four top-level keys.
The following keys are in a hiera.yaml file:
- 
version - Required. Must be the number 5, with no quotes.
 
- 
defaults - A hash, which can set a default datadir, backend, and options for hierarchy levels.
 
- 
hierarchy - An array of hashes, which configures the levels of the hierarchy.
 
- 
default_hierarchy - An array of hashes, which sets a default hierarchy to be used only if the normal hierarchy entries do not result in a value. Only allowed in a module's hiera.yaml.
 
version: 5 
defaults: # Used for any hierarchy level that omits these keys. 
datadir: data # This path is relative to hiera.yaml's directory. 
data_hash: yaml_data # Use the built-in YAML backend. 
hierarchy: 
- name: "Per-node data" # Human-readable name. 
path: "nodes/%{trusted.certname}.yaml" # File path, relative to datadir. # ^^^ IMPORTANT: include the file extension! 
- name: "Per-datacenter business group data" # Uses custom facts. 
path: "location/%{facts.whereami}/%{facts.group}.yaml" 
- name: "Global business group data" 
path: "groups/%{facts.group}.yaml" 
- name: "Per-datacenter secret data (encrypted)" 
lookup_key: eyaml_lookup_key # Uses non-default backend. 
path: "secrets/%{facts.whereami}.eyaml" 
options: 
pkcs7_private_key: /etc/puppetlabs/puppet/eyaml/private_key.pkcs7.pem 
pkcs7_public_key: /etc/puppetlabs/puppet/eyaml/public_key.pkcs7.pem 
- name: "Per-OS defaults" 
path: "os/%{facts.os.family}.yaml" 
- name: "Common data" 
path: "common.yaml"