

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.

# Cómo empezar con OpsWorks Stacks
<a name="gettingstarted_intro"></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).

OpsWorks Stacks ofrece un amplio conjunto de componentes personalizables que puedes mezclar y combinar para crear un stack que se adapte a tus propósitos específicos. El reto para los nuevos usuarios es comprender cómo aunar estos componentes en una pila que funcione y administrar dicha pila de forma eficaz. A continuación le mostramos cómo comenzar.


| Si desea… | Complete este tutorial: | 
| --- | --- | 
| Crear una pila de muestra lo más rápido posible | [Introducción: muestra](gettingstarted-intro.md)  | 
| Experimentar con una pila basada en Linux | [Introducción: Linux](gettingstarted-linux.md) | 
| Experimentar con una pila basada en Windows | [Introducción: Windows](gettingstarted-windows.md) | 
| Aprender a crear sus propios libros de recetas de Chef | [Introducción: Libros de recetas](gettingstarted-cookbooks.md) | 

Si tienes recursos informáticos existentes (instancias de Amazon o incluso EC2 instancias *locales* que se ejecutan en tu propio hardware), puedes [incorporarlos a una pila](registered-instances.md), junto con las instancias que hayas creado con Stacks. OpsWorks Luego, puedes usar OpsWorks Stacks para administrar todas las instancias relacionadas como un grupo, independientemente de cómo se hayan creado.

## Compatibilidad de la región
<a name="gettingstarted-intro-region"></a>

Puedes acceder a OpsWorks Stacks en todo el mundo; también puedes crear y administrar instancias en todo el mundo. Los usuarios pueden configurar las instancias de OpsWorks Stacks para que se lancen en cualquier AWS región, excepto AWS GovCloud (EE. UU. oeste) y China (Beijing). Para funcionar con OpsWorks Stacks, las instancias deben poder conectarse a uno de los siguientes puntos de enlace de la API del servicio de instancias de OpsWorks Stacks.

Los recursos pueden administrarse únicamente en la región en que se han creado. Los recursos que se crean en un punto de enlace regional no están disponibles en otro punto de enlace regional ni pueden clonarse en él. Puede lanzar instancias en cualquiera de las siguientes regiones.
+ Región del Este de EE. UU. (Ohio)
+ Región del Este de EE. UU (Norte de Virginia)
+ Región del Oeste de EE. UU (Oregón)
+ Región Oeste de EE. UU. (Norte de California)
+ Región de Canadá (centro) (solo API, no disponible para pilas creadas en Consola de administración de AWS.)
+ Región de Asia-Pacífico (Bombay)
+ Región de Asia-Pacífico (Singapur)
+ Región de Asia-Pacífico (Sídney)
+ Región de Asia-Pacífico (Tokio)
+ Región de Asia-Pacífico (Seúl)
+ Europe (Frankfurt) Region
+ Región de Europa (Irlanda)
+ Región de Europa (Londres)
+ Región Europa (París)
+ Región de América del Sur (São Paulo)

# Introducción a una pila de muestra
<a name="gettingstarted-intro"></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 existentes. 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).

Este tutorial muestra cómo usar OpsWorks Stacks para crear rápidamente un ejemplo de entorno de aplicación Node.js con solo unos pocos clics del ratón y sin necesidad de escribir código. Cuando haya terminado, dispondrá de una instancia de Amazon Elastic Compute Cloud (Amazon EC2) con Chef 12, un servidor HTTP Node.js y una aplicación web que podrá utilizar para interactuar con Twitter y dejar comentarios en una página web.

**nota**  
Como al completar este tutorial se crea automáticamente una instancia de tipo c3.large, no puede utilizar este tutorial, ni tampoco la herramienta de creación **Pila de muestra** de OpsWorks Stacks, en la [capa gratuita de AWS](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier-limits.html). [Si bien el uso de la herramienta de creación de **pilas de muestras** en una VPC crea una instancia t2.medium, actualmente no VPCs están disponibles en la capa gratuita.AWS](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier-limits.html)

# Paso 1: Completar los requisitos previos
<a name="gettingstarted-intro-prerequisites"></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).

Debe completar los siguientes pasos de configuración antes de iniciar el tutorial. Estos pasos de configuración incluyen abrir una AWS cuenta, crear un usuario administrativo y asignar permisos de acceso a Stacks. OpsWorks 

**Topics**
+ [Regístrate para obtener una Cuenta de AWS](#sign-up-for-aws)
+ [Creación de un usuario con acceso administrativo](#create-an-admin)
+ [Asignar permisos de acceso a servicios](#gettingstarted-intro-prerequisites-permissions)

## Regístrate para obtener una Cuenta de AWS
<a name="sign-up-for-aws"></a>

Si no tiene uno Cuenta de AWS, complete los siguientes pasos para crearlo.

**Para suscribirte a una Cuenta de AWS**

1. Abrir [https://portal.aws.amazon.com/billing/registro](https://portal.aws.amazon.com/billing/signup).

1. Siga las instrucciones que se le indiquen.

   Parte del procedimiento de registro consiste en recibir una llamada telefónica o mensaje de texto e indicar un código de verificación en el teclado del teléfono.

   Cuando te registras en un Cuenta de AWS, *Usuario raíz de la cuenta de AWS*se crea un. El usuario raíz tendrá acceso a todos los Servicios de AWS y recursos de esa cuenta. Como práctica recomendada de seguridad, asigne acceso administrativo a un usuario y utilice únicamente el usuario raíz para realizar [Tareas que requieren acceso de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS te envía un correo electrónico de confirmación una vez finalizado el proceso de registro. En cualquier momento, puede ver la actividad de su cuenta actual y administrarla accediendo a [https://aws.amazon.com/](https://aws.amazon.com/)y seleccionando **Mi cuenta**.

## Creación de un usuario con acceso administrativo
<a name="create-an-admin"></a>

Después de crear un usuario administrativo Cuenta de AWS, asegúrelo Usuario raíz de la cuenta de AWS AWS IAM Identity Center, habilite y cree un usuario administrativo para no usar el usuario root en las tareas diarias.

**Proteja su Usuario raíz de la cuenta de AWS**

1.  Inicie sesión [Consola de administración de AWS](https://console.aws.amazon.com/)como propietario de la cuenta seleccionando el **usuario root** e introduciendo su dirección de Cuenta de AWS correo electrónico. En la siguiente página, escriba su contraseña.

   Para obtener ayuda para iniciar sesión con el usuario raíz, consulte [Iniciar sesión como usuario raíz](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) en la *Guía del usuario de AWS Sign-In *.

1. Active la autenticación multifactor (MFA) para el usuario raíz.

   Para obtener instrucciones, consulte [Habilitar un dispositivo MFA virtual para el usuario Cuenta de AWS raíz (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) en la Guía del usuario de *IAM*.

**Creación de un usuario con acceso administrativo**

1. Activar IAM Identity Center.

   Consulte las instrucciones en [Activar AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) en la *Guía del usuario de AWS IAM Identity Center *.

1. En IAM Identity Center, conceda acceso administrativo a un usuario.

   Para ver un tutorial sobre su uso Directorio de IAM Identity Center como fuente de identidad, consulte [Configurar el acceso de los usuarios con la configuración predeterminada Directorio de IAM Identity Center en la](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html) Guía del *AWS IAM Identity Center usuario*.

**Inicio de sesión como usuario con acceso de administrador**
+ Para iniciar sesión con el usuario de IAM Identity Center, use la URL de inicio de sesión que se envió a la dirección de correo electrónico cuando creó el usuario de IAM Identity Center.

  Para obtener ayuda para iniciar sesión con un usuario del Centro de identidades de IAM, consulte [Iniciar sesión en el portal de AWS acceso](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) en la *Guía del AWS Sign-In usuario*.

**Concesión de acceso a usuarios adicionales**

1. En IAM Identity Center, cree un conjunto de permisos que siga la práctica recomendada de aplicar permisos de privilegios mínimos.

   Para conocer las instrucciones, consulte [Create a permission set](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-create-a-permission-set.html) en la *Guía del usuario de AWS IAM Identity Center *.

1. Asigne usuarios a un grupo y, a continuación, asigne el acceso de inicio de sesión único al grupo.

   Para conocer las instrucciones, consulte [Add groups](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html) en la *Guía del usuario de AWS IAM Identity Center *.

## Asignar permisos de acceso a servicios
<a name="gettingstarted-intro-prerequisites-permissions"></a>

Habilita el acceso al servicio OpsWorks Stacks (y a los servicios relacionados en los que se basa OpsWorks Stacks) añadiendo los `AmazonS3FullAccess` permisos `AWSOpsWorks_FullAccess` y permisos a tu rol o usuario.

Para obtener más información sobre cómo añadir permisos, consulte [Agregar permisos de identidad de IAM (consola).](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)

Ya ha completado todos los pasos de configuración y puede [comenzar el tutorial](gettingstarted-intro-create-stack.md).

# Paso 2: Crear una pila
<a name="gettingstarted-intro-create-stack"></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).

En este paso, usarás la consola de OpsWorks Stacks para crear una pila. Una *pila* es un conjunto de instancias (como EC2 las instancias de Amazon) y AWS recursos relacionados que tienen un propósito común y que se desean administrar juntos. (Para obtener más información, consulte [Pilas](workingstacks.md)). Solo habrá una única instancia en este tutorial.

Antes de comenzar con este paso, complete los [requisitos previos](gettingstarted-intro-prerequisites.md).

**Para crear la pila**

1. Inicie sesión en Consola de administración de AWS y abra la OpsWorks consola en [https://console.aws.amazon.com/opsworks/](https://console.aws.amazon.com/opsworks/).

1. Realice los pasos siguientes, si es necesario:
   + Si aparece la página de **bienvenida a OpsWorks Stacks**, selecciona **Añadir tu primera pila** o **Añadir tu primera pila de OpsWorks pilas** (ambas opciones tienen el mismo efecto). Se muestra la página **Add stack (Añadir pila)**.
   + Si aparece la página del **OpsWorks panel** de control, selecciona **Añadir** pila. Se muestra la página **Add stack (Añadir pila)**.

1. En la página **Add stack (Añadir pila)** que aparece, elija **Sample stack (Pila de muestra)** si no lo ha hecho ya.

1. Con **Linux** ya seleccionado como **Operating system type (Tipo de sistema operativo)**, elija **Create stack (Crear pila)**:

     
![\[Add stack interface with options for Sample stack, Chef 12 stack, and Chef 11 stack.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-add-stack-console.png)

   

1. OpsWorks Stacks crea una pila llamada **My Sample Stack (Linux).** OpsWorks Stacks también agrega todos los componentes necesarios para implementar la aplicación en la pila:
   + Una *capa*, que es un proyecto de conjunto de instancias. Especifica tareas como la configuración, recursos, paquetes instalados y grupos de seguridad de la instancia. (Para obtener más información, consulte [Capas](workinglayers.md)). La capa se denomina **Node.js App Server (Servidor de aplicación Node.js)**.
   + Una *instancia*, que en este caso es una EC2 instancia de Amazon Linux 2. (Para obtener más información acerca de las instancias , consulte [instancias](workinginstances.md).) El nombre de host de la instancia es **nodejs-server1**.
   + Una *aplicación*, que es el código que se va a ejecutar en la instancia. (Para obtener más información sobre las aplicaciones, consulte [Aplicaciones](workingapps.md)). La aplicación se denomina **Node.js Sample App (Aplicación de muestra Node.js)**.

1. **Una vez que OpsWorks Stacks haya creado la pila, selecciona **Explorar la pila** de **muestras para que aparezca la página My Sample Stack (Linux)** (si completas este tutorial varias veces, **My Sample Stack (Linux)** puede tener un número secuencial después, como **2 o 3**):**

     
![\[Checklist showing completed steps for setting up a sample stack with Node.js App Server.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-add-stack-explore-console.png)

   

En el [siguiente paso](gettingstarted-intro-start-instance.md), iniciará la instancia e implementará la aplicación en ella.

# Paso 3: Iniciar la instancia e implementar la aplicación
<a name="gettingstarted-intro-start-instance"></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).

Ahora que ya tiene una instancia y una aplicación, inicie la instancia e implemente la aplicación en ella.

**Para iniciar la instancia e implementar la aplicación**

1. Realice una de las siguientes acciones:
   + En el panel de navegación de servicio, seleccione **Instances (Instancias)**:

       
![\[Menu options including Stack, Layers, and Instances with Instances circled in red.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-nav-pane-console.png)

     
   + En la página **My Sample Stack (Linux) (Mi pila de muestra (Linux))**, elija **Instances (Instancias)**:

       
![\[AWS stack interface showing layers and instances, with one Node.js App Server instance stopped.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-instances-console.png)

     

1. En la página **Instances (Instancias)**, en **Node.js App Server (Servidor de aplicación Node.js)**, en **nodejs-server1**, elija **start (iniciar)**:

     
![\[Node.js App Server interface showing a stopped instance with start and delete options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-start-instance-console.png)

   

1. Continúe cuando el círculo **online** tenga un color verde brillante. (Si ve un mensaje de error, consulte la [Guía de depuración y solución de problemas](troubleshoot.md).)

1. A medida que se configura la instancia, OpsWorks Stacks despliega la aplicación en la instancia.

1. Antes de continuar, compruebe que los resultados tienen un aspecto similar a la siguiente captura de pantalla (si ve un mensaje de error, consulte la [Guía de depuración y solución de problemas](troubleshoot.md).):

     
![\[OpsWorks instance dashboard showing one online Node.js App Server instance.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-instance-started-console.png)

   

Ahora tiene una instancia con una aplicación que se ha implementada en ella.

En el [siguiente paso](gettingstarted-intro-test-app.md), probará la aplicación de la instancia.

# Paso 4: Probar la aplicación implementada en la instancia
<a name="gettingstarted-intro-test-app"></a>

**importante**  
El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha inhabilitado tanto para los clientes nuevos como para los existentes. 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).

Pruebe los resultados de la implementación de la aplicación en la instancia.

**Para probar la implementación en la instancia**

1. Mientras se muestra la página **Instances (Instancias)** del paso anterior, en **Node.js App Server (Servidor de aplicación Node.js)**, en **nodejs-server1**, en **Public IP (IP pública)**, elija la dirección IP.

     
![\[OpsWorks instance dashboard showing one online Node.js server in us-west-2a.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-instance-ip-console.png)

   

1. En la página web de felicitación, en el cuadro de texto **Leave a comment (Dejar un comentario)** introduzca un comentario y, a continuación, elija **Send (Enviar)** para probar la aplicación. La aplicación añade su comentario al sitio web. Siga dejando comentarios y elija **Send (Enviar)** tantas veces como desee.

     
![\[Congratulatory message for deploying first app with AWS OpsWorks, featuring stylized landmarks.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-test-app.png)

   

1. Si tienes una cuenta de Twitter, selecciona **Twittear** o **Seguir a @ AWSOps Works** y sigue las instrucciones que aparecen en pantalla para tuitear sobre la aplicación o seguir a @ Works. AWSOps

Ha probado correctamente la aplicación implementada en la instancia.

En los pasos restantes, puedes usar la consola de OpsWorks Stacks para explorar la configuración de la pila y sus componentes. En el [siguiente paso](gettingstarted-intro-explore-stack.md), podrá comenzar la exploración mediante el examen de la configuración de la pila.

# Paso 5: Explorar la configuración de la pila
<a name="gettingstarted-intro-explore-stack"></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).

Examina cómo las OpsWorks pilas configuran la pila.

**Para mostrar la configuración de la pila**

1. En la barra de navegación de servicio, elija **Stack (Pila)**. Se muestra la página **My Sample Stack (Linux) (Mi pila de muestra (Linux))**.

1. Elija **Stack Settings (Configuración de pila)**. La página **Settings My Sample Stack (Linux) (Configuración de mi pila de muestra (Linux))** muestra:

     
![\[Settings page for My Sample Stack (Linux) showing configuration details like region and OS.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-stack-page-console.png)

   

Para obtener más información sobre las opciones de configuración, elija **Edit (Editar)** y, a continuación, coloque el ratón sobre ellas. (No todas las opciones de configuración incluyen descripciones en pantalla). Para obtener más información sobre estas opciones, consulte [Crear una pila nueva](workingstacks-creating.md).

Para explorar el libro de cocina de Chef utilizado en este tutorial, abra el repositorio [opsworks-linux-demo-cookbooks-nodejs](https://github.com/awslabs/opsworks-linux-demo-cookbook-nodejs) en. GitHub

En el [siguiente paso](gettingstarted-intro-explore-layer.md), podrá explorar la configuración de la capa.

# Paso 6: Explorar la configuración de la capa
<a name="gettingstarted-intro-explore-layer"></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).

Examina cómo OpsWorks Stacks configura la capa.

**Para mostrar la configuración de la capa**

1. En el panel de navegación de servicio, elija **Layers (Capas)**. Se abre la página **Layers (Capas)**.

1. Elija **Node.js App Server (Servidor de aplicación Node.js)**. Se muestra la página **Layer Node.js App Server (Servidor de aplicación Node.js)**. Para ver la configuración de la capa, elija **General Settings (Configuración general)**, **Recipes (Recetas)**, **Network (Red)**, **EBS Volumes (Volúmenes EBS)** y **Security (Seguridad)**:

     
![\[Node.js App Server layer settings with name, short name, and configuration options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-layers-page-console.png)

   

Para obtener más información sobre las opciones de configuración, elija **Edit (Editar)** y, a continuación, coloque el ratón sobre ellas. (No todas las opciones de configuración incluyen descripciones en pantalla). Para obtener más información sobre estas opciones, consulte [Edición de la configuración de una capa OpsWorks](workinglayers-basics-edit.md).

En el [siguiente paso](gettingstarted-intro-explore-instance.md), podrá explorar la configuración y los logs de la instancia.

# Paso 7: Explorar la configuración y los logs de la instancia
<a name="gettingstarted-intro-explore-instance"></a>

**importante**  
El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha inhabilitado tanto para los clientes nuevos como para los existentes. 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).

Examina la configuración que OpsWorks Stacks usó para lanzar la instancia. También puedes examinar los registros de instancias que creó OpsWorks Stacks.

**Para mostrar la configuración y los logs de la instancia**

1. En el panel de navegación de servicio, seleccione **Instances (Instancias)**. Se muestra la página **Instances (Instancias)**.

1. En **Node.js App Server (Servidor de aplicación Node.js)**, elija **nodejs-server1**. Se abre la página de propiedades de la instancia.

     
![\[Details of a stopped Node.js server instance on AWS, showing configuration and resource information.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-instance-details-page-console.png)

   

1. Para explorar los logs de la instancia, en la sección **Logs (Registros)**, en **Log (Registro)**, elija **show (mostrar)**.

     
![\[Log entries showing configure and setup commands with timestamps and durations.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-instance-details-logs-console.png)

   

1. OpsWorks Stacks muestra el registro en una pestaña independiente del navegador web.

     
![\[Log output showing AWS OpsWorks instance startup and chef-client initialization process.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-instance-log-console.png)

   

Para obtener más información sobre lo que representan algunas opciones de configuración de la instancia, vuelva a la página **nodejs-server1**, elija **Stop (Detener)** y, cuando vea el mensaje de confirmación, elija **Stop (Detener)**. Elija **Edit (Editar)** una vez que **Status (Estado)** cambie de **stopping (deteniéndose)** a **stopped (detenido)** y, a continuación, coloque el ratón sobre las diferentes opciones de configuración. (No todas las opciones de configuración incluyen descripciones en pantalla). Para obtener más información sobre estas opciones, consulte [Añadir una instancia a una capa](workinginstances-add.md).

Cuando haya terminado de revisar la configuración, elija **Start (Iniciar)** para reiniciar la instancia y espere hasta que **Status (Estado)** cambie a **online**. De lo contrario, no podrá probar la aplicación más tarde, ya que la instancia permanecerá detenida.

**nota**  
Si quieres iniciar sesión en la instancia para explorarla más a fondo, primero debes proporcionar a OpsWorks Stacks información sobre tu clave SSH pública (que puedes crear con herramientas como ssh-keygen o PuTTYgen) y, después, debes configurar los permisos en la **pila My Sample Stack (Linux)** para que el usuario pueda iniciar sesión en la instancia. Para obtener instrucciones, consulte [Registro de la clave pública SSH de un usuario](security-settingsshkey.md) y [Inicio de sesión con SSH](workinginstances-ssh.md).

En el [siguiente paso](gettingstarted-intro-explore-app.md), explorará la configuración de la aplicación.

# Paso 8: Explorar la configuración de la aplicación
<a name="gettingstarted-intro-explore-app"></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).

Examina la configuración que OpsWorks Stacks usó para la aplicación.

**Para mostrar la configuración de la aplicación**

1. En el panel de navegación de servicio, elija **Apps (Aplicaciones)**. Se abre la página **Apps (Aplicaciones)**.

1. Elija **Node.js Sample App (Aplicación de muestra Node.js)**. La página **App Node.js Sample App (Aplicación de muestra Node.js)** muestra:

     
![\[Node.js Sample App settings page showing app details, source, and data sources.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-app-details-page-console.png)

   

Para obtener más información sobre lo que representan algunas de las opciones de configuración, elija **Edit (Editar)** y, a continuación, coloque el ratón sobre ellas. (No todas las opciones de configuración incluyen descripciones en pantalla). Para obtener más información sobre la configuración, consulte [Agregar aplicaciones](workingapps-creating.md).

En el [siguiente paso](gettingstarted-intro-explore-monitoring.md), podrá explorar los informes de monitorización de la capa.

# Paso 9: Explorar los informes de monitorización de la capa
<a name="gettingstarted-intro-explore-monitoring"></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).

Examine los informes que OpsWorks Stacks genera sobre el rendimiento informático de la capa.

**Para mostrar los informes de monitorización de la capa**

1. En el panel de navegación de servicio, seleccione **Monitoring (Monitorización)**. Se muestra la página **Monitoring Layers (Capas de monitorización)**.

1. Para explorar otras vistas, elija la flecha que aparece junto a **CPU**, **Memory (Memoria)**, **Load (Cargar)** y la hora:  
![\[Monitoring Layers dashboard showing CPU, Memory, Load, and Processes metrics with expandable options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-monitoring-page-console.png)

Para obtener más información sobre estos y otros informes, consulte [Uso de Amazon CloudWatch](monitoring-cloudwatch.md) y [Supervisión](monitoring.md).

En el [siguiente paso](gettingstarted-intro-explore-more.md), podrá explorar la configuración de la pila adicional.

# Paso 10: Explorar la configuración de la pila adicional
<a name="gettingstarted-intro-explore-more"></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).

En este paso, puede examinar la configuración de la pila adicional.

OpsWorks ****Stacks no implementó despliegues separados, no proporcionó recursos adicionales ni ajustó permisos adicionales como parte de este paquete, por lo que no hay mucho interés en las páginas de **despliegues y comandos, recursos y** permisos.**** Si a pesar de esto desea ver esta configuración, elija **Deployments (Implementaciones)**, **Resources (Recursos)** y **Permissions (Permisos)** en el panel de navegación de servicio, respectivamente. Para obtener más información sobre estas páginas, consulte [Implementación de aplicaciones](workingapps-deploying.md), [Administración de recursos](resources.md)y [Administración de permisos de usuario](opsworks-security-users.md).

En el [siguiente paso](gettingstarted-intro-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-intro-next-steps.md) ellos.

# Paso 11 (opcional): eliminación
<a name="gettingstarted-intro-clean-up"></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).

Para evitar incurrir en cargos adicionales en tu AWS cuenta, puedes eliminar la aplicación y los AWS recursos que se usaron en este tutorial, incluidas la instancia y la pila de Stacks. OpsWorks [(Para obtener más información, consulta OpsWorks los precios).](https://aws.amazon.com/opsworks/pricing/) Sin embargo, es posible que desees seguir utilizando estos AWS recursos a medida que sigas aprendiendo más sobre OpsWorks Stacks. Si quieres mantener estos AWS recursos disponibles, ya has completado este tutorial y puedes pasar directamente a ellos. [Siguientes pasos](gettingstarted-intro-next-steps.md)

El contenido almacenado en los recursos que creó para este tutorial puede incluir información de identificación personal. Si ya no desea que AWS almacene esta información, siga los pasos de este tema.

**Para eliminar la aplicación de la pila**

1. En el panel de navegación de servicio, elija **Apps (Aplicaciones)**. Se abre la página **Apps (Aplicaciones)**.

1. En **Node.js Sample App (Aplicación de muestra Node.js)**, en **Actions (Acciones)**, elija **delete (eliminar)**. Cuando vea el mensaje de confirmación, elija **Delete (Eliminar)**. Cuando elimine la aplicación, verá el mensaje **No apps (Sin aplicaciones)**.

**Para eliminar la instancia de la pila**

1. En el panel de navegación de servicio, seleccione **Instances (Instancias)**. Se muestra la página **Instances (Instancias)**.

1. En **Node.js App Server (Servidor de aplicaciones Node.js)**, en **nodejs-server1**, en **Actions (Acciones)**, elija **stop (detener)**. Cuando vea el mensaje de confirmación, elija **Stop (Detener)**.

   Este proceso puede tardar unos minutos. Cuando OpsWorks Stacks haya terminado, se mostrarán los siguientes resultados.

     
![\[Node.js App Server instance details showing one stopped server in us-west-2a.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-example-instance-stopped-console.png)

   

1. En **Actions (Acciones)**, seleccione **delete (eliminar)**. Cuando vea el mensaje de confirmación, elija **Delete (Eliminar)**. La instancia se elimina y aparece el mensaje **No instances (Sin instancias)**.

**Para eliminar la pila**

1. En el panel de navegación de servicio, elija **Stack (Pila)**. Se muestra la página **My Sample Stack (Linux) (Mi pila de muestra (Linux))**.

1. Elija **Delete Stack**. Cuando vea el mensaje de confirmación, elija **Delete (Eliminar)**. Se elimina la pila y se muestra la página del **OpsWorkspanel** de control.

Si lo desea, puede eliminar el usuario y el EC2 key pair de claves de Amazon que utilizó en este tutorial si no quiere volver a utilizarlos para acceder a otros AWS servicios e EC2 instancias. Para obtener instrucciones, consulte [Eliminar un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) y [pares de EC2 claves e instancias de Linux de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair).

Ha completado este tutorial. Para obtener más información, consulte [Siguientes pasos](gettingstarted-intro-next-steps.md).

# Siguientes pasos
<a name="gettingstarted-intro-next-steps"></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).

Ahora que has completado este tutorial, puedes obtener más información sobre el uso de Stacks: OpsWorks 
+ Practica la recreación manual de esta pila por ti mismo con Stacks. OpsWorks Consulte [Introducción: Linux](gettingstarted-linux.md).
+ Explora el libro de cocina y la aplicación que OpsWorks Stacks usó para este tutorial. Consulte [Más información: explorar el libro de recetas utilizado en este tutorial](gettingstarted-linux-explore-cookbook.md) y [Más información: explorar la aplicación utilizada en este tutorial](gettingstarted-linux-explore-app-source.md) en el tutorial [Introducción: Linux](gettingstarted-linux.md) complementario.
+ Practica cómo usar OpsWorks Stacks con instancias de Windows. Consulte [Introducción: Windows](gettingstarted-windows.md).
+ Para obtener más información sobre las pilas, consulte [Crear una pila nueva](workingstacks-creating.md).
+ Para obtener más información sobre las capas, consulte [Edición de la configuración de una capa OpsWorks](workinglayers-basics-edit.md).
+ Para obtener más información sobre las instancias, consulte [Añadir una instancia a una capa](workinginstances-add.md).
+ Para obtener más información sobre las aplicaciones, consulte [Implementación de aplicaciones](workingapps-deploying.md).
+ Obtener más información sobre [Cookbooks and Recipes](workingcookbook.md).
+ Cree sus propios libros de recetas. Consulte [Introducción: Libros de recetas](gettingstarted-cookbooks.md).
+ Para obtener más información sobre cómo controlar el acceso a las pilas, consulte [Seguridad y permisos](workingsecurity.md).

# Introducción a Linux Stacks
<a name="gettingstarted-linux"></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 existentes. 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).

En este tutorial, aprenderás a usar OpsWorks Stacks para crear un entorno de aplicaciones en Node.js. Cuando termines, tendrás una instancia de Amazon Elastic Compute Cloud (Amazon EC2) con Chef 12, un servidor HTTP Node.js y una aplicación web que podrás usar para interactuar con Twitter y dejar comentarios en una página web.

Chef es un marco de terceros para configurar y mantener los servidores, como las EC2 instancias, y para implementar y mantener las aplicaciones en esos servidores. Si no estás familiarizado con Chef, después de completar este tutorial, te recomendamos que obtengas más información sobre Chef para que puedas aprovechar al máximo todo lo que OpsWorks Stacks tiene para ofrecer. (Para obtener más información, consulte el sitio web [Learn Chef](https://learn.chef.io/)).

OpsWorks Stacks es compatible con cuatro distribuciones de Linux: Amazon Linux, Ubuntu Server, CentOS y Red Hat Enterprise Linux. Para este tutorial, utilizamos Ubuntu Server. OpsWorks Stacks también funciona con Windows Server. Aunque tenemos un tutorial equivalente para Windows Server Stacks, le recomendamos que lo complete primero para aprender los conceptos básicos sobre OpsWorks Stacks y Chef que no se repiten allí. Después de completar este tutorial, consulte el tutorial [Introducción: Windows](gettingstarted-windows.md).



**Topics**
+ [Paso 1: Completar los requisitos previos](gettingstarted-linux-prerequisites.md)
+ [Paso 2: Crear una pila](gettingstarted-linux-create-stack.md)
+ [Paso 3: Añadir una capa a la pila](gettingstarted-linux-add-layer.md)
+ [Paso 4: Especificar la aplicación a implementar en la instancia](gettingstarted-linux-specify-app.md)
+ [Paso 5: Lanzamiento de una instancia](gettingstarted-linux-launch-instance.md)
+ [Paso 6: Implementar la aplicación en la instancia](gettingstarted-linux-deploy-app.md)
+ [Paso 7: Probar la aplicación implementada en la instancia](gettingstarted-linux-test-app.md)
+ [Paso 8 (opcional): eliminación](gettingstarted-linux-clean-up.md)
+ [Siguientes pasos](gettingstarted-linux-next-steps.md)
+ [Más información: explorar el libro de recetas utilizado en este tutorial](gettingstarted-linux-explore-cookbook.md)
+ [Más información: explorar la aplicación utilizada en este tutorial](gettingstarted-linux-explore-app-source.md)

# Paso 1: Completar los requisitos previos
<a name="gettingstarted-linux-prerequisites"></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 existentes. 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).

Complete los siguientes pasos de configuración antes de comenzar el tutorial. Estos pasos de configuración incluyen abrir una AWS cuenta, crear un usuario administrativo y asignar permisos de acceso a Stacks. OpsWorks 

Si ha finalizado el tutorial [Introducción: muestra](https://docs.aws.amazon.com/opsworks/latest/userguide/gettingstarted-intro.html), habrá cumplido los requisitos previos de este tutorial y podrá pasar directamente a [Paso 2: Crear una pila](gettingstarted-linux-create-stack.md).

**Topics**
+ [Regístrate para obtener una Cuenta de AWS](#sign-up-for-aws)
+ [Creación de un usuario con acceso administrativo](#create-an-admin)
+ [Asignar permisos de acceso a servicios](#gettingstarted-linux-prerequisites-permissions)

## Regístrate para obtener una Cuenta de AWS
<a name="sign-up-for-aws"></a>

Si no tiene uno Cuenta de AWS, complete los siguientes pasos para crearlo.

**Para suscribirte a una Cuenta de AWS**

1. Abrir [https://portal.aws.amazon.com/billing/registro](https://portal.aws.amazon.com/billing/signup).

1. Siga las instrucciones que se le indiquen.

   Parte del procedimiento de registro consiste en recibir una llamada telefónica o mensaje de texto e indicar un código de verificación en el teclado del teléfono.

   Cuando te registras en un Cuenta de AWS, *Usuario raíz de la cuenta de AWS*se crea un. El usuario raíz tendrá acceso a todos los Servicios de AWS y recursos de esa cuenta. Como práctica recomendada de seguridad, asigne acceso administrativo a un usuario y utilice únicamente el usuario raíz para realizar [Tareas que requieren acceso de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS te envía un correo electrónico de confirmación una vez finalizado el proceso de registro. En cualquier momento, puede ver la actividad de su cuenta actual y administrarla accediendo a [https://aws.amazon.com/](https://aws.amazon.com/)y seleccionando **Mi cuenta**.

## Creación de un usuario con acceso administrativo
<a name="create-an-admin"></a>

Después de crear un usuario administrativo Cuenta de AWS, asegúrelo Usuario raíz de la cuenta de AWS AWS IAM Identity Center, habilite y cree un usuario administrativo para no usar el usuario root en las tareas diarias.

**Proteja su Usuario raíz de la cuenta de AWS**

1.  Inicie sesión [Consola de administración de AWS](https://console.aws.amazon.com/)como propietario de la cuenta seleccionando el **usuario root** e introduciendo su dirección de Cuenta de AWS correo electrónico. En la siguiente página, escriba su contraseña.

   Para obtener ayuda para iniciar sesión con el usuario raíz, consulte [Iniciar sesión como usuario raíz](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) en la *Guía del usuario de AWS Sign-In *.

1. Active la autenticación multifactor (MFA) para el usuario raíz.

   Para obtener instrucciones, consulte [Habilitar un dispositivo MFA virtual para el usuario Cuenta de AWS raíz (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) en la Guía del usuario de *IAM*.

**Creación de un usuario con acceso administrativo**

1. Activar IAM Identity Center.

   Consulte las instrucciones en [Activar AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) en la *Guía del usuario de AWS IAM Identity Center *.

1. En IAM Identity Center, conceda acceso administrativo a un usuario.

   Para ver un tutorial sobre su uso Directorio de IAM Identity Center como fuente de identidad, consulte [Configurar el acceso de los usuarios con la configuración predeterminada Directorio de IAM Identity Center en la](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html) Guía del *AWS IAM Identity Center usuario*.

**Inicio de sesión como usuario con acceso de administrador**
+ Para iniciar sesión con el usuario de IAM Identity Center, use la URL de inicio de sesión que se envió a la dirección de correo electrónico cuando creó el usuario de IAM Identity Center.

  Para obtener ayuda para iniciar sesión con un usuario del Centro de identidades de IAM, consulte [Iniciar sesión en el portal de AWS acceso](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) en la *Guía del AWS Sign-In usuario*.

**Concesión de acceso a usuarios adicionales**

1. En IAM Identity Center, cree un conjunto de permisos que siga la práctica recomendada de aplicar permisos de privilegios mínimos.

   Para conocer las instrucciones, consulte [Create a permission set](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-create-a-permission-set.html) en la *Guía del usuario de AWS IAM Identity Center *.

1. Asigne usuarios a un grupo y, a continuación, asigne el acceso de inicio de sesión único al grupo.

   Para conocer las instrucciones, consulte [Add groups](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html) en la *Guía del usuario de AWS IAM Identity Center *.

## Asignar permisos de acceso a servicios
<a name="gettingstarted-linux-prerequisites-permissions"></a>

Habilita el acceso al servicio OpsWorks Stacks (y a los servicios relacionados en los que se basa OpsWorks Stacks) añadiendo los `AmazonS3FullAccess` permisos `AWSOpsWorks_FullAccess` y permisos a tu rol o usuario.

Para obtener más información sobre cómo añadir permisos, consulte [Agregar permisos de identidad de IAM (consola).](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)

Ya ha completado todos los pasos de configuración y puede [comenzar el tutorial](gettingstarted-linux-create-stack.md).

# Paso 2: Crear una pila
<a name="gettingstarted-linux-create-stack"></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 existentes. 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).

Usarás la consola de OpsWorks Stacks para crear una pila. Una *pila* es un conjunto de instancias y AWS recursos relacionados que tienen un propósito común y que deseas administrar juntos. (Para obtener más información, consulte [Pilas](workingstacks.md)). En este tutorial solo haya una instancia.

Antes de comenzar, complete los [requisitos previos](gettingstarted-linux-prerequisites.md), si no lo ha hecho todavía.

**Para crear la pila**

1. Inicie sesión en Consola de administración de AWS y abra la OpsWorks consola en [https://console.aws.amazon.com/opsworks/](https://console.aws.amazon.com/opsworks/).

1. Realice los pasos siguientes, si es necesario:
   + Si aparece la página de **bienvenida a OpsWorks Stacks**, selecciona **Añadir tu primera pila** o **Añadir tu primera pila de OpsWorks pilas** (ambas opciones tienen el mismo efecto). Se muestra la página **Add stack (Añadir pila)**.
   + Si aparece la página del **OpsWorks panel** de control, selecciona **Añadir** pila. Se muestra la página **Add stack (Añadir pila)**.

1. En la página **Add stack (Añadir pila)** que aparece, elija **Chef 12 stack (Pila de Chef 12)** si no lo ha hecho ya.

1. En el cuadro **Stack name (Nombre de pila)**, escriba un nombre, por ejemplo, **MyLinuxDemoStack**. (Puede usar otro nombre, pero asegúrese de cambiarlo por `MyLinuxDemoStack` para este tutorial.)

1. En **Región**, elija la región **Oeste de EE. UU. (Oregón)**.

1. En **VPC**, realice una de las siguientes operaciones:
   + Si hay una VPC disponible, selecciónela. (Para obtener más información, consulte [Ejecución de una pila en una VPC](workingstacks-vpc.md)).
   + En caso contrario, elija **No VPC**.

1. En **Default operating system (Sistema operativo predeterminado)**, elija **Linux** y **Ubuntu 18.04 LTS**.

1. En **Use custom Chef cookbooks (Usar libros de recetas de Chef personalizados)**, elija **Yes (Sí)**.

1. En **Repository type (Tipo de repositorio)**, elija **Http Archive (Archivo Http)**.

1. En **Repository URL (URL de repositorio)**, escriba **https://s3.amazonaws.com/opsworks-demo-assets/opsworks-linux-demo-cookbooks-nodejs.tar.gz**

1. Mantenga la configuración predeterminada de los siguientes campos:
   + **Default Availability Zone (Zona de disponibilidad predeterminada)** (**us-west-2a**)
   + **Default SSH key (Clave SSH predeterminada)** (**Do not use a default SSH key (No utilizar una clave SSH predeterminada)**)
   + **User name (Nombre de usuario)** (en blanco)
   + **Password (Contraseña)** (en blanco)
   + **Stack color (Color de pila)** (azul oscuro)

1. Seleccione **Avanzado**.

1. En **rol de IAM**, haga una de las siguientes acciones (para obtener más información, consulte [¿Permitir que OpsWorks Stacks actúe en tu nombre](opsworks-security-servicerole.md)):
   + Si **aws-opsworks-service-role** está disponible, elíjalo.
   + Si no **aws-opsworks-service-role**está disponible, elija **Nueva función de IAM**.

1. En **perfil de instancia de IAM predeterminado**, haga una de las siguientes acciones (para obtener más información, consulte [Especificar los permisos para las aplicaciones que se ejecutan en instancias EC2](opsworks-security-appsrole.md)):
   + Si hay **aws-opsworks-ec2 roles** disponibles, elíjalos.
   + Si la **aws-opsworks-ecfunción 2** no está disponible, elija un **nuevo perfil de instancia de IAM.**

1. En **API endpoint region (Región de punto de enlace de la API)**, elija el punto de enlace de la API regional con la que desea asociar la pila. Si desea que la pila se encuentre en la región Oeste de EE. UU. (Oregón) dentro del punto de conexión regional Este de EE. UU. (Norte de Virginia), elija **us-east-1**. Si desea que la pila se encuentre en la región Oeste de EE. UU. (Oregón) pero que también esté asociada con el punto de conexión regional Oeste de EE. UU. (Oregón), elija **us-west-2**.
**nota**  
El punto final regional de EE. UU. Este (Virginia del Norte) incluye versiones anteriores Regiones de AWS para garantizar la compatibilidad con versiones anteriores, pero se recomienda elegir el punto de enlace regional más cercano al lugar de administración. AWS Para obtener más información, consulte [Compatibilidad de la región](gettingstarted_intro.md#gettingstarted-intro-region).

1. Mantenga la configuración predeterminada de los siguientes campos:
   + **Default root device type (Tipo de dispositivo raíz predeterminado)** (**EBS backed (Respaldada por EBS)**)
   + **Hostname theme (Tema de nombre de host)** (**Layer Dependent (Dependiente de capa)**)
   + **OpsWorks Versión del agente** (versión más reciente)
   + **Custom JSON (JSON personalizado)** (en blanco)
   + **Utilice grupos OpsWorks de seguridad** (**sí**)

1. Los resultados deberían coincidir con las siguientes capturas de pantalla, excepto quizás **VPC**, **rol de IAM** y **Rol de IAM para el perfil de instancia predeterminado**:

     
![\[AWS OpsWorks Stacks interface for creating a Chef 12 stack with configuration options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-add-stack-top-console.png)

     
![\[AWS OpsWorks stack configuration form with repository, IAM, and security options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-add-stack-bottom-console.png)

   

1. Elija **Agregar pila**. OpsWorks Stacks crea la pila y muestra la **MyLinuxDemoStack**página.

Ahora dispone de una pila con la configuración correcta para este tutorial.

En el [siguiente paso](gettingstarted-linux-add-layer.md), añadirá una capa a la pila.

# Paso 3: Añadir una capa a la pila
<a name="gettingstarted-linux-add-layer"></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 existentes. 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).

 Una *capa* es un modelo para un conjunto de instancias, como las EC2 instancias de Amazon. Una capa especifica información como la configuración de la instancia, los recursos, los paquetes instalados y los grupos de seguridad. A continuación, añada una capa a la pila. (Para obtener más información acerca de las capas, consulte [Capas](workinglayers.md).)

**Para añadir la capa a la pila**

1. Con la **MyLinuxDemoStack**página mostrada en el paso anterior, en **Capas**, selecciona **Añadir una capa**: 

     
![\[Layers section with icon and description, highlighting "Add a layer" option.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-add-layer-console.png)

   

1. Se abre la página **Add Layer (Añadir capa)**. En la **OpsWorks**pestaña, en **Nombre**, escriba**MyLinuxDemoLayer**. (Puede usar otro nombre, pero asegúrese de cambiarlo por `MyLinuxDemoLayer` para este tutorial.)

1. En **Short name (Nombre corto)**, escriba **demo** (puede escribir un valor diferente, pero asegúrese de cambiarlo por `demo` para este tutorial):

     
![\[Form to add a layer with fields for name and short name, and options for OpsWorks, ECS, and RDS.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-add-layer-page-console.png)

   

1. Seleccione **Añadir capa**. OpsWorks Stacks crea la capa y muestra la página de **capas**.

1. En la página **Capas**, para **MyLinuxDemoLayer**, elija **Red**.

1. En la pestaña **Network (Red)**, en **Automatically Assign IP Addresses (Asignar automáticamente direcciones IP)**, compruebe que la opción **Public IP addresses (Direcciones IP públicas)** está establecida en **yes (sí)**. Si ha realizado cambios, elija **Save (Guardar)**.  
![\[Network settings showing Public IP addresses set to yes and Elastic IP addresses set to No.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/add_layer_publicip.png)

1. En la página **Layers (Capas)**, elija **Security (Seguridad)**:

     
![\[AWS Layers interface showing MyLinuxDemoLayer with Security tab highlighted.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-layer-page-console.png)

   

1. La MyLinuxDemoLayer página de **capas** se muestra con la pestaña **Seguridad** abierta. Para **los grupos de seguridad**, elija **AWS- OpsWorks -** yWebApp, a continuación, seleccione **Guardar**:

     
![\[Security settings interface showing security group selection and EC2 instance profile options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-layer-security-console.png)

   

1. Se añade el grupo de seguridad `AWS-OpsWorks-WebApp` a la capa. (Este grupo de seguridad permite a los usuarios conectarse a la aplicación en la instancia más adelante en este tutorial. Sin este grupo de seguridad, los usuarios recibirán un mensaje en su navegador web que les indicará que no pueden conectarse a la instancia).

Ahora tiene una capa con la configuración correcta para este tutorial.

En el [siguiente paso](gettingstarted-linux-specify-app.md), especificará la aplicación que va a implementar en la instancia. 

# Paso 4: Especificar la aplicación a implementar en la instancia
<a name="gettingstarted-linux-specify-app"></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 existentes. 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).

Cuéntale a OpsWorks Stacks la aplicación que vas a implementar en la instancia más adelante en este tutorial. En este contexto, OpsWorks Stacks define una *aplicación* como el código que deseas ejecutar en una instancia. (Para obtener más información, consulte [Aplicaciones](workingapps.md)).

El procedimiento de esta sección es aplicable a pilas de Chef 12 y más recientes. Para obtener más información sobre cómo añadir aplicaciones a las capas en las pilas de Chef 11, consulte [Paso 2.4: Crear e implementar una aplicación - Chef 11](gettingstarted-simple-app.md).

**Para especificar la aplicación a implementar**

1. En el panel de navegación de servicio, elija **Apps (Aplicaciones)**:

     
![\[Navigation menu with options including Stack, Layers, Instances, and Apps highlighted.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-nav-pane-console.png)

   

1. Se abre la página **Apps (Aplicaciones)**. Elija **Add an app (Añadir una aplicación)**. Se abre la página **Add App (Añadir aplicación)**.

1. En **Settings**, en **Name (Nombre)**, escriba **MyLinuxDemoApp**. (Puede usar otro nombre, pero asegúrese de cambiarlo por `MyLinuxDemoApp` para este tutorial.)

1. En **Application Source (Origen de aplicación)**, en **Repository URL (URL de repositorio)**, escriba **https://github.com/awslabs/opsworks-windows-demo-nodejs.git**

1. Mantenga la configuración predeterminada de los siguientes campos:
   + **Settings (Configuración)**, **Document root (Raíz de documento)** (en blanco)
   + **Data Sources (Orígenes de datos)**, **Data source type (Tipo de origen de datos)** (**None (Ninguno)**)
   + **Repository type (Tipo de repositorio)** (**Git**)
   + **Repository SSH key (Clave SSH del repositorio)** (en blanco)
   + **Branch/Revision (Ramificación/Revisión)** (en blanco)
   + **Environment Variables (Variables de entorno)** (**KEY (CLAVE)** en blanco, **VALUE (VALOR)** en blanco, **Protected Value (Valor protegido)** sin marcar)
   + **Add Domains (Añadir dominios)**, **Domain Name (Nombre de dominio)** (en blanco)
   + **SSL Settings (Configuración de SSL)**, **Enable SSL (Activar SSL)** (**No**)

     
![\[Add App form with settings for name, document root, data sources, and application source.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-add-app-top-console.png)

     
![\[Application configuration form with environment variables, domain settings, and SSL options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-add-app-bottom-console.png)

   

1. Selecciona **Añadir aplicación**. OpsWorks Stacks agrega la aplicación y muestra la página de **aplicaciones**.

Ahora tiene una aplicación con la configuración correcta para este tutorial.

En el [siguiente paso](gettingstarted-linux-launch-instance.md), podrá lanzar la instancia.

# Paso 5: Lanzamiento de una instancia
<a name="gettingstarted-linux-launch-instance"></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 existentes. 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).

Usa OpsWorks Stacks para iniciar una EC2 instancia Amazon de Ubuntu Server. Esta instancia utiliza la configuración que definida en la capa que ha creado anteriormente en este tutorial. (Para obtener más información, consulte [instancias](workinginstances.md)).

**Para lanzar la instancia**

1. En el panel de navegación de servicio, seleccione **Instances (Instancias)**. Se abre la página **Instances (Instancias)**.

1. Para **MyLinuxDemoLayer**, selecciona **Añadir una instancia**.

1. En la pestaña **New (Nuevo)**, mantenga la configuración predeterminada de los siguientes campos:
   + **Hostname (Nombre de host)** (**demo1**)
   + **Size (Tamaño)** (**c3.large**)
   + **Subred** (*IP address***us-west-2a**)

1. Seleccione **Avanzado**.

1. Mantenga la configuración predeterminada de los siguientes campos:
   + **Scaling type (Tipo de escalado)** (**24/7**)
   + **SSH key (Clave SSH)** (**Do not use a default SSH key (No utilizar una clave SSH predeterminada)**)
   + **Operating system (Sistema operativo)** (**Ubuntu 18.04 LTS**)
   + **OpsWorks Versión del agente (se hereda de la** **pila)**
   + **Tenancy (Propiedad)** (**Default - Rely on VPC settings (Predeterminada - Basarse en la configuración de VPC)**)
   + **Root device type (Tipo de dispositivo raíz)** (**EBS backed (Respaldada por EBS)**)
   + **Volume type (Tipo de volumen)** (**General Purpose (SSD) (Uso general (SSD))**)
   + **Volume size (Tamaño del volumen)** (**8**)

1. Sus resultados serán similares a los de la siguiente captura de pantalla:

     
![\[Form for configuring a new EC2 instance with options for hostname, size, subnet, and other settings.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-add-instance-console.png)

   

1. Seleccione **Añadir instancia**. OpsWorks Stacks añade la instancia a la capa y muestra la página **Instancias**.

1. **Para **MyLinuxDemoLayer**, para **demo1**, para **Actions**, elija iniciar:**

     
![\[Instance management interface showing a stopped demo1 instance with start and delete options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-start-instance-console.png)

   

1. Durante varios minutos, se producirán las siguientes situaciones:
   + El círculo de **setting up (configurando)** cambia de **0** a **1**. 
   + **Status (Estado)** cambia de **stopped (detenido)** a **requested (solicitado)**, a **pending (pendiente)**, a **booting (arrancando)**, a **running\$1setup (ejecutando\$1configuración)** y, por último, a **online**. Este proceso puede tardar varios minutos.
   + Después de que **Status (Estado)** cambie a **online**, el indicador del círculo de **setting up (configurando)** pasará de **1** a **0** y el círculo de **online** pasará de **0** a **1** y pasar a tener un color verde brillante. Continúe cuando el círculo de **online** cambie a verde brillante y muestre la instancia **1** online. 

1. Antes de continuar, compruebe que los resultados coinciden con la siguiente captura de pantalla (si ve un mensaje de error, consulte la [Guía de depuración y solución de problemas](troubleshoot.md)):

     
![\[EC2 instance details showing one online c3.large instance in us-west-2a with stop and ssh options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-instance-started-console.png)

   

Ahora la instancia ya está lista para implementar la aplicación. 

**nota**  
Si quieres iniciar sesión en la instancia para explorarla más a fondo, primero debes proporcionar a OpsWorks Stacks información sobre tu clave SSH pública (que puedes crear con herramientas como ssh-keygen o PuTTYgen) y, después, debes configurar los permisos en la `MyLinuxDemoStack` pila para que el usuario pueda iniciar sesión en la instancia. Para obtener instrucciones, consulte [Registro de la clave pública SSH de un usuario](security-settingsshkey.md) y [Inicio de sesión con SSH](workinginstances-ssh.md). Si planeas usar SSH para conectarte a instancias a través de PuTTY, [consulta Conexión a tu instancia de Linux desde Windows mediante PuTTY](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html) en la documentación. AWS 

En el [siguiente paso](gettingstarted-linux-deploy-app.md), implementará la aplicación en la instancia.

# Paso 6: Implementar la aplicación en la instancia
<a name="gettingstarted-linux-deploy-app"></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 existentes. 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).

En este paso, implementarás la aplicación desde la instancia GitHub en ejecución. (Para obtener más información, consulte [Implementación de aplicaciones](workingapps-deploying.md)). Antes de implementar la aplicación, debe especificar la *receta* a utilizar para coordinar la implementación. Una receta es un concepto de Chef. Las recetas son instrucciones, escritas en lenguaje Ruby, que especifican los recursos a utilizar y el orden en que se deben aplicar dichos recursos. (Para obtener más información, consulte [About Recipes](https://docs.chef.io/recipes.html) en el sitio web [Learn Chef](https://learn.chef.io/).) 

**Para especificar la receta a utilizar para implementar la aplicación en la instancia**

1. En el panel de navegación de servicio, elija **Layers (Capas)**. Se abre la página **Layers (Capas)**.

1. Para **MyLinuxDemoLayer**, elige **Recetas**:

     
![\[Layer interface showing MyLinuxDemoLayer with tabs for Settings, Recipes, Network, EBS Volumes, and Security.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-layers-page-console.png)

   

   La MyLinuxDemoLayer página de **capas** se muestra con la pestaña **Recetas** abierta.

1. En **Custom Chef Recipes (Recetas de Chef personalizadas)**, en **Deploy (Implementar)**, escriba **nodejs\$1demo::default** y, a continuación, pulse **Enter (Introducir)**. `nodejs_demo` es el nombre del libro de recetas y `default` es el nombre de la receta de destino dentro del libro de recetas. (Para explorar el código de la receta, consulte [Más información: explorar el libro de recetas utilizado en este tutorial](gettingstarted-linux-explore-cookbook.md).) Los resultados deben coincidir con la siguiente captura de pantalla:

     
![\[Custom Chef Recipes configuration panel with Repository URL and lifecycle stages for a Linux demo layer.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-recipes-page-console.png)

   

1. Selecciona **Guardar**. OpsWorks Stacks añade la receta al evento de ciclo de vida de implementación de la capa.

**Para implementar la aplicación en la instancia**

1. En el panel de navegación de servicio, elija **Apps (Aplicaciones)**. Se abre la página **Apps (Aplicaciones)**. 

1. **MyLinuxDemoApp**En el caso de **Acciones**, selecciona **implementar**, tal y como se muestra en la siguiente captura de pantalla:

     
![\[Apps table showing MyLinuxDemoApp with deploy, edit, and delete options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-apps-page-console.png)

   

1. En la página **Deploy App (Implementar aplicación)**, mantenga la configuración predeterminada de los siguientes campos:
   + **Command (Comando)** (**Deploy (Implementar)**)
   + **Comment (Comentario)** (en blanco)
   + **Settings (Configuración)**, **Advanced (Avanzado)**, **Custom Chef JSON (JSON de Chef personalizado)** (en blanco)
   + **Instancias**, **avanzadas** (marcada **Seleccionar todo**, marcada **MyLinuxDemoLayer**, marcada **demo1)**

1. Los resultados deben coincidir con la siguiente captura de pantalla:

     
![\[Deploy App interface with settings for MyLinuxDemoApp, including command and instance selection.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-deploy-app-console.png)

   

1. Elija **Implementar**. Aparece la página **Despliegue MyLinuxDemoApp — despliegue**. **Status (Estado)** cambia de **running (ejecutando)** a **successful (correcto)**. Al lado de **demo1** aparece un círculo girando, que luego pasa a ser una marca de verificación verde. Este proceso puede tardar varios minutos. Continúe cuando vea el **Status (Estado)** de **successful (correcto)** y la marca de verificación verde.

1. Los resultados deben coincidir con la siguiente captura de pantalla, a excepción de **Created at (Creado en)**, **Completed at (Completado en)**, **Duration (Duración)** y **User (Usuario)**. Si la opción **Status (Estado)** aparece como **failed (error)**, para resolver el problema en **Log (Registro)**, elija **show (mostrar)** para obtener información detallada sobre el error:

     
![\[Deployment details for MyLinuxDemoApp showing successful status and duration of 1 minute 13 seconds.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-app-deployed-console.png)

   

Ha implementado correctamente la aplicación en la instancia.

En el [siguiente paso](gettingstarted-linux-test-app.md), probará la aplicación implementada en la instancia.

# Paso 7: Probar la aplicación implementada en la instancia
<a name="gettingstarted-linux-test-app"></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 existentes. 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).

Ahora, pruebe la implementación de la aplicación en la instancia.

**Para probar la implementación en la instancia**

1. En el panel de navegación de servicio, seleccione **Instances (Instancias)**. Se abre la página **Instances (Instancias)**.

1. Para **demo1 **MyLinuxDemoLayer****, para **IP pública, elige la dirección IP**:

     
![\[EC2 instance details showing one online c3.large instance in us-west-2a with stop and ssh options.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-instance-ip-console.png)

   

   Una nueva pestaña del navegador web muestra la aplicación.

1. En la página web de felicitación, en el cuadro de texto **Leave a comment (Dejar un comentario)** introduzca un comentario y, a continuación, elija **Send (Enviar)** para probar la aplicación. La aplicación añade su comentario al sitio web. Siga dejando comentarios y elija **Send (Enviar)** tantas veces como desee:

     
![\[Congratulatory message for deploying first app with AWS OpsWorks, featuring stylized tree and buildings.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-test-app.png)

   

1. Si tienes una cuenta de Twitter, selecciona **Twittear** o **Seguir a @ AWSOps Works** y sigue las instrucciones que aparecen en pantalla para tuitear sobre la aplicación o seguir a @ AWSOps Works.

Ha probado correctamente la aplicación implementada en la instancia.

En el [siguiente paso](gettingstarted-linux-clean-up.md), podrás 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-linux-next-steps.md) ellos.

# Paso 8 (opcional): eliminación
<a name="gettingstarted-linux-clean-up"></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 existentes. 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).

Para evitar incurrir en cargos adicionales en tu AWS cuenta, puedes eliminar los AWS recursos que se utilizaron en este tutorial. Estos AWS recursos incluyen la pila de OpsWorks pilas y los componentes de la pila. (Para obtener más información, consulta los [OpsWorks precios](https://aws.amazon.com/opsworks/pricing/)). Sin embargo, tal vez quieras seguir utilizando estos AWS recursos a medida que vayas aprendiendo más sobre OpsWorks Stacks. Si quieres mantener estos AWS recursos disponibles, ya has completado este tutorial y puedes pasar directamente a ellos. [Siguientes pasos](gettingstarted-linux-next-steps.md)

El contenido almacenado en los recursos que creó para este tutorial puede incluir información de identificación personal. Si ya no desea que AWS almacene esta información, siga los pasos de este tema.

**Para eliminar la aplicación de la pila**

1. **En la consola OpsWorks Stacks, en el panel de navegación del servicio, selecciona Aplicaciones.** Se abre la página **Apps (Aplicaciones)**.

1. Para **MyLinuxDemoApp**, en **Acciones**, selecciona **eliminar**. Cuando aparezca el mensaje de confirmación, seleccione **Eliminar**. OpsWorks Stacks elimina la aplicación.

**Para eliminar la instancia de la pila**

1. En el panel de navegación de servicio, seleccione **Instances (Instancias)**. Se abre la página **Instances (Instancias)**.

1. **Para **MyLinuxDemoLayer**, para **demo1**, para **Acciones, selecciona detener**.** Cuando vea el mensaje de confirmación, elija **Stop (Detener)**. Ocurrirá lo siguiente.
   + **Status (Estado)** cambia de **online** a **stopping (deteniéndose)** y, finalmente, a **stopped (detenido)**.
   + **online** cambia de **1** a **0**.
   + **shutting down (cerrándose)** cambia de **0** a **1** y, por último, vuelve a **0**.
   + **stopped (detenido)** cambia de **0** a **1**.

   Este proceso puede tardar unos minutos. Cuando OpsWorks Stacks haya terminado, se mostrarán los siguientes resultados.

     
![\[Instances dashboard showing one stopped Linux instance in the us-west-2a availability zone.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/gs-linux-instance-stopped-console.png)

   

1. En **Actions (Acciones)**, seleccione **delete (eliminar)**. Cuando veas el mensaje de confirmación, selecciona **Eliminar**. OpsWorks Stacks elimina la instancia y muestra el mensaje **Sin instancias**.

**Para eliminar la pila**

1. En el panel de navegación de servicio, elija **Stack (Pila)**. Se abre la página **MyLinuxDemoStack**.

1. Elija **Delete Stack**. **Cuando veas el mensaje de confirmación, selecciona Eliminar.** OpsWorks Stacks elimina la pila y muestra la página del **OpsWorks panel de control**.

Si lo desea, puede eliminar el usuario y el EC2 key pair de claves de Amazon que utilizó en este tutorial si no quiere volver a utilizarlos para acceder a otros AWS servicios e EC2 instancias. Para obtener instrucciones, consulte [Eliminar un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) y [pares de EC2 claves e instancias de Linux de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair).

Ha completado este tutorial. Para obtener más información, consulte [Siguientes pasos](gettingstarted-linux-next-steps.md).

# Siguientes pasos
<a name="gettingstarted-linux-next-steps"></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 existentes. 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).

Ahora que has completado este tutorial, puedes obtener más información sobre el uso de Stacks: OpsWorks 
+ Explore el libro de recetas y la aplicación que ha utilizado en este tutorial. Consulte [Más información: explorar el libro de recetas utilizado en este tutorial](gettingstarted-linux-explore-cookbook.md) y [Más información: explorar la aplicación utilizada en este tutorial](gettingstarted-linux-explore-app-source.md).
+ Practica cómo usar OpsWorks Stacks con instancias de Windows. Consulte [Introducción: Windows](gettingstarted-windows.md).
+ Para obtener más información sobre las pilas, consulte [Crear una pila nueva](workingstacks-creating.md).
+ Para obtener más información sobre las capas, consulte [Edición de la configuración de una capa OpsWorks](workinglayers-basics-edit.md).
+ Para obtener más información sobre las instancias, consulte [Añadir una instancia a una capa](workinginstances-add.md).
+ Para obtener más información sobre las aplicaciones, consulte [Implementación de aplicaciones](workingapps-deploying.md).
+ Obtener más información sobre [Cookbooks and Recipes](workingcookbook.md).
+ Cree sus propios libros de recetas. Consulte [Introducción: Libros de recetas](gettingstarted-cookbooks.md).
+ Para obtener más información sobre cómo controlar el acceso a las pilas, consulte [Seguridad y permisos](workingsecurity.md).

# Más información: explorar el libro de recetas utilizado en este tutorial
<a name="gettingstarted-linux-explore-cookbook"></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).

En este tema se describe el libro de cocina que OpsWorks Stacks usó para el tutorial.

Un *libro de recetas* es un concepto de Chef. Los libros de recetas son archivos de almacenamiento que contienen información de configuración, como, por ejemplo, recetas, valores de atributo, archivos, plantillas, bibliotecas, definiciones y recursos personalizados. Una *receta* también es un concepto de Chef. Las recetas son instrucciones, escritas en lenguaje Ruby, que especifican los recursos a utilizar y el orden en que se deben aplicar dichos recursos. Para obtener más información, consulte [About Cookbooks (Acerca de los libros de recetas)](https://docs.chef.io/cookbooks.html) y [About Recipes](https://docs.chef.io/recipes.html) en el sitio web [Learn Chef](https://learn.chef.io/).

Para ver el contenido del libro de cocina utilizado en este tutorial, extrae el contenido del archivo [opsworks-linux-demo-cookbooks-nodejs.tar.gz](https://s3.amazonaws.com/opsworks-demo-assets/opsworks-linux-demo-cookbooks-nodejs.tar.gz) en un directorio vacío de tu estación de trabajo local. (También puede iniciar sesión en la instancia en la que ha implementado el libro de recetas y explorar el contenido del directorio `/var/chef/cookbooks`).

El archivo `default.rb` del directorio `cookbooks/nodejs_demo/recipes` es donde el libro de recetas ejecuta su código: 

```
app = search(:aws_opsworks_app).first
app_path = "/srv/#{app['shortname']}"

package "git" do
  options "--force-yes" if node["platform"] == "ubuntu" && node["platform_version"] == "18.04"
end

application app_path do
  javascript "4"
  environment.update("PORT" => "80")

  git app_path do
    repository app["app_source"]["url"]
    revision app["app_source"]["revision"]
  end

  link "#{app_path}/server.js" do
    to "#{app_path}/index.js"
  end

  npm_install
  npm_start
end
```

Esto es lo que hace el archivo:
+ `search(:aws_opsworks_app).first` utiliza la búsqueda de Chef para buscar información sobre la aplicación que tarde o temprano se implementará en la instancia. Esta información incluye ajustes como, por ejemplo, el nombre abreviado de la aplicación y los detalles del repositorio de origen. Dado que solo se ha implementado una única aplicación en este tutorial, la búsqueda de Chef obtiene estos valores del primer elemento de información del índice de búsqueda `aws_opsworks_app` en la instancia. Cada vez que se lanza una instancia, OpsWorks Stacks almacena esta y otra información relacionada como un conjunto de bolsas de datos en la propia instancia, y el contenido de la bolsa de datos se obtiene mediante la búsqueda de Chef. Aunque puede codificar de forma rígida estos valores en la receta, utilizar bolsas de datos y la búsqueda de Chef es un enfoque mucho más sólido. Para obtener más información sobre las bolsas de datos, consulte [OpsWorks Referencia de la bolsa de datos Stacks](data-bags.md). Consulte también [About Data Bags](https://docs.chef.io/data_bags.html) en el sitio web de [Learn Chef](https://learn.chef.io/). Para obtener más información sobre Chef, consulte [About Search](https://docs.chef.io/chef_search.html) en el sitio web [Learn Chef](https://learn.chef.io/).
+ El recurso `package` instala Git en la instancia.
+ El recurso `application` describe e implementa aplicaciones web:
  + `javascript`es la versión del motor de JavaScript ejecución que se va a instalar.
  + `environment` define una variable de entorno.
  + `git` obtiene el código fuente del repositorio y la ramificación especificados.
  + `app_path` es la ruta para clonar el repositorio. Si la ruta no existe en la instancia, OpsWorks Stacks la crea.
  + `link` crea un enlace simbólico.
  + `npm_install` instala el Administrador de paquetes de nodo, el administrador de paquetes predeterminado para Node.js.
  + `npm_start` ejecuta Node.js.

Aunque OpsWorks Stacks creó el libro de cocina utilizado para este tutorial, tú puedes crear tus propios libros de cocina. Para aprender a hacerlo, consulte [Introducción: Libros de recetas](gettingstarted-cookbooks.md). Además, vaya a [About Cookbooks](https://docs.chef.io/cookbooks.html), [About Recipes](https://docs.chef.io/recipes.html) y [Learn the Chef Basics on Ubuntu](https://learn.chef.io/modules/learn-the-basics/ubuntu#/) en el sitio web [Learn Chef](https://learn.chef.io/) y a la sección "Our first Chef cookbook" en [First steps with Chef](http://gettingstartedwithchef.com/first-steps-with-chef.html) en el sitio web [Getting started with Chef](http://gettingstartedwithchef.com/).

# Más información: explorar la aplicación utilizada en este tutorial
<a name="gettingstarted-linux-explore-app-source"></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 existentes. 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).

En este tema, se describe la aplicación que OpsWorks Stacks implementa en la instancia para este tutorial.

Para ver el código fuente de la aplicación, extrae el contenido del [opsworks-windows-demo-nodejs](https://github.com/awslabs/opsworks-windows-demo-nodejs) GitHub repositorio en un directorio vacío de tu estación de trabajo local. También puede iniciar sesión en la instancia en la que ha implementado el libro de recetas y explorar el contenido del directorio `/srv/mylinuxdemoapp`.

El archivo `index.js` contiene el código más importante para la aplicación:

```
var express = require('express');
var app = express();
var path = require('path');
var os = require('os');
var bodyParser = require('body-parser');
var fs = require('fs');

var add_comment = function(comment) {
  var comments = get_comments();
  comments.push({"date": new Date(), "text": comment});
  fs.writeFileSync('./comments.json', JSON.stringify(comments));
};

var get_comments = function() {
  var comments;
  if (fs.existsSync('./comments.json')) {
    comments = fs.readFileSync('./comments.json');
    comments = JSON.parse(comments);
  } else {
    comments = [];
  }
  return comments;
};

app.use(function log (req, res, next) {
  console.log([req.method, req.url].join(' '));
  next();
});
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }))

app.set('view engine', 'jade');
app.get('/', function(req, res) {
  var comments = get_comments();
  res.render("index",
    { agent: req.headers['user-agent'],
      hostname: os.hostname(),
      nodeversion: process.version,
      time: new Date(),
      admin: (process.env.APP_ADMIN_EMAIL || "admin@unconfigured-value.com" ),
      comments: get_comments()
    });
});

app.post('/', function(req, res) {
  var comment = req.body.comment;
  if (comment) {
    add_comment(comment);
    console.log("Got comment: " + comment);
  }
  res.redirect("/#form-section");
});

var server = app.listen(process.env.PORT || 3000, function() {
  console.log('Listening on %s', process.env.PORT);
});
```

Esto es lo que hace el archivo:
+ `require` carga módulos que contienen algún código dependiente que esta aplicación web necesita para funcionar como se espera.
+ Las funciones `add_comment` y `get_comments` escriben información en y leen información del archivo `comments.json`.
+ Para obtener información sobre `app.get`, `app.listen`, `app.post`, `app.set` y `app.use`, consulte la referencia de la API [Referencia de la API Express](http://expressjs.com/4x/api.html).

 Para obtener información sobre cómo crear y empaquetar la aplicación para la implementación, consulte [Origen de las aplicaciones](workingapps-creating.md#workingapps-creating-source).

# Introducción a las pilas de Windows
<a name="gettingstarted-windows"></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 existentes. 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 lo general, las aplicaciones basadas en la nube requieren un grupo de recursos relacionados (servidores de aplicaciones, servidores de bases de datos, etc.) que deben crearse y administrarse conjuntamente. Este conjunto de instancias recibe el nombre de *pila*. Una pila de aplicaciones sencilla puede ser parecida a la siguiente.

![\[Diagram showing users connecting to app servers through internet, elastic IP, and load balancer.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/windows_walkthrough_arch.png)


La arquitectura básica se compone de lo siguiente:
+ Una dirección IP elástica que recibe las solicitudes de los usuarios.
+ Un balanceador de carga que distribuye las solicitudes entrantes de manera uniforme entre los servidores de aplicaciones.
+ Un conjunto de instancias de servidores de aplicaciones, tantas según sea necesario para gestionar el tráfico.

Además, suele ser necesario disponer de una forma de distribuir las aplicaciones en los servidores de aplicaciones, administrar los permisos de usuario, etcétera.

OpsWorks Stacks proporciona una forma sencilla y directa de crear y gestionar stacks y sus aplicaciones y recursos asociados. En este capítulo se realiza una introducción a los aspectos básicos de OpsWorks Stacks, junto con algunas de sus características más sofisticadas, estudiando el proceso de creación de la pila de servidores de aplicaciones en el diagrama. Utiliza un modelo de desarrollo incremental que OpsWorks Stacks hace que sea fácil de seguir: configura un stack básico y, una vez que funcione correctamente, añade componentes hasta llegar a una implementación con todas las funciones.
+ [Paso 1: Completar los requisitos previos](gettingstarted-windows-prerequisites.md) muestra cómo preparar la configuración para comenzar el tutorial.
+ [Paso 2: Crear una pila básica para el servidor de aplicaciones](gettingstarted-windows-basic.md) muestra cómo crear una pila básica que admita Internet Information Server (IIS) y cómo implementar una aplicación en el servidor.
+ [Paso 3: Escala IISExample](gettingstarted-windows-scale.md) muestra cómo escalar una pila para administrar una carga mayor añadiendo más servidores de aplicaciones, un balanceador de carga que distribuya el tráfico entrante y una dirección IP elástica que reciba las solicitudes entrantes.

**Topics**
+ [Paso 1: Completar los requisitos previos](gettingstarted-windows-prerequisites.md)
+ [Paso 2: Crear una pila básica para el servidor de aplicaciones](gettingstarted-windows-basic.md)
+ [Paso 3: Escala IISExample](gettingstarted-windows-scale.md)
+ [Siguientes pasos](gettingstarted-windows-what-next.md)

# Paso 1: Completar los requisitos previos
<a name="gettingstarted-windows-prerequisites"></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 existentes. 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).

Complete los siguientes pasos de configuración antes de comenzar el tutorial. Estos pasos de configuración incluyen abrir una AWS cuenta, crear un usuario administrativo y asignar permisos de acceso a Stacks. OpsWorks 

Si ha finalizado los tutoriales [Introducción: muestra](gettingstarted-intro.md) o [Introducción: Linux](gettingstarted-linux.md), ya ha cumplido los requisitos previos de este tutorial y puede pasar directamente a [Paso 2: Crear una pila básica para el servidor de aplicaciones](gettingstarted-windows-basic.md).

**Topics**
+ [Regístrate para obtener una Cuenta de AWS](#sign-up-for-aws)
+ [Creación de un usuario con acceso administrativo](#create-an-admin)
+ [Asignar permisos de acceso a servicios](#gettingstarted-windows-prerequisites-permissions)
+ [Asegúrate de que los usuarios OpsWorks de Stacks se agreguen a tu dominio](#gettingstarted-windows-prerequisites-adusers)

## Regístrate para obtener una Cuenta de AWS
<a name="sign-up-for-aws"></a>

Si no tiene uno Cuenta de AWS, complete los siguientes pasos para crearlo.

**Para suscribirse a una Cuenta de AWS**

1. Abrir [https://portal.aws.amazon.com/billing/registro](https://portal.aws.amazon.com/billing/signup).

1. Siga las instrucciones que se le indiquen.

   Parte del procedimiento de registro consiste en recibir una llamada telefónica o mensaje de texto e indicar un código de verificación en el teclado del teléfono.

   Cuando te registras en un Cuenta de AWS, *Usuario raíz de la cuenta de AWS*se crea un. El usuario raíz tendrá acceso a todos los Servicios de AWS y recursos de esa cuenta. Como práctica recomendada de seguridad, asigne acceso administrativo a un usuario y utilice únicamente el usuario raíz para realizar [Tareas que requieren acceso de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS te envía un correo electrónico de confirmación una vez finalizado el proceso de registro. En cualquier momento, puede ver la actividad de su cuenta actual y administrarla accediendo a [https://aws.amazon.com/](https://aws.amazon.com/)y seleccionando **Mi cuenta**.

## Creación de un usuario con acceso administrativo
<a name="create-an-admin"></a>

Después de crear un usuario administrativo Cuenta de AWS, asegúrelo Usuario raíz de la cuenta de AWS AWS IAM Identity Center, habilite y cree un usuario administrativo para no usar el usuario root en las tareas diarias.

**Proteja su Usuario raíz de la cuenta de AWS**

1.  Inicie sesión [Consola de administración de AWS](https://console.aws.amazon.com/)como propietario de la cuenta seleccionando el **usuario root** e introduciendo su dirección de Cuenta de AWS correo electrónico. En la siguiente página, escriba su contraseña.

   Para obtener ayuda para iniciar sesión con el usuario raíz, consulte [Iniciar sesión como usuario raíz](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) en la *Guía del usuario de AWS Sign-In *.

1. Active la autenticación multifactor (MFA) para el usuario raíz.

   Para obtener instrucciones, consulte [Habilitar un dispositivo MFA virtual para el usuario Cuenta de AWS raíz (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) en la Guía del usuario de *IAM*.

**Creación de un usuario con acceso administrativo**

1. Activar IAM Identity Center.

   Consulte las instrucciones en [Activar AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) en la *Guía del usuario de AWS IAM Identity Center *.

1. En IAM Identity Center, conceda acceso administrativo a un usuario.

   Para ver un tutorial sobre su uso Directorio de IAM Identity Center como fuente de identidad, consulte [Configurar el acceso de los usuarios con la configuración predeterminada Directorio de IAM Identity Center en la](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html) Guía del *AWS IAM Identity Center usuario*.

**Inicio de sesión como usuario con acceso de administrador**
+ Para iniciar sesión con el usuario de IAM Identity Center, use la URL de inicio de sesión que se envió a la dirección de correo electrónico cuando creó el usuario de IAM Identity Center.

  Para obtener ayuda para iniciar sesión con un usuario del Centro de identidades de IAM, consulte [Iniciar sesión en el portal de AWS acceso](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) en la *Guía del AWS Sign-In usuario*.

**Concesión de acceso a usuarios adicionales**

1. En IAM Identity Center, cree un conjunto de permisos que siga la práctica recomendada de aplicar permisos de privilegios mínimos.

   Para conocer las instrucciones, consulte [Create a permission set](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-create-a-permission-set.html) en la *Guía del usuario de AWS IAM Identity Center *.

1. Asigne usuarios a un grupo y, a continuación, asigne el acceso de inicio de sesión único al grupo.

   Para conocer las instrucciones, consulte [Add groups](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html) en la *Guía del usuario de AWS IAM Identity Center *.

## Asignar permisos de acceso a servicios
<a name="gettingstarted-windows-prerequisites-permissions"></a>

Habilita el acceso al servicio OpsWorks Stacks (y a los servicios relacionados en los que se basa OpsWorks Stacks) añadiendo los `AmazonS3FullAccess` permisos `AWSOpsWorks_FullAccess` y permisos a tu rol o usuario.

Para obtener más información sobre cómo añadir permisos, consulte [Agregar permisos de identidad de IAM (consola).](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)

## Asegúrate de que los usuarios OpsWorks de Stacks se agreguen a tu dominio
<a name="gettingstarted-windows-prerequisites-adusers"></a>

En una pila de Chef 12.2, el libro de recetas `aws_opsworks_users` incluido crea los usuarios que tienen acceso a SSH y al Protocolo de escritorio remoto (RDP) para instancias basadas en Windows. Al unir las instancias de Windows de su pila a un dominio de Active Directory, la ejecución de este libro de cocina puede fallar si los usuarios de OpsWorks Stacks no existen en Active Directory. Si los usuarios no se reconocen en Active Directory, las instancias podrán introducir un estado `setup failed` cuando las reinicie después de unirlas a un dominio. En el caso de las instancias de Windows unidas a un dominio, no basta con conceder a los usuarios de OpsWorks Stacks SSH/RDP acceso a la página de permisos de usuario.

Antes de unir las instancias de Windows de una pila Chef 12.2 a un dominio de Active Directory, asegúrate de que todos los usuarios de OpsWorks Stacks de la pila basada en Windows sean miembros del dominio. La mejor forma de hacerlo es configurar la identidad federada con IAM antes de crear la pila basada en Windows y, a continuación, importar los usuarios federados a las OpsWorks pilas antes de unir las instancias de la pila a un dominio. Para obtener más información acerca de cómo hacerlo, consulte [Enabling Federation to AWS Using Windows Active Directory, ADFS, and SAML 2.0](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/) en el blog de AWS sobre seguridad y [Federación de usuarios ya existentes](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html#intro-identity-federation) en la *Guía del usuario de IAM*.

# Paso 2: Crear una pila básica para el servidor de aplicaciones
<a name="gettingstarted-windows-basic"></a>

**importante**  
El AWS OpsWorks Stacks servicio finalizó su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los existentes. 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).

Una pila del servidor de aplicaciones básica consta de una única instancia del servidor de aplicaciones con una dirección IP pública para recibir las solicitudes de los usuarios. El código de la aplicación y los archivos relacionados se almacenan en un repositorio independiente y, desde ahí, se implementan en el servidor. El siguiente diagrama ilustra este tipo de pila.

![\[Diagram showing application server stack with Windows instance, IIS layer, and AWS cloud integration.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/php_walkthrough_arch_2_windows.png)


La pila incluye los siguientes componentes:
+ Una *capa* que representa un grupo de instancias y especifica cómo deben configurarse.

  La capa de este ejemplo representa un grupo de instancias de IIS.
+ Una *instancia*, que representa una EC2 instancia de Amazon.

  En este caso, la capa configura una sola instancia para ejecutar IIS, pero las capas pueden tener las instancias que se deseen.
+ Una *aplicación* que contiene la información necesaria para instalar una aplicación en la instancia.
+ Un *libro de recetas* que contiene las recetas de Chef personalizadas compatibles con la capa de IIS personalizada. El libro de recetas y el código de la aplicación se almacenan en repositorios remotos, por ejemplo, un archivo de almacenamiento en un bucket de Amazon S3 o un repositorio Git.

En las siguientes secciones, se describe cómo usar la consola OpsWorks Stacks para crear la pila e implementar la aplicación.

**Topics**
+ [Paso 2.1: Crear la pila](gettingstarted-windows-stack.md)
+ [Paso 2.2: Autorizar el acceso RDP](gettingstarted-windows-rdp.md)
+ [Paso 2.3: Implementar un libro de recetas personalizado](gettingstarted-windows-cookbook.md)
+ [Paso 2.4: Añadir una capa de IIS](gettingstarted-windows-iis-layer.md)
+ [Paso 2.5: Implementar una aplicación](gettingstarted-windows-deploy.md)

# Paso 2.1: Crear la pila
<a name="gettingstarted-windows-stack"></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 existentes. 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).

Para iniciar un proyecto de OpsWorks Stacks, debes crear una pila, que actúa como contenedor para tus instancias y otros recursos. La configuración de la pila especifica algunos valores básicos como, por ejemplo, la región de AWS y el sistema operativo predeterminado, que comparten todas las instancias de la pila. 

**Para crear una pila nueva**

1. 

**Añadir una pila**

   Si aún no lo ha hecho, inicie sesión en la [consola de OpsWorks Stacks](https://console.aws.amazon.com/opsworks/).
   + Si la cuenta no tiene pilas existentes, verá la OpsWorks página de **bienvenida a AWS**; elija **Añadir su primera pila**.
   + **De lo contrario, verá el panel de control de OpsWorks pilas, en el que se muestran las pilas de su cuenta; elija Añadir pila.**

1. 

**Configurar la pila**

   En la página **Add Stack (Añadir pila)**, elija **Chef 12 stack (Pila de Chef 12)** y especifique las opciones siguientes:  
**Nombre de pila**  
Introduzca un nombre para la pila, que puede contener caracteres alfanuméricos (a-z, A-Z y 0-9) y guiones (-). En este tutorial, la pila de ejemplo se llama **IISWalkthrough**.  
**Region**  
Seleccione Oeste de EE. UU. (Oregón) como la región de la pila.  
Puede crear una pila en cualquier región, pero en los tutoriales recomendamos usar la región Oeste de EE. UU. (Oregón).  
**Default operating system**  
Seleccione **Windows** y, a continuación, especifique **Microsoft Windows Server 2022 Base**, que es el valor predeterminado.  
**Use custom Chef cookbooks**  
Para este tutorial, especifique **No** en esta opción.

1. Elija **Advanced (Avanzado)** para confirmar que dispone de un rol de IAM y el perfil de instancia de IAM predeterminado seleccionado.  
rol de IAM  
Especifica la función de IAM ()AWS Identity and Access Management de la pila. OpsWorks Stacks necesita acceder a otros servicios de AWS para realizar tareas como la creación y administración de EC2 instancias de Amazon. El **rol de IAM** especifica el rol que OpsWorks Stacks asume para trabajar con otros servicios de AWS en tu nombre. Para obtener más información, consulte [¿Permitir que OpsWorks Stacks actúe en tu nombre](opsworks-security-servicerole.md).  
   + Si tu cuenta ya tiene un rol de IAM en OpsWorks Stacks, puedes seleccionarlo de la lista.

     Si el rol lo creó OpsWorks Stacks, se le asignará un nombre. `aws-opsworks-service-role`
   + De lo contrario, selecciona **Nuevo rol de IAM** para indicar a OpsWorks Stacks que cree un nuevo rol para ti con los permisos correctos. 

     **Nota:** si tiene permisos de acceso completo a OpsWorks Stacks, para crear un nuevo rol se precisarán otros permisos de IAM adicionales. Para obtener más información, consulte [Ejemplos de políticas](opsworks-security-users-examples.md).

1. Acepte los valores predeterminados para el resto de la configuración y elija **Add Stack (Añadir pila)**. Para obtener más información sobre los distintos valores de configuración, consulte [Crear una pila nueva](workingstacks-creating.md).

# Paso 2.2: Autorizar el acceso RDP
<a name="gettingstarted-windows-rdp"></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 existentes. 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).

Una vez creada una pila, creará una capa y le agregará una instancia de Windows. Pero, para hacerlo, debe configurar previamente la pila de modo que le permita utilizar RDP para conectarse a las instancias de la capa personalizada. Para ello, haga lo siguiente:
+ Añada una regla de entrada al grupo de seguridad que controla el acceso RDP.
+ Configura los permisos OpsWorks de tus pilas para esta pila a fin de permitir el acceso por RDP. 

Cuando creas la primera pila de una región, OpsWorks Stacks crea un conjunto de grupos de seguridad. Incluyen uno con un nombre similar`AWS-OpsWorks-RDP-Server`, que OpsWorks Stacks adjunta a todas las instancias de Windows para permitir el acceso RDP. No obstante, este grupo de seguridad no incluye de forma predeterminada ninguna regla, por lo que deberá añadir una regla de entrada para permitir acceso RDP a sus instancias.

**Para permitir el acceso RDP**

1. Abre la [ EC2 consola de Amazon](https://console.aws.amazon.com/ec2/v2/), configúrala en la región de la pila y selecciona **Grupos de seguridad** en el panel de navegación.

1. **Elija **AWS- OpsWorks -RDP-Server**, elija la pestaña **Inbound** y elija Editar.**

1. Elija **Add Rule (Añadir regla)** e indique la siguiente configuración:
   + **Tipo**: **RDP.**
   + **Origen**: las direcciones IP de origen permitidas.

     Normalmente se suelen permitir solicitudes RDP entrantes desde la dirección IP propia o desde un rango específico de direcciones IP (por lo general, el rango de direcciones IP corporativas). Para fines de aprendizaje, es suficiente especificar 0.0.0.0/0, ya que permite el acceso RDP desde cualquier dirección IP.

El grupo de seguridad permite que la instancia reciba solicitudes de conexión RDP, pero eso es solo la mitad del proceso. Un usuario normal iniciará sesión en la instancia con una contraseña proporcionada por Stacks. OpsWorks Para que OpsWorks Stacks genere esa contraseña, debes autorizar de forma explícita el acceso RDP para el usuario.

**Para autorizar el acceso RDP para un usuario**

1. En el panel de control OpsWorks de Stacks, selecciona la pila. **IISWalkthrough**

1. En el panel de navegación de la pila, elija **Permissions (Permisos)**.

1. En la página Permissions, elija **Edit (Editar)**.

1. En la lista de usuarios, marque la casilla de **SSH/RDP** para el usuario al que desea conceder los permisos necesarios. Si quiere que el usuario tenga también permisos de administrador, también debe seleccionar **sudo/admin**.  
![\[Permisos SSH y sudo para los usuarios\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/permissions.png)

1. Seleccione **Save**.

El usuario puede obtener una contraseña y utilizarla para iniciar sesión en la instancia, como se describe más adelante.

**nota**  
También puede iniciar sesión como administrador. Para obtener más información, consulte [Inicio de sesión como administrador](workinginstances-rdp.md#workinginstances-rdp-admin).

# Paso 2.3: Implementar un libro de recetas personalizado
<a name="gettingstarted-windows-cookbook"></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).

Aunque una pila es básicamente un contenedor de instancias, las instancias no se añaden directamente a una pila. Añada una o varias capas, cada una de las cuales representa un grupo de instancias relacionadas y, a continuación, añada instancias a las capas.

Una capa es básicamente un modelo que OpsWorks Stacks utiliza para crear un conjunto de EC2 instancias de Amazon con la misma configuración. La instancia parte de una versión base del sistema operativo en la cual la capa de la instancia ejecuta una serie de tareas para implementar dicho plan. Entre esta tareas tenemos:
+ Crear directorios y archivos.
+ Administración de usuarios
+ Instalar y configurar software.
+ Iniciar o detener servidores.
+ Implementar código de aplicaciones y archivos relacionados.

La capas realizan tareas en las instancias ejecutando [recetas de Chef](https://docs.chef.io/recipes.html) (para abreviar, "recetas"). Una receta es una aplicación Ruby que utiliza el lenguaje específico de dominio (DSL) de Chef para describir el estado final de la instancia. Con OpsWorks Stacks, cada receta se suele asignar a uno de los [eventos del ciclo de vida](workingcookbook-events.md) de la capa: instalación, configuración, despliegue, desdespliegue y cierre. Cuando se produce un evento del ciclo de vida en una instancia, OpsWorks Stacks ejecuta las recetas del evento para realizar las tareas adecuadas. Por ejemplo, el evento de configuración se produce cuando una instancia termina de arrancar. OpsWorks Luego, Stacks ejecuta las recetas de configuración, que normalmente realizan tareas como instalar y configurar el software del servidor e iniciar los servicios relacionados.

OpsWorks Stacks proporciona a cada capa un conjunto de recetas integradas que realizan tareas estándar. También se puede ampliar la funcionalidad de una capa implementando recetas personalizadas para realizar otras tareas y asignándolas a eventos del ciclo de vida de la capa. Las pilas de Windows admiten [capas personalizadas](workinglayers-custom.md). Estas constan de un conjunto mínimo de recetas que realizan solo unas pocas tareas básicas. Para añadir funcionalidad a las instancias de Windows, debe implementar recetas personalizadas que instalen software, implementen aplicaciones, etcétera. En este tema se describe cómo crear una capa personalizada sencilla para admitir instancias de IIS.

**Topics**
+ [Breve introducción a las recetas y los libros de recetas](#gettingstarted-windows-layer-recipes)
+ [Implementar una receta para instalar e iniciar IIS](#gettingstarted-windows-layer-recipe-iis)
+ [Habilitar el libro de recetas personalizado](#gettingstarted-windows-layer-enable-cookbook)

## Breve introducción a las recetas y los libros de recetas
<a name="gettingstarted-windows-layer-recipes"></a>

Una receta define uno o varios aspectos del estado que se espera tenga una instancia: qué directorios debe tener, qué paquetes de software deben instalarse, qué aplicaciones deben implementarse, etcétera. Las recetas se empaquetan en un *libro de recetas* que, por lo general, contiene una o varias recetas relacionadas y archivos asociados (por ejemplo, plantillas) para crear los archivos de configuración.

Este tema constituye una introducción básica a las recetas, suficiente para mostrar cómo implementar un libro de recetas personalizado que admita una capa de IIS sencilla. Para ver una introducción más completa a los libros de recetas, consulte [Cookbooks and Recipes](workingcookbook.md). Para ver un tutorial detallado de introducción a la implementación de los libros de recetas, con varios temas específicos de Windows, consulte [Cookbooks 101](cookbooks-101.md).

Las recetas de Chef son técnicamente aplicaciones Ruby, pero la mayor parte del código, por no decir todo el código, está en DSL de Chef. El lenguaje DSL consiste, principalmente, en un conjunto de *recursos* que se pueden utilizar para especificar de forma declarativa un aspecto del estado de las instancias. Por ejemplo, un [recurso `directory`](https://docs.chef.io/chef/resources.html#directory) define un directorio que debe añadirse al sistema. En el siguiente ejemplo se define un directorio `C:\data` con derechos de control total que pertenece al usuario especificado y que no hereda los derechos del directorio principal.

```
directory 'C:\data' do
  rights :full_control, 'WORKGROUP\username'
  inherits false
  action :create
end
```

Cuando Chef ejecuta una receta, ejecuta cada recurso pasando los datos a un *proveedor* asociado, un objeto Ruby que administra los detalles de la modificación del estado de la instancia. En este caso, el proveedor crea un directorio nuevo con la configuración especificada.

El libro de recetas personalizado para la capa de IIS personalizada debe llevar a cabo las tareas siguientes:
+ Instalar la característica IIS e iniciar el servicio.

  Esta tarea se realiza durante la configuración, generalmente, justo después de que termine de arrancar la instancia.
+ Implementar una aplicación en la instancia, una página HTML sencilla en este ejemplo.

  Esta tarea se suele realizar durante la instalación. Sin embargo, lo habitual es que las aplicaciones se actualicen con regularidad, de forma que también deberá implementar actualizaciones cuando la instancia esté online.

Podría tener una única receta que realizara todas estas tareas. No obstante, el método preferido es disponer de recetas independientes para las tareas de instalación e implementación. De esta forma, es posible implementar las actualizaciones de las aplicaciones en cualquier momento, sin necesidad de ejecutar código de instalación. A continuación se describe cómo configurar un libro de recetas personalizado para admitir una capa de IIS personalizada. En temas posteriores se indicará cómo implementar las recetas.

**Primeros pasos**

1. Cree un directorio denominado `iis-cookbook` en una ubicación cómoda dentro de la estación de trabajo.

1. Añada un archivo `metadata.rb` a `iis-cookbook` con el contenido siguiente.

   ```
   name "iis-cookbook"
   version "0.1.0"
   ```

   En este ejemplo se utiliza un archivo `metadata.rb` mínimo. Para obtener más información sobre cómo usar este archivo, consulte [metadata.rb](https://docs.chef.io/config_rb_metadata.html).

1. Añada un directorio `recipes` a `iis-cookbook`.

   Este directorio, que debe llamarse `recipes`, contiene las recetas del libro de recetas.

Por lo general, los libros de recetas contienen otros directorios más. Por ejemplo, si en una receta se utiliza una plantilla para crear un archivo de configuración, la plantilla se encuentra, normalmente, en el directorio `templates\default`. El libro de recetas de este ejemplo consta únicamente de recetas; por consiguiente, no necesita otros directorios. Además, en este ejemplo se emplea un único libro de recetas, pero puede utilizar tantos como precise; en los proyectos complejos, es preferible disponer de varios. Por ejemplo, podría tener libros de recetas independientes para las tareas de instalación e implementación. Para obtener más ejemplos sobre libros de recetas, consulte [Cookbooks and Recipes](workingcookbook.md).

## Implementar una receta para instalar e iniciar IIS
<a name="gettingstarted-windows-layer-recipe-iis"></a>

 IIS es una *característica* de Windows entre una serie de componentes opcionales del sistema que se pueden instalar en Windows Server. Puede hacer que receta instale de IIS de una de las formas siguientes:
+ Utilizando un recurso [https://docs.chef.io/chef/resources.html#powershell-script](https://docs.chef.io/chef/resources.html#powershell-script) para ejecutar el cmdlet [https://docs.microsoft.com/en-us/powershell/module/servermanager/install-windowsfeature?view=winserver2012-ps](https://docs.microsoft.com/en-us/powershell/module/servermanager/install-windowsfeature?view=winserver2012-ps).
+ Utilizando el recurso [del libro de recetas de Windows](https://github.com/opscode-cookbooks/windows) `windows_feature` de Chef.

  El libro de recetas `windows` contiene un conjunto de recursos cuyos proveedores emplean el [sistema de administración y mantenimiento de imágenes de implementación](https://technet.microsoft.com/en-us/library/dd744256%28v=ws.10%29.aspx) (DISM) para realizar diversas tareas en instancias de Windows, entre ellas la instalación de las características.

**nota**  
`powershell_script` es uno de los recursos más útiles con las recetas de Windows. Puedes usarla para realizar diversas tareas en una instancia mediante la ejecución de un PowerShell script o un cmdlet. Es especialmente útil para aquellas tareas no compatibles con recursos de Chef.

En este ejemplo, se ejecuta un PowerShell script para instalar e iniciar el servidor web (IIS). El libro de recetas de `windows` se describe más adelante. Si desea ver un ejemplo sobre el uso de `windows_feature` para instalar IIS, consulte [Instalación de una característica de Windows: IIS](cookbooks-101-opsworks-install-software-feature.md).

Añada una receta llamada `install.rb` con el contenido siguiente al directorio `recipes` del libro de recetas.

```
powershell_script 'Install IIS' do
  code 'Install-WindowsFeature Web-Server'
  not_if "(Get-WindowsFeature -Name Web-Server).Installed"
end

service 'w3svc' do
  action [:start, :enable]
end
```

La receta contiene dos recursos.

**powershell\$1script**  
`powershell_script`ejecuta el PowerShell script o cmdlet especificado. El ejemplo tiene la configuración de atributos siguiente:  
+ `code`— Los PowerShell cmdlets que se van a ejecutar.

  En este ejemplo se ejecuta un cmdlet `Install-WindowsFeature` que instala Web Server (IIS). En general, el atributo `code` admite cualquier número de líneas, de manera que puede ejecutar tantos cmdlets como necesite.
+  `not-if`: un [https://docs.chef.io/chef/resources.html#guards](https://docs.chef.io/chef/resources.html#guards) que garantiza que la receta instala IIS si no está instalado.

  En general se prefieren recetas *idempotentes* que no pierdan tiempo realizando la misma tarea más de una vez.
Cada recurso tiene una acción que especifica la acción que va a emprender el proveedor. No hay ninguna acción explícita para este ejemplo, por lo que el proveedor realiza la `:run` acción predeterminada, que ejecuta el script especificado PowerShell . Para obtener más información, consulte [Ejecución de un PowerShell script de Windows](cookbooks-101-opsworks-opsworks-powershell.md).

**service**  
Un [https://docs.chef.io/chef/resources.html#service](https://docs.chef.io/chef/resources.html#service) administra un servicio; en este caso, el servicio de Web Server IIS (W3SVC). En el ejemplo se utilizan atributos predeterminados y se especifican dos acciones, `:start` y `:enable`, que inician y habilitan IIS.

**nota**  
Si desea instalar software que utiliza un instalador de paquete, como MSI, puede usar un recurso `windows_package`. Para obtener más información, consulte [Instalación de un paquete](cookbooks-101-opsworks-install-software-package.md).

## Habilitar el libro de recetas personalizado
<a name="gettingstarted-windows-layer-enable-cookbook"></a>

OpsWorks Stacks ejecuta recetas desde una caché local en cada instancia. Para ejecutar recetas personalizadas, haga lo siguiente:
+ Guarde el libro de recetas en un repositorio remoto.

  OpsWorks Stacks descarga los libros de cocina de este repositorio a la caché local de cada instancia.
+ Modifique la pila para habilitar los libros de recetas personalizados.

  Los libros de recetas personalizados están desactivados de forma predeterminada, de forma que debe habilitarlos para la pila y proporcionar la dirección URL y la información relacionada del repositorio.

OpsWorks Stacks admite archivos S3 y repositorios Git para libros de cocina personalizados; este ejemplo usa un archivo S3. Para obtener más información, consulte [Repositorios de libros de recetas](workingcookbook-installingcustom-repo.md).

**Para utilizar un archivo S3**

1. Cree un archivo `.zip` del directorio `iis-cookbook`.

   OpsWorks Stacks también admite archivos `.tgz` (tar comprimido con gzip) para las pilas de Windows.

1. Cargue el archivo en un bucket de S3 en la región Oeste de EE. UU. (Norte de California) y haga público el archivo. También puede utilizar archivos S3 privados, pero para este ejemplo son suficientes los archivos públicos, que son un poco más sencillos de utilizar. 

   1. Inicie sesión en la consola de Amazon S3 Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. Si aún no dispone de un bucket en `us-west-1`, seleccione **Crear bucket** y cree un bucket en la región Oeste de EE. UU. (Norte de California).

   1. En la lista de buckets, elija el nombre del bucket en el que desea cargar el archivo y, a continuación, elija **Upload (Cargar)**. 

   1. Seleccione **Add Files (Añadir archivos)**.

   1. Seleccione el archivo que desea cargar y, a continuación, elija **Open (Abrir)**.

   1. En la parte inferior del cuadro de diálogo **Upload - Select Files and Folders (Cargar - Seleccionar archivos y carpetas)**, elija **Set Details (Establecer detalles)**.

   1. En la parte inferior del cuadro de diálogo **Set Details (Establecer detalles)**, elija **Set Permissions (Establecer permisos)**.

   1. En el cuadro de diálogo **Set permissions (Establecer permisos)**, elija **Make everything public (Publicar todo)**.

   1. En la parte inferior del cuadro de diálogo **Set Permissions (Establecer permisos)**, elija **Start Upload (Iniciar carga)**. Cuando termine la carga, el archivo `iis-cookbook.zip` aparece en el bucket.

   1. Elija el bucket y, a continuación, elija la pestaña **Properties (Propiedades)** del bucket. Junto a **Link (Enlace)**, registre la URL del archivo de almacenamiento para usarlo después.

   Para obtener más información sobre la carga de archivos en un bucket de Amazon S3, consulte [¿Cómo puedo cargar archivos y carpetas en un bucket de S3?](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html) en la *Guía del usuario de la consola de Amazon S3*.

**importante**  
Hasta ahora, el tutorial le ha costado solo un poco tiempo, ya que el servicio OpsWorks Stacks es gratuito. No obstante, deberá pagar por los recursos de AWS que utilice; por ejemplo, el almacenamiento de Amazon S3. En cuanto cargue el archivo, comenzará a incurrir en gastos. Para obtener más información, consulte [Precios de AWS](https://aws.amazon.com/pricing/).

**Para habilitar libros de recetas personalizados para la pila**

1. En la consola de OpsWorks Stacks, selecciona **Stack** en el panel de navegación y, a continuación, selecciona **Stack Settings** en la esquina superior derecha.

1. En la parte superior derecha de la página **Settings (Configuración)**, elija **Edit (Editar)**.

1. En la página **Settings (Configuración)**, establezca **Use custom Chef cookbooks (Usar libros de recetas de Chef personalizadas)** en **Yes (Sí)** e introduzca la información siguiente:
   + Tipo de repositorio: **Archivo S3**.
   + URL del repositorio: la URL de S3 del archivo de almacenamiento del libro de recetas que ha registrado previamente.

1. Elija **Save (Guardar)** para actualizar la configuración de la pila.

OpsWorks Stacks instala tu libro de cocina personalizado en todas las instancias nuevas. Tenga en cuenta que OpsWorks Stacks no instala ni actualiza automáticamente los libros de recetas personalizados en las instancias online. Puede hacerlo manualmente como se describe más adelante.

# Paso 2.4: Añadir una capa de IIS
<a name="gettingstarted-windows-iis-layer"></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).

El libro de recetas tiene una receta que solo instala e inicia IIS. Esto es suficiente para crear la capa y comprobar que hay una instancia de IIS funcionando. Después, podrá añadir la funcionalidad de implementación de aplicaciones a la capa.

## Crear una capa
<a name="w2ab1c14c47c17c23c23b7"></a>

Hay que comenzar añadiendo una capa a la pila. Después se añade funcionalidad a la capa mediante la asignación de recetas personalizadas a los eventos del ciclo de vida adecuados.

**Para añadir una capa de IIS a la pila**

1. Elija **Layers (Capas)** en el panel de navegación y, a continuación, elija **Add a layer (Añadir una capa)**.

1. Configure la capa del modo siguiente:
   + **Nombre**: **IISExample** 
   + **Nombre corto** – **iisexample**

     OpsWorks Stacks usa el nombre corto para identificar la capa internamente. También puede utilizar el nombre abreviado para identificar la capa en las recetas, aunque no se haga en este ejemplo. Puede especificar el nombre abreviado que quiera, pero solo debe contener caracteres alfanuméricos en minúsculas y una cantidad reducida de signos de puntuación. Para obtener más información, consulte [Capas personalizadas](workinglayers-custom.md).

1. Elija **Add Layer (Añadir capa)**.

Si tuvieras que añadir una instancia IISWalkthrough en este punto e iniciarla, OpsWorks Stacks instalaría automáticamente los libros de cocina, pero no se ejecutaría. `install.rb` Una vez que una instancia está online, puede ejecutar recetas manualmente utilizando el [comando de pila de ejecución de recetas](workingstacks-commands.md). Sin embargo, un mejor enfoque es asignar la receta a uno de los eventos del [ciclo](workingcookbook-events.md) de vida de la capa. OpsWorks A continuación, Stacks ejecuta automáticamente la receta en el punto correspondiente del ciclo de vida de la instancia.

Instale e inicie IIS en cuanto la instancia termine de arrancarse. Para ello, asigne `install.rb` al evento `Setup` de la capa.

**Para asignar la receta a un evento del ciclo de vida**

1. Elija **Layers (Capas)** en el panel de navegación

1. En el cuadro de la **IISExample**capa, selecciona **Recetas.**

1. En la esquina superior derecha, elija **Edit (Editar)**.

1. Bajo **Custom Chef Recipes (Recetas de Chef personalizadas)**, en el cuadro de recetas **Setup (Configuración)**, escriba **iis-cookbook::install**. 
**nota**  
Utilice `cookbook-name::recipe-name` para identificar las recetas, omitiendo el sufijo `.rb` en el nombre de la receta.

1. Elija **\$1** para añadir la receta a la capa. Junto a la receta se muestra una x de color rojo para facilitar su eliminación posterior.

1. Seleccione **Save (Guardar)** para guardar la nueva configuración. Las recetas de instalación personalizadas incluirán ahora `iis-cookbook::install`.

## Añadir una instancia a la capa e iniciarla
<a name="w2ab1c14c47c17c23c23b9"></a>

Puedes probar la receta añadiendo una instancia a la capa e iniciando la instancia. OpsWorks Stacks instala automáticamente los libros de cocina y se ejecuta `install.rb` durante la configuración, en cuanto la instancia termina de arrancar.

**Para añadir una instancia a una capa e iniciarla**

1. **En el panel de navegación de OpsWorks Stacks, selecciona Instances.**

1. En **IISExample**la capa, selecciona **Añadir una instancia**. 

1. Seleccione el tamaño apropiado. **t2.micro** (o el tamaño menor disponible) es suficiente para el ejemplo.

1. Elija **Add Instance (Añadir instancia)**. **De forma predeterminada, OpsWorks Stacks genera los nombres de las instancias añadiendo un entero al nombre corto de la capa, por lo que la instancia debe denominarse iisexample1.**

1. Selecciona **iniciar** en la columna **Acciones** de la instancia para iniciar la instancia. OpsWorks A continuación, Stacks lanzará una EC2 instancia y ejecutará las recetas de configuración para configurarla. Si la capa tuviera alguna receta de despliegue en ese momento, OpsWorks Stacks la ejecutaría una vez finalizada la receta de configuración.

   El proceso puede tardar varios minutos, durante los cuales la columna **Status (Estado)** muestra una serie de valores de estado. Cuando se alcanza el estado **online**, el proceso de instalación finaliza y la instancia queda lista para usar.

## Confirmar que IIS se ha instalado y está ejecutándose
<a name="w2ab1c14c47c17c23c23c11"></a>

Puede utilizar RDP para conectarse a la instancia y comprobar que la receta de configuración ha funcionado correctamente.

**Para verificar que IIS se ha instalado y se está ejecutando**

1. **Elige **Instances** en el panel de navegación y elige **rdp** en la columna Acciones de la instancia **iisexample1**.** OpsWorks Stacks genera automáticamente una contraseña RDP para ti que vence después de un período de tiempo específico.

1. Establezca **Session valid for (Sesión válida durante)** en 2 horas y elija **Generate Password (Generar contraseña)**.

1. OpsWorks Stacks muestra la contraseña y también, para tu comodidad, el nombre DNS público y el nombre de usuario de la instancia. Copie los tres y haga clic en **Acknowledge and close (Reconocer y cerrar)**.

1. Abra el cliente RDP y use los datos del paso 3 para conectarse a la instancia.

1. En la instancia, abra el Explorador de Windows y examine la unidad `C:`. Debería tener un directorio `C:\inetpub` creado cuando se instaló IIS.

1. Abra la aplicación **Administrative Tools (Herramientas administrativas)** del panel de control y, a continuación, abra **Services (Servicios)**. El servicio de IIS se encuentra cerca de la parte inferior de la lista. Se llama World Wide Web Publishing Service y su estado debería ser **running (ejecutando)**.

1. Regresa a la consola de OpsWorks Stacks y elige la dirección IP pública de la **instancia iisexample1**. Asegúrate de hacerlo en OpsWorks Stacks y no en la EC2 consola de Amazon. Esto envía automáticamente una solicitud HTTP a la dirección que, en teoría, abre la página de bienvenida predeterminada de IIS.

En el tema siguiente se explica cómo implementar una aplicación en la instancia, una página sencilla de HTML estática en este ejemplo. No obstante, si desea tomar un descanso, elija **stop** en la columna **Actions** de la instancia **iisexample1** para detener la instancia y evitar gastos innecesarios. Puede reiniciar la instancia cuando quiera continuar.

# Paso 2.5: Implementar una aplicación
<a name="gettingstarted-windows-deploy"></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 existentes. 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).

La instalación de IIS crea un directorio `C:\inetpub\wwwroot` para el código de la aplicación y los archivos relacionados. El siguiente paso consiste en instalar una aplicación en dicho directorio. En este ejemplo, instalará una página de inicio HTML estática, `default.html`, en `C:\inetpub\wwwroot`. Puede ampliar fácilmente el sistema general para administrar situaciones más complejas, por ejemplo, las aplicaciones ASP.NET.

Puede incluir los archivos de la aplicación en el libro de recetas para que `install.rb` los copie en `C:\inetpub\wwwroot`. Para ver ejemplos prácticos, consulte [Ejemplo 6: Creación de archivos](cookbooks-101-basics-files.md). Sin embargo, este sistema no es ni muy flexible ni eficaz, y suele ser mejor separar el desarrollo del libro de recetas del desarrollo de las aplicaciones.

La solución idónea es disponer de una receta de implementación independiente que recupere el código de aplicación y los archivos relacionados de un repositorio (el repositorio que prefiera, no solo el repositorio del libro de recetas) y lo instale en cada instancia de servidor de IIS. Este sistema separa el desarrollo del libro de recetas del desarrollo de aplicaciones y, cuando se necesita actualizar la aplicación, permite ejecutar de nuevo la receta de implementación sin necesidad de actualizar los libros.

En este tema se muestra cómo implementar una receta sencilla que implementa `default.htm` en el servidor de IIS. Puede ampliar fácilmente este ejemplo para aplicaciones más complejas.

**Topics**
+ [Crear la aplicación y almacenarla en un repositorio](#w2ab1c14c47c17c23c25c15)
+ [Implementar una receta que implemente la aplicación](#w2ab1c14c47c17c23c25c17)
+ [Actualizar los libros de recetas de la instancia](#w2ab1c14c47c17c23c25c19)
+ [Añadir la receta a la capa de IIS personalizada](#w2ab1c14c47c17c23c25c21)
+ [Añadir una aplicación](#w2ab1c14c47c17c23c25c23)
+ [Implementar y abrir la aplicación](#w2ab1c14c47c17c23c25c25)

## Crear la aplicación y almacenarla en un repositorio
<a name="w2ab1c14c47c17c23c25c15"></a>

Puede utilizar el repositorio que prefiera para las aplicaciones. Para simplificar, en este ejemplo se almacena `default.htm` en un bucket de S3 público.

**Para crear la aplicación**

1. Cree un directorio denominado `iis-application` en una ubicación cómoda dentro de la estación de trabajo.

1. Añada un archivo `default.htm` a `iis-application` con el contenido siguiente.

   ```
   <!DOCTYPE html>
   <html>
     <head>
       <title>IIS Example</title>
     </head>
     <body>
       <h1>Hello World!</h1>
     </body>
   </html>
   ```

1. [Cree un bucket de S3](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html), [cargue el archivo `default.htm` en el bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/PuttingAnObjectInABucket.html) y registre la URL para usarla después. Para simplificar, [publique el archivo](https://docs.aws.amazon.com/AmazonS3/latest/gsg/OpeningAnObject.html). 
**nota**  
Esta es una aplicación muy sencilla, pero puede ampliar sus principios básicos para gestionar aplicaciones de producción.  
Con aplicaciones más complejas con muchos archivos, es más sencillo crear un archivo.zip de `iis-application` y cargarlo en el bucket de S3.  
Después, puede descargar el archivo .zip y extraer su contenido en el directorio adecuado. No es necesario descargar varios archivos, crear una estructura de directorios, etcétera.
Con una aplicación de producción, probablemente le interese mantener los archivos como privados. Para ver un ejemplo de cómo hacer que una receta descargue archivos de un bucket de S3 privado, consulte [Uso del SDK para Ruby en una instancia OpsWorks de Stacks Windows](cookbooks-101-opsworks-s3-windows.md).
Puede almacenar la aplicación en cualquier repositorio adecuado.  
Normalmente, la aplicación se descarga utilizando la API pública de un repositorio. En este ejemplo se utiliza la API de Amazon S3. [Si, por ejemplo, guardas tu aplicación GitHub, puedes usar la GitHub API.](https://developer.github.com/guides/getting-started/)

## Implementar una receta que implemente la aplicación
<a name="w2ab1c14c47c17c23c25c17"></a>

Añada una receta llamada `deploy.rb` al directorio `iis-cookbook` `recipes`, con el contenido siguiente.

```
chef_gem "aws-sdk-s3" do
  compile_time false
  action :install
end

ruby_block "download-object" do
  block do
    require 'aws-sdk-s3'

    #1  
    # Aws.config[:ssl_ca_bundle] = 'C:\ProgramData\Git\bin\curl-ca-bundle.crt'
    Aws.use_bundled_cert!

    #2  
    query = Chef::Search::Query.new
    app = query.search(:aws_opsworks_app, "type:other").first
    s3region = app[0][:environment][:S3REGION]
    s3bucket = app[0][:environment][:BUCKET]
    s3filename = app[0][:environment][:FILENAME]

    #3  
    s3_client = Aws::S3::Client.new(region: s3region)
    s3_client.get_object(bucket: s3bucket,
                         key: s3filename,
                         response_target: 'C:\inetpub\wwwroot\default.htm')
  end 
  action :run
end
```

En este ejemplo se utiliza [SDK for Ruby v2](https://docs.aws.amazon.com/sdkforruby/api/index.html) para descargar el archivo. Sin embargo, OpsWorks Stacks no instala este SDK en las instancias de Windows, por lo que la receta comienza con [https://docs.chef.io/chef/resources.html#chef-gem](https://docs.chef.io/chef/resources.html#chef-gem)Resource, que se encarga de esa tarea.

**nota**  
El recurso `chef_gem` instala gemas en la versión Ruby dedicada de Chef, que es la versión que usan las recetas. Si desea instalar una gema en una versión Ruby para todo el sistema, utilice el recurso [gem\$1package](https://docs.chef.io/chef/resources.html#gem-package).

La mayor parte de la receta es un recurso [https://docs.chef.io/chef/resources.html#ruby-block](https://docs.chef.io/chef/resources.html#ruby-block) que ejecuta un bloque de código Ruby que utiliza SDK para Ruby para descargar `default.htm`. El código de `ruby_block` se puede dividir en las siguientes secciones, que corresponden a los comentarios numerados en el ejemplo de código. 

**1: Especificar un paquete de certificados**  
Amazon S3 utiliza SSL, por lo que necesita un certificado adecuado para descargar los objetos de un bucket de S3. El SDK para Ruby v2 no incluye un paquete de certificados, por lo que debes proporcionar uno y configurar el SDK para que Ruby lo use. OpsWorks Stacks no instala un paquete de certificados directamente, pero sí instala Git, que incluye un paquete de certificados (`curl-ca-bundle.crt`). Para mayor comodidad, en este ejemplo se configura SDK para Ruby para usar el paquete de certificados de Git para SSL. También puede instalar su propio paquete y configurar el SDK en consecuencia.

**2: Recuperar los datos del repositorio**  
Para descargar un objeto de Amazon S3, necesita la región de AWS, el nombre del bucket y el nombre de clave. Como se describe más adelante, en este ejemplo se proporciona esta información asociando un conjunto de variables de entorno con la aplicación. Cuando implementas una aplicación, OpsWorks Stacks agrega un conjunto de atributos al objeto de nodo de la instancia. Estos atributos son básicamente una tabla hash que contiene la configuración de las aplicaciones, incluidas las variables de entorno. Los atributos de aplicación para esta aplicación tendrán un aspecto parecido al siguiente, en formato JSON.   

```
{
  "app_id": "8f71a9b5-de7f-451c-8505-3f35086e5bb3",
  "app_source": {
      "password": null,
      "revision": null,
      "ssh_key": null,
      "type": "other",
      "url": null,
      "user": null
  },
  "attributes": {
      "auto_bundle_on_deploy": true,
      "aws_flow_ruby_settings": {},
      "document_root": null,
      "rails_env": null
  },
  "data_sources": [{"type": "None"}],
  "domains": ["iis_example_app"],
  "enable_ssl": false,
  "environment": {
      "S3REGION": "us-west-2",
      "BUCKET": "windows-example-app",
      "FILENAME": "default.htm"
  },
  "name": "IIS-Example-App",
  "shortname": "iis_example_app",
  "ssl_configuration": {
      "certificate": null,
      "private_key": null,
      "chain": null
  },
  "type": "other",
  "deploy": true
}
```
Las variables de entorno de la aplicación se almacenan en el atributo `[:environment]`. Para recuperarlas, utilice una consulta de búsqueda de Chef que recupere la tabla hash de la aplicación, que se encuentra en el nodo `aws_opsworks_app`. Esta aplicación se definirá como de tipo `other` para que se busquen aplicaciones de ese tipo. La receta aprovecha el hecho de que en esta instancia solo haya una aplicación, ya que la tabla hash que nos interesa es justo `app[0]`. Para mayor comodidad, la receta asigna después la región, el bucket y los nombres de archivo a variables.  
Para obtener más información sobre el uso de la búsqueda de Chef, consulte [Obtención de valores de atributo con la búsqueda de Chef](cookbooks-101-opsworks-opsworks-stack-config-search.md).

**3: Descargar el archivo**  
La tercera parte de la receta crea un [objeto cliente de S3](https://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Client.html) y utiliza su método `[get\$1object](https://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Client.html#get_object-instance_method)` para descargar `default.htm` en el directorio `C:\inetpub\wwwroot` de la instancia. 

**nota**  
Una receta es una aplicación de Ruby, por tanto, el código Ruby no tiene que estar necesariamente en un `ruby_block`. No obstante, el código del cuerpo de la receta se ejecuta en primer lugar, seguido en orden por los recursos. En este ejemplo, si pone el código de descarga en el cuerpo de la receta, dará error, porque el recurso `chef_gem` aún no habrá instalado . El código del recurso `ruby_block` se ejecuta cuando se ejecuta el recurso, después de que el recurso `chef_gem` haya instalado SDK para Ruby.

## Actualizar los libros de recetas de la instancia
<a name="w2ab1c14c47c17c23c25c19"></a>

OpsWorks Stacks instala automáticamente libros de cocina personalizados en las instancias nuevas. Pero está trabajando con una instancia existente, por lo que debe actualizar el libro de recetas manualmente.

**Para actualizar los libros de recetas de la instancia**

1. Cree un archivo de almacenamiento `.zip` de `iis-cookbook` y cárguelo en el bucket de S3.

   Este archivo sobrescribe el libro de recetas existente, pero la URL sigue siendo la misma, por lo que no es necesario actualizar la configuración de la pila.

1. Si la instancia no está online, reiníciela.

1. Una vez que la instancia está online, elija **Stack (Pila)** en el panel de navegación y, a continuación, elija **Run Command (Ejecutar comando)**.

1. Para **Command (Comando)**, elija [Update Custom Cookbooks (Actualizar libros de recetas personalizados)](workingstacks-commands.md). Este comando instala en la instancia el libro de recetas actualizado.

1. Elija **Update Custom Cookbooks (Actualizar libros de recetas personalizados)**. El comando podría tardar varios minutos en finalizar.

## Añadir la receta a la capa de IIS personalizada
<a name="w2ab1c14c47c17c23c25c21"></a>

Al igual que con `install.rb`, la mejor forma de administrar la implementación es asignar `deploy.rb` al evento del ciclo de vida adecuado. Por lo general, las recetas de implementación se asignan al evento de implementación (Deploy) y se denominan colectivamente recetas de implementación. Al asignar una receta al evento de implementación no se activa el evento. En lugar de esto:
+ En el caso de las instancias nuevas, OpsWorks Stacks ejecuta automáticamente las recetas de implementación una vez finalizadas las de configuración, por lo que las nuevas instancias tienen automáticamente la versión actual de la aplicación.
+ Con las instancias online, utilice un [comando deploy](workingapps-deploying.md) para instalar manualmente las aplicaciones nuevas o las actualizadas.

  Este comando activa un evento de implementación en las instancias de la pila que ejecuta las recetas de implementación.

**Para asignar deploy.rb al evento de implementación de la capa**

1. Selecciona **Capas** en el panel de navegación y, a continuación, selecciona **Recetas** en **Capa IISExample**.

1. En **Custom Chef Recipes (Recetas de Chef personalizadas)**, añada **iis-cookbook::deploy** al cuadro de recetas **Deploy (Implementar)** y elija **\$1** para añadir la receta a la capa.

1. Seleccione **Save (Guardar)** para guardar la nueva configuración. Las recetas de implementación personalizadas incluirán ahora `iis-cookbook::deploy`.

## Añadir una aplicación
<a name="w2ab1c14c47c17c23c25c23"></a>

La última tarea consiste en añadir una aplicación a la pila para que represente tu aplicación en el entorno de OpsWorks Stacks. Las aplicaciones incluyen metadatos, como el nombre visible de la aplicación y los datos necesarios para descargarla desde su repositorio.

**Para añadir la aplicación a la pila**

1. Elija **Apps (Aplicaciones)** en el panel de navegación y, a continuación, elija **Add an app (Añadir una aplicación)**.

1. Configure la aplicación con las siguientes opciones.
   + **Nombre**: I**IIS-Example-App**
   + **Tipo de repositorio**: **otro**
   + **Environment Variables**: añada las tres variables de entorno siguientes:
     + **S3REGION**: la región del bucket (en este caso, `us-west-1`).
     + **BUCKET**: el nombre del bucket, por ejemplo `windows-example-app`.
     + **FILENAME**: el nombre del archivo: **default.htm**.

1. Acepte los valores predeterminados para el resto de la configuración y, a continuación, elija **Add App (Añadir aplicación)** para añadir la aplicación a la pila.

**nota**  
En este ejemplo se utilizan variables de entorno para proporcionar los datos de descarga. Un enfoque alternativo consiste en utilizar un tipo de repositorio de S3 Archive y proporcionar la URL del archivo. OpsWorks Stacks añade la información, junto con los datos opcionales, como tus credenciales de AWS, al `app_source` atributo de la aplicación. La receta de implementación debe recuperar la URL de los atributos de la aplicación y analizarla para extraer la región, el nombre del bucket y el nombre del archivo.

## Implementar y abrir la aplicación
<a name="w2ab1c14c47c17c23c25c25"></a>

OpsWorks Stacks implementa automáticamente las aplicaciones en las nuevas instancias, pero no en las instancias en línea. Dado que la instancia ya se está ejecutando, debe implementar la aplicación manualmente.

**Para implementar la aplicación**

1. Elija **Apps (Aplicaciones)** en el panel de navegación y, a continuación, elija **deploy (implementar)** en la columna **Actions (Acciones)** de la aplicación.

1. **Command (Comando)** debe establecerse en **Deploy (Implementar)**. Elija **Deploy (Implementar)** en la parte inferior derecha de la página **Deploy App (Implementar aplicación)**. El comando podría tardar varios minutos en finalizar.

   Una vez finalizada la implementación, vuelva a la página **Apps (Aplicaciones)**. El indicador **Status (Estado)** muestra **successful (correcto)** en verde y junto al nombre de la aplicación habrá una marca de verificación verde que indica que la implementación se ha realizado correctamente.

**nota**  
Las aplicaciones de Windows son siempre del tipo **Other (Otro)**. Por tanto, al implementarse la aplicación, ocurre lo siguiente:  
Se agregan los datos de la aplicación a los [atributos de configuración e implementación de la pila](workingcookbook-json.md), como se ha descrito anteriormente.
Se activa un evento de implementación en las instancias de la pila que ejecuta las recetas de implementación personalizadas.

**nota**  
Para obtener más información sobre cómo solucionar implementaciones o aplicaciones fallidas, consulte [Depuración de recetas](troubleshoot-debug.md).

La aplicación ya está instalada. Puede abrirla eligiendo **Instances (Instancias)** en el panel **Navigation (Navegación)** y, después, la dirección IP pública de la instancia. Esto envía una solicitud HTTP a la instancia, y debería ver algo parecido a lo siguiente en el navegador.

![\[Text displaying "Hello World!" in large, bold font against a white background.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/windows-iis-app.png)


# Paso 3: Escala IISExample
<a name="gettingstarted-windows-scale"></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).

Si las solicitudes entrantes de los usuarios comienzan a aproximarse al límite de lo que puede administrar con una única instancia t2.micro, deberá aumentar la capacidad del servidor. Puede pasar a una instancia más grande, pero esto tiene sus límites. Un método más flexible consiste en añadir instancias a la pila y ponerlas detrás de un balanceador de carga. La arquitectura básica tiene un aspecto parecido a esto.

![\[OpsWorks stack architecture with load balancer, Windows instances, and external repositories.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/php_walkthrough_arch_4_windows.png)


Entre otras ventajas, este enfoque es mucho más sólido que una única instancia de gran tamaño.
+ Si una de las instancias falla, el balanceador de carga distribuirá las solicitudes entrantes entre el resto de las instancias y la aplicación seguirá funcionando.
+ En caso de que ponga instancias en distintas zonas de disponibilidad (la práctica recomendada), la aplicación seguirá funcionando incluso si una zona de disponibilidad experimenta problemas.

OpsWorks Stacks facilita la ampliación de las pilas. En esta sección, se describen los aspectos básicos de cómo escalar una pila añadiendo una segunda instancia de PHP App Server ininterrumpida IISExample y colocando ambas instancias detrás de un balanceador de cargas de Elastic Load Balancing. Puedes ampliar fácilmente el procedimiento para añadir un número arbitrario de instancias ininterrumpidas, o puedes usar instancias basadas en el tiempo para que OpsWorks Stacks escale tu pila automáticamente. Para obtener más información, consulte [Gestión de la carga con instancias basadas en tiempo y en carga](workinginstances-autoscaling.md). 

# Añadir un balanceador de carga
<a name="gettingstarted-windows-scale-elb"></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 existentes. 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).

Elastic Load Balancing es un servicio de AWS que distribuye automáticamente el tráfico entrante de aplicaciones entre varias EC2 instancias de Amazon. Un balanceador de carga puede cumplir dos objetivos. El primero y evidente es igualar la carga en los servidores de aplicaciones. Muchos sitios prefieren aislar los servidores de aplicaciones y las bases de datos del acceso directo de los usuarios. Además de distribuir el tráfico, Elastic Load Balancing hace lo siguiente:
+ Detecta EC2 instancias de Amazon en mal estado.

  Redirige el tráfico a las demás instancias en buen estado hasta que se restauren las instancias deterioradas.
+ Escala automáticamente la capacidad de gestión de solicitudes como respuesta al tráfico entrante.

**nota**  
OpsWorks Stacks no es compatible con Application Load Balancer. Solo puede usar el Equilibrador de carga clásico con OpsWorks Stacks.

Aunque en ocasiones nos referimos a Elastic Load Balancing como una capa, su funcionamiento es ligeramente diferente del de otras capas integradas. En lugar de crear una capa y añadirle instancias, se crea un balanceador de cargas de Elastic Load Balancing mediante la EC2 consola de Amazon y, a continuación, se adjunta a una de las capas existentes, normalmente una capa de servidor de aplicaciones. OpsWorks A continuación, Stacks registra las instancias existentes de la capa en el servicio y añade automáticamente cualquier instancia nueva. En el siguiente procedimiento se describe cómo añadir un balanceador de carga.

**Para adjuntar un balanceador de carga a la capa de IIS personalizada**

1. Usa la EC2 consola de Amazon para crear un nuevo balanceador de carga para IISExample. Para obtener más información, consulte [Introducción a Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html). Cuando ejecute el asistente para **Create Load Balancer (Crear balanceador de carga)**, configure el balanceador de carga del modo siguiente:  
**1: Define Load Balancer (1: Definir balanceador de carga)**  
Asigna al balanceador de cargas un nombre fácilmente reconocible, como IIS-LB, para que sea más fácil localizarlo en la consola de Stacks. OpsWorks Acepte los valores predeterminados para la configuración restante y, a continuación, elija **Next: Assign Security Groups (Siguiente: Asignar grupos de seguridad)**.  
**2: Assign Security Groups (2: Asignar grupos de seguridad)**  
Si su cuenta es compatible con las VPC predeterminadas, el asistente muestra esta página para determinar el grupo de seguridad del balanceador de carga. No muestra esta página para Classic. EC2   
Para este tutorial, especifique **default VPC security group (grupo de seguridad de VPC predeterminado)** y, a continuación, elija **Next: Configure Security Settings (Siguiente: Configurar configuración de seguridad)**.  
**3: Configure Security Settings (3: Configurar configuración de seguridad)**  
Este tutorial requiere que el balanceador de carga use un agente de escucha seguro (es decir, HTTPS o SSL en la conexión frontend); por tanto, elija **Next: Configure Health Check (Siguiente: Configurar comprobación de estado)** para continuar.  
**4: Configure Health Check (4: Configurar comprobación de estado)**  
Establezca la ruta de ping en **/**. Acepte los valores predeterminados para el resto de la configuración y, a continuación, seleccione **Siguiente: añadir EC2 instancias**.  
**5: Añadir instancias EC2 **  
OpsWorks Stacks se encarga automáticamente de registrar las instancias con el balanceador de cargas. Elija **Next Add Tags (Siguiente añadir etiquetas)** para continuar.   
**6: Add Tags (6: Añadir etiquetas)**  
En este ejemplo no se utilizarán etiquetas. Elija **Review and Create (Revisar y crear)**.   
**7: Review (7: Revisar)**  
Revise las opciones que ha elegido y elija **Create (Crear)** y, a continuación, **Close (Cerrar)**, que inicia el balanceador de carga.

1. Si su cuenta es compatible con las VPC predeterminadas, después de iniciar el balanceador de carga debe asegurarse de que el grupo de seguridad incluye las reglas de entrada adecuadas. La regla predeterminada no acepta tráfico entrante.

   1. Elija **Security Groups** en el panel de EC2 navegación de Amazon.

   1. Elija **default VPC security group (grupo de seguridad de VPC predeterminado)**

   1. En la pestaña **Inbound (Entrada)**, seleccione **Edit (Edición de)**.

   1. En este tutorial, establezca **Source (Fuente)** en **Anywhere (Cualquier lugar)** para indicar al balanceador de carga que acepte el tráfico entrante de cualquier dirección IP. 

   1. Haga clic en **Guardar**.

1. Regresa a la consola OpsWorks de Stacks. En la página **Layers (Capas)**, elija **Network (Red)**.

1. En **Elastic Load Balancing**, seleccione el balanceador de carga IIS-LB que ha creado en el paso 1 y, a continuación, haga clic en **Save (Guardar)**.

   Una vez que hayas adjuntado el balanceador de carga a la capa, OpsWorks Stacks registra automáticamente las instancias actuales de la capa y agrega nuevas instancias a medida que se conectan.

1. En la página **Layers (Capas)**, haga clic en el nombre del balanceador de carga para abrir su página de detalles. Una marca verde junto a la instancia en el balanceador de carga de la página indica que la instancia ha superado una comprobación de estado.

Ahora puedes ejecutarlo IIS-Example-App enviando una solicitud al balanceador de cargas.

**Para ejecutar el IIS-Example-App balanceador de cargas**

1. Elija **Layers (Capas)**. El balanceador de carga IIS-ELB debe figurar como una capa y la columna Health debe tener una instancia en verde, lo que indica una instancia en buen estado.

1. Elige el nombre DNS del balanceador de cargas para ejecutarlo. IIS-Example-App Debe aparecer bajo el nombre del balanceador de carga y tener un aspecto similar a `IIS-LB-1802910859.us-west-2.elb.amazonaws.com`. El balanceador de carga reenvía la solicitud a la instancia y devuelve la respuesta, que debería ser exactamente igual a la respuesta que se obtiene al hacer clic en la dirección IP pública de la instancia.

En este punto, solo dispone de una única instancia, por lo que el balanceador de carga no añade realmente gran cosa. No obstante, ahora puede añadir instancias adicionales a la capa.

**Para agregar una instancia a la capa**

1. Elija **Instances (Instancias)** y, a continuación, **\$1 instance (\$1 instancia)** para añadir otra instancia a la capa.

1. Inicie la instancia.

Como son instancias nuevas, OpsWorks Stacks instala automáticamente los libros de cocina personalizados actuales e implementa la versión actual de la aplicación durante la configuración. Cuando la instancia se conecta, OpsWorks Stacks la agrega automáticamente al balanceador de cargas, por lo que tu instancia comenzará a gestionar las solicitudes de inmediato. Para verificar que la aplicación sigue funcionando correctamente, puede elegir de nuevo el nombre de DNS del balanceador de carga.

# Siguientes pasos
<a name="gettingstarted-windows-what-next"></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 existentes. 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).

Este tutorial le ha guiado por los aspectos básicos para configurar una pila de servidor de aplicaciones de Windows sencilla. A continuación se ofrecen algunas sugerencias sobre qué hacer ahora.
+ Si quieres saber más, [Introducción: Libros de recetas](gettingstarted-cookbooks.md) incluye un tutorial de introducción a la implementación de libros de cocina e incluye varios ejemplos específicos de OpsWorks Stacks. 
+ Puede añadir una capa de [Amazon Relational Database Service (Amazon RDS)](workinglayers-db-rds.md) a la pila para utilizarla como servidor de base de datos backend. Para obtener información acerca de cómo conectar la aplicación con la base de datos, consulte [Uso de una receta personalizada](workingapps-connectdb.md#workingapps-connectdb-custom).

# Cómo empezar con libros de cocina en pilas OpsWorks
<a name="gettingstarted-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).

Una colección de OpsWorks Stacks a nivel de producción normalmente requiere un poco de personalización, lo que a menudo implica implementar un libro de cocina personalizado de Chef. Un *libro de recetas* es un paquete que contiene la información de configuración en instrucciones denominadas *recetas*. Una *receta* es un conjunto de una o varias instrucciones, escritas en lenguaje Ruby, que especifican los recursos que hay que utilizar y su orden de aplicación. Un *recurso*, según se utiliza en Chef, es una instrucción de la política de configuración. Este tutorial proporciona una introducción básica a la implementación de libros de cocina de Chef para Stacks. OpsWorks Para obtener más información sobre libros de recetas, recetas y recursos de Chef, consulte los enlaces de [Siguientes pasos](gettingstarted-cookbooks-next-steps.md).

En este tutorial se describe principalmente cómo crear libros de recetas. También puede utilizar los libros de recetas que proporciona la comunidad disponibles en sitios web como [Chef Supermarket](https://supermarket.chef.io). Más adelante en el tutorial se incluyen instrucciones para que se inicie en el uso los libros de recetas de la comunidad de Chef Supermarket.

Antes de comenzar, realice algunos pasos de configuración. Si ya ha completado alguno de los tutoriales incluidos en este capítulo, por ejemplo, [Introducción: muestra](gettingstarted-intro.md), ya ha satisfecho los requisitos previos y puede [comenzar este tutorial](gettingstarted-cookbooks-create-cookbook.md). Si no es así, asegúrese de completar los [requisitos previos](gettingstarted-intro-prerequisites.md) y después vuelva a este tutorial.

**Topics**
+ [Paso 1: Crear el libro de recetas](gettingstarted-cookbooks-create-cookbook.md)
+ [Paso 2: Crear la pila y sus componentes](gettingstarted-cookbooks-create-stack.md)
+ [Paso 3: Ejecutar y probar la receta](gettingstarted-cookbooks-test-recipe.md)
+ [Paso 4: Actualizar el libro de recetas para instalar un paquete](gettingstarted-cookbooks-install-package.md)
+ [Paso 5: Actualizar el libro de recetas en la instancia y ejecutar la receta](gettingstarted-cookbooks-copy-cookbook.md)
+ [Paso 6: Actualizar el libro de recetas para añadir un usuario](gettingstarted-cookbooks-add-user.md)
+ [Paso 7: Actualizar el libro de recetas para crear un directorio](gettingstarted-cookbooks-create-directory.md)
+ [Paso 8: Actualizar el libro de recetas para crear y copiar archivos](gettingstarted-cookbooks-create-file.md)
+ [Paso 9: Actualizar el libro de recetas para ejecutar un comando](gettingstarted-cookbooks-run-command.md)
+ [Paso 10: Actualizar el libro de recetas para ejecutar un script](gettingstarted-cookbooks-run-script.md)
+ [Paso 11: Actualizar el libro de recetas para administrar un servicio](gettingstarted-cookbooks-manage-service.md)
+ [Paso 12: Actualizar el uso del libro de recetas para usar JSON personalizado](gettingstarted-cookbooks-custom-json.md)
+ [Paso 13: Actualizar los libros de recetas para usar bolsas de datos](gettingstarted-cookbooks-data-bags.md)
+ [Paso 14: Actualizar el libro de recetas para usar la iteración](gettingstarted-cookbooks-iteration.md)
+ [Paso 15: Actualizar el libro de recetas para utilizar lógica condicional](gettingstarted-cookbooks-conditional-logic.md)
+ [Paso 16: Actualizar el libro de recetas para utilizar libros de recetas de la comunidad](gettingstarted-cookbooks-community-cookbooks.md)
+ [Paso 17: Limpieza (opcional)](gettingstarted-cookbooks-clean-up.md)
+ [Siguientes pasos](gettingstarted-cookbooks-next-steps.md)

# Paso 1: Crear el libro de recetas
<a name="gettingstarted-cookbooks-create-cookbook"></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).

Comience por crear un libro de recetas. Este libro de recetas no hará gran cosa para empezar, pero sirve de base para el resto del tutorial.

**nota**  
En este paso se muestra cómo crear un libro de recetas manualmente. Puede crear un libro de recetas de Chef en menos tiempo con el kit de desarrollo de Chef ([Chef DK](https://docs.chef.io/#chef-dk-title)) ejecutando el comando [https://docs.chef.io/ctl_chef.html#chef-generate-cookbook](https://docs.chef.io/ctl_chef.html#chef-generate-cookbook) en la estación de trabajo local. No obstante, este comando crea varias carpetas y archivos que no son necesarios en este tutorial.

**Para crear el libro de recetas**

1. En la estación de trabajo local, cree un directorio denominado `opsworks_cookbook_demo`. Puede utilizar otro nombre, pero asegúrese de cambiarlo por `opsworks_cookbook_demo` a efectos de este tutorial.

1. En el directorio `opsworks_cookbook_demo`, cree un archivo denominado `metadata.rb` utilizando un editor de texto. Añada el siguiente código para especificar el nombre del libro de recetas. Para obtener más información `metadata.rb`, consulte [metadata.rb](https://docs.chef.io/config_rb_metadata.html) en el sitio web de Chef.

   ```
   name "opsworks_cookbook_demo"
   ```

1. En el directorio `opsworks_cookbook_demo`, cree un subdirectorio llamado `recipes`. Este subdirectorio contiene todas las recetas que crea para el libro de recetas de este tutorial.

1. En el directorio `recipes`, cree un archivo llamado `default.rb`. Este archivo contiene una receta con el mismo nombre que el archivo, pero sin la extensión: `default`. Agregue la siguiente línea de código al archivo `default.rb`. Este código es una receta de una sola línea que muestra un mensaje sencillo en el registro cuando se ejecuta la receta:

   ```
   Chef::Log.info("********** Hello, World! **********")
   ```

1. En la línea de comandos o terminal, utilice el comando **tar** para crear un archivo denominado `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido. Por ejemplo:

   ```
   tar -czvf opsworks_cookbook_demo.tar.gz opsworks_cookbook_demo/
   ```

   Puede utilizar otro nombre de archivo, pero asegúrese de cambiarlo por `opsworks_cookbook_demo.tar.gz` a efectos de este tutorial.
**nota**  
Al crear el archivo `tar` en Windows, el directorio superior debe ser el directorio principal del libro de recetas. Este tutorial se ha probado en Linux con el comando **tar** que proporciona el paquete `tar` y en Windows con el comando **tar** que proporciona [Git Bash](https://git-for-windows.github.io/). Es posible que el uso de otros programas o comandos para crear un archivo TAR comprimido (.tar.gz) no dé los resultados previstos.

1. Cree un bucket de S3 o utilice uno existente. Para obtener más información, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html).

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` en el bucket de S3. Para obtener más información, consulte [Añadir un objeto a un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.html).

Ya tiene el libro de recetas que utilizará en este tutorial.

En el [siguiente paso](gettingstarted-cookbooks-create-stack.md), crearás una pila de OpsWorks Stacks que utilizarás más adelante para cargar tu libro de cocina y ejecutar las recetas del libro de cocina.

# Paso 2: Crear la pila y sus componentes
<a name="gettingstarted-cookbooks-create-stack"></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).

Crea una pila de OpsWorks Stacks y sus componentes, que incluyen una capa y una instancia. En pasos posteriores, cargará el libro de recetas en la instancia y, a continuación, ejecutará las recetas en ella.

**Para crear la pila**

1. [Inicia sesión en la consola de OpsWorks Stacks en /opsworks. https://console.aws.amazon.com](https://console.aws.amazon.com/opsworks)

1. Haga una de estas cosas, si son relevantes:
   + Si aparece la página de **bienvenida a OpsWorks Stacks**, selecciona **Añadir tu primera pila o Añadir tu primera pila** **de OpsWorks pilas** (ambas opciones tienen el mismo efecto). Se muestra la página **Add stack (Añadir pila)**.
   + Si aparece la página del **OpsWorks panel** de control, selecciona **Añadir** pila. Se muestra la página **Add Stack (Añadir pila)**.

1. Elija **Chef 12 stack (Pila de Chef 12)**.

1. En el cuadro **Stack name (Nombre de pila)**, escriba el nombre de la pila, por ejemplo **MyCookbooksDemoStack**. Puede usar otro nombre, pero asegúrese de cambiarlo por `MyCookbooksDemoStack` durante este tutorial.

1. En **Región**, elija la región **Oeste de EE. UU. (Oregón)**.

1. En **VPC**, realice una de las siguientes operaciones:
   + Si hay una VPC disponible, selecciónela. Para obtener más información, consulte [Ejecución de una pila en una VPC](workingstacks-vpc.md).
   + En caso contrario, elija **No VPC**.

1. En **Use custom Chef cookbooks (Usar libros de recetas de Chef personalizados)**, elija **Yes (Sí)**.

1. En **Repository type (Tipo de repositorio)**, elija **S3 Archive (Archivo de S3)**.
**nota**  
En el tutorial [Introducción: Linux](gettingstarted-linux.md), eligió **Http Archive (Archivo Http)**. Aquí, asegúrese de elegir **S3 Archive (Archivo S3)** en su lugar.

1. Para **Repository URL (URL de repositorio)**, escriba la ruta a su archivo `opsworks_cookbook_demo.tar.gz` en S3. Para obtener la ruta, seleccione el archivo `opsworks_cookbook_demo.tar.gz` en la consola S3. En el panel **Properties (Propiedades)**, copie el valor del campo **Link (Enlace)**. (Debe similar a esto: `https://s3.amazonaws.com/amzn-s3-demo-bucket/opsworks_cookbook_demo.tar.gz`).

1. Si el bucket de S3 es privado, que es el valor predeterminado, en **Access key ID** y **Secret access key** escriba el ID de clave de acceso y la clave de acceso secreta del usuario de IAM que está utilizando en este tutorial. Para obtener más información, consulte [Edición de permisos de objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EditingPermissionsonanObject.html) y [Compartir un objeto con otros](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html).

1. Mantenga la configuración predeterminada de los siguientes campos:
   + **Default Availability Zone (Zona de disponibilidad predeterminada)** (**us-west-2a**)
   + **Sistema operativo predeterminado** (**Linux** y **Amazon Linux 2016.09**)
   + **Default SSH key (Clave SSH predeterminada)** (**Do not use a default SSH key (No utilizar una clave SSH predeterminada)**)
   + **Stack color (Color de pila)** (azul oscuro)

1. Seleccione **Avanzado**.

1. En **Rol de IAM**, realice una de las operaciones siguientes:
   + Si **aws-opsworks-service-role** está disponible, elíjalo.
   + Si no **aws-opsworks-service-role**está disponible, elija **Nueva función de IAM**.

1. Para **Rol de IAM para el perfil de instancia predeterminado**, realice una de las siguientes acciones:
   + Si hay **aws-opsworks-ec2 roles** disponibles, elíjalos.
   + Si la **aws-opsworks-ecfunción 2** no está disponible, elija un **nuevo perfil de instancia de IAM.**

1. Mantenga la configuración predeterminada de los siguientes campos:
   + **Default root device type (Tipo de dispositivo raíz predeterminado)** (**EBS backed (Respaldada por EBS)**)
   + **Hostname theme (Tema de nombre de host)** (**Layer Dependent (Dependiente de capa)**)
   + **OpsWorks Versión del agente (versión** más reciente)
   + **Custom Chef JSON (JSON de Chef personalizado)** (en blanco)
   + **Seguridad**, **utilice grupos OpsWorks de seguridad** (**sí**)

1. Seleccione **Añadir pila**. OpsWorks Stacks crea la pila y muestra la **MyCookbooksDemoStack**página.

**Para crear la capa**

1. En el panel de navegación de servicio, elija **Layers (Capas)**. Se abre la página **Layers (Capas)**. 

1. Elija **Add a layer (Añadir una capa)**.

1. En la **OpsWorks**pestaña, en **Nombre**, escriba**MyCookbooksDemoLayer**. Puede usar otro nombre, pero asegúrese de cambiarlo por `MyCookbooksDemoLayer` durante este tutorial.

1. En **Short name (Nombre corto)**, escriba **cookbooks-demo**. Puede usar otro nombre, pero asegúrese de cambiarlo por `cookbooks-demo` durante este tutorial.

1. Seleccione **Añadir capa**. OpsWorks Stacks añade la capa y muestra la página de **capas**.

**Para crear e iniciar la instancia**

1. En el panel de navegación de servicio, seleccione **Instances (Instancias)**. Se abre la página **Instances (Instancias)**.

1. Elija **Añadir una instancia**.

1. En la pestaña **New (Nueva)**, elija **Advanced (Avanzado)**. 

1. Mantenga la configuración predeterminada de los siguientes campos:
   + **Hostname (Nombre de host)** (**cookbooks-demo1**)
   + **Size (Tamaño)** (**c3.large**)
   + **Subred (us-west-2a****) *IP address***
   + **Scaling type (Tipo de escalado)** (**24/7**)
   + **SSH key (Clave SSH)** (**Do not use a default SSH key (No utilizar una clave SSH predeterminada)**)
   + **Sistema operativo**: (**Amazon Linux 2016.09**)
   + **OpsWorks Versión del agente (se hereda de la** **pila)**
   + **Tenancy (Propiedad)** (**Default - Rely on VPC settings (Predeterminada - Basarse en la configuración de VPC)**)
   + **Root device type (Tipo de dispositivo raíz)** (**EBS backed (Respaldada por EBS)**)
   + **Volume type (Tipo de volumen)** (**General Purpose (SSD) (Uso general (SSD))**)
   + **Volume size (Tamaño del volumen)** (**8**)

1. Elija **Add Instance (Añadir instancia)**.

1. ****Para **cookbooks-demo1 **MyCookbooksDemoLayer****, para Actions, selecciona start.**** Continúe cuando **Status (Estado)** cambie a **online**. Este proceso puede demorar varios minutos, tenga paciencia.

Ya tiene una pila, una capa y una instancia en las que se copió automáticamente el libro de recetas desde el bucket de S3. En el [paso siguiente](gettingstarted-cookbooks-test-recipe.md), ejecutará y probará la receta predeterminada dentro del libro de recetas en la instancia.

# Paso 3: Ejecutar y probar la receta
<a name="gettingstarted-cookbooks-test-recipe"></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).

Ejecuta y prueba la `default` receta desde el libro de cocina que OpsWorks Stacks copió en la instancia. Como recordará, esta es la receta de una línea que muestra un mensaje sencillo en el registro cuando se ejecuta la receta.

**Para ejecutar la receta**

1. En el panel de navegación de servicio, elija **Stack (Pila)**. Se abre la página **MyCookbooksDemoStack**.

1. Elija **Run Command (Ejecutar comando)**. Se muestra la página **Run Command (Ejecutar comando)**.

1. En **Command (Comando)**, elija **Execute Recipes (Ejecutar recetas)**.

1. En **Recipes to execute (Recetas que ejecutar)**, escriba **opsworks\$1cookbook\$1demo::default**.

   **opsworks\$1cookbook\$1demo** es el nombre del libro de recetas según se define en el archivo `metadata.rb`. **default** es el nombre de la receta que se va a ejecutar, es decir, el nombre del archivo `default.rb` del subdirectorio `recipes` del libro de recetas, sin la extensión de archivo.

1. Deje los valores predeterminados siguientes:
   + **Comment (Comentario)** (en blanco)
   + **Advanced (Avanzado)**, **Custom Chef JSON (JSON de Chef personalizado)** (en blanco)
   + **Instancias** (**selecciona todos los libros de cocina marcados, todos los** libros de **cocina** y demo1 **MyCookbooksDemoLayer**marcados)

1. Elija **Execute Recipes (Ejecutar recetas)**. Se muestra la página **Running command execute\$1recipes (Ejecutando comando execute\$1recipes)**. Continúe cuando **Status (Estado)** cambie a **successful (correcto)**. Este proceso puede demorar unos minutos, tenga paciencia.

**Para comprobar los resultados de la receta**

1. Mientras se muestra la página **Running command execute\$1recipes (Ejecutando comando execute\$1recipes)**, en **cookbooks-demo1**, en **Log (Registro)**, elija **show (mostrar)**. Se muestra la página del registro **execute\$1recipes**.

1. Desplácese hacia abajo en el registro y busque una entrada con un aspecto similar al siguiente:

   ```
   [2015-11-13T19:14:39+00:00] INFO: ********** Hello, World! **********
   ```

¡Acaba de ejecutar su primera receta\$1 En el [paso siguiente](gettingstarted-cookbooks-install-package.md), actualizará el libro de recetas añadiendo una receta que instala un paquete en la instancia.

# Paso 4: Actualizar el libro de recetas para instalar un paquete
<a name="gettingstarted-cookbooks-install-package"></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).

Actualice el libro de recetas añadiendo una receta que instale en la instancia un paquete que contiene el conocido editor de texto GNU Emacs.

Si bien puedes iniciar sesión en la instancia e instalar el paquete una vez con la misma facilidad, escribir una receta te permite ejecutar la receta desde OpsWorks Stacks una vez para instalar varios paquetes en varias instancias de una pila simultáneamente. 

**Para actualizar el libro de recetas e instalar un paquete**

1. De vuelta en la estación de trabajo local, en el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `install_package.rb` con el código siguiente: 

   ```
   package "Install Emacs" do
     package_name "emacs"
   end
   ```

   Esta receta instala el paquete `emacs` en la instancia. (Para obtener más información, consulte [package](https://docs.chef.io/resource_package.html)).
**nota**  
Puede dar a la receta el nombre de archivo que desee. Asegúrate de especificar el nombre correcto de la receta siempre que quieras que OpsWorks Stacks ejecute la receta.

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

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

Esta nueva receta se ejecuta cuando actualiza el libro de recetas en la instancia y después ejecuta la nueva receta desde el libro de recetas actualizado. En el paso siguiente se describe cómo hacerlo. 

Después de completar el [paso siguiente](gettingstarted-cookbooks-copy-cookbook.md), podrá iniciar sesión en la instancia; entonces, escriba **emacs** en el símbolo del sistema para abrir GNU Emacs. (Para obtener más información, consulte [Conexión con la instancia de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)). Para salir de GNU Emacs, presione **Ctrl\$1X** y después **Ctrl\$1C**.

**importante**  
Para iniciar sesión en la instancia, primero debes proporcionar a OpsWorks Stacks información sobre tu clave SSH pública (que puedes crear con herramientas como ssh-keygen o PuTTYgen) y, después, debes configurar los permisos en la `MyCookbooksDemoStack` pila para que el usuario pueda iniciar sesión en la instancia. Para obtener instrucciones, consulte [Registro de la clave pública SSH de un usuario](security-settingsshkey.md) y [Inicio de sesión con SSH](workinginstances-ssh.md).

# Paso 5: Actualizar el libro de recetas en la instancia y ejecutar la receta
<a name="gettingstarted-cookbooks-copy-cookbook"></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).

Actualice el libro de recetas en la instancia y, a continuación, ejecute la receta desde el libro actualizado en la instancia. Hasta finalizar este tutorial, repetirá este paso cada vez que actualice el libro de recetas mediante la adición de una nueva receta.

**Para actualizar el libro de recetas en la instancia**

1. En el panel de navegación de servicio, elija **Stack (Pila)**. Se abre la página **MyCookbooksDemoStack**.

1. Elija **Run Command (Ejecutar comando)**. Se muestra la página **Run Command (Ejecutar comando)**.

1. Para **Command (Comando)**, elija **Update Custom Cookbooks (Actualizar libros de recetas personalizados)**.

1. Deje los valores predeterminados siguientes:
   + **Comment (Comentario)** (en blanco)
   + **Advanced (Avanzado)**, **Custom Chef JSON (JSON de Chef personalizado)** (en blanco)
   + **Avanzado**, **instancias** (**selecciona todos los libros de cocina marcados, todos los** libros de **cocina** y demo1 **MyCookbooksDemoLayer**marcados)

1. Elija **Update Custom Cookbooks (Actualizar libros de recetas personalizados)**. Se muestra la página **Running command update\$1custom\$1cookbooks**. Continúe cuando **Status (Estado)** cambie a **successful (correcto)**. Este proceso puede demorar varios minutos, tenga paciencia.

**Para ejecutar la receta**

1. En el panel de navegación de servicio, elija **Stack (Pila)**. Se abre la página **MyCookbooksDemoStack**.

1. Elija **Run Command (Ejecutar comando)**. Se muestra la página **Run Command (Ejecutar comando)**.

1. En **Command (Comando)**, elija **Execute Recipes (Ejecutar recetas)**.

1. En **Recipes to execute (Recetas para ejecutar)**, escriba el nombre de la receta que se va a ejecutar. La primera vez que lo hace, la receta se llama **opsworks\$1cookbook\$1demo::install\$1package**.
**nota**  
Cuando más adelante repita el procedimiento, escriba el nombre del libro de recetas (**opsworks\$1cookbook\$1demo**), seguido por el signo de dos puntos dos veces (**::**), seguido por el nombre de la receta (el nombre de archivo de la receta sin la extensión `.rb`).

1. Deje los valores predeterminados siguientes:
   + **Comment (Comentario)** (en blanco)
   + **Advanced (Avanzado)**, **Custom Chef JSON (JSON de Chef personalizado)** (en blanco)
   + **Instancias****: **seleccione todos los libros de cocina (marcados, todos los** libros de cocina, demo-1 (**MyCookbooksDemoLayer**marcados)**

1. Elija **Execute Recipes (Ejecutar recetas)**. Se muestra la página **Running command execute\$1recipes (Ejecutando comando execute\$1recipes)**. Continúe cuando **Status (Estado)** cambie a **successful (correcto)**. Este proceso puede demorar unos minutos, tenga paciencia.

**nota**  
No es preciso ejecutar manualmente las recetas. Puedes asignar recetas a los eventos del ciclo de vida de una capa, como los eventos de configuración y configuración, y OpsWorks Stacks ejecutará esas recetas automáticamente cuando se produzca el evento. Para obtener más información, consulte [OpsWorks Stacks Lifecycle Events](workingcookbook-events.md).

En el [paso siguiente](gettingstarted-cookbooks-add-user.md), actualizará el libro de recetas para añadir un usuario a la instancia.

# Paso 6: Actualizar el libro de recetas para añadir un usuario
<a name="gettingstarted-cookbooks-add-user"></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).

Actualice el libro de recetas añadiendo una receta que agrega un usuario local a la instancia y establece el directorio de inicio y el shell del usuario. Esto es parecido a ejecutar los comandos **adduser** o **useradd** de Linux o el comando **net user** de Windows. Puede añadir un usuario local a una instancia, por ejemplo, si desea controlar el acceso a los archivos y directorios de la instancia.

También puede administrar los usuarios sin usar libros de recetas. Para obtener más información, consulte [Administración de usuarios](opsworks-security-users-manage.md).

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

1. En la estación de trabajo local, en el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `add_user.rb` con el código siguiente (para obtener más información, vaya a [user](https://docs.chef.io/resource_user.html)): 

   ```
   user "Add a user" do
     home "/home/jdoe"
     shell "/bin/bash"
     username "jdoe"  
   end
   ```

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado 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::add\$1user**.

**Para probar la receta**

1. Inicie sesión en la instancia si aún no lo ha hecho.

1. En el símbolo del sistema, ejecute el siguiente comando para confirmar que se ha añadido el nuevo usuario:

   ```
   grep jdoe /etc/passwd
   ```

   Se muestra información similar a la siguiente sobre el usuario, incluidos detalles como el nombre de usuario, el número de ID, el número de ID de grupo, el directorio de inicio y el shell:

   ```
   jdoe:x:501:502::/home/jdoe:/bin/bash
   ```

En el [paso siguiente](gettingstarted-cookbooks-create-directory.md), actualizará el libro de recetas para crear un directorio en la instancia.

# Paso 7: Actualizar el libro de recetas para crear un directorio
<a name="gettingstarted-cookbooks-create-directory"></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).

Actualice el libro de recetas añadiendo una receta que agrega un directorio a la instancia. Esto es parecido a ejecutar el comando **mkdir** de Linux o los comandos **md** o **mkdir** de Windows.

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

1. En la estación de trabajo local, en el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `create_directory.rb` con el código siguiente. Para obtener más información, consulte [directory](https://docs.chef.io/resource_directory.html): 

   ```
   directory "Create a directory" do
     group "root"
     mode "0755"
     owner "ec2-user"
     path "/tmp/create-directory-demo"  
   end
   ```

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado 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::create\$1directory**.

**Para probar la receta**

1. Inicie sesión en la instancia si aún no lo ha hecho.

1. En el símbolo del sistema, ejecute el siguiente comando para confirmar que se ha añadido el directorio nuevo:

   ```
   ls -la /tmp/create-directory-demo
   ```

   Se muestra información sobre el nuevo directorio añadido, incluida información como los permisos, el nombre de propietario y nombre de grupo: 

   ```
   drwxr-xr-x 2 ec2-user root 4096 Nov 18 00:35 .
   drwxrwxrwt 6 root     root 4096 Nov 24 18:17 ..
   ```

En el [paso siguiente](gettingstarted-cookbooks-create-file.md), actualizará el libro de recetas para crear un archivo en la instancia.

# Paso 8: Actualizar el libro de recetas para crear y copiar archivos
<a name="gettingstarted-cookbooks-create-file"></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).

Actualice el libro de recetas añadiendo una receta que agrega dos archivos a la instancia. El primer recurso de la receta crea un archivo completamente con el código de la receta. Esto es parecido a ejecutar los comandos **cat**, **echo** o **touch** de Linux o los comandos **echo** o **fsutil** de Windows. Esta técnica es útil con pocos archivos, o con archivos pequeños o sencillos. El segundo recurso de la receta copia un archivo del libro de recetas en otro directorio de la instancia. El procedimiento es similar a ejecutar el comando **cp** en Linux o el comando **copy** en Windows. Esta técnica es útil cuando hay muchos archivos, o archivos grandes o complejos.

Antes de este paso, complete [Paso 7: Actualizar el libro de recetas para crear un directorio](gettingstarted-cookbooks-create-directory.md) para asegurarse de que exista el directorio principal.

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

1. En la estación de trabajo local, en el directorio `opsworks_cookbook_demo`, cree un subdirectorio llamado `files`. 

1. En el subdirectorio `files`, cree un archivo denominado `hello.txt` con el texto siguiente: **Hello, World\$1** 

1. En el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `create_files.rb` con el código siguiente. Para obtener más información, consulte [file](https://docs.chef.io/resource_file.html) y [cookbook\$1file](https://docs.chef.io/resource_cookbook_file.html).

   ```
   file "Create a file" do
     content "<html>This is a placeholder for the home page.</html>"
     group "root"
     mode "0755"
     owner "ec2-user"
     path "/tmp/create-directory-demo/index.html"
   end
   
   cookbook_file "Copy a file" do  
     group "root"
     mode "0755"
     owner "ec2-user"
     path "/tmp/create-directory-demo/hello.txt"
     source "hello.txt"  
   end
   ```

   El recurso `file` crea un archivo en la ruta especificada. El recurso `cookbook_file` copia el archivo del directorio `files` que acaba de crear en el libro de recetas (Chef espera encontrar un subdirectorio con un nombre estándar `files` del que pueda copiar archivos) en otro directorio de la instancia.

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado 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::create\$1files**.

**Para probar la receta**

1. Inicie sesión en la instancia si aún no lo ha hecho.

1. En el símbolo del sistema, ejecute los siguientes comandos, uno por uno, para confirmar que se han añadido los nuevos archivos:

   ```
   sudo cat /tmp/create-directory-demo/index.html
   
   sudo cat /tmp/create-directory-demo/hello.txt
   ```

   Se muestra el contenido del archivo:

   ```
   <html>This is a placeholder for the home page.</html>
   
   Hello, World!
   ```

En el [paso siguiente](gettingstarted-cookbooks-run-command.md), actualizará el libro de recetas para ejecutar un comando en la instancia.

# Paso 9: Actualizar el libro de recetas para ejecutar un comando
<a name="gettingstarted-cookbooks-run-command"></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).

Actualice el libro de recetas añadiendo una receta que ejecuta un comando que crea una clave SSH en la instancia. 

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

1. En la estación de trabajo local, en el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `run_command.rb` con el código siguiente. Para obtener más información, consulte [execute](https://docs.chef.io/resource_execute.html).

   ```
   execute "Create an SSH key" do
     command "ssh-keygen -f /tmp/my-key -N fLyC3jbY"
   end
   ```

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado 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::run\$1command**.

**Para probar la receta**

1. Inicie sesión en la instancia si aún no lo ha hecho.

1. En el símbolo del sistema, ejecute los comandos siguientes de uno en uno para confirmar que se ha creado la clave SSH:

   ```
   sudo cat /tmp/my-key
   
   sudo cat /tmp/my-key.pub
   ```

   Se muestra el contenido de la clave SSH pública y privada:

   ```
   -----BEGIN RSA PRIVATE KEY-----
   Proc-Type: 4,ENCRYPTED
   DEK-Info: AES-128-CBC,DEF7A09C...541583FA
   A5p9dCuo...wp0YYH1c
   -----END RSA PRIVATE KEY-----
   
   ssh-rsa AAAAB3N...KaNogZkT root@cookbooks-demo1
   ```

En el [paso siguiente](gettingstarted-cookbooks-run-script.md), actualizará el libro de recetas para ejecutar un script en la instancia.

# Paso 10: Actualizar el libro de recetas para ejecutar un script
<a name="gettingstarted-cookbooks-run-script"></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).

Actualice el libro de recetas añadiendo una receta que ejecuta un script en la instancia. Esta receta crea un directorio y después crea un archivo en dicho directorio. Escribir una receta para ejecutar un script con varios comandos es más fácil que ejecutar los comandos uno por uno.

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

1. En la estación de trabajo local, en el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `run_script.rb` con el código siguiente. Para obtener más información, consulte [script](https://docs.chef.io/resource_script.html). 

   ```
   script "Run a script" do
     interpreter "bash"
     code <<-EOH
       mkdir -m 777 /tmp/run-script-demo
       touch /tmp/run-script-demo/helloworld.txt
       echo "Hello, World!" > /tmp/run-script-demo/helloworld.txt
     EOH
   end
   ```

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado 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::run\$1script**.

**Para probar la receta**

1. Inicie sesión en la instancia si aún no lo ha hecho.

1. En el símbolo del sistema, ejecute el comando siguiente para confirmar que se ha añadido el nuevo archivo:

   ```
   sudo cat /tmp/run-script-demo/helloworld.txt
   ```

   Se muestra el contenido del archivo:

   ```
   Hello, World!
   ```

En el [paso siguiente](gettingstarted-cookbooks-manage-service.md), actualizará el libro de recetas para administrar un servicio en la instancia.

# Paso 11: Actualizar el libro de recetas para administrar un servicio
<a name="gettingstarted-cookbooks-manage-service"></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).

Actualice el libro de recetas añadiendo una receta que administra un servicio en la instancia. El procedimiento es similar a ejecutar el comando **service** de Linux o los comandos **net stop**, **net start** y similares de Windows. Esta receta detiene el servicio **crond** en la instancia.

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

1. En la estación de trabajo local, en el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `manage_service.rb` con el código siguiente. Para obtener más información, consulte [service](https://docs.chef.io/resource_service.html). 

   ```
   service "Manage a service" do
     action :stop
     service_name "crond"  
   end
   ```

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado 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::manage\$1service**.

**Para probar la receta**

1. Inicie sesión en la instancia si aún no lo ha hecho.

1. En el símbolo del sistema, ejecute el comando siguiente para confirmar que el servicio **crond** se ha detenido:

   ```
   service crond status
   ```

   Se muestra lo siguiente:

   ```
   crond is stopped
   ```

1. Para reiniciar el servicio **crond**, ejecute el comando siguiente:

   ```
   sudo service crond start
   ```

   Se muestra lo siguiente:

   ```
   Starting crond:  [  OK  ]
   ```

1.  Para confirmar que el servicio **crond** se ha iniciado, ejecute el comando siguiente:

   ```
   service crond status
   ```

   Se muestra información similar a la siguiente:

   ```
   crond (pid  3917) is running...
   ```

En el [paso siguiente](gettingstarted-cookbooks-custom-json.md), actualizará el libro de recetas personalizado para hacer referencia a la información almacenada como JSON personalizado en la instancia.

# Paso 12: Actualizar el uso del libro de recetas para usar JSON personalizado
<a name="gettingstarted-cookbooks-custom-json"></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).

Actualice el libro de recetas añadiendo una receta que haga referencia al JSON personalizado que se almacena en la instancia.

Puede especificar información en formato JSON personalizado siempre que cree, actualice o clone una pila, o cuando ejecute una implementación o un comando de la pila. Esto resulta útil, por ejemplo, para poner una pequeña porción de datos inmutables a disposición de todas las recetas de la instancia, en lugar de obtener estos datos de una base de datos. Para obtener más información, consulte [Uso de un JSON personalizado](workingstacks-json.md). 

En este tutorial, utilizará JSON personalizado para proporcionar información ficticia sobre la factura de un cliente. El JSON personalizado se describe posteriormente en este paso.

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

1. En la estación de trabajo local, en el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `custom_json.rb` que contenga el siguiente código de receta: 

   ```
   Chef::Log.info("********** For customer '#{node['customer-id']}' invoice '#{node['invoice-number']}' **********")
   Chef::Log.info("********** Invoice line number 1 is a '#{node['line-items']['line-1']}' **********")
   Chef::Log.info("********** Invoice line number 2 is a '#{node['line-items']['line-2']}' **********")
   Chef::Log.info("********** Invoice line number 3 is a '#{node['line-items']['line-3']}' **********")
   ```

   Esta receta muestra mensajes en el registro sobre valores del JSON personalizado.

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado 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::custom\$1json**. En **Advanced (Avanzado)**, **Custom Chef JSON (JSON de Chef personalizado)**, escriba el siguiente JSON personalizado:

   ```
   {
     "customer-id": "0123",
     "invoice-number": "9876",
     "line-items": {
       "line-1": "tractor",
       "line-2": "passenger car",
       "line-3": "trailer"
     }
   }
   ```

**Para probar la receta**

1. Mientras se muestra la página **Running command execute\$1recipes (Ejecutando comando execute\$1recipes)** de los procedimientos anteriores, en **cookbooks-demo1**, en **Log (Registro)**, elija **show (mostrar)**. Se muestra la página del registro **execute\$1recipes**.

1. Desplácese hacia abajo por el registro hasta encontrar entradas con un aspecto similar al siguiente:

   ```
   [2015-11-14T14:18:30+00:00] INFO: ********** For customer '0123' invoice '9876' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 1 is a 'tractor' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 2 is a 'passenger car' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 3 is a 'trailer' **********
   ```

   Estas entradas muestran información del JSON personalizado que se ha escrito en el cuadro **Advanced (Avanzado)**, **Custom Chef JSON (JSON de Chef personalizado)**.

En el [siguiente paso](gettingstarted-cookbooks-data-bags.md), actualizarás el recetario para obtener información de las bolsas de datos, que son conjuntos de configuraciones de pila que OpsWorks Stacks almacena en cada instancia.

# Paso 13: Actualizar los libros de recetas para usar bolsas de datos
<a name="gettingstarted-cookbooks-data-bags"></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).

Actualiza tu libro de cocina añadiendo una receta que haga referencia a los ajustes de pila que OpsWorks Stacks almacena en la instancia en un conjunto de bolsas de datos. Esta receta muestra mensajes en el registro sobre la configuración específica de la pila que se almacena en la instancia. Para obtener más información, consulte la [OpsWorks Referencia de la bolsa de datos Stacks](data-bags.md).

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

1. En la estación de trabajo local, en el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `data_bags.rb` que contenga el siguiente código: 

   ```
   instance = search("aws_opsworks_instance").first
   layer = search("aws_opsworks_layer").first
   stack = search("aws_opsworks_stack").first
   
   Chef::Log.info("********** This instance's instance ID is '#{instance['instance_id']}' **********")
   Chef::Log.info("********** This instance's public IP address is '#{instance['public_ip']}' **********")
   Chef::Log.info("********** This instance belongs to the layer '#{layer['name']}' **********")
   Chef::Log.info("********** This instance belongs to the stack '#{stack['name']}' **********")
   Chef::Log.info("********** This stack gets its cookbooks from '#{stack['custom_cookbooks_source']['url']}' **********")
   ```

   Esta receta muestra mensajes en el registro sobre la configuración específica de la pila que se almacena en la instancia.

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado 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::data\$1bags**. 

**Para probar la receta**

1. Mientras se muestra la página **Running command execute\$1recipes** del procedimiento anterior, en **cookbooks-demo1**, en **Log (Registro)**, elija **show (mostrar)**. Se muestra la página del registro **execute\$1recipes**.

1. Desplácese hacia abajo por el registro y busque entradas con un aspecto similar al siguiente:

   ```
   [2015-11-14T14:39:06+00:00] INFO: ********** This instance's instance ID is 'f80fa119-81ab-4c3c-883d-6028e52c89EX' **********
   [2015-11-14T14:39:06+00:00] INFO: ********** This instance's public IP address is '192.0.2.0' **********
   [2015-11-14T14:39:06+00:00] INFO: ********** This instance belongs to the layer 'MyCookbooksDemoLayer' **********
   [2015-11-14T14:39:06+00:00] INFO: ********** This instance belongs to the stack 'MyCookbooksDemoStack' **********
   [2015-11-14T14:39:06+00:00] INFO: ********** This stack gets its cookbooks from 'https://s3.amazonaws.com/amzn-s3-demo-bucket/opsworks_cookbook_demo.tar.gz' **********
   ```

   Esta receta muestra mensajes sobre la configuración específica de la pila que se almacena en la instancia.

En el [siguiente paso](gettingstarted-cookbooks-iteration.md), actualizará el código del libro de recetas para ejecutar el código de la receta varias veces.

# Paso 14: Actualizar el libro de recetas para usar la iteración
<a name="gettingstarted-cookbooks-iteration"></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).

Actualice el libro de recetas añadiendo una receta que utiliza la *iteración*, una técnica que repite el código de la receta múltiples veces. Esta receta muestra mensajes en el registro del elemento bolsa de datos que incluye contenido variado. 

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

1. En la estación de trabajo local, en el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `iteration_demo.rb` que contenga el siguiente código:

   ```
   stack = search("aws_opsworks_stack").first
   Chef::Log.info("********** Content of 'custom_cookbooks_source' **********")
   
   stack["custom_cookbooks_source"].each do |content|
     Chef::Log.info("********** '#{content}' **********")
   end
   ```
**nota**  
Escribir el código de la receta anterior es más corto, más flexible y genera menos errores que escribir el siguiente código de receta que no emplea iteración:  

   ```
   stack = search("aws_opsworks_stack").first
   Chef::Log.info("********** Content of 'custom_cookbooks_source' **********")
   
   Chef::Log::info("********** '[\"type\", \"#{stack['custom_cookbooks_source']['type']}\"]' **********")
   Chef::Log::info("********** '[\"url\", \"#{stack['custom_cookbooks_source']['url']}\"]' **********")
   Chef::Log::info("********** '[\"username\", \"#{stack['custom_cookbooks_source']['username']}\"]' **********")
   Chef::Log::info("********** '[\"password\", \"#{stack['custom_cookbooks_source']['password']}\"]' **********")
   Chef::Log::info("********** '[\"ssh_key\", \"#{stack['custom_cookbooks_source']['ssh_key']}\"]' **********")
   Chef::Log::info("********** '[\"revision\", \"#{stack['custom_cookbooks_source']['revision']}\"]' **********")
   ```

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado 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::iteration\$1demo**. 

**Para probar la receta**

1. Mientras se muestra la página **Running command execute\$1recipes (Ejecutando comando execute\$1recipes)** de los procedimientos anteriores, en **cookbooks-demo1**, en **Log (Registro)**, elija **show (mostrar)**. Se muestra la página del registro **execute\$1recipes**.

1. Desplácese hacia abajo por el registro y busque entradas con un aspecto similar al siguiente:

   ```
   [2015-11-16T19:56:56+00:00] INFO: ********** Content of 'custom_cookbooks_source' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["type", "s3"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["url", "https://s3.amazonaws.com/amzn-s3-demo-bucket/opsworks_cookbook_demo.tar.gz"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["username", "secret-key-value"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["password", "secret-access-key-value"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["ssh_key", nil]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["revision", nil]' **********
   ```

   Esta receta muestra mensajes en el registro del elemento bolsa de datos que incluye contenido variado. El elemento de bolsa de datos está en la bolsa de datos `aws_opsworks_stack`. El elemento de bolsa de datos tiene contenido denominado `custom_cookbooks_source`. Dentro de este contenido hay seis contenidos denominados `type`, `url`, `username`, `password`, `ssh_key` y `revision`; también se muestran sus valores.

En el [siguiente paso](gettingstarted-cookbooks-conditional-logic.md), actualizará el libro de recetas para ejecutar el código de la receta solo si se cumplen determinadas condiciones.

# Paso 15: Actualizar el libro de recetas para utilizar lógica condicional
<a name="gettingstarted-cookbooks-conditional-logic"></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).

Ahora actualice el libro de recetas añadiendo una receta que utiliza la *lógica condicional*, una técnica que ejecuta el código solo si se cumplen determinadas condiciones. Para obtener más información, consulte [Instrucciones if](https://docs.chef.io/dsl_recipe.html#if-statements) y [Instrucciones case](https://docs.chef.io/dsl_recipe.html#case-statements).

Esta receta hace dos cosas según el contenido de la bolsa de datos: muestra un mensaje en el registro donde identifica el sistema operativo en el que la instancia se ejecuta y, solo si el sistema operativo es Linux, instala un paquete utilizando el administrador de paquete correcto para la distribución concreta de Linux. Este paquete se denomina tree; es una aplicación sencilla para visualizar las listas de directorios.

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

1. En la estación de trabajo local, en el directorio `recipes` del directorio `opsworks_cookbook_demo directory`, cree un archivo llamado `conditional_logic.rb` que contenga el siguiente código:

   ```
   instance = search("aws_opsworks_instance").first
   os = instance["os"]
   
   if os == "Red Hat Enterprise Linux 7"
     Chef::Log.info("********** Operating system is Red Hat Enterprise Linux. **********")
   elsif os == "Ubuntu 14.04 LTS" || os == "Ubuntu 16.04 LTS" || os == "Ubuntu 18.04 LTS"
     Chef::Log.info("********** Operating system is Ubuntu. **********") 
   elsif os == "Microsoft Windows Server 2012 R2 Base"
     Chef::Log.info("********** Operating system is Windows. **********")
   elsif os == "Amazon Linux 2015.03" || os == "Amazon Linux 2015.09" || os == "Amazon Linux 2016.03" || os == "Amazon Linux 2016.09" || os == "Amazon Linux 2017.03" || os == "Amazon Linux 2017.09" || os == "Amazon Linux 2018.03" || os == "Amazon Linux 2"
     Chef::Log.info("********** Operating system is Amazon Linux. **********")
   elsif os == "CentOS Linux 7"
     Chef::Log.info("********** Operating system is CentOS 7. **********")
   else
     Chef::Log.info("********** Cannot determine operating system. **********")
   end
   
   case os
   when "Ubuntu 14.04 LTS", "Ubuntu 16.04 LTS", "Ubuntu 18.04 LTS"
     apt_package "Install a package with apt-get" do
       package_name "tree"
     end
   when "Amazon Linux 2015.03", "Amazon Linux 2015.09", "Amazon Linux 2016.03", "Amazon Linux 2016.09", "Amazon Linux 2017.03", "Amazon Linux 2017.09", "Amazon Linux 2018.03", "Amazon Linux 2", "Red Hat Enterprise Linux 7", "CentOS Linux 7"
     yum_package "Install a package with yum" do
       package_name "tree"
     end
   else
     Chef::Log.info("********** Cannot determine operating system type, or operating system is not Linux. Package not installed. **********")
   end
   ```

1. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado 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::conditional\$1logic**. 

**Para probar la receta**

1. Mientras se muestra la página **Running command execute\$1recipes (Ejecutando comando execute\$1recipes)** de los procedimientos anteriores, en **cookbooks-demo1**, en **Log (Registro)**, elija **show (mostrar)**. Se muestra la página del registro **execute\$1recipes**.

1. Desplácese hacia abajo en el registro y busque una entrada con un aspecto similar al siguiente:

   ```
   [2015-11-16T19:59:05+00:00] INFO: ********** Operating system is Amazon Linux. **********
   ```

   Dado que el sistema operativo de la instancia es Amazon Linux 2016.09, solo la entrada anterior (de las cinco posibles entradas en el código de la receta) se mostrará en el registro. 

1. Si el sistema operativo es Linux, la receta instala el paquete tree. Para ver el contenido de un directorio, escriba **tree** en el símbolo del sistema desde el directorio deseado o con la ruta del directorio deseado (por ejemplo, `tree /var/chef/runs`).

En el [paso siguiente](gettingstarted-cookbooks-community-cookbooks.md), actualizará el libro de recetas para utilizar la funcionalidad de un libro de recetas externo proporcionado por la comunidad de Chef.

# 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.

# Paso 17: Limpieza (opcional)
<a name="gettingstarted-cookbooks-clean-up"></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).

Para evitar incurrir en cargos adicionales en tu AWS cuenta, puedes eliminar los AWS recursos que se utilizaron en este tutorial. Estos AWS recursos incluyen el depósito S3, la pila de OpsWorks pilas y los componentes de la pila. (Para obtener más información, consulte los [ OpsWorks precios de AWS](https://aws.amazon.com/opsworks/pricing/)). Sin embargo, es posible que desee seguir utilizando estos AWS recursos a medida que vaya obteniendo más información sobre OpsWorks Stacks. Si quieres mantener estos AWS recursos disponibles, ya has completado este tutorial y puedes pasar directamente a ellos. [Siguientes pasos](gettingstarted-cookbooks-next-steps.md)

El contenido almacenado en los recursos que creó para este tutorial puede incluir información de identificación personal. Si ya no desea que AWS almacene esta información, siga los pasos de este tema.

**Para eliminar el bucket de S3**
+ Consulte [Eliminación del bucket de Amazon S3](https://docs.aws.amazon.com/gettingstarted/latest/swh/getting-started-cleanup-s3.html).

**Para eliminar la instancia de la pila**

1. **En la consola de OpsWorks Stacks, en el panel de navegación del servicio, selecciona Instances.** Se abre la página **Instances (Instancias)**.

1. ****Para **cookbooks-demo1 **MyCookbooksDemoLayer****, para Actions, selecciona detener.**** Cuando vea el mensaje de confirmación, elija **Stop (Detener)**.

1. Los siguientes cambios se producen en el transcurso de varios minutos. No continúe hasta que todos los pasos hayan terminado.
   + **Status (Estado)** cambia de **online** a **stopping (deteniéndose)** y, finalmente, a **stopped (detenido)**.
   + **online** cambia de **1** a **0**.
   + **shutting down (cerrándose)** cambia de **0** a **1** y, finalmente, de nuevo a **0**.
   + **stopped (detenido)** cambia de **0** a **1**.

1. En **Actions (Acciones)**, seleccione **delete (eliminar)**. **Cuando veas el mensaje de confirmación, selecciona Eliminar.** OpsWorks Stacks elimina la instancia y muestra **No hay** instancias.

**Para eliminar la pila**

1. En el panel de navegación de servicio, elija **Stack (Pila)**. Se abre la página **MyCookbooksDemoStack**.

1. Elija **Delete Stack**. **Cuando veas el mensaje de confirmación, selecciona Eliminar.** OpsWorks Stacks elimina la pila y muestra la página del **panel de control**.

Si lo desea, puede eliminar el usuario de IAM y el EC2 key pair de claves de Amazon que utilizó en este tutorial si no quiere volver a utilizarlos para acceder a otros AWS servicios e EC2 instancias. Para obtener instrucciones, consulte [Eliminar un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) y [pares de EC2 claves e instancias de Linux de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair).

Ha completado este tutorial. Para obtener más información, consulte [Siguientes pasos](gettingstarted-cookbooks-next-steps.md).

# Siguientes pasos
<a name="gettingstarted-cookbooks-next-steps"></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).

Ahora que has completado este tutorial, puedes obtener más información sobre la compatibilidad de OpsWorks Stack con los libros de cocina de Chef consultando los siguientes recursos:
+ [Cookbooks and Recipes](workingcookbook.md)— Describe las versiones de Chef y Ruby que OpsWorks Stacks admite actualmente. También muestra cómo instalar y actualizar los libros de recetas personalizados en las instancias y cómo ejecutar recetas en las instancias.
+ [Learn Chef](https://learn.chef.io/) – ofrece enlaces a tutoriales de Chef, una biblioteca de habilidades de Chef, la documentación completa de Chef y las clases de formación de Chef.
+ [All about Chef](https://docs.chef.io/) – ofrece documentación de Chef completa. Entre los temas específicos de interés se incluyen:
  + [About Cookbooks](https://docs.chef.io/cookbooks.html) – describe componentes clave de los libros de recetas, como los atributos, las recetas, los archivos, los metadatos y las plantillas.
  + [About Recipes](https://docs.chef.io/recipes.html) – describe los fundamentos de las recetas; por ejemplo, cómo trabajar con bolsas de datos, incluir otras recetas y utilizar código Ruby en las recetas. 
  + [Resources](https://docs.chef.io/resources.html#resources) – describe cómo utilizar todos los recursos de Chef integrados; por ejemplo `apt_package`, `cookbook_file`, `directory`, `execute`, `file` y `package`.
  + [About the Recipe DSL](https://docs.chef.io/dsl_recipe.html) – describe cómo escribir código para recetas de Chef con declaraciones como `if`, `case`, `data_bag`, `data_bag_item` y `search`. 
+ [About Templates](https://docs.chef.io/templates.html) – describe cómo utilizar las plantillas Embedded Ruby (ERB) para generar de forma dinámica archivos de texto estáticos; por ejemplo, los archivos de configuración.
+ [Tutoriales de aprendizaje](https://learn.chef.io/tracks) – describe cómo utilizar Chef para administrar una instancia y una aplicación web básica, desarrollar y probar el código de la infraestructura, utilizar análisis de Chef y mucho más.
+ [http://shop.oreilly.com/product/0636920032397.do](http://shop.oreilly.com/product/0636920032397.do) – una introducción a Chef publicada por O'Reilly Media. 
+ [Learning Chef code examples](https://github.com/learningchef/learningchef-code) – ofrece ejemplos de código como complemento del libro *Learning Chef* publicado por O'Reilly Media.