Acabei usando create_resources . Essencialmente, ele fornece a capacidade de mapear tipos definidos para nós com hiera, da mesma maneira que hiera_include
faz com classes prontas para uso.
Com essa configuração, posso declarar qualquer número de tipos de recursos file
em qualquer nível da hierarquia, além de a configuração estar toda em fontes de dados hiera.
/etc/hiera.yaml
:hierarchy:
- defaults
- "%{environment}"
/var/lib/hiera/defaults.yaml
classes:
- hiera_file_wrapper
hiera_file:
hiera-two:
path: /home/quickshiftin/hiera-two
ensure: file
content: 'Hiera two'
/var/lib/hiera/production.yaml
hiera_file:
hiera-baby:
path: /home/quickshiftin/hiera-baby
ensure: file
content: 'Hiera baby!
modules / hiera_file_wrapper / manifestes / init.pp
class hiera_file_wrapper()
{
create_resources(file, hiera_hash('hiera_file'))
}
manifestes / site.pp
hiera_include('classes')