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.
Ejecutando un script de Windows PowerShell
importante
La AWS OpsWorks Stacks El servicio finalizó 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 tiene preguntas sobre la migración, póngase en contacto con el AWS Support Equipo en AWS Re:post
nota
Estos ejemplos presuponen 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 RDP acceso a sus instancias.
Una forma de hacer que una receta ejecute tareas en una instancia de Windows, especialmente las tareas que no tienen un recurso de Chef correspondiente, es hacer que la receta ejecute un script de Windows. PowerShell Esta sección presenta los conceptos básicos al describir cómo usar un PowerShell script de Windows para instalar una función de Windows.
El powershell_script
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
-
Abra el icono AWS OpsWorksStacks console y selecciona Add Stack.
Especifique las siguientes opciones de configuración, acepte los valores predeterminados del resto y, a continuación, haga clic en Add Stack (Añadir pila). -
Nombre — PowerShellTest
-
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
-
-
Elija Add a layer (Añadir una capa) y añada una capa personalizada a la pila con la siguiente configuración.
-
Nombre — PowerShell
-
Nombre abreviado: powershell
-
-
Añada una instancia ininterrumpida a la PowerShell capa con los ajustes predeterminados e iníciela.
-
Elija Permisos y, a continuación, Editar, y seleccione SSH/RDPy sudo/admin. Necesita esta autorización, además de la del grupo de seguridad
AWS-OpsWorks-RDP-Server
, para iniciar sesión en la instancia como usuario habitual.
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.
Para configurar el libro de recetas
-
Cree un directorio llamado
powershell
y ábralo. -
Cree un archivo
metadata.rb
con el siguiente contenido y guárdelo enwindowstest
.name "powershell" version "0.1.0"
-
Cree un directorio
recipes
dentro depowershell
. -
Cree un archivo
default.rb
con la siguiente receta y guárdelo en el directoriorecipes
.Chef::Log.info("******Installing XPS.******") powershell_script "Install XPS Viewer" do code <<-EOH Install-WindowsFeature XPS-Viewer EOH guard_interpreter :powershell_script not_if "(Get-WindowsFeature -Name XPS-Viewer).installed" end
-
El
powershell_script
recurso ejecuta un cmdlet para instalar el visor. XPSEste ejemplo ejecuta un único cmdlet, pero el bloque
code
puede contener cualquier número de líneas de comando. -
El
guard_interpreter
atributo indica a Chef que utilice la versión de 64 bits de Windows. PowerShell -
El atributo de guardia
not_if
garantiza que Chef no instala la característica si ya está instalada.
-
-
Cree un archivo
.zip
del directoriopowershell
. -
Cargue el archivo en un bucket de Amazon S3, hágalo público y registre el archivoURL. 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
-
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 grabó anteriormente
Acepte los valores predeterminados del resto de opciones y elija Save (Guardar) para actualizar la configuración de la pila.
-
-
Ejecute el comando de pila Update Custom Cookbooks (Actualizar libros de recetas personalizados) para instalar la versión actual de los libros de recetas personalizados en la instancia.
-
Cuando Update Custom Cookbooks (Actualizar libros de recetas personalizados) haya terminado, ejecute la receta ejecutando el comando de pila Execute Recipes (Ejecutar recetas) con Recipes to execute (Recetas para ejecutar) establecido en
powershell::default
.
nota
En este ejemplo se usa Execute Recipes para mayor comodidad, pero normalmente tienes AWS OpsWorks Stacks ejecuta tus recetas automáticamente asignándolas al evento del ciclo de vida correspondiente. Puede desencadenar el evento de forma manual para ejecutar estas recetas. Puede utilizar un comando de pila para desencadenar los eventos Setup y Configure y un comando de implementación en el caso de los eventos Deploy y Undeploy.
Una vez que la receta se haya ejecutado correctamente, podrá verificarla.
Para verificar la receta powershell
-
Revise el registro de Chef. Haga clic en show (mostrar) en la columna Log (Registro) de la instancia powershell1 para ver el registro. Desplácese hacia abajo; el mensaje aparecerá casi al final del archivo.
... [2015-04-27T18:12:09+00:00] INFO: Storing updated cookbooks/powershell/metadata.rb in the cache. [2015-04-27T18:12:09+00:00] INFO: ******Installing XPS.****** [2015-04-27T18:12:09+00:00] INFO: Processing powershell_script[Install XPS Viewer] action run (powershell::default line 3) [2015-04-27T18:12:09+00:00] INFO: Processing powershell_script[Guard resource] action run (dynamically defined) [2015-04-27T18:12:42+00:00] INFO: powershell_script[Install XPS Viewer] ran successfully ...
-
Se usa RDP para iniciar sesión en la instancia y abrir el menú Inicio. XPSEl visor debería aparecer en la lista de accesorios de Windows.