Các tệp / mẫu được chia sẻ giữa các sách dạy nấu ăn


11

Chúng tôi có nhiều sách dạy nấu ăn tham khảo cùng một tệp và mẫu và tự hỏi liệu có cách nào hợp lý để đảm bảo tất cả các tệp này là cùng một tệp để đảm bảo rằng không có lỗi nào không. Có thể có một tệp / mẫu duy nhất được tham chiếu bởi nhiều công thức nấu ăn / sách nấu ăn không? Tôi đã nghĩ về việc sử dụng symlink, tuy nhiên điều này sẽ không hiệu quả với chúng tôi vì Git không hỗ trợ chúng.

Câu trả lời:


17

Tài nguyên cookbook_file và mẫu hỗ trợ tham số "cookbook" chỉ định sách nấu ăn nào chứa tệp nguồn. Sau đó, bạn có thể tạo một cuốn sách nấu ăn "commons" trong đó các tệp đó sống như một thực thể duy nhất. Ví dụ:

% cookbooks/commons
cookbooks/commons
|-- files
|   `-- default
|       `-- master.conf
`-- templates
    `-- default
        `-- general.conf.erb

Giả sử bạn có hai sách dạy nấu ăn, thing1 và thing2, và cả hai đều sử dụng chúng. Các công thức nấu ăn có thể là:

# 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

Tuy nhiên, tôi sẽ hỏi tại sao bạn có sự trùng lặp giữa các loại chức năng khác nhau trong sách nấu ăn của bạn? Đó là, loại điều này có phù hợp với một nhà cung cấp / tài nguyên nhẹ tùy chỉnh mà bạn sử dụng không?


1
Cảm ơn bạn cho ví dụ cũng như các giải pháp khác. Đây là hoàn hảo!
gdurham
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.