Chciałbym wiedzieć, jak skonfigurować :datadir:w hiera.yamlcelu optymalnego wykorzystania z Lalki i Vagrant. Obecnie używam vagrant 1.5.0 z virtualbox 4.2 na Ubuntu 13.10 z gościem Ubuntu 12.04 z marionetką 3.1.1
Próbuję skonfigurować środowisko podobne do tego postu na blogu, Puppet Best Practices: Specyficzne dla środowiska konfiguracje . W szczególności mój plik Vagrantfile zawiera:
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
Mogę potwierdzić, że hiera_config_pathjest poprawny, ponieważ po usunięciu pojawia się błąd hiera.yaml.
puppet/hiera.yaml zawiera:
---
:backends: yaml
:yaml:
:datadir: "manifests/configuration"
:hierarchy:
- "%{::clientcert}"
- "%{::environment}"
- "virtual_%{::is_virtual}"
- common
:logger: console
Ponadto puppet/manifests/configuration/common.yamlzawiera:
---
myvar: "test"
Testowanie tego z wiersza poleceń:
$ hiera -c hiera.yaml myvar
test
Na razie w porządku. Jeśli jednak spróbuję to przetestować z poziomu pliku manifestu lalek, zmiennej nie można znaleźć i pojawia się błąd. Przykładowy test:
$myvariable = hiera(myvar)
notice("My variable is: ${myvar}")
Błąd jest następujący:
Error: Could not find data item myvar in any Hiera data file and no default supplied at...
Jeśli ssh do mojej maszyny za pośrednictwem vagrant ssh, widzę, że Vagrant instaluje mój katalog manifestu w / tmp / vagrant-puppet-2. Jeśli zmienię hiera.yamlplik i zastąpię :datadir:pełną ścieżką /tmp/vagrant-puppet-2/manifests/configuration, moje manifesty Marionetkowe będą miały dostęp do moich danych Hiera. Czy mogę to zrobić za pomocą ścieżki względnej?
hiera.yamlplików, jednego do użycia z włóczęgą, a drugiego do użycia z Puppet (w produkcji)?