Eu gostaria de saber como configurar :datadir:
no hiera.yaml
para uma utilização óptima com fantoche e Vagrant. Atualmente, estou usando o vagrant 1.5.0 com o virtualbox 4.2 no Ubuntu 13.10 com um convidado do Ubuntu 12.04 executando o fantoche 3.1.1
Estou tentando configurar um ambiente semelhante a este post do blog, Puppet Best Practices: Configurações específicas do ambiente . Especificamente, meu Vagrantfile contém:
config.vm.define "servername" do |servername|
servername.vm.box = "precise-puppet-3"
servername.vm.network "private_network", ip: "192.168.213.2",
virtualbox__intnet: "networkname"
# Provision with puppet.
servername.vm.provision :puppet do |puppet|
puppet.hiera_config_path = "puppet/hiera.yaml"
puppet.manifests_path = "puppet/manifests"
puppet.module_path = "puppet/modules"
puppet.manifest_file = "servername.pp"
puppet.facter = {
"vagrant" => "1",
"server" => "servername",
}
end
end
Posso confirmar que hiera_config_path
está correto, pois recebo um erro se excluir hiera.yaml
.
puppet/hiera.yaml
contém:
---
:backends: yaml
:yaml:
:datadir: "manifests/configuration"
:hierarchy:
- "%{::clientcert}"
- "%{::environment}"
- "virtual_%{::is_virtual}"
- common
:logger: console
E, além disso, puppet/manifests/configuration/common.yaml
contém:
---
myvar: "test"
Testando isso na linha de comando:
$ hiera -c hiera.yaml myvar
test
Por enquanto, tudo bem. No entanto, se eu tentar testar isso de dentro de um arquivo de manifesto de fantoches, a variável não poderá ser encontrada e recebo um erro. Exemplo de teste:
$myvariable = hiera(myvar)
notice("My variable is: ${myvar}")
O erro é:
Error: Could not find data item myvar in any Hiera data file and no default supplied at...
Se eu entrar na minha máquina via vagrant ssh
, posso ver que o Vagrant está montando meu diretório de manifesto em / tmp / vagrant-puppet-2. Se eu editar o hiera.yaml
arquivo e substituí :datadir:
-lo pelo caminho completo /tmp/vagrant-puppet-2/manifests/configuration
, meus manifestos do Puppet poderão acessar meus dados do Hiera. Posso fazer isso com um caminho relativo?
hiera.yaml
arquivos, um para uso com vagrant e outro para uso com Puppet (em produção)?