Os recursos cookbook_file e template suportam um parâmetro "cookbook" que especifica qual livro de receitas contém o arquivo de origem. Em seguida, você pode criar um livro de receitas "comum", 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 os dois os usem. 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, eu perguntaria 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 leve personalizado que você usa?