Archivos / plantillas compartidas entre libros de cocina


11

Tenemos varios libros de cocina que hacen referencia a los mismos archivos y plantillas y nos preguntamos si hay una manera razonable de garantizar que todos estos sean el mismo archivo para garantizar que ninguno quede desactualizado. ¿Es posible tener un solo archivo / plantilla referenciada por múltiples recetas / libros de cocina? Pensé en usar enlaces simbólicos, sin embargo, esto no funcionará para nosotros ya que Git no los admite.

Respuestas:


17

Los recursos de plantilla y archivo de libro de cocina admiten un parámetro de "libro de cocina" que especifica qué libro de cocina contiene el archivo fuente. Luego, podría crear un libro de cocina "commons" donde esos archivos viven como una sola entidad. Por ejemplo:

% cookbooks/commons
cookbooks/commons
|-- files
|   `-- default
|       `-- master.conf
`-- templates
    `-- default
        `-- general.conf.erb

Supongamos que tiene dos libros de cocina, thing1 y thing2, y ambos los usan. Las recetas pueden 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

Sin embargo, me preguntaría por qué tiene duplicación entre diferentes tipos de funcionalidad en sus libros de cocina. Es decir, ¿sería este tipo de cosas adecuado para un recurso / proveedor ligero personalizado que utiliza?


1
Gracias por el ejemplo y por la otra solución. ¡Esto es perfecto!
gdurham
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.