Me gustaría saber cómo configurar :datadir:
en hiera.yaml
para un uso óptimo con la marioneta y el vagabundo. Actualmente estoy usando vagrant 1.5.0 con virtualbox 4.2 en Ubuntu 13.10 con un invitado Ubuntu 12.04 ejecutando puppet 3.1.1
Estoy tratando de configurar un entorno similar a esta publicación de blog, Mejores prácticas de Puppet: configuraciones específicas del entorno . Específicamente, mi Vagrantfile contiene:
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
Puedo confirmar que hiera_config_path
es correcto, porque recibo un error si lo borro hiera.yaml
.
puppet/hiera.yaml
contiene:
---
:backends: yaml
:yaml:
:datadir: "manifests/configuration"
:hierarchy:
- "%{::clientcert}"
- "%{::environment}"
- "virtual_%{::is_virtual}"
- common
:logger: console
Y, además, puppet/manifests/configuration/common.yaml
contiene:
---
myvar: "test"
Probar esto desde la línea de comandos:
$ hiera -c hiera.yaml myvar
test
Hasta ahora tan bueno. Sin embargo, si trato de probar esto desde un archivo de manifiesto de la marioneta, no se puede encontrar la variable y aparece un error. Prueba de ejemplo:
$myvariable = hiera(myvar)
notice("My variable is: ${myvar}")
El error es:
Error: Could not find data item myvar in any Hiera data file and no default supplied at...
Si accedo a mi máquina mediante vagrant ssh
, puedo ver que Vagrant está montando mi directorio de manifiesto en / tmp / vagrant-puppet-2. Si edito el hiera.yaml
archivo y lo reemplazo :datadir:
con la ruta completa /tmp/vagrant-puppet-2/manifests/configuration
, mis manifiestos de Puppet pueden acceder a mis datos de Hiera. Sin embargo, ¿puedo hacer esto con una ruta relativa?
hiera.yaml
archivos, uno para usar con vagabundo y otro para usar con Puppet (en producción)?