Esta postagem na lista de usuários dos fantoches descreve o uso básico.
Reescrevemos com um exemplo mais completo, com Hierarquia:
Dado um hiera.yaml
assim:
:backends:
- puppet
:puppet:
:datasource: data
:hierarchy:
- %{osfamily}::%{operatingsystem}::%{architecture}
- %{osfamily}::%{operatingsystem}
- %{osfamily}
- global
E dada uma classe simples dentro de um módulo:
class foo::bar {
$baz = hiera('baz')
}
O back-end procurará uma classe que contenha a variável $baz
na seguinte ordem:
data::RedHat::CentOS::x86_64
data::RedHat::CentOS
data::RedHat
data::global
foo::bar::data
foo::data
O nome da origem de dados padrão é data
, mas isso pode ser personalizado. Dado klaatu
, ele pesquisaria:
klaatu::RedHat::CentOS::x86_64
klaatu::RedHat::CentOS
klaatu::RedHat
klaatu::global
foo::bar::klaatu
foo::klaatu
Os dois últimos parecem ser adicionados independentemente da hierarquia e sempre no formato %{calling_class}::%{datasource}
e %{calling_module}::%{datasource}
.
Parece haver limites para os tipos de fatos que você pode usar nessas hierarquias em comparação a um back-end de yaml. Por exemplo, %{clientcert}
não será utilizável, pois os pontos não são permitidos em nomes de classes.