Mi piacerebbe sapere come impostare :datadir:
in hiera.yaml
per 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.yaml
contiene:
---
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.yaml
file 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.yaml
file, uno per l'uso con Vagrant e uno per l'uso con Puppet (in produzione)?