Configuración de EC2Launch v2 - Amazon Elastic Compute Cloud

Configuración de EC2Launch v2

Esta sección contiene información acerca de cómo configurar las opciones para EC2Launch v2.

Cambiar la configuración mediante el cuadro de diálogo de configuración de EC2Launch v2

El siguiente procedimiento describe cómo utilizar el cuadro de diálogo de configuración de EC2Launch v2 para habilitar o desactivar la configuración.

nota

Si configuró de forma incorrecta las tareas personalizadas en el archivo agent-config.yml e intenta abrir el cuadro de diálogo configuración de Amazon EC2Launch, recibirá un mensaje de error. Para ver un esquema de ejemplo, consulte Ejemplo: agent-config.yml.

  1. Lance y conéctese a la instancia de Windows.

  2. En el menú Inicio, elija Todos los programas y, a continuación, vaya a la Configuración de EC2Launch.

    Aplicación de configuración de inicialización de EC2.
  3. En la pestaña General del cuadro de diálogo Configuración de EC2Launch, puede habilitar o desactivar la siguiente configuración.

    1. Set Computer Name (Establecer nombre del equipo)

      Si esta configuración está habilitada (está desactivada de forma predeterminada), el nombre de host actual se compara con el nombre de host deseado en cada arranque. Si los nombres de host no coinciden, el nombre de host se restablece y el sistema, opcionalmente, se reinicia para recoger el nuevo nombre de host. Si no se especifica un nombre de host personalizado, se genera mediante la dirección IPv4 privada con formato hexadecimal, por ejemplo, ip-AC1F4E6. Para evitar que se modifique el nombre de host no habilite esta opción.

    2. Extender volumen de arranque

      Esta opción amplía dinámicamente Disk 0/Volume 0 para incluir cualquier espacio sin particionar. Esto puede resultar útil cuando la instancia se arranca desde un volumen de dispositivo raíz con un tamaño personalizado.

    3. Establecer cuenta de administrador

      Cuando está habilitado, puede establecer los atributos de nombre de usuario y contraseña para la cuenta de administrador que se crea en el equipo local. Si esta característica no está habilitada, no se crea una cuenta de administrador en el sistema después de Sysprep. Proporcione una contraseña en adminPassword solo si adminPasswordtype es Specify.

      Los tipos de contraseñas se definen de la siguiente manera:

      1. Random

        EC2Launch genera una contraseña y la cifra usando la clave del usuario. El sistema deshabilita esta configuración tras la inicialización de la instancia para que esta contraseña persista si la instancia se reinicia o si se detiene y se inicia.

      2. Specify

        EC2Launch usa la contraseña que ha especificado en adminPassword. Si la contraseña no cumple los requisitos del sistema, EC2Launch genera una contraseña aleatoria en su lugar. La contraseña se almacena en agent-config.yml como texto sin cifrar y se elimina cuando Sysprep define la contraseña del administrador. EC2Launch cifra la contraseña usando la clave del usuario.

      3. Do not set

        EC2Launch utiliza la contraseña especificada en el archivo unattend.xml. Si no especifica una contraseña en unattend.xml, la cuenta del administrador se desactiva.

    4. Iniciar servicio SSM

      Cuando se selecciona, el servicio Systems Manager queda habilitado para comenzar después de Sysprep. EC2Launch v2 realiza todas las tareas descritas anteriormente, y SSM Agent procesa las solicitudes para las funcionalidades de Systems Manager, como Run Command y administrador de estados.

      Puede usar Run Command para actualizar las instancias existentes de manera que utilicen la versión más reciente del servicio EC2Launch v2 y de SSM Agent. Para obtener más información, consulte Actualizar SSM Agent utilizando Run Command en la Guía del usuario de Systems Manager de AWS.

    5. Optimizar ENA

      Cuando se selecciona, la configuración de ENA se configura para garantizar que la configuración del escalado del lado de recepción de ENA y la configuración de profundidad de cola de recepción se optimizan para AWS. Para obtener más información, consulte Configurar la afinidad de la CPU de RSS.

    6. Habilitar SSH

      Esta configuración habilita OpenSSH para versiones posteriores de Windows para permitir la administración remota del sistema.

    7. Habilitar tramas gigantes

      Seleccione esta opción para habilitar las tramas gigantes. Las tramas gigantes pueden tener efectos no deseados en las comunicaciones de red, así que asegúrese de comprender cómo afectarán las tramas gigantes al sistema antes de habilitarlas. Para obtener más información acerca de las tramas gigantes, consulte Tramas gigantes (9 001 MTU).

    8. Preparativos para la creación de imágenes

      Seleccione si desea que su instancia de EC2 se cierre con o sin Sysprep. Cuando desee ejecutar Sysprep con EC2Launch v2, elija “Shutdown with Sysprep” (Apagar con Sysprep).

  4. En la pestaña Sufijo de DNS, puede seleccionar si desea agregar una lista de sufijos DNS para la resolución DNS de los servidores que se ejecutan en EC2, sin proporcionar el nombre de dominio completo. Los sufijos de DNS pueden contener las variables $REGION y $AZ. Solo se agregarán a la lista los sufijos que aún no existan.

    Aplicación de configuración de inicialización de EC2.
  5. En la pestaña Fondo de pantalla, puede configurar el fondo de pantalla de la instancia con una imagen de fondo y especificar los detalles de la instancia para que se muestre el fondo de pantalla. Amazon EC2 genera los detalles cada vez que inicia sesión.

    Puede configurar su fondo de pantalla con los siguientes controles.

    • Mostrar detalles de la instancia en el fondo de pantalla: esta casilla de verificación activa o desactiva la visualización de detalles de la instancia en el fondo de pantalla.

    • Ruta de la imagen (.jpg): especifique la ruta a la imagen que se va a utilizar como fondo de pantalla.

    • Seleccionar atributos que mostrar en el fondo de pantalla: seleccione las casillas con los detalles de la instancia que quiere que aparezcan en el fondo de pantalla. Desactive las casillas de verificación que anteriormente seleccionadas para detalles de instancias que quiere eliminar del fondo de pantalla.

    • Mostrar etiquetas de la instancia en el fondo de pantalla: seleccione una de las siguientes configuraciones para mostrar etiquetas de la instancia en el fondo de pantalla:

      • Ninguna: no muestra ninguna etiqueta de instancia en el fondo de pantalla.

      • Mostrar todas: muestra todas las etiquetas de instancia en el fondo de pantalla.

      • Mostrar solo las filtradas: muestra las etiquetas de instancia especificadas en el fondo de pantalla. Al seleccionar esta configuración, puede agregar las etiquetas de instancia que quiera que se muestren en su fondo de pantalla en el cuadro Filtro de etiquetas de instancia.

        nota

        Debe habilitar las etiquetas en los metadatos para que se muestren en el fondo de pantalla. Para obtener más información acerca de las etiquetas y metadatos de instancias, consulte Trabajar con etiquetas de instancia en los metadatos de instancia.

    Pestaña EC2 Launch settings Wallpaper (Fondo de pantalla de EC2 Launch Settings).
  6. En la pestaña Volúmenes, seleccione si desea inicializar los volúmenes asociados a la instancia. La habilitación establece letras de unidad para cualquier volumen adicional y las amplía para utilizar el espacio disponible. Si selecciona Todo, se inicializarán todos los volúmenes de almacenamiento. Si selecciona Dispositivos, solo se inicializarán los dispositivos especificados en la lista. Debe escribir el dispositivo para cada dispositivo que se inicialice. Utilice los dispositivos enumerados en la consola de EC2, por ejemplo, xvdb o /dev/nvme0n1. La lista desplegable muestra los volúmenes de almacenamiento asociados a la instancia. Para introducir un dispositivo que no esté asociado a la instancia, escríbalo en el campo de texto.

    Nombre, Letra y Partición son campos opcionales. Si no se especifica ningún valor para Partición, los volúmenes de almacenamiento más grandes que 2 TB se inicializan con el tipo de partición gpt, mientras que los más chicos que 2 TB se inicializan con el tipo de partición mbr. Si los dispositivos están configurados y un dispositivo que no sea NTFS contiene una tabla de particiones o los primeros 4 KB del disco contienen datos, se omite el disco y se registra la acción.

    Aplicación de configuración de inicialización de EC2.

