Arquivos / modelos compartilhados entre livros de culinária

10

Temos vários livros de receitas que fazem referência aos mesmos arquivos e modelos, e estamos nos perguntando se existe uma maneira razoável de garantir que todos esses arquivos sejam iguais para garantir que nenhum deles fique desatualizado. É possível ter um único arquivo / modelo referenciado por várias receitas / livros de receitas? Pensei em usar links simbólicos, mas isso não funcionará para nós, pois o Git não os suporta.

    
por gdurham 08.08.2012 / 22:43

1 resposta

15

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?

    
por 09.08.2012 / 19:55