Ресурси cookbook_file та шаблону підтримують параметр "cookbook", який визначає, яка кулінарна книга містить вихідний файл. Тоді ви можете створити "спільну" кулінарну книгу, де ці файли живуть як єдине ціле. Наприклад:
% 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
Однак я б запитав, чому у ваших кулінарних книгах є дублювання різних функціональних можливостей? Тобто, чи підходила б така річ для користувальницького легкого ресурсу / постачальника, який ви використовуєте?