Configuración de EC2Launch v2
Esta sección contiene información acerca de cómo configurar las opciones para EC2Launch v2.
Los temas incluyen:
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.
-
Lance y conéctese a la instancia de Windows.
-
En el menú Inicio, elija Todos los programas y, a continuación, vaya a la Configuración de EC2Launch.
-
En la pestaña General del cuadro de diálogo Configuración de EC2Launch, puede habilitar o desactivar la siguiente configuración.
-
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. -
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. -
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 siadminPasswordtype
esSpecify
.Los tipos de contraseñas se definen de la siguiente manera:
-
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.
-
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 enagent-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. -
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.
-
-
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.
-
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 CPU de escalado del lado de recepción.
-
Habilitar SSH
Esta configuración habilita OpenSSH para versiones posteriores de Windows para permitir la administración remota del sistema.
-
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).
-
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).
-
-
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. -
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 Ver etiquetas para las instancias mediante los metadatos de la instancia.
-
-
-
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ónmbr
. 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.
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 archivoagent-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ónEl 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 instanciasLos registros del servicio (
agent.log
), la consola (console.log
), el rendimiento (bench.log
), los errores (err.log
) y la telemetría (telemetry.log
) se almacenan en este directorio. Los archivos de registro se anexan en las ejecuciones posteriores del servicio. -
state
: datos del estado del servicioEl 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 unstate.json
yprevious-state.json
para realizar un seguimiento del estado de cada tarea. -
sysprep
: SysprepEste directorio contiene archivos que se utilizan para determinar qué operaciones debe realizar Sysprep cuando crea una AMI de Windows personalizada que se puede reutilizar.
-
wallpaper
: fondo de pantallaLas imágenes de este fondo de pantalla se almacenan en este directorio.
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.
Comandos
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 reset o sysprep, 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 reset o sysprep, 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
yprevious-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 reset o sysprep, 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 reset o sysprep, 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 |
|
EC2Launch v2, versión 2.0.1245 |
1.0 |
|
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.
Tareas
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
-
Esta sección contiene uno o más programas para ejecutar la tarea executeProgram (entradas). Cada paso puede incluir los siguientes atributos:
- 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 tareaexecuteProgram
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 reset o sysprep, 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 reset o sysprep, 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
-
Esta sección contiene uno o más scripts para ejecutar la tarea executeScript (entradas). Cada paso puede incluir los siguientes atributos:
- 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 entrue
(detach: true
).nota
Los códigos de salida de script (incluido
3010
) no surten efecto cuandodetach
está establecido comotrue
.
- Salida
-
Todas las tareas escriben las entradas del archivo de registro en el archivo
agent.log
. La salida adicional del script que ejecuta la tareaexecuteScript
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ámetrotype
de la tareaexecuteScript
, 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 unidadC:
.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 unidadC:
.El segundo script (
batch
) escribe la información del sistema en el archivoOutput.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
yreadonly
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: Almacenamiento de nivel de bloques temporal del almacén de instancias para las instancias de 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 endevices
.-
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 llamadoDataVolume2
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 Ver etiquetas para las instancias mediante los metadatos de la 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.