ผมอยากจะทราบวิธีการตั้งค่า:datadir:
ในhiera.yaml
การใช้งานที่เหมาะสมกับหุ่นและคนจรจัด ขณะนี้ฉันใช้ Vagrant 1.5.0 กับ virtualbox 4.2 บน Ubuntu 13.10 กับ Ubuntu 12.04 แขกที่ใช้งานหุ่นกระบอก 3.1.1
ฉันพยายามที่จะตั้งค่าสภาพแวดล้อมที่คล้ายกับการโพสต์บล็อกนี้หุ่นปฏิบัติที่ดีที่สุด: configs โดยเฉพาะ 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"
ทดสอบสิ่งนี้จาก commandline:
$ 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...
ถ้าฉัน ssh เข้าไปในเครื่องของฉันผ่านvagrant ssh
ฉันจะเห็นว่า Vagrant กำลังติดตั้งไดเรกทอรีรายการของฉันที่ / tmp / vagrant-puppet-2 หากฉันแก้ไขhiera.yaml
ไฟล์และแทนที่:datadir:
ด้วยพา ธ เต็มรูปแบบ/tmp/vagrant-puppet-2/manifests/configuration
หุ่นกระบอกของฉันจะสามารถเข้าถึงข้อมูล Hiera ของฉันได้ ฉันสามารถทำสิ่งนี้ด้วยเส้นทางสัมพัทธ์ได้ไหม?
hiera.yaml
ไฟล์หนึ่งไฟล์สำหรับใช้กับคนจรจัดและอีกหนึ่งไฟล์สำหรับใช้กับ Puppet (กำลังการผลิต)