Uso del índice de búsqueda de nodos en pilas de Windows - AWS OpsWorks

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 del índice de búsqueda de nodos en pilas de Windows

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 o a través de Premium AWS Support.

nota

Este ejemplo presupone que ya ha completado el ejemplo Ejecución de una receta en una instancia de Windows. De lo contrario, debería completarlo primero. En concreto, describe cómo habilitar el acceso RDP en las instancias.

Este ejemplo se basa en una pila de Windows con una sola capa personalizada y una instancia. Utiliza la búsqueda de Chef con el índice de búsqueda node para obtener la dirección IP pública del servidor y guardarla en un archivo del directorio C:\tmp. A continuación, se resume brevemente cómo crear la pila para este ejemplo. Para obtener más información, consulte Crear una pila nueva.

Creación de una pila
  1. Abra la consola de AWS OpsWorks y elija Add Stack (Añadir pila).

  2. Especifique las siguientes opciones de configuración, acepte los valores predeterminados del resto y, a continuación, elija Add Stack (Añadir pila).

    • Nombre — NodeSearch

    • 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

  3. Elija Add a layer (Añadir una capa) y añada una capa personalizada a la pila con la siguiente configuración.

    • Nombre: IPTest

    • Nombre abreviado: iptest

  4. Añada una instancia t2.micro de funcionamiento ininterrumpido con la configuración predeterminada a la capa IPTest e iníciela. Su nombre será iptest1.

    AWS 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.

  5. Elija Permissions (Permisos), a continuación Edit (Editar) y seleccione 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.

Para configurar el libro de recetas
  1. Cree un directorio llamado nodesearch y ábralo.

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

    name "nodesearch" version "0.1.0"
  3. Cree un directorio recipes dentro de nodesearch.

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

    directory 'C:\tmp' do rights :full_control, 'Everyone' recursive true action :create end windowsserver = search(:node, "hostname:iptest*").first Chef::Log.info("**********The public IP address is: '#{windowsserver[:ipaddress]}'**********") file 'C:\tmp\addresses.txt' do content "#{windowsserver[:ipaddress]}" rights :full_control, 'Everyone' action :create end

    La receta hace lo siguiente:

    1. Utiliza un recurso de directorio para crear un directorio C:\tmp para el archivo.

      Para obtener más información sobre este recurso, consulte Ejemplo 3: Creación de directorios.

    2. Utiliza la búsqueda de Chef con el índice de búsqueda node para obtener una lista de nodos (instancias) con un nombre de host que empiece por iptest.

      Si utiliza el tema predeterminado, lo que crea nombres de host enteros anexando enteros al nombre corto de la capa, esta consulta devolverá todas las instancias de la capa IPTest. 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.

    3. Añade un mensaje con la dirección IP de esta ejecución al registro de Chef.

      El objeto windowsserver es una tabla hash cuyo atributo ipaddress está establecido en la dirección IP pública de la instancia, de modo que puede representar esa dirección en el código de receta que aparece a continuación como windowsserver[:ipaddress]. La receta inserta la cadena correspondiente en el mensaje y lo añade al registro de Chef.

    4. Utiliza el recurso file para crear un archivo con la dirección IP llamado C:\tmp\addresses.txt.

      El atributo content del recurso especifica el contenido que se va a añadir al archivo, que, en este caso, es la dirección IP pública.

  5. Cree un archivo de almacenamiento .zip de nodesearch, cárguelo en un bucket de S3, publíquelo y anote su URL.

    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? o ¿Cómo elimino un bucket de S3?.

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 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.

  2. Ejecute el comando de pila Update Custom Cookbooks, 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.

  3. Cuando Update Custom Cookbooks haya terminado, ejecute la receta ejecutando el comando de pila Execute Recipes (Ejecutar recetas) con Recipes to execute (Recetas para ejecutar) establecido en nodesearch::default. Este comando inicia una ejecución de Chef con una lista de ejecución que es la receta. Deje la página execute_recipes abierta.

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

Para verificar nodesearch
  1. Revise el registro de Chef en busca del evento execute_recipes más reciente. En Running command execute_recipes page (Página execute_recipes 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-13T18:55:47+00:00] INFO: Storing updated cookbooks/nodesearch/recipes/default.rb in the cache. [2015-05-13T18:55:47+00:00] INFO: Storing updated cookbooks/nodesearch/metadata.rb in the cache. [2015-05-13T18:55:47+00:00] INFO: **********The public IP address is: '192.0.0.1'********** [2015-05-13T18:55:47+00:00] INFO: Processing directory[C:\tmp] action create (nodesearch::default line 1) [2015-05-13T18:55:47+00:00] INFO: Processing file[C:\tmp\addresses.txt] action create (nodesearch::default line 10) ...
  2. Utilice RDP para iniciar sesión en la instancia y revise el contenido de C:\tmp\addresses.txt.