

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.

# Uso de índices de OpsWorks búsqueda específicos de Stacks en Windows Stacks
<a name="cookbooks-101-opsworks-opsworks-stack-config-search-opsworks"></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).

**nota**  
Este ejemplo presupone que ya ha completado el ejemplo [Ejecución de una receta en una instancia de Windows](cookbooks-101-opsworks-opsworks-windows.md). De lo contrario, debería completarlo primero. En concreto, describe cómo habilitar el acceso RDP en las instancias.

OpsWorks Stacks proporciona los siguientes índices de búsqueda además de: `node` 
+ `aws_opsworks_stack`: la configuración de la pila.
+ `aws_opsworks_layer`: las configuraciones de las capas de la pila.
+ `aws_opsworks_instance`: las configuraciones de las instancias de la pila.
+ `aws_opsworks_app`: las configuraciones de las aplicaciones de la pila.
+ `aws_opsworks_user`: las configuraciones de los usuarios de la pila.
+ `aws_opsworks_rds_db_instance`: la información de conexión de las instancias de RDS registradas.

Estos índices incluyen algunos atributos estándar de Chef, pero están pensados principalmente para recuperar OpsWorks atributos específicos de Stacks. Por ejemplo `aws_opsworks_instance` incluye un atributo `status` que indica el estado de la instancia, como `online`. 

**nota**  
La práctica recomendada consiste en utilizar `node` cuando sea posible para que las recetas sean coherentes con el uso estándar de Chef. Para ver un ejemplo, consulta [Uso del índice de búsqueda de nodos en pilas de Windows](cookbooks-101-opsworks-opsworks-stack-config-search-node.md).

En este ejemplo, se muestra cómo usar los índices de OpsWorks Stacks para recuperar el valor de un atributo específico de Stacks. OpsWorks Se basa en una sencilla pila de Windows con una capa personalizada que tiene una instancia. Utiliza la búsqueda de Chef para obtener el ID de OpsWorks Stacks de la instancia y coloca los resultados en el registro de Chef.

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 Stacks](https://console.aws.amazon.com/opsworks/) y elija **\$1 Stack (\$1 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:** IDSearch
   + **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** — IDCheck
   + **Nombre abreviado**: idcheck

1. [Añada a la IDCheck capa una instancia t2.micro ininterrumpida](workinginstances-add.md) con la configuración predeterminada e iníciela[.](workinginstances-starting.md) Su nombre será iptest1.

   OpsWorks Stacks se asigna `AWS-OpsWorks-RDP-Server` automáticamente a esta instancia. [Habilitación del acceso RDP](cookbooks-101-opsworks-opsworks-windows.md#cookbooks-101-opsworks-opsworks-windows-rdp)explica cómo añadir una regla de entrada a este grupo de seguridad que permita 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).

**Para configurar el libro de recetas**

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

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

   ```
   name "idcheck"
   version "0.1.0"
   ```

1. Cree un directorio `recipes` en `idcheck` y añádale un archivo `default.rb` que contenga la siguiente receta.

   ```
   windowsserver = search(:aws_opsworks_instance, "hostname:idcheck*").first
   Chef::Log.info("**********The public IP address is: '#{windowsserver[:instance_id]}'**********")
   ```

   La receta utiliza la búsqueda de Chef con un índice de búsqueda `aws_opsworks_instance` para obtener los [atributos de instancia](data-bag-json-instance.md) de cada instancia de la pila con un nombre de host que empieza `idcheck`. Si usa el tema predeterminado, que crea nombres de host añadiendo números enteros al nombre corto de la capa, esta consulta devolverá todas las instancias de la capa. IDCheck En este ejemplo, se sabe que la capa solo tiene una instancia, así que la receta solo asigna la primera a `windowsserver`. En el caso de varias instancias, podrá obtener la lista completa y, a continuación, enumerarlas.

   La receta aprovecha el hecho de que solo haya una instancia en la pila con este nombre de host, por lo que el primer resultado es el correcto. Si la pila tiene varias instancias, realizar búsquedas en otros atributos podría devolver más de un resultado. Para obtener una lista de atributos de instancia, consulte [Contenedor de datos de instancias (aws\$1opsworks\$1instance)](data-bag-json-instance.md).

   Los atributos de la instancia son básicamente una tabla hash, y el ID de OpsWorks pila de la instancia se asigna al `instance_id` atributo, por lo que puedes referirte al ID como. `windowsserver[:instance_id]` La receta inserta la cadena correspondiente en el mensaje y lo añade al registro de Chef.

1. Cree un archivo `.zip` del libro de recetas `ipaddress`, [cárguelo en un bucket de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html) y anote la URL del archivo. Para obtener más información sobre los repositorios de libros de recetas, consulte [Repositorios de libros de recetas](workingcookbook-installingcustom-repo.md).

   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 instalar el libro de recetas y 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 **idcheck::default**. Este comando inicia una ejecución de Chef con una lista de ejecución que es la receta. Deje la página execute\$1recipes abierta.

Una vez que la receta se haya ejecutado correctamente, podrá verificarla. Para ello, revise el [registro de Chef](troubleshoot-debug-log.md) en busca del evento execute\$1recipes más reciente. En **Running command execute\$1recipes page (Página execute\$1recipes de comando en ejecución)**, elija **show (mostrar)** en la columna **Log (Registro)** de la instancia de iptest1 para mostrar el registro. Desplácese hacia abajo para encontrar el mensaje, casi al final del archivo. Debería parecerse a lo siguiente.

```
...
[2015-05-13T20:03:47+00:00] INFO: Storing updated cookbooks/nodesearch/recipes/default.rb in the cache.
[2015-05-13T20:03:47+00:00] INFO: Storing updated cookbooks/nodesearch/metadata.rb in the cache.
[2015-05-13T20:03:47+00:00] INFO: **********The instance ID is: 'i-8703b570'**********
[2015-05-13T20:03:47+00:00] INFO: Chef Run complete in 0.312518 seconds 
...
```