Existem muitas especificidades, mas o padrão geral que usamos é "quebrar e estender". A idéia geral é criar um livro de receitas que dependa do livro de receitas da comunidade, geralmente chamado mycompany_originalthing
, e depois fazer receitas include_recipe 'originalthing::whatever'
naquilo que chama, mas com mais itens adicionados antes / depois ou com chamadas para coisas como edit_resource
alterar recursos. Evite edit_resource
quando possível, pois isso leva ao código quebradiço, mas existe se você precisar. Você também pode usar livros de receitas de invólucro para definir atributos, subclasse ou agrupar recursos personalizados, etc.
Para o caso específico de "Preciso ajustar um modelo em uma receita da comunidade", seria assim:
include_recipe 'original::whatever'
edit_resource!(:template, '/path/to/something') do
source 'mytemplate.erb'
cookbook 'mycompany_original'
end
Você pode encontrar mais detalhes edit_resource
e amigos em https://coderanger.net/rewind/
Com os livros de receitas baseados em recursos personalizados em vez de receitas, as coisas podem ficar mais complexas, mas as especificidades dependem muito de como exatamente o livro de receitas que você está estendendo está escrito.