chef berkshelf berksfile

Chef ''libro de cocina'' en Berksfile vs ''depende'' en metadata.rb



berkshelf (2)

¿Cuál es la diferencia entre agregar libros de cocina a Berksfile usando ''libro de cocina'' y agregar libros de cocina a metadata.rb usando ''depende''? Por ejemplo, si agrego a metadata.rb

depends ''nginx''

¿Necesito agregarlo a Berksfile usando

cookbook ''nginx''

?


Berksfile y metadata.rb tienen diferentes propósitos que resolver y aparecen en diferentes etapas del ciclo de vida del libro de cocina.

  1. Berksfile es para la gestión de dependencias para libros de cocina. Considere un caso en el que mi libro de cocina está usando un libro de cocina de la comunidad del chef supermercado . En este caso, primero necesito descargar el libro de cocina de la comunidad del supermercado y subirlo junto con mi propio libro de cocina al servidor de chef. Berksfile simplifica este flujo de trabajo para usted. Con un solo comando ( berks install ), descarga todos los libros de cocina dependientes (y sus libros de cocina dependientes - dependencias transitivas) de sus respectivas fuentes (puede ser del repositorio de git o de un supermercado). Con otro comando berks upload , carga todos estos libros de cocina al servidor chef. No tienes que subirlos individualmente con la knife cookbook upload . El papel de Berksfile en particular termina el ciclo de vida de los libros de cocina.

  2. metadata.rb es referido por chef-cliente mientras en realidad converge el nodo. Utiliza este archivo para descargar todos los libros de cocina requeridos del servidor de chef (asumiendo que estos libros de cocina ahora están disponibles en el servidor de chef mediante berkshelf o knife ) al nodo para completar con éxito la ejecución del cliente-chef.


El archivo Berks es específico de Berkshelf, mientras que el archivo de metadatos está integrado en Chef.

Agregar sus dependencias al archivo de metadatos permite que otras aplicaciones, como bibliotecario-chef o el supermercado, también lean sus dependencias.

Tenga en cuenta que Berkshelf también lee las dependencias de los metadatos, siempre que agregue la línea de metadata al archivo Berks.

Recomiendo encarecidamente especificar todas las dependencias en su archivo de metadatos y usar su archivo Berks para indicar dónde se guardan los libros de cocina específicos si no están disponibles en el supermercado (como Github o una ruta local).