A continuación se muestra un archivo YAML de configuración de ejemplo creado a partir de los parámetros escritos en el cuadro de diálogo EC2Launch.

version: 1.0 config: - stage: boot tasks: - task: extendRootPartition - stage: preReady tasks: - task: activateWindows inputs: activation: type: amazon - task: setDnsSuffix inputs: suffixes: - $REGION.ec2-utilities.amazonaws.com - task: setAdminAccount inputs: password: type: random - task: setWallpaper inputs: path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg attributes: - hostName - instanceId - privateIpAddress - publicIpAddress - instanceSize - availabilityZone - architecture - memory - network - stage: postReady tasks: - task: startSsm

Estructura del directorio de EC2Launch v2

EC2Launch v2 debe instalarse en los siguientes directorios:

  • Binarios de servicio: %ProgramFiles%\Amazon\EC2Launch

  • Datos del servicio (configuración, archivos de registro y archivos de estado): %ProgramData%\Amazon\EC2Launch

nota

De manera predeterminada, Windows oculta los archivos y las carpetas en C:\ProgramData. Para ver los directorios y los archivos de EC2Launch v2, debe ingresar la ruta en Windows Explorer o cambiar las propiedades de la carpeta para mostrar los archivos y las carpetas ocultos.

El directorio %ProgramFiles%\Amazon\EC2Launch contiene binarios y bibliotecas auxiliares. Incluye los siguientes subdirectorios:

  • settings

    • EC2LaunchSettingsUI.exe: interfaz de usuario para modificar el archivo agent-config.yml

    • YamlDotNet.dll: DLL para admitir algunas operaciones en la interfaz de usuario

  • tools

    • ebsnvme-id.exe: herramienta para examinar los metadatos de los volúmenes de EBS en la instancia

    • AWSAcpiSpcrReader.exe: herramienta para determinar el puerto COM correcto a usar

    • EC2LaunchEventMessage.dll: DLL para admitir el registro de eventos de Windows para EC2Launch.

  • service

    • EC2LaunchService.exe — Ejecutable de servicio de Windows que se inicia cuando el agente de inicialización se ejecuta como un servicio.

  • EC2Launch.exe: ejecutable principal de EC2Launch

  • EC2LaunchAgentAttribution.txt: atribución del código utilizado en EC2 Launch

El directorio %ProgramData%\Amazon\EC2Launch contiene los subdirectorios siguientes. Todos los datos producidos por el servicio, incluidos los registros, la configuración y el estado, se almacenan en este directorio.

  • config: configuración

    El archivo de configuración del servicio se almacena en este directorio como agent-config.yml. Este archivo se puede actualizar para modificar, agregar o eliminar tareas predeterminadas ejecutadas por el servicio. El permiso para crear archivos en este directorio se encuentra restringido a la cuenta de administrador a fin de evitar la escalada de privilegios.

  • log: registros de instancias

    Los registros del servicio (agent.log), la consola (console.log), el rendimiento (bench.log) y los errores (error.log) se almacenan en este directorio. Los archivos de registro se anexan en las ejecuciones posteriores del servicio.

  • state: datos del estado del servicio

    El estado que utiliza el servicio para determinar qué tareas deben ejecutarse se almacena aquí. Hay un archivo .run-once que indica si el servicio ya se ejecutó después de Sysprep (por lo que las tareas con una frecuencia de una vez se omitirán en la siguiente ejecución). Este subdirectorio incluye un state.json y previous-state.json para realizar un seguimiento del estado de cada tarea.

  • sysprep: Sysprep

    Este directorio contiene archivos que se utilizan para determinar qué operaciones debe realizar Sysprep cuando crea una AMI de Windows personalizada que se puede reutilizar.

