Я хотів би знати , як налаштувати :datadir:
в hiera.yaml
для оптимального використання з ляльковим і Vagrant. В даний час я використовую vagrant 1.5.0 з virtualbox 4.2 на Ubuntu 13.10 з гостьовою лялькою Ubuntu 12.04 3.1.1
Я намагаюся створити середовище, подібне до цієї публікації в блозі, Puppet Best Practices: Конфігурації для оточення . Зокрема, мій Vagrantfile містить:
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
Я можу підтвердити, що hiera_config_path
це правильно, оскільки я отримую помилку, якщо видаляю hiera.yaml
.
puppet/hiera.yaml
містить:
---
:backends: yaml
:yaml:
:datadir: "manifests/configuration"
:hierarchy:
- "%{::clientcert}"
- "%{::environment}"
- "virtual_%{::is_virtual}"
- common
:logger: console
І, далі, puppet/manifests/configuration/common.yaml
містить:
---
myvar: "test"
Тестування цього з командного рядка:
$ hiera -c hiera.yaml myvar
test
Все йде нормально. Однак якщо я спробую перевірити це в файлі маніфестового маніфесту, змінну неможливо знайти, і я отримаю помилку. Приклад тесту:
$myvariable = hiera(myvar)
notice("My variable is: ${myvar}")
Помилка:
Error: Could not find data item myvar in any Hiera data file and no default supplied at...
Якщо я заткнувся в свою машину через vagrant ssh
, я можу побачити, що Vagrant монтує мій каталог маніфестів за адресою / tmp / vagrant-puppet-2. Якщо я редагую hiera.yaml
файл і замінюю :datadir:
повний шлях /tmp/vagrant-puppet-2/manifests/configuration
, то мої маніфестні ляльки можуть отримати доступ до моїх даних Hiera. Чи можу я зробити це відносним шляхом?
hiera.yaml
файли, один для роботи з бродячим, а один для використання з лялькою (у виробництві)?