ฉันกำลังใช้ Vagrant ในการข้ามไปเริ่มต้นการกำหนดค่า Puppet เริ่มต้นและสับสนเกี่ยวกับวิธีรวม / เรียกใช้หลาย ๆ รายการ (นอกเหนือจาก site.pp เพียงอย่างเดียว) ในเวิร์กโฟลว์การดำเนินการหุ่นกระบอกโดยไม่ต้องแสดงรายการพิเศษลงในโมดูล
ในไดเรกทอรีหุ่นกระบอกที่ฉันชี้ไปที่ Vagrant (ดูด้านล่าง) ฉันมีสองรายการที่ฉันต้องการดำเนินการ: site.pp และ hierasetup.pp
config.vm.provision "puppet" do |puppet|
puppet.manifests_path = "puppet_files/manifests"
puppet.module_path = "puppet_files/modules"
puppet.manifest_file = "site.pp"
puppet.options = "--verbose --debug"
end
ขณะนี้ฉันมี site.pp เป็นรายการที่เรียก hierasetup.pp site.pp ของฉันมีลักษณะเช่นนี้:
File {
owner => 'root',
group => 'root',
mode => '0644',
}
import "hierasetup.pp"
include jboss
แต่ฉันได้รับข้อผิดพลาดเกี่ยวกับการคัดค้าน "นำเข้า" นี้:
คำเตือน: การใช้ 'นำเข้า' ถูกคัดค้านที่ /tmp/vagrant-puppet-1/manifests/site.pp:33 ดูhttp://links.puppetlabs.com/puppet-import-deprecation (ที่ grammar.ra: 610: ใน `_reduce_190 ')
ตาม URL อ้างอิงภายใต้ "สิ่งที่ต้องลองแทน" มีข้อความระบุว่า " ในการเก็บคำนิยามโหนดของคุณในไฟล์แยกต่างหากให้ระบุไดเรกทอรีเป็นรายการหลักของคุณ "
เพิ่มเติมเอกสารหุ่นนี้เกี่ยวกับรายการหลักพูดว่า:
" แนะนำ: หากคุณกำลังใช้รายการหลักอย่างหนักแทนที่จะใช้ ENC ให้พิจารณาเปลี่ยนการตั้งค่ารายการเป็น $ confdir / รายการซึ่งจะช่วยให้คุณสามารถแยกรหัสระดับบนสุดของคุณออกเป็นหลายไฟล์ขณะที่หลีกเลี่ยงคำหลักนำเข้า จะตรงกับพฤติกรรมของสภาพแวดล้อมที่เรียบง่าย "
ดูเหมือนว่า Puppet สามารถอ้างอิงไดเรกทอรีทั้งหมดแทนที่จะเป็นไฟล์รายการเฉพาะเช่นฉันคาดว่า Vagrant จะจัดเตรียมสิ่งนี้และอนุญาตให้ฉันวางบรรทัด " puppet.manifest_file =" site.pp "และชี้ไปที่ ไดเรกทอรีหลักแทนซึ่งจะมีการเรียกใช้ไฟล์ * .pp ทั้งหมดอย่างไรก็ตามการลบบรรทัดนั้นใน Vagrant เพียงสร้างการร้องเรียนเกี่ยวกับ "default.pp" ที่คาดหมายแทนเท่านั้น:
ตัวจัดสรร puppet: * รายการหุ่นกระบอกที่กำหนดค่าหายไป โปรดระบุเส้นทางไปยังรายการที่มีอยู่: /some/path/puppet_files/manifests/default.pp
ดังนั้น:
- ประการแรกฉันเข้าใจวิธี "ใหม่" (ไม่ใช่การนำเข้า) ของการโทรหลายรายการอย่างถูกต้องในไดเรกทอรีที่จะชี้ไปที่ไฟล์ * .pp ทั้งหมดภายในจะถูกดำเนินการหรือไม่
- และประการที่สอง Vagrant "ติด" กับการเปลี่ยนแปลงใหม่นี้เพื่อรองรับการอ้างอิงของไดเรกทอรีร่วมกับการคัดค้าน "หุ่นยนต์" ของ Puppet?
อัปเดต:ขอบคุณ Shane ปัญหาเกี่ยวกับ # 2 (โค้ดของ Vagrant ที่ไม่ได้รับอนุญาตให้ชี้ไปยังไดเรกทอรีหุ่นกระบอก) ได้รับการรายงานในเว็บไซต์ติดตามปัญหา GitHub ของ Vagrant และได้รับการแก้ไขตั้งแต่: https://github.com/mitchellh/vagrant / ปัญหา / 4169