Os recursos cookbook_file e template suportam um parâmetro "cookbook" que especifica qual livro de receitas contém o arquivo de origem. Então você poderia criar um livro de receitas "comuns" onde esses arquivos vivem como uma única entidade. Por exemplo:
% cookbooks/commons
cookbooks/commons
|-- files
| '-- default
| '-- master.conf
'-- templates
'-- default
'-- general.conf.erb
Suponha que você tenha dois livros de receitas, coisa1 e coisa2, e ambos os usam. As receitas podem ser:
# 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
No entanto, gostaria de perguntar por que você tem duplicação entre diferentes tipos de funcionalidade em seus livros de receitas? Ou seja, esse tipo de coisa seria adequado para um recurso / provedor personalizado que você usa?