

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.

# Ejecución de una receta en una instancia de Windows
<a name="cookbooks-101-opsworks-opsworks-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).

Este tema es, básicamente, una versión abreviada de [Ejecución de una receta en una instancia de Linux](cookbooks-101-opsworks-opsworks-instance.md) que le muestra cómo ejecutar una receta en una pila de Windows. Le recomendamos completar primer [Ejecución de una receta en una instancia de Linux](cookbooks-101-opsworks-opsworks-instance.md), ya que proporciona una información más detallada, gran parte de la cual es relevante para cualquier tipo de sistema operativo.

Para obtener una descripción de cómo ejecutar recetas en las instancias de OpsWorks Stacks Linux, consulta. [Ejecución de una receta en una instancia de Linux](cookbooks-101-opsworks-opsworks-instance.md)

**Topics**
+ [Habilitación del acceso RDP](#cookbooks-101-opsworks-opsworks-windows-rdp)
+ [Creación y ejecución de la receta](#cookbooks-101-opsworks-opsworks-windows-run-recipe)
+ [Ejecución automática de la receta](#cookbooks-101-opsworks-opsworks-windows-event)

## Habilitación del acceso RDP
<a name="cookbooks-101-opsworks-opsworks-windows-rdp"></a>

Antes de empezar, si aún no lo ha hecho, debe configurar un grupo de seguridad con una regla entrante que permita el acceso RDP a las instancias. Necesitará ese grupo cuando cree la pila.

Al crear 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 [ EC2consola 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. Añada una regla con las siguientes opciones de 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).

**nota**  
Tal y como se describe más adelante, también deberá editar los permisos de usuario para autorizar el acceso RDP de los usuarios habituales.

Para obtener más información, consulte [Inicio de sesión con RDP](workinginstances-rdp.md). 

## Creación y ejecución de la receta
<a name="cookbooks-101-opsworks-opsworks-windows-run-recipe"></a>

A continuación, se resume brevemente cómo crear una pila para este ejemplo. Para obtener más información, consulte [Crear una pila nueva](workingstacks-creating.md).

**Creación de una pila**

1. Abra la [consola de OpsWorks](https://console.aws.amazon.com/opsworks/) y elija **Add Stack (Añadir pila)**. Especifique las siguientes opciones de configuración, acepte los valores predeterminados del resto y, a continuación, elija **Add Stack (Añadir pila)**.
   + **Nombre:** WindowsRecipeTest
   + **Región**: Oeste de EE. UU. (Oregón)

     Este ejemplo funcionará en cualquier región, pero recomendamos utilizar la región Oeste de EE. UU. (Oregón) en los tutoriales.
   + **Sistema operativo predeterminado**: Microsoft Windows Server 2012 R2

1. Elija **Add a layer (Añadir una capa)** y [añada una capa personalizada](workinglayers-custom.md) a la pila con la siguiente configuración.
   + **Nombre** — RecipeTest
   + **Nombre abreviado**: recipetest

1. [Añada una instancia ininterrumpida](workinginstances-add.md) con los ajustes predeterminados a la RecipeTest capa e [iníciela](workinginstances-starting.md).

   OpsWorks Stacks se asigna automáticamente `AWS-OpsWorks-RDP-Server` a esta instancia, lo que permite a los usuarios autorizados iniciar sesión en la instancia.

1. Elija **Permissions (Permisos)**, a continuación **Edit (Editar)** y elija **SSH/RDP** y **sudo/admin**. Los usuarios habituales necesitan esta autorización, además de la del grupo de seguridad `AWS-OpsWorks-RDP-Server`, para iniciar sesión en la instancia. 
**nota**  
También puede iniciar sesión como administrador, pero es necesario seguir un procedimiento diferente. Para obtener más información, consulte [Inicio de sesión con RDP](workinginstances-rdp.md).

Mientras la instancia se inicia, proceso que suele tardar varios minutos, puede crear el libro de recetas. La receta que se utiliza en este ejemplo utiliza un directorio de datos y es, básicamente, una receta de [Ejemplo 3: Creación de directorios](cookbooks-101-basics-directories.md) modificada para Windows.

**nota**  
Al implementar libros de cocina para las instancias de Windows de OpsWorks Stacks, se usa una estructura de directorios algo diferente a la que se usa al implementar los libros de cocina para las instancias de Stacks Linux. OpsWorks Para obtener más información, consulte [Repositorios de libros de recetas](workingcookbook-installingcustom-repo.md). 

**Para configurar el libro de recetas**

1. Cree un directorio llamado `windowstest` y ábralo.

1. Cree un archivo `metadata.rb` con el siguiente contenido y guárdelo en `windowstest`.

   ```
   name "windowstest"
   version "0.1.0"
   ```

1. Cree un directorio `recipes` dentro de `windowstest`.

1. Cree un archivo `default.rb` con la siguiente receta y guárdelo en el directorio `recipes`.

   ```
   Chef::Log.info("******Creating a data directory.******")
   
   directory 'C:\data' do
     rights :full_control, 'instance_name\username'
     inherits false
     action :create
   end
   ```

   Reemplace *username* por el nombre de usuario.

1. Guarde el libro de recetas en un repositorio.

   Para instalar tu libro de cocina en una instancia de OpsWorks Stacks, debes almacenarlo en un repositorio y proporcionar a OpsWorks Stacks la información necesaria para descargar el libro de cocina en la instancia. Puede almacenar libros de recetas windows como un archivo de almacenamiento en un bucket de S3 o en un repositorio Git. Este ejemplo utiliza un bucket de S3, por lo que deberá crear un archivo de almacenamiento .zip del directorio `windowstest`. Para obtener más información sobre los repositorios de libros de recetas, consulte [Repositorios de libros de recetas](workingcookbook-installingcustom-repo.md).

1. [Cargue el archivo de almacenamiento en un bucket de S3](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html), [publíquelo](https://docs.aws.amazon.com/AmazonS3/latest/UG/EditingPermissionsonanObject.html) y anote su URL. También puede utilizar un archivo de almacenamiento privado, pero uno público es suficiente para este ejemplo; además, trabajar con él resulta más sencillo.

   El contenido entregado a los buckets de Amazon S3 puede contener contenido del cliente. Para obtener más información sobre la eliminación de información confidencial, consulte [¿Cómo puedo vaciar un bucket de S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) o [¿Cómo elimino un bucket de S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).

Ahora puede instalar el libro de recetas y ejecutar la receta.

**Para ejecutar la receta**

1. [Edite la pila para habilitar los libros de recetas personalizados](workingcookbook-installingcustom-enable.md) y especifique las siguientes opciones de configuración.
   + **Tipo de repositorio**: **S3 Archive**
   + **URL de repositorio**: la URL del archivo del libro de recetas que anotó previamente.

   Acepte los valores predeterminados del resto de opciones y elija **Save (Guardar)** para actualizar la configuración de la pila.

1. [Ejecute el comando de pila Update Custom Cookbooks](workingstacks-commands.md), que instala la versión actual de los libros de recetas personalizados en las instancias de la pila, también en las instancias online. Si existiera una versión anterior de los libros de recetas, este comando la sobrescribe.

1. Cuando Update Custom Cookbooks haya terminado, ejecute la receta ejecutando [el comando de pila **Execute Recipes (Ejecutar recetas)**](workingstacks-commands.md) con **Recipes to execute (Recetas para ejecutar)** establecido en **windowstest::default**. Este comando inicia una ejecución de Chef con una lista de ejecución que es la receta.

Una vez que la receta se haya ejecutado correctamente, podrá verificarla.

**Para verificar windowstest**

1. Revise el [registro de Chef](troubleshoot-debug-log.md). Elija **show (mostrar)** en la columna **Log (Registro)** de la instancia opstest1 para ver el registro. Desplácese hacia abajo; el mensaje aparecerá casi al final del archivo.

   ```
   ...
   [2014-07-31T17:01:45+00:00] INFO: Storing updated cookbooks/opsworks_cleanup/attributes/customize.rb in the cache.
   [2014-07-31T17:01:45+00:00] INFO: Storing updated cookbooks/opsworks_cleanup/metadata.rb in the cache.
   [2014-07-31T17:01:46+00:00] INFO: ******Creating a data directory.******
   [2014-07-31T17:01:46+00:00] INFO: Processing template[/etc/hosts] action create (opsworks_stack_state_sync::hosts line 3)
   ...
   ```

1. Elija, **Instances (Instancias)**, elija **rdp** en la columna **Actions (Acciones)** de la instancia y solicite una contraseña RDP con una fecha de vencimiento adecuada. Copie el nombre de DNS, el nombre de usuario y la contraseña. A continuación, puede utilizar esa información con un cliente RDP, como el cliente de Conexión a Escritorio remoto de Windows, para iniciar sesión en la instancia y verificar que `c:\data` existe. Para obtener más información, consulte [Inicio de sesión con RDP](workinginstances-rdp.md).

**nota**  
Si la receta no funciona correctamente, consulte [Solución y corrección de recetas](cookbooks-101-opsworks-opsworks-instance.md#cookbooks-101-opsworks-opsworks-instance-bugs) para obtener consejos de solución de problemas; la mayoría de ellos también se aplican a las instancias de Windows. Si quieres probar la solución editando la receta en la instancia, busca tu libro de cocina en el `C:\chef\cookbooks` directorio, donde OpsWorks Stacks instala los libros de cocina personalizados.

## Ejecución automática de la receta
<a name="cookbooks-101-opsworks-opsworks-windows-event"></a>

El comando **Execute Recipes (Ejecutar recetas)** permite probar las recetas personalizadas de una forma sencilla, por eso se utiliza en la mayoría de estos ejemplos. Sin embargo, en la práctica, normalmente ejecutas las recetas en puntos estándar del ciclo de vida de una instancia, como cuando la instancia termina de arrancar o cuando implementas una aplicación. OpsWorks Stacks simplifica la ejecución de recetas en tu instancia, ya que admite un conjunto de [eventos del ciclo de vida](workingcookbook-events.md) para cada capa: configurar, implementar, anular el despliegue y cerrar. Puedes hacer que OpsWorks Stacks ejecute una receta automáticamente en las instancias de una capa asignando la receta al evento del ciclo de vida correspondiente.

Por norma general, deberá crear los directorios justo cuando la instancia termine de iniciarse, lo que se corresponde con el evento Setup. A continuación se muestra cómo ejecutar la receta de ejemplo durante la instalación utilizando la misma pila que creó anteriormente en el ejemplo. Puede seguir el mismo procedimiento en los demás eventos.

**Para ejecutar automáticamente una receta durante la instalación**

1. Selecciona **Capas** en el panel de navegación y, a continuación, elige el icono del lápiz situado junto al enlace **Recetas** de la RecipeTest capa.

1. Añada **windowstest::default** a las recetas **Setup (Configuración)** de la capa, seleccione **\$1** para añadirla a la capa y, a continuación, elija **Save (Guardar)** para guardar la configuración.

1. Elija **Instances (Instancias)**, añada otra instancia a la capa e iníciela.

   La instancia debería llamarse `recipetest2`. Cuando termine de arrancar, OpsWorks Stacks se ejecutará. `windowstest::default`

1. Cuando la instancia `recipetest2` esté online, verifique que `c:\data` existe.

**nota**  
Si ha asignado recetas a los eventos Setup, Configure o Deploy, también puede desencadenar el evento con un [comando de pila](workingstacks-commands.md) (Setup o Configure) o un [comando de implementación](workingapps-deploying.md) (Deploy) para ejecutarlas manualmente. Tenga en cuenta que si hay varias recetas asignadas a un evento, estos comandos se ejecutarán en todas.