cookbook_file และแหล่งข้อมูลแม่แบบสนับสนุนพารามิเตอร์ "ตำราอาหาร" ที่ระบุตำราอาหารที่มีไฟล์ต้นฉบับ จากนั้นคุณสามารถสร้างตำราอาหาร "สามัญ" ที่ไฟล์เหล่านั้นอาศัยอยู่เป็นเอนทิตีเดียว ตัวอย่างเช่น:
% cookbooks/commons
cookbooks/commons
|-- files
| `-- default
| `-- master.conf
`-- templates
`-- default
`-- general.conf.erb
สมมติว่าคุณมีตำราสองเล่ม, สิ่งที่ 1 และสิ่งที่ 2 และพวกเขาทั้งสองใช้สิ่งเหล่านี้ สูตรอาจจะ:
# thing1/recipes/default.rb
cookbook_file "/etc/thing1/master.conf" do
source "master.conf"
cookbook "commons"
end
template "/etc/thing1/general.conf" do
source "general.conf.erb"
cookbook "commons"
end
# thing2/recipes/default.rb
cookbook_file "/etc/thing2/like_master_but_different.conf" do
source "master.conf"
cookbook "commons"
end
template "/etc/thing2/not_as_general_as_you_think.conf" do
source "general.conf.erb"
cookbook "commons"
end
อย่างไรก็ตามฉันจะถามว่าทำไมคุณถึงทำซ้ำระหว่างฟังก์ชั่นต่าง ๆ ในตำราของคุณ นั่นคือสิ่งนี้จะเหมาะสำหรับทรัพยากร / ผู้ให้บริการที่คุณใช้หรือไม่