Ejecución de una receta en una instancia 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.

Ejecución de una receta en una instancia 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.

Este tema es, básicamente, una versión abreviada de Ejecución de una receta en una instancia de Linux 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, 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 AWS OpsWorks Stacks Linux, consulta. Ejecución de una receta en una instancia de Linux

Habilitar RDP el acceso

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

Al crear la primera pila de una región, AWS OpsWorks Stacks crea un conjunto de grupos de seguridad. Incluyen uno con un nombre similarAWS-OpsWorks-RDP-Server, que AWS OpsWorks Stacks adjunta a todas las instancias de Windows para permitir el acceso. RDP Sin embargo, de forma predeterminada, este grupo de seguridad no tiene ninguna regla, por lo que debes agregar una regla de entrada para permitir el RDP acceso a tus instancias.

Para permitir el acceso RDP
  1. Abre la EC2consola de Amazon, configúrala en la región de la pila y selecciona Grupos de seguridad en el panel de navegación.

  2. Selecciona AWS- OpsWorks - RDP -Servidor, selecciona la pestaña Entrante y selecciona Editar.

  3. Añada una regla con las siguientes opciones de configuración:

    • Tipo: RDP

    • Origen: las direcciones IP de origen permitidas.

      Por lo general, permites RDP las solicitudes entrantes desde tu dirección IP o desde un rango de direcciones IP específico (normalmente el rango de direcciones IP corporativas).

nota

Como se describe más adelante, también debes editar los permisos de los usuarios para autorizar el RDP acceso de los usuarios normales.

Para obtener más información, consulte Inicio de sesión con RDP.

Creación y ejecución de la receta

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.

Creación de una pila
  1. Abra la consola de AWS 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

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

    • Nombre — RecipeTest

    • Nombre abreviado: recipetest

  3. Añada una instancia ininterrumpida con los ajustes predeterminados a la RecipeTest capa e iníciela.

    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.

  4. Selecciona Permisos y, a continuación, Editar, y selecciona SSH/RDPy 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.

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 modificada para Windows.

nota

Al implementar libros de cocina para las instancias de Windows de AWS OpsWorks Stacks, se utiliza una estructura de directorios algo diferente a la que se utiliza al implementar los libros de cocina para las instancias de Stacks Linux. AWS OpsWorks Para obtener más información, consulte Repositorios de libros de recetas.

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

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

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

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

  5. Guarde el libro de recetas en un repositorio.

    Para instalar tu libro de cocina en una instancia de AWS OpsWorks Stacks, debes almacenarlo en un repositorio y proporcionar a AWS 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.

  6. Sube el archivo a un bucket de S3, hazlo público y graba el archivo. 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? o ¿Cómo elimino un bucket de S3?.

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 y especifique las siguientes opciones de configuración.

    • Tipo de repositorio: S3 Archive

    • Repositorio URL: el archivo de libros de cocina URL que grabaste anteriormente

    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 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. 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) ...
  2. Elija Instances, elija rdp en la columna Acciones de la instancia y solicite una RDP contraseña con un tiempo de caducidad adecuado. Copie el DNS nombre, el nombre de usuario y la contraseña. A continuación, puede usar esa información con un RDP cliente, como el cliente de Windows Remote Desktop Connection, para iniciar sesión en la instancia y comprobar que c:\data existe. Para obtener más información, consulte Inicio de sesión con RDP.

nota

Si la receta no funciona correctamente, consulte Solución y corrección de recetas 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 de la instancia, busca tu libro de cocina en el C:\chef\cookbooks directorio, donde AWS OpsWorks Stacks instala los libros de cocina personalizados.

Ejecución automática de la receta

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. AWS OpsWorks Stacks simplifica la ejecución de recetas en tu instancia al admitir un conjunto de eventos del ciclo de vida para cada capa: configurar, implementar, anular el despliegue y cerrar. Puedes hacer que AWS 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.

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

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

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

  4. 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 (Setup o Configure) o un comando de implementación (Deploy) para ejecutarlas manualmente. Tenga en cuenta que si hay varias recetas asignadas a un evento, estos comandos se ejecutarán en todas.