Configurar EC2Launch v2 mediante la CLI

Puede utilizar la interfaz de línea de comandos (CLI) para ajustar la configuración de EC2Launch y administrar el servicio. La siguiente sección contiene descripciones e información de uso de los comandos de la CLI que puede utilizar para administrar EC2Launch v2.

collect-logs

Recopila archivos de registro para EC2Launch, comprime los archivos y los coloca en un directorio especificado.

Ejemplo

ec2launch collect-logs -o C:\Mylogs.zip

Uso

ec2launch collect-logs [flags]

Flags

-h, --help

ayuda para collect-logs

-o, --output string

ruta a los archivos de registro de salida comprimidos

get-agent-config

Imprime agent-config.yml en el formato especificado (JSON o YAML). Si no se especifica ningún formato, agent-config.yml se imprime en el formato especificado anteriormente.

Ejemplo

ec2launch get-agent-config -f json

Ejemplo 2

Los siguientes comandos de PowerShell muestran cómo editar y guardar el archivo agent-config en formato JSON.

$config = & "$env:ProgramFiles/Amazon/EC2Launch/EC2Launch.exe" --format json | ConvertFrom-Json $jumboFrame =@" { "task": "enableJumboFrames" } "@ $config.config | %{if($_.stage -eq 'postReady'){$_.tasks += (ConvertFrom-Json -InputObject $jumboFrame)}} $config | ConvertTo-Json -Depth 6 | Out-File -encoding UTF8 $env:ProgramData/Amazon/EC2Launch/config/agent-config.yml

Uso

ec2launch get-agent-config [flags]

Flags

-h, --help

ayuda para get-agent-config

-f, --format string

formato de salida del archivo agent-config: json, yaml

list-volumes

Muestra todos los volúmenes de almacenamiento asociados a la instancia, incluidos los volúmenes efímeros y de EBS.

Ejemplo

ec2launch list-volumes

Uso

ec2launch list-volumes

Flags

-h, --help

ayuda para list-volumes

reset

El objetivo principal de esta tarea es restablecer el agente para la próxima vez que se ejecute. Con este objetivo, el comando reset elimina todos los datos de estado del agente para EC2Launch v2 del directorio local de EC2Launch (consulte Estructura del directorio de EC2Launch v2). Restablecer elimina de manera opcional el servicio y los registros de Sysprep.

El comportamiento de los scripts depende del modo en el que el agente los ejecute: en línea o de forma independiente.

En línea (predeterminado)

El agente de EC2Launch v2 ejecuta los scripts de uno en uno (detach: false). Este es el valor predeterminado.

nota

Cuando el script en línea emite un comando resetsysprep, se ejecuta de manera inmediata y restablece el agente. La tarea actual finaliza y, a continuación, el agente se cierra sin ejecutar ninguna otra tarea.

Por ejemplo, si la tarea que emite el comando hubiera estado seguida de una tarea startSsm (incluida de forma predeterminada cuando se ejecutan los datos del usuario), la tarea no se ejecutaría y el servicio Systems Manager nunca se iniciaría.

Desconectado

El agente EC2Launch v2 ejecuta scripts de manera simultánea a otras tareas (detach: true).

nota

Cuando el script independiente emite un comando resetsysprep, dichos comandos esperan a que el agente termine antes de ejecutarse. Las tareas posteriores a executeScript seguirán ejecutándose.

Ejemplo

ec2launch reset -c

Uso

ec2launch reset [flags]

Flags

-c, --clean

limpia los registros de instancias antes de reset

-h, --help

ayuda para reset

run

Ejecuciones de EC2Launch v2.

Ejemplo

ec2launch run

Uso

ec2launch run [flags]

Flags

-h, --help

ayuda para run

estado

Obtiene el estado del agente EC2Launch v2. Opcionalmente bloquea el proceso hasta que finalice el agente. El código de salida del proceso determina el estado del agente:

  • 0: el agente se ejecutó con éxito.

  • 1: el agente se ejecutó de forma incorrecta.

  • 2: el agente sigue en ejecución.

  • 3: el agente se encuentra en estado desconocido. El estado del agente es detenido o sin ejecución.

  • 4: se produjo un error al intentar recuperar el estado del agente.

  • 5: el agente no se está ejecutando y se desconoce el estado de la última ejecución registrada. Esto podría significar una de las siguientes opciones:

    • tanto el state.json y previous-state.json se han eliminado.

    • el previous-state.json se encuentra dañado.

    Este es el estado del agente después de ejecutar el comando reset.

Ejemplo:

ec2launch status -b

Uso

ec2launch status [flags]

Flags

-b,--block

bloquea el proceso hasta que el agente termine de ejecutarse

-h,--help

ayuda para status

sysprep

El objetivo principal de esta tarea es restablecer el agente para la próxima vez que se ejecute. Para ello, el comando sysprep restablece el estado del agente, actualiza el archivo unattend.xml, desactiva RDP y ejecuta Sysprep.

El comportamiento de los scripts depende del modo en el que el agente los ejecute: en línea o de forma independiente.

En línea (predeterminado)

El agente de EC2Launch v2 ejecuta los scripts de uno en uno (detach: false). Este es el valor predeterminado.

nota

Cuando el script en línea emite un comando resetsysprep, se ejecuta de manera inmediata y restablece el agente. La tarea actual finaliza y, a continuación, el agente se cierra sin ejecutar ninguna otra tarea.

Por ejemplo, si la tarea que emite el comando hubiera estado seguida de una tarea startSsm (incluida de forma predeterminada cuando se ejecutan los datos del usuario), la tarea no se ejecutaría y el servicio Systems Manager nunca se iniciaría.

Desconectado

El agente EC2Launch v2 ejecuta scripts de manera simultánea a otras tareas (detach: true).

nota

Cuando el script independiente emite un comando resetsysprep, dichos comandos esperan a que el agente termine antes de ejecutarse. Las tareas posteriores a executeScript seguirán ejecutándose.

Ejemplo:

ec2launch sysprep

Uso

ec2launch sysprep [flags]

Flags

-c,--clean

limpia los registros de instancias antes de sysprep

-h,--help

ayuda para Sysprep

-s,--shutdown

cierra la instancia después de sysprep

validar

Valida el archivo agent-config C:\ProgramData\Amazon\EC2Launch\config\agent-config.yml.

Ejemplo

ec2launch validate

Uso

ec2launch validate [flags]

Flags

-h , --help

ayuda para validate

versión

Obtiene la versión ejecutable.

Ejemplo

ec2launch version

Uso

ec2launch version [flags]

Flags

-h, --help

ayuda para version

fondo de pantalla

Establece el nuevo fondo de pantalla en la ruta de fondo de pantalla que se proporciona (archivo .jpg) y muestra los detalles de la instancia seleccionada.

Sintaxis

ec2launch wallpaper ^ --path="C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg" ^ --all-tags ^ --attributes=hostName,instanceId,privateIpAddress,publicIpAddress,instanceSize,availabilityZone,architecture,memory,network

Entradas

Parámetros
--allowed-tags [nombre-etiqueta-1, nombre-etiqueta-n]

(Opcional) Matriz JSON codificada en Base64 de nombres de etiquetas de instancia para mostrarla en el fondo de pantalla. Puede utilizar esta etiqueta o --all-tags, pero no ambas.

--attributes cadena-de-atributos-1, cadena-de-atributos-n

(Opcional) Lista separada por comas de wallpaper cadenas de atributos para aplicar la configuración al fondo de pantalla.

[--path| -p] cadena-de-ruta

(Obligatorio) Especifique la ruta del archivo de imagen de fondo de wallpaper.

Indicadores
--all-tags

(Opcional) Muestre todas las etiquetas de instancia en el fondo de pantalla. Puede utilizar esta etiqueta o --allowed-tags, pero no ambas.

[--help | -h]

Muestra ayuda para el comando wallpaper.

Configuración de tareas de EC2Launch v2

Esta sección incluye el esquema de configuración, las tareas, detalles y ejemplos para agent-config.yml y datos del usuario.

Esquema: agent-config.yml

La estructura del archivo agent-config.yml se muestra a continuación. Tenga en cuenta que no es posible repetir una tarea en la misma etapa. Para ver las propiedades de las tareas, consulte las descripciones de tareas siguientes.

Estructura del documento: agent-config.yml

JSON

{ "version": "1.0", "config": [ { "stage": "string", "tasks": [ { "task": "string", "inputs": { ... } }, ... ] }, ... ] }

YAML

version: 1.0 config: - stage: string tasks: - task: string inputs: ... ... ...

Ejemplo: agent-config.yml

En el ejemplo siguiente se muestran los valores del archivo de configuración agent-config.yml.

version: 1.0 config: - stage: boot tasks: - task: extendRootPartition - stage: preReady tasks: - task: activateWindows inputs: activation: type: amazon - task: setDnsSuffix inputs: suffixes: - $REGION.ec2-utilities.amazonaws.com - task: setAdminAccount inputs: password: type: random - task: setWallpaper inputs: path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg attributes: - hostName - instanceId - privateIpAddress - publicIpAddress - instanceSize - availabilityZone - architecture - memory - network - stage: postReady tasks: - task: startSsm

Esquema: datos de usuario

Los siguientes ejemplos de JSON y YAML muestran la estructura del documento para los datos de usuario. Amazon EC2 analiza cada tarea nombrada en la matriz tasks que especifique en el documento. Cada tarea tiene su propio conjunto de propiedades y requisitos. Para obtener información detallada, consulte Definiciones de tareas.

nota

Una tarea solo debe aparecer una vez en la matriz de tareas de datos de usuario.

Estructura del documento: datos de usuario

JSON

{ "version": "1.1", "tasks": [ { "task": "string", "inputs": { ... }, }, ... ] }

YAML

version: 1.1 tasks: - task: string inputs: ... ...

Ejemplo: datos de usuario

Para obtener más información sobre datos de usuario, consulte Cómo gestiona Amazon EC2 los datos de usuario de las instancias de Windows.

El siguiente ejemplo de documento YAML muestra un script de PowerShell que EC2Launch v2 ejecuta como datos de usuario para crear un archivo.

version: 1.1 tasks: - task: executeScript inputs: - frequency: always type: powershell runAs: localSystem content: |- New-Item -Path 'C:\PowerShellTest.txt' -ItemType File

Puede utilizar un formato XML para los datos de usuario que sea compatible con las versiones anteriores del agente de inicialización. EC2Launch v2 ejecuta el script como una tarea executeScript en la etapa UserData. Para cumplir con el comportamiento de EC2Launch v1 y EC2Config, el script de datos del usuario se ejecuta como un proceso adjunto o en línea de forma predeterminada.

Puede agregar etiquetas opcionales para personalizar la ejecución del script. Por ejemplo, para ejecutar el script de datos de usuario cuando la instancia se reinicia, además de ejecutarse una vez cuando se inicia la instancia, puede usar la siguiente etiqueta:

<persist>true</persist>

Ejemplo:

<powershell> $file = $env:SystemRoot + "\Temp" + (Get-Date).ToString("MM-dd-yy-hh-mm") New-Item $file -ItemType file </powershell> <persist>true</persist>

Puede especificar uno o varios argumentos de PowerShell con la etiqueta <powershellArguments>. Si no se pasa ningún argumento, EC2Launch v2 agrega el siguiente argumento de forma predeterminada: -ExecutionPolicy Unrestricted.

Ejemplo:

<powershell> $file = $env:SystemRoot + "\Temp" + (Get-Date).ToString("MM-dd-yy-hh-mm") New-Item $file -ItemType file </powershell> <powershellArguments>-ExecutionPolicy Unrestricted -NoProfile -NonInteractive</powershellArguments>

Para ejecutar un script de datos de usuario XML como un proceso independiente, agregue la siguiente etiqueta a sus datos de usuario.

<detach>true</detach>

Ejemplo:

<powershell> $file = $env:SystemRoot + "\Temp" + (Get-Date).ToString("MM-dd-yy-hh-mm") New-Item $file -ItemType file </powershell> <detach>true</detach>
nota

La etiqueta de desconexión no es compatible con los agentes de inicialización anteriores.

Registro de cambios: datos de usuario

La siguiente tabla muestra los cambios en los datos de usuario y los compara con la versión del agente EC2Launch v2 aplicable.

Versión de datos de usuario Detalles Presentación
1.1
  • Las tareas de datos de usuario se ejecutan antes de la etapa PostReady en el archivo de configuración del agente.

  • Ejecuta datos de usuario antes de iniciar Systems Manager Agent (el mismo comportamiento que EC2Launch v1 y EC2Config).*

EC2Launch v2, versión 2.0.1245
1.0
  • Quedará en desuso.

  • Las tareas de datos de usuario se ejecutan después de la etapa PostReady en el archivo de configuración del agente. Esto no es compatible con versiones anteriores de EC2Launch v1.

  • Se ve afectado por una situación de carrera entre el inicio de Systems Manager Agent y las tareas de datos del usuario.

EC2Launch v2, versión 2.0.0

* Cuando se usa con el archivo agent-config.yml predeterminado.

Definiciones de tareas

Cada tarea tiene su propio conjunto de propiedades y requisitos. Para obtener información detallada, consulte las tareas individuales que desee incluir en el documento.

activateWindows

Activa Windows frente a un conjunto de servidores AWS KMS. La activación se omite si se detecta que la instancia es de tipo “traiga su propia licencia (BYOL)”.

Frecuencia: una vez

AllowedStages[PreReady]

Entradas

activation: (mapa)

type: (cadena) tipo de activación que se va a utilizar, se establece en amazon

Ejemplo

task: activateWindows inputs: activation: type: amazon

enableJumboFrames

Habilita tramas gigantes, que aumentan la unidad de transmisión máxima (MTU) del adaptador de red. Para obtener más información, consulte Tramas gigantes (9 001 MTU).

Frecuencia: siempre

AllowedStages[PostReady, UserData]

Entradas: ninguna

Ejemplo

task: enableJumboFrames

enableOpenSsh

Habilita Windows OpenSSH y agrega la clave pública de la instancia a la carpeta de claves autorizadas.

Frecuencia: una vez

AllowedStages[PreReady, UserData]

Entradas: ninguna

Ejemplo

En el ejemplo siguiente se muestra cómo habilitar OpenSSH en una instancia y agregar la clave pública de la instancia a la carpeta de claves autorizadas. Esta configuración solo funciona en instancias que ejecutan Windows Server 2019 y en versiones posteriores.

task: enableOpenSsh

executeProgram

Ejecuta un programa con argumentos opcionales y una frecuencia especificada.

Etapas: puede ejecutar la tarea executeProgram durante las etapas PreReady, PostReady y UserData.

Frecuencia: configurable, consulte Entradas.

Entradas

Puede configurar los parámetros de tiempo de ejecución de la siguiente manera:

frequency (cadena)

(Obligatorio) Especifique exactamente uno de los siguientes valores:

  • once

  • always

ruta (cadena)

(Obligatorio) La ruta del archivo para el ejecutable a ejecutar.

arguments (lista de cadenas)

(Opcional) Una lista de argumentos separados por comas para proporcionar al programa como entrada.

runAs (cadena)

(Obligatorio) Debe configurarse en localSystem

Salida

Todas las tareas escriben las entradas del archivo de registro en el archivo agent.log. Los resultados adicionales de la tarea executeProgram se almacenan por separado en una carpeta con nombre dinámico, de la siguiente manera:

%LocalAppData%\Temp\EC2Launch#########\outputfilename.tmp

La ruta exacta a los archivos de salida se incluye en el archivo agent.log, por ejemplo:

Program file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\ExecuteProgramInputs.tmp Output file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Output.tmp Error file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Err.tmp
Archivos de salida para la tarea executeProgram
ExecuteProgramInputs.tmp

Contiene la ruta del ejecutable y todos los parámetros de entrada que la tarea executeProgram le transfiere cuando se ejecuta.

Output.tmp

Contiene la salida del tiempo de ejecución del programa en el que se ejecuta la tarea executeProgram.

Err.tmp

Contiene el error del tiempo de ejecución del programa en el que se ejecuta la tarea executeProgram.

Ejemplos

En los siguientes ejemplos, se muestra cómo ejecutar un archivo ejecutable desde un directorio local en una instancia con la tarea executeProgram.

Ejemplo 1: Configurar el ejecutable con un argumento

En este ejemplo, se muestra una tarea executeProgram que ejecuta un ejecutable de configuración en modo silencioso.

task: executeProgram inputs: - frequency: always path: C:\Users\Administrator\Desktop\setup.exe arguments: ['-quiet']
Ejemplo 2: Ejecutable de VLC con dos argumentos

Este ejemplo muestra una tarea executeProgram que ejecuta un archivo ejecutable de VLC con dos argumentos pasados como parámetros de entrada.

task: executeProgram inputs: - frequency: always path: C:\vlc-3.0.11-win64.exe arguments: ['/L=1033','/S'] runAs: localSystem

executeScript

Ejecuta un script con argumentos opcionales y una frecuencia especificada. El comportamiento de los scripts depende del modo en el que el agente los ejecute: en línea o de forma independiente.

En línea (predeterminado)

El agente de EC2Launch v2 ejecuta los scripts de uno en uno (detach: false). Este es el valor predeterminado.

nota

Cuando el script en línea emite un comando resetsysprep, se ejecuta de manera inmediata y restablece el agente. La tarea actual finaliza y, a continuación, el agente se cierra sin ejecutar ninguna otra tarea.

Por ejemplo, si la tarea que emite el comando hubiera estado seguida de una tarea startSsm (incluida de forma predeterminada cuando se ejecutan los datos del usuario), la tarea no se ejecutaría y el servicio Systems Manager nunca se iniciaría.

Desconectado

El agente EC2Launch v2 ejecuta scripts de manera simultánea a otras tareas (detach: true).

nota

Cuando el script independiente emite un comando resetsysprep, dichos comandos esperan a que el agente termine antes de ejecutarse. Las tareas posteriores a executeScript seguirán ejecutándose.

Etapas: puede ejecutar la tarea executeScript durante las etapas PreReady, PostReady y UserData.

Frecuencia: configurable, consulte Entradas.

Entradas

Puede configurar los parámetros de tiempo de ejecución de la siguiente manera:

frequency (cadena)

(Obligatorio) Especifique exactamente uno de los siguientes valores:

  • once

  • always

type (cadena)

(Obligatorio) Especifique exactamente uno de los siguientes valores:

  • batch

  • powershell

arguments (lista de cadenas)

(Opcional) Una lista de argumentos de cadena para pasar al shell. Este parámetro no es compatible con type: batch. Si no se pasa ningún argumento, EC2Launch v2 agrega el siguiente argumento de forma predeterminada: -ExecutionPolicy Unrestricted.

content (cadena)

(Obligatorio) Contenido de script.

runAs (cadena)

(Obligatorio) Especifique exactamente uno de los siguientes valores:

  • admin

  • localSystem

detach (booleano)

(Opcional) El agente EC2Launch v2 ejecuta de forma predeterminada los scripts de uno en uno (detach: false). Para ejecutar el script simultáneamente con otras tareas, defina el valor en true (detach: true).

nota

Los códigos de salida de script (incluido 3010) no surten efecto cuando detach está establecido como true.

Salida

Todas las tareas escriben las entradas del archivo de registro en el archivo agent.log. La salida adicional del script que ejecuta la tarea executeScript se almacena por separado en una carpeta con nombre dinámico, de la siguiente manera:

%LocalAppData%\Temp\EC2Launch#########\outputfilename.ext

La ruta exacta a los archivos de salida se incluye en el archivo agent.log, por ejemplo:

Program file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\UserScript.ps1 Output file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Output.tmp Error file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Err.tmp
Archivos de salida para la tarea executeScript
UserScript.ext

Contiene el script en el que se ejecutó la tarea executeScript. La extensión del archivo depende del tipo de script que haya especificado en el parámetro type de la tarea executeScript, como se indica a continuación:

  • Si el tipo es batch, entonces la extensión del archivo es .bat.

  • Si el tipo es powershell, entonces la extensión del archivo es .ps1.

Output.tmp

Contiene la salida del tiempo de ejecución del script en el que se ejecuta la tarea executeScript.

Err.tmp

Contiene el error del tiempo de ejecución del script en el que se ejecuta la tarea executeScript.

Ejemplos

En los siguientes ejemplos, se muestra cómo ejecutar un script en línea con la tarea executeScript.

Ejemplo 1: Archivo de texto de salida de Hola mundo

En este ejemplo, se muestra una tarea executeScript en la que se ejecuta un script de PowerShell para crear un archivo de texto que diga “Hola mundo” en la unidad C:.

task: executeScript inputs: - frequency: always type: powershell runAs: admin content: |- New-Item -Path 'C:\PowerShellTest.txt' -ItemType File Set-Content 'C:\PowerShellTest.txt' "Hello world"
Ejemplo 2: Ejecutar dos scripts

En este ejemplo, se muestra que la tarea executeScript puede ejecutar más de un script y que el tipo de script no tiene por qué coincidir.

El primer script (type: powershell) escribe un resumen de los procesos que se están ejecutando actualmente en la instancia en un archivo de texto ubicado en la unidad C:.

El segundo script (batch) escribe la información del sistema en el archivo Output.tmp.

task: executeScript inputs: - frequency: always type: powershell content: | Get-Process | Out-File -FilePath C:\Process.txt runAs: localSystem - frequency: always type: batch content: | systeminfo
Ejemplo 3: Configurar el sistema idempotente con reinicios

En este ejemplo, se muestra una tarea executeScript en la que se ejecuta un script idempotente para realizar la siguiente configuración del sistema con un reinicio entre cada paso:

  • Cambiar el nombre del equipo.

  • Unir el equipo al dominio.

  • Habilitar Telnet.

El script garantiza que cada operación se ejecute una sola vez. Esto evita un bucle de reinicio y hace que el script sea idempotente.

task: executeScript inputs: - frequency: always type: powershell runAs: localSystem content: |- $name = $env:ComputerName if ($name -ne $desiredName) { Rename-Computer -NewName $desiredName exit 3010 } $domain = Get-ADDomain if ($domain -ne $desiredDomain) { Add-Computer -DomainName $desiredDomain exit 3010 } $telnet = Get-WindowsFeature -Name Telnet-Client if (-not $telnet.Installed) { Install-WindowsFeature -Name "Telnet-Client" exit 3010 }

extendRootPartition

Extiende el volumen raíz para utilizar todo el espacio disponible en el disco.

Frecuencia: una vez

AllowedStages[Boot]

Entradas: ninguna

Ejemplo

task: extendRootPartition

initializeVolume

Inicializa los volúmenes vacíos que están asociados a la instancia para que se activen y se particionen. El agente de inicialización omite la inicialización si detecta que el volumen no está vacío. Un volumen se considera vacío si los primeros 4 KB del volumen están vacíos o si el volumen no tiene un diseño de unidad reconocible por Windows.

El parámetro de entrada letter siempre se aplica cuando se ejecuta esta tarea, independientemente de si la unidad ya está inicializada.

La tarea initializeVolume realiza las siguientes acciones.

  • Establezca los atributos del disco offline y readonly en false.

  • Cree una partición. Si no se especifica ningún tipo de partición en el parámetro de entrada partition, se aplican los siguientes valores predeterminados:

    • Si el tamaño del disco es inferior a 2 TB, defina el tipo de partición en mbr.

    • Si el tamaño del disco es de 2 TB o mayor, defina el tipo de partición en gpt.

  • Dé formato al volumen como NTFS.

  • Defina la etiqueta de volumen de la siguiente manera:

    • Use el valor del parámetro de entrada name, si procede.

    • Si el volumen es efímero y no se especificó ningún nombre, defina la etiqueta de volumen en Temporary Storage Z.

  • Si el volumen es efímero (SSD o HDD, no Amazon EBS), cree un archivo Important.txt en la raíz del volumen con el siguiente contenido:

    This is an 'Instance Store' disk and is provided at no additional charge. *This disk offers increased performance since it is local to the host *The number of Instance Store disks available to an instance vary by instance type *DATA ON THIS DRIVE WILL BE LOST IN CASES OF IMPAIRMENT OR STOPPING THE INSTANCE. PLEASE ENSURE THAT ANY IMPORTANT DATA IS BACKED UP FREQUENTLY For more information, please refer to: Almacén de instancias Amazon EC2.
  • Defina la letra de la unidad en el valor especificado en el parámetro de entrada letter.

Etapas: puede ejecutar la tarea initializeVolume durante las etapas PostReady y UserData.

Frecuencia: siempre.

Entradas

Puede configurar los parámetros de tiempo de ejecución de la siguiente manera:

devices (lista de asignaciones)

(Condicional) Configuración para cada dispositivo que inicialice el agente de inicialización. Es necesario cuando el parámetro de entrada initialize se establece en devices.

  • device (cadena, obligatorio): identifica el dispositivo durante la creación de la instancia. Por ejemplo, xvdb, xvdf o \dev\nvme0n1.

  • letter (cadena, opcional): un carácter. La letra de unidad que se va a asignar.

  • name (cadena, opcional): el nombre del volumen que se va a asignar.

  • partition (cadena, opcional): especifique uno de los siguientes valores para el tipo de partición que desee crear o deje que el agente de inicialización tome el valor predeterminado en función del tamaño del volumen:

    • mbr

    • gpt

initialize (cadena)

(Obligatorio) Especifique exactamente uno de los siguientes valores:

  • all

  • devices

Ejemplos

En los siguientes ejemplos se muestran ejemplos de configuraciones de entrada para la tarea initializeVolume.

Ejemplo 1: inicializar dos volúmenes en una instancia

En este ejemplo, se muestra una tarea initializeVolume que inicializa dos volúmenes secundarios en una instancia. El dispositivo llamado DataVolume2 en el ejemplo es efímero.

task: initializeVolume inputs: initialize: devices devices: - device: xvdb name: DataVolume1 letter: D partition: mbr - device: /dev/nvme0n1 name: DataVolume2 letter: E partition: gpt
Ejemplo 2: inicializar volúmenes de EBS adjuntos a una instancia

En este ejemplo, se muestra una tarea initializeVolume que inicializa todos los volúmenes vacíos de EBS adjuntos a la instancia.

task: initializeVolume inputs: initialize: all

optimizeEna

Optimiza la configuración de ENA en función del tipo de instancia actual; podría reiniciar la instancia.

Frecuencia: siempre

AllowedStages[PostReady, UserData]

Entradas: ninguna

Ejemplo

task: optimizeEna

setAdminAccount

Establece atributos para la cuenta de administrador predeterminada que se crea en el equipo local.

Frecuencia: una vez

AllowedStages[PreReady]

Entradas

name: (cadena) nombre de la cuenta de administrador

password: (mapa)

type: (cadena) estrategia para establecer la contraseña, ya sea como static, random o doNothing

data: (cadena) almacena datos si el campo type es estático

Ejemplo

task: setAdminAccount inputs: name: Administrator password: type: random

setDnsSuffix

Agrega sufijos DNS a la lista de sufijos de búsqueda. Sólo se agregan a la lista los sufijos que aún no existen. Para obtener más información acerca de cómo los agentes de inicialización configuran los sufijos de DNS, consulte Configuración del sufijo de DNS para los agentes de inicialización de Windows.

Frecuencia: siempre

AllowedStages[PreReady]

Entradas

suffixes: (lista de cadenas) enumera uno o varios sufijos DNS válidos; las variables de sustitución válidas son $REGION y $AZ

Ejemplo

task: setDnsSuffix inputs: suffixes: - $REGION.ec2-utilities.amazonaws.com

setHostName

Establece el nombre de host del equipo en una cadena personalizada o, si no se especifica hostName, la dirección IPv4 privada.

Frecuencia: siempre

AllowedStages[PostReady, UserData]

Entradas

hostName: (cadena) nombre de host opcional, que debe tener el siguiente formato.

  • Debe tener 15 caracteres o menos

  • Debe contener sólo caracteres alfanuméricos (a-z, A-Z, 0-9) y guión (-).

  • No debe estar compuesta únicamente por caracteres numéricos.

reboot: (booleano) indica si se permite un reinicio cuando se cambia el nombre de host

Ejemplo

task: setHostName inputs: reboot: true

setWallpaper

Crea el archivo de acceso directo setwallpaper.lnk en la carpeta de inicio de cada usuario existente, excepto el Default User. Este archivo de acceso directo se ejecuta cuando el usuario inicia sesión por primera vez después del arranque de la instancia. Configura la instancia con un fondo de pantalla personalizado que muestra los atributos de la instancia.

La ruta del archivo de acceso directo es:

$env:SystemDrive/Users/<user>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/setwallpaper.lnk
nota

Al quitar la tarea setWallpaper, no elimina este archivo de acceso directo. Para obtener más información, consulte La tarea setWallpaper no está habilitada pero el fondo de pantalla se restablece al reiniciar.

Etapas: puede configurar el fondo de pantalla durante las etapas PreReady y UserData.

Frecuencia: always

Configuración de fondo de pantalla

Puede utilizar los siguientes ajustes para configurar su fondo de pantalla.

Entradas

Introduzca los parámetros que proporcione y los atributos que puede configurar para configurar el fondo de pantalla:

atributos (lista de cadenas)

(Opcional) Puede agregar uno o más de los siguientes atributos a su fondo de pantalla:

  • architecture

  • availabilityZone

  • hostName

  • instanceId

  • instanceSize

  • memory

  • network

  • privateIpAddress

  • publicIpAddress

instanceTags

(Opcional) Puede utilizar exactamente una de las opciones siguientes para esta configuración.

  • AllTags (cadena) (Todas las etiquetas): agregue todas las etiquetas de instancia a su fondo de pantalla.

    instanceTags: AllTags
  • InstanceTags (lista de cadenas) (Etiquetas de instancias): especifica una lista de nombres de etiquetas de instancia para agregarlos al fondo de pantalla. Por ejemplo:

    instanceTags: - Tag 1 - Tag 2
ruta (cadena)

(Obligatorio) La ruta del nombre del archivo de imagen local en formato .jpg que se va a utilizar en la imagen de fondo de pantalla.

Ejemplo

El siguiente ejemplo muestra las entradas de configuración del fondo de pantalla que establecen la ruta del archivo de la imagen de fondo del fondo de pantalla, junto con las etiquetas de instancia denominadas Tag 1 y Tag 2, y los atributos que incluyen el nombre de host, el ID de la instancia y las direcciones IP públicas y privadas de la instancia.

task: setWallpaper inputs: path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg attributes: - hostName - instanceId - privateIpAddress - publicIpAddress instanceTags: - Tag 1 - Tag 2
nota

Debe habilitar las etiquetas en los metadatos para que se muestren en el fondo de pantalla. Para obtener más información acerca de las etiquetas y metadatos de instancias, consulte Trabajar con etiquetas de instancia en los metadatos de instancia.

startSsm

Comienza el servicio Systems Manager (SSM) siguiendo Sysprep.

Frecuencia: siempre

AllowedStages[PostReady, UserData]

Entradas: ninguna

Ejemplo

task: startSsm

sysprep

Restablece el estado del servicio, actualiza unattend.xml, desactiva RDP y ejecuta Sysprep. Esta tarea sólo se ejecuta después de que se hayan completado todas las demás tareas.

Frecuencia: una vez

AllowedStages[UserData]

Entradas

clean: (booleano) limpia los registros de instancia antes de ejecutar Sysprep

shutdown: (booleano) cierra la instancia después de ejecutar Sysprep

Ejemplo

task: sysprep inputs: clean: true shutdown: true

writeFile

Escribe un archivo en un destino.

Frecuencia: consulte Entradas

AllowedStages[PostReady, UserData]

Entradas

frequency: (cadena) uno entre once y always

destination: (cadena) ruta en la que escribir el contenido

content: (cadena) texto para escribir en el destino

Ejemplo

task: writeFile inputs: - frequency: once destination: C:\Users\Administrator\Desktop\booted.txt content: Windows Has Booted

Códigos de salida y reinicios de EC2Launch v2

Puede utilizar EC2Launch v2 para definir cómo los scripts manejan los códigos de salida. De forma predeterminada, el código de salida del último comando ejecutado en un script se registra como el código de salida de todo el script. Por ejemplo, si una secuencia de comandos incluye tres comandos y el primer comando falla pero los siguientes se ejecutan correctamente, el estado de ejecución se informa como success porque el comando final se ha realizado correctamente.

Si desea que un script reinicie una instancia, debe especificar el exit 3010 en el script, incluso cuando el reinicio sea el último paso del script. exit 3010 indica a EC2Launch v2 que reinicie la instancia y llame nuevamente al script hasta que devuelva un código de salida que no sea 3010, o hasta que se haya alcanzado el número máximo de reinicios. EC2Launch v2 permite un máximo de 5 reinicios por tarea. Si intentas reiniciar una instancia desde un script utilizando un mecanismo diferente, como por ejemplo Restart-Computer, el estado de ejecución del script será incoherente. Por ejemplo, puede quedarse atascado en un bucle de reinicio o no realizar el reinicio.

Si utiliza un formato de datos de usuario XML que es compatible con agentes antiguos, los datos de usuario pueden ejecutarse más veces de las que desea. Para obtener más información, consulte El servicio ejecuta datos de usuario más de una vez en la sección de resolución de problemas.

EC2Launch v2 y Sysprep

El servicio EC2Launch v2 ejecuta Sysprep, una herramienta de Microsoft que le permite crear una AMI de Windows personalizada que se puede reutilizar. Cuando EC2Launch v2 llama a Sysprep, utiliza los archivos de %ProgramData%\Amazon\EC2Launch para determinar qué operaciones realizar. Puede editar estos archivos de manera indirecta mediante el cuadro de diálogo Configuración de EC2Launch o directamente mediante un editor YAML o un editor de texto. Sin embargo, hay algunas opciones de configuración avanzada que no están disponibles en el cuadro de diálogo Configuración de EC2Launch, por lo que debe editar dichas entradas directamente.

Si crea una AMI desde una instancia después de actualizar su configuración, la nueva configuración se aplica a cualquier instancia que se lance desde la nueva AMI. Para obtener información acerca de la creación de una AMI, consulte Creación de una AMI basada en Amazon EBS.