Chciałbym wiedzieć, jak skonfigurować :datadir:
w hiera.yaml
celu 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_path
jest 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.yaml
zawiera:
---
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.yaml
plik 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.yaml
plików, jednego do użycia z włóczęgą, a drugiego do użycia z Puppet (w produkcji)?