Como usar os dados do Hiera do repositório de origem?

0

Eu tenho uma configuração de Puppet sem mestre e gostaria de simplesmente adicionar informações como nomes de pacotes com base em $::osfamily para portabilidade. Parece que o Hiera é feito para esse tipo de coisa, mas não consigo descobrir como realmente usar dados do Hiera dentro de um repositório de origem a partir de um manifesto do Puppet dentro do mesmo repositório de fontes sem modificar nada em /etc . Basicamente, cada parte da documentação parece assumir que eu gostaria de modificar /etc/puppetlabs/code/hiera.yaml ou /etc/puppetlabs/puppet/puppet.conf à mão sempre que eu usar um repositório diferente. Ou eu estou entendendo completamente Hiera?

Se necessário, eu ficaria bem em adicionar um puppet.conf ao repositório e referenciá-lo toda vez que eu executar puppet apply , mas como eu poderia me referir ao diretório atual como o root para o hiera_config ?

    
por l0b0 02.12.2015 / 23:25

1 resposta

2

Sim, você pode usar dados hiera com a configuração sem mestre. Apenas especifique --hiera_config com a configuração hiera que especifica onde procurar por dados hiera.

Exemplo:

nkts@trololo:/tmp/puppet$ puppet apply -t --modulepath=./modules/ --hiera_config=./hiera.conf manifests/a.pp
Notice: Compiled catalog for trololo.lan in environment production in 0.31 seconds
Info: Applying configuration version '1449108414'
Notice: test: bar
Notice: /Stage[main]/A/Notify[test: bar]/message: defined 'message' as 'test: bar'
Notice: Applied catalog in 0.02 seconds
nkts@trololo:/tmp/puppet$ cat hiera.conf
---
:backends: yaml
:yaml:
  :datadir: /tmp/puppet/data
:hierarchy: common
:logger: console
nkts@trololo:/tmp/puppet$ cat data/common.yaml
a::foo: bar
nkts@trololo:/tmp/puppet$ cat manifests/a.pp
class { "a":
}
nkts@trololo:/tmp/puppet$ cat modules/a/manifests/init.pp
class a (
  $foo = "default msg"
){
  notify { "test: $foo":
  }
}
nkts@trololo:/tmp/puppet$ rm data/common.yaml
nkts@trololo:/tmp/puppet$ puppet apply -t --modulepath=./modules/ --hiera_config=./hiera.conf manifests/a.pp
Notice: Compiled catalog for trololo.lan in environment production in 0.32 seconds
Info: Applying configuration version '1449108454'
Notice: test: default msg
Notice: /Stage[main]/A/Notify[test: default msg]/message: defined 'message' as 'test: default msg'
Notice: Applied catalog in 0.02 seconds
nkts@trololo:/tmp/puppet$
    
por 03.12.2015 / 03:12

Tags