Tôi muốn biết làm thế nào để thiết lập :datadir:
trong hiera.yaml
để sử dụng tối ưu với rối và Vagrant. Hiện tại tôi đang sử dụng vagrant 1.5.0 với virtualbox 4.2 trên Ubuntu 13.10 với một khách Ubuntu 12.04 đang chạy rối 3.1.1
Tôi đang cố gắng thiết lập một môi trường tương tự như bài đăng trên blog này, Puppet Best Practice: Môi trường cụ thể cấu hình . Cụ thể, Vagrantfile của tôi chứa:
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
Tôi có thể xác nhận rằng đó hiera_config_path
là chính xác, vì tôi gặp lỗi nếu tôi xóa hiera.yaml
.
puppet/hiera.yaml
chứa đựng:
---
:backends: yaml
:yaml:
:datadir: "manifests/configuration"
:hierarchy:
- "%{::clientcert}"
- "%{::environment}"
- "virtual_%{::is_virtual}"
- common
:logger: console
Và, hơn nữa, puppet/manifests/configuration/common.yaml
chứa:
---
myvar: "test"
Kiểm tra điều này từ dòng lệnh:
$ hiera -c hiera.yaml myvar
test
Càng xa càng tốt. Tuy nhiên, nếu tôi thử kiểm tra điều này từ trong tệp kê khai con rối, biến không thể tìm thấy và tôi gặp lỗi. Ví dụ kiểm tra:
$myvariable = hiera(myvar)
notice("My variable is: ${myvar}")
Lỗi là:
Error: Could not find data item myvar in any Hiera data file and no default supplied at...
Nếu tôi ssh vào máy của mình thông qua vagrant ssh
, tôi có thể thấy Vagrant đang gắn thư mục tệp kê khai của tôi tại / tmp / vagrant-Puppet-2. Nếu tôi chỉnh sửa hiera.yaml
tệp và thay thế :datadir:
bằng đường dẫn đầy đủ /tmp/vagrant-puppet-2/manifests/configuration
, thì bảng kê khai rối của tôi có thể truy cập dữ liệu Hiera của tôi. Tôi có thể làm điều này với một con đường tương đối, mặc dù?
hiera.yaml
tệp, một để sử dụng với vagrant và một để sử dụng với Puppet (trong sản xuất)?