Mi piacerebbe sapere come impostare :datadir:in hiera.yamlper un uso ottimale con marionette e Vagrant. Attualmente sto usando Vagrant 1.5.0 con Virtualbox 4.2 su Ubuntu 13.10 con un guest Ubuntu 12.04 che esegue Puppet 3.1.1
Sto cercando di creare un ambiente simile a questo post del blog, Puppet Best Practices: Configurazioni specifiche per l'ambiente . In particolare, il mio 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
Posso confermare che hiera_config_pathè corretto, perché ottengo un errore se cancello hiera.yaml.
puppet/hiera.yaml contiene:
---
:backends: yaml
:yaml:
:datadir: "manifests/configuration"
:hierarchy:
- "%{::clientcert}"
- "%{::environment}"
- "virtual_%{::is_virtual}"
- common
:logger: console
E, inoltre, puppet/manifests/configuration/common.yamlcontiene:
---
myvar: "test"
Test questo dalla riga di comando:
$ hiera -c hiera.yaml myvar
test
Fin qui tutto bene. Tuttavia, se provo a provare questo all'interno di un file manifest fantoccio, la variabile non può essere trovata e viene visualizzato un errore. Esempio di test:
$myvariable = hiera(myvar)
notice("My variable is: ${myvar}")
L'errore è:
Error: Could not find data item myvar in any Hiera data file and no default supplied at...
Se mi collego alla mia macchina tramite vagrant ssh, posso vedere che Vagrant sta montando la mia directory manifest su / tmp / vagrant-puppet-2. Se modifico il hiera.yamlfile e lo sostituisco :datadir:con il percorso completo /tmp/vagrant-puppet-2/manifests/configuration, i manifest di Puppet possono accedere ai miei dati Hiera. Posso farlo con un percorso relativo, però?
hiera.yamlfile, uno per l'uso con Vagrant e uno per l'uso con Puppet (in produzione)?