แชร์ไฟล์ / แม่แบบระหว่างตำรา


11

เรามีตำราหลายเล่มซึ่งอ้างอิงไฟล์และแม่แบบเดียวกันและสงสัยว่ามีวิธีที่สมเหตุสมผลเพื่อให้แน่ใจว่าสิ่งเหล่านี้เป็นไฟล์เดียวกันเพื่อให้แน่ใจว่าไม่มีใครล้าสมัย เป็นไปได้หรือไม่ที่จะมีไฟล์ / เทมเพลตอ้างอิงหลายสูตร / ตำราอาหาร? ฉันคิดเกี่ยวกับการใช้ symlinks แต่สิ่งนี้จะไม่ได้ผลสำหรับเราเนื่องจาก Git ไม่สนับสนุนพวกเขา

คำตอบ:


17

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

อย่างไรก็ตามฉันจะถามว่าทำไมคุณถึงทำซ้ำระหว่างฟังก์ชั่นต่าง ๆ ในตำราของคุณ นั่นคือสิ่งนี้จะเหมาะสำหรับทรัพยากร / ผู้ให้บริการที่คุณใช้หรือไม่


1
ขอบคุณสำหรับตัวอย่างเช่นเดียวกับโซลูชันอื่น ๆ มันสมบูรณ์แบบ!
gdurham
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.