Paso 3: registrar una tarea con el periodo de mantenimiento (AWS CLI) - AWS Systems Manager

Paso 3: registrar una tarea con el periodo de mantenimiento (AWS CLI)

En este paso del tutorial, registrará una tarea de AWS Systems Manager Run Command que ejecuta el comando df en su instancia de Amazon Elastic Compute Cloud (Amazon EC2) para Linux. Los resultados de este comando de Linux estándar muestran la cantidad de espacio libre y de espacio que se utiliza en el sistema de archivos de disco de la instancia.

-o bien-

Si tiene una instancia de Amazon EC2 para Windows Server en lugar de Linux, reemplace df en el siguiente comando por ipconfig. La salida de este comando muestra los detalles de la dirección IP, la máscara de subred y la gateway predeterminada para los adaptadores en la instancia de destino.

Cuando esté listo para registrar otros tipos de tareas o utilizar otras opciones disponibles de Systems Manager Run Command, consulte Ejemplos: registrar tareas en un periodo de mantenimiento. En este apartado se proporciona más información sobre los cuatro tipos de tarea y algunas de sus opciones más importantes, con el fin de ayudarle a planificar escenarios más extensos y reales.

Para registrar una tarea en un periodo de mantenimiento
  1. Ejecute el siguiente comando en el equipo local. Reemplace cada example resource placeholder con su propia información. La versión para ejecutar desde un equipo local con Windows incluye los caracteres de escape ("/") necesarios para ejecutar el comando desde la herramienta de línea de comandos.

    Linux & macOS
    aws ssm register-task-with-maintenance-window \ --window-id mw-0c50858d01EXAMPLE \ --task-arn "AWS-RunShellScript" \ --max-concurrency 1 --max-errors 1 \ --priority 10 \ --targets "Key=InstanceIds,Values=i-0471e04240EXAMPLE" \ --task-type "RUN_COMMAND" \ --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
    Windows
    aws ssm register-task-with-maintenance-window ^ --window-id mw-0c50858d01EXAMPLE ^ --task-arn "AWS-RunShellScript" ^ --max-concurrency 1 --max-errors 1 ^ --priority 10 ^ --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^ --task-type "RUN_COMMAND" ^ --task-invocation-parameters={\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}

    El sistema devuelve información similar a la siguiente:

    {
        "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
    }
  2. Ahora ejecute el siguiente comando para ver información detallada sobre la tarea del periodo de mantenimiento que ha creado.

    Linux & macOS
    aws ssm describe-maintenance-window-tasks \ --window-id mw-0c50858d01EXAMPLE
    Windows
    aws ssm describe-maintenance-window-tasks ^ --window-id mw-0c50858d01EXAMPLE
  3. El sistema devuelve información similar a la siguiente.

    {
        "Tasks": [
            {
                "WindowId": "mw-0c50858d01EXAMPLE",
                "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
                "TaskArn": "AWS-RunShellScript",
                "Type": "RUN_COMMAND",
                "Targets": [
                    {
                        "Key": "InstanceIds",
                        "Values": [
                            "i-02573cafcfEXAMPLE"
                        ]
                    }
                ],
                "TaskParameters": {},
                "Priority": 10,
                "ServiceRoleArn": "arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole",
                "MaxConcurrency": "1",
                "MaxErrors": "1"
            }
        ]
    }
  4. Espere hasta que la tarea haya tenido tiempo de ejecutarse, según la programación que especificó en Paso 1: crear el período de mantenimiento (AWS CLI). Por ejemplo, si especificó --schedule "rate(5 minutes)", espere cinco minutos. A continuación, ejecute el siguiente comando para ver información sobre las ejecuciones que han tenido lugar para esta tarea.

    Linux & macOS
    aws ssm describe-maintenance-window-executions \ --window-id mw-0c50858d01EXAMPLE
    Windows
    aws ssm describe-maintenance-window-executions ^ --window-id mw-0c50858d01EXAMPLE

    El sistema devuelve información similar a la siguiente.

    {
        "WindowExecutions": [
            {
                "WindowId": "mw-0c50858d01EXAMPLE",
                "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
                "Status": "SUCCESS",
                "StartTime": 1557593493.096,
                "EndTime": 1557593498.611
            }
        ]
    }
sugerencia

Una vez que la tarea se ejecuta correctamente, puede reducir la frecuencia de ejecución del periodo de mantenimiento. Por ejemplo, ejecute el siguiente comando para reducir la frecuencia a una vez a la semana. Reemplace mw-0c50858d01EXAMPLE con su propia información.

Linux & macOS
aws ssm update-maintenance-window \ --window-id mw-0c50858d01EXAMPLE \ --schedule "rate(7 days)"
Windows
aws ssm update-maintenance-window ^ --window-id mw-0c50858d01EXAMPLE ^ --schedule "rate(7 days)"

Para obtener información sobre cómo administrar las programaciones de los periodos de mantenimiento, consulte Referencia: expresiones cron y rate para Systems Manager y Programación de la ventana de mantenimiento y opciones de periodo activo.

Para obtener información acerca de cómo utilizar la AWS Command Line Interface (AWS CLI) para modificar un periodo de mantenimiento, consulte Tutorial Actualizar un período de mantenimiento (AWS CLI).

Para practicar la ejecución de comandos de la AWS CLI a fin de ver más detalles sobre la tarea del periodo de mantenimiento y sus ejecuciones, vaya a Tutorial: ver información sobre tareas y ejecuciones de tareas (AWS CLI).

Acerca del resultado del comando del tutorial

Está fuera del alcance de este tutorial utilizar la AWS CLI para ver el resultado del comando de Run Command asociado a las ejecuciones de la tarea del periodo de mantenimiento.

No obstante, puede ver estos datos mediante la AWS CLI. (También puede ver la salida en la consola de Systems Manager o en un archivo de registros almacenado en un bucket de Amazon Simple Storage Service (Amazon S3), en caso de haber configurado el periodo de mantenimiento para almacenar las salidas de los comandos allí). Descubrirá que la salida del comando df en una instancia de EC2 para Linux es similar a lo siguiente.

Filesystem 1K-blocks Used Available Use% Mounted on

devtmpfs 485716 0 485716 0% /dev

tmpfs 503624 0 503624 0% /dev/shm

tmpfs 503624 328 503296 1% /run

tmpfs 503624 0 503624 0% /sys/fs/cgroup

/dev/xvda1 8376300 1464160 6912140 18% /

El resultado del comando ipconfig en una instancia de EC2 para Windows Server es similar al siguiente:

Windows IP Configuration


Ethernet adapter Ethernet 2:

   Connection-specific DNS Suffix  . : example.com
   IPv4 Address. . . . . . . . . . . : 10.24.34.0/23
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 0.0.0.0

Ethernet adapter Ethernet:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : abc1.wa.example.net

Wireless LAN adapter Local Area Connection* 1:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::100b:c234:66d6:d24f%4
   IPv4 Address. . . . . . . . . . . : 192.0.2.0
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.0.2.0

Ethernet adapter Bluetooth Network Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :