

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Paso 16: Actualizar el libro de recetas para utilizar libros de recetas de la comunidad
<a name="gettingstarted-cookbooks-community-cookbooks"></a>

**importante**  
El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los actuales. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en [AWS Re:post](https://repost.aws/) o a través de Premium [AWS Support](https://aws.amazon.com/support).

Por último, actualice el libro de recetas para utilizar la funcionalidad que se ofrece en un libro de recetas de Chef externo proporcionado por la comunidad. El libro de recetas externo que utilizará en este tutorial se encuentra disponible en [Chef Supermarket](https://supermarket.chef.io/), una conocida ubicación que ofrece acceso a libros de recetas de Chef externos. Este libro de recetas externo proporciona un recurso personalizado que permite descargar e instalar aplicaciones, similar a lo que hizo en [Paso 4: Actualizar el libro de recetas para instalar un paquete](gettingstarted-cookbooks-install-package.md), con la diferencia de que este recurso puede instalar aplicaciones web y de otros tipos, además de los paquetes.

Cuando un libro de recetas dependa de otro, debe especificar una dependencia en el otro libro de recetas. Para declarar y administrar las dependencias de libros de recetas, recomendamos utilizar una herramienta llamada Berkshelf. Para obtener más información sobre cómo instalar Berkshelf en la estación de trabajo local, consulte [About Berkshelf](https://docs.chef.io/berkshelf.html) en el sitio web de Chef.

Después de instalar Berkshelf, siga estos procedimientos para declarar la dependencia del libro de recetas y, a continuación, cree una receta que llame al recurso en el libro de recetas externo:

**Para declarar la dependencia del libro de recetas**

1. En la estación de trabajo local, en el directorio `opsworks_cookbook_demo`, añada la siguiente línea al final del archivo `metadata.rb`:

   ```
   depends "application", "5.0.0"
   ```

   Esto declara una dependencia en un libro de recetas denominado `application`, versión 5.0.0. 

1. Desde la raíz del directorio `opsworks_cookbook_demo`, ejecute el siguiente comando. El punto al final del comando es intencional.

   ```
   berks init .
   ```

   Berkshelf crea una serie de carpetas y archivos que se pueden utilizar posteriormente en escenarios más avanzados. El único archivo que necesitamos en este tutorial es el llamado `Berksfile`.

1. Añada la siguiente línea al final del archivo `Berksfile`: 

   ```
   cookbook "application", "5.0.0"
   ```

   Esto informa a Berkshelf de que se va a utilizar la [versión 5.0.0 del libro de recetas de la aplicación](https://supermarket.chef.io/cookbooks/application/versions/5.0.0), que Berkshelf descarga de Chef Supermarket.

1. En la línea de comandos o el terminal, ejecute el siguiente comando en la raíz del directorio `opsworks_cookbook_demo`:

   ```
   berks install
   ```

   Berkshelf crea una lista de las dependencias tanto para su libro de recetas como para el libro de recetas de la aplicación. Berkshelf utiliza esta lista de dependencias en el siguiente procedimiento.

**Para actualizar el libro de recetas en la instancia y ejecutar la nueva receta**

1. En el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `dependencies_demo.rb` que contenga el código siguiente:

   ```
   application "Install NetHack" do
     package "nethack.x86_64"
   end
   ```

   Esta receta depende del recurso de aplicación del recetario de la aplicación para instalar el popular juego de aventuras basado en texto en la instancia. NetHack (Puede sustituir otros nombres de paquetes siempre que estén a disposición del administrador de paquetes de la instancia).

1. Desde la raíz del directorio `opsworks_cookbook_demo`, ejecute el siguiente comando:

   ```
   berks package
   ```

   Berkshelf utiliza la lista de dependencias del procedimiento anterior para crear un archivo denominado `cookbooks-timestamp.tar.gz` que contiene el directorio `opsworks_cookbook_demo` y su contenido actualizado, incluidos los libros de recetas dependientes del libro de recetas. Cambie el nombre de este archivo `opsworks_cookbook_demo.tar.gz`. 

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado y renombrado en el bucket de S3.

1. Siga el procedimiento descrito en [Paso 5: Actualizar el libro de recetas en la instancia y ejecutar la receta](gettingstarted-cookbooks-copy-cookbook.md) para actualizar el libro de recetas en la instancia y ejecutar la receta. En el procedimiento "To run the recipe" para **Recipes to execute (Recetas para ejecutar)**, escriba **opsworks\$1cookbook\$1demo::dependencies\$1demo**.

1. Después de ejecutar la receta, debería tener la posibilidad de iniciar sesión en la instancia y escribir **nethack** en el símbolo del sistema para comenzar la reproducción. [(Para obtener más información sobre el juego, consulta [NetHack](https://en.wikipedia.org/wiki/NetHack)la NetHack Guía).](http://www.nethack.org/v343/Guidebook.html) 

En el [siguiente paso](gettingstarted-cookbooks-clean-up.md), puedes limpiar los AWS recursos que utilizaste para este tutorial. El siguiente paso es opcional. Es posible que desees seguir utilizando estos AWS recursos a medida que vayas aprendiendo más sobre OpsWorks Stacks. Sin embargo, conservar estos AWS recursos puede provocar algunos cargos continuos en tu AWS cuenta. Si quieres conservar estos AWS recursos para usarlos más adelante, ya has completado este tutorial y puedes pasar directamente a [Siguientes pasos](gettingstarted-cookbooks-next-steps.md) ellos.