Ejecutar una automatización paso a paso - AWS Systems Manager

Ejecutar una automatización paso a paso

Los siguientes procedimientos describen cómo utilizar la consola de AWS Systems Manager y la AWS Command Line Interface (AWS CLI) para ejecutar una automatización mediante el modo de ejecución manual. Al utilizar el modo de ejecución manual, la automatización se inicia en el estado En espera y se detiene en el estado En espera entre los diferentes pasos. Esto le permite controlar cuándo debe continuar con la automatización, lo que resulta útil si necesita revisar el resultado de un paso antes de continuar.

La automatización se ejecuta en el contexto del usuario actual. Esto significa que no tiene que configurar más permisos de IAM siempre y cuando cuente con el permiso necesario para usar el manual de procedimientos y cualquier acción que este solicite. Si tiene permisos de administrador en IAM, ya cuenta con el permiso necesario para ejecutar esta automatización.

Ejecución de una automatización paso a paso (consola)

El siguiente procedimiento muestra cómo utilizar la consola de Systems Manager para ejecutar manualmente una automatización paso a paso.

Para ejecutar una automatización paso a paso
  1. Abra la consola de AWS Systems Manager en https://console.aws.amazon.com/systems-manager/.

  2. En el panel de navegación, elija Automatización y, después, seleccione Ejecutar automatización.

  3. En la lista Documento de automatización, elija un manual de procedimientos. Elija una o más opciones en el panel Categorías de documentos para filtrar documentos SSM según su propósito. Para ver un manual de procedimientos que le pertenezca, seleccione la pestaña De mi propiedad. Para ver un manual de procedimientos que se haya compartido con su cuenta, elija la pestaña Compartido conmigo. Para ver todos los manuales de procedimientos, seleccione la pestaña Todos los documentos.

    nota

    Puede ver información acerca de un manual de procedimientos al seleccionar su nombre.

  4. En la sección Detalles del documento, verifique que Versión del documento esté establecido como la versión que desea ejecutar. El sistema incluye las siguientes opciones de versión:

    • Versión predeterminada en tiempo de ejecución: seleccione esta opción si el manual de procedimientos de automatización se actualiza de forma periódica y se asigna una nueva versión predeterminada.

    • Última versión en tiempo de ejecución: seleccione esta opción si el manual de procedimientos de automatización se actualiza de forma periódica y desea ejecutar la versión que se ha actualizado más recientemente.

    • 1 (Predeterminado): seleccione esta opción para ejecutar la primera versión del documento, que es la predeterminada.

  5. Elija Siguiente.

  6. En la sección Modo de ejecución, seleccione Ejecución manual.

  7. En la sección Parámetros de entrada, especifique las entradas necesarias: De forma opcional, puede elegir un rol de servicio de IAM de la lista AutomationAssumeRole.

  8. Elija Ejecutar.

  9. Seleccione Ejecutar este paso cuando esté preparado para iniciar el primer paso de la automatización. La automatización realiza el paso uno y se detiene antes de ejecutar los siguientes pasos especificados en el manual de procedimientos que eligió en el paso 3 de este procedimiento. Si el manual de procedimientos tiene varios pasos, debe seleccionar Ejecutar este paso para que se continúe con cada paso de la automatización. Cada vez que se seleccione Ejecutar este paso se ejecuta la acción.

    nota

    La consola muestra el estado de la automatización. Si no se logra ejecutar un paso de la automatización, consulte Solución de problemas de Automatización de Systems Manager.

  10. Tras realizar todos los pasos especificados en el manual de procedimientos, seleccione Completar y ver resultados para finalizar la automatización y ver los resultados.

Ejecución de una automatización paso a paso (línea de comandos)

El siguiente procedimiento describe cómo utilizar la AWS CLI (en Linux, macOS o Windows) o AWS Tools for PowerShell para ejecutar manualmente una automatización paso a paso.

Para ejecutar una automatización paso a paso
  1. Si aún no lo ha hecho, instale y configure la AWS CLI o las AWS Tools for PowerShell.

    Para obtener información, consulte Instalación o actualización de la última versión de la AWS CLI e Instalación de AWS Tools for PowerShell.

  2. Ejecute el siguiente comando para iniciar una automatización manual. Reemplace cada example resource placeholder con su propia información.

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --mode Interactive \ --parameters runbook parameters
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --mode Interactive ^ --parameters runbook parameters
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName runbook name ` -Mode Interactive ` -Parameter runbook parameters

    A continuación, se muestra un ejemplo en el que se utiliza el manual de procedimientos AWS-RestartEC2Instance para reiniciar la instancia de EC2 especificada.

    Linux & macOS
    aws ssm start-automation-execution \ --document-name "AWS-RestartEC2Instance" \ --mode Interactive \ --parameters "InstanceId=i-02573cafcfEXAMPLE"
    Windows
    aws ssm start-automation-execution ^ --document-name "AWS-RestartEC2Instance" ^ --mode Interactive ^ --parameters "InstanceId=i-02573cafcfEXAMPLE"
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName AWS-RestartEC2Instance ` -Mode Interactive -Parameter @{"InstanceId"="i-02573cafcfEXAMPLE"}

    El sistema devuelve información similar a la siguiente.

    Linux & macOS
    {
        "AutomationExecutionId": "ba9cd881-1b36-4d31-a698-0123456789ab"
    }
    Windows
    {
        "AutomationExecutionId": "ba9cd881-1b36-4d31-a698-0123456789ab"
    }
    PowerShell
    ba9cd881-1b36-4d31-a698-0123456789ab
  3. Ejecute el siguiente comando cuando esté listo para iniciar el primer paso de la automatización. Reemplace cada example resource placeholder con su propia información. La automatización realiza el paso uno y se detiene antes de ejecutar los siguientes pasos especificados en el manual de procedimientos que eligió en el paso 1 de este procedimiento. Si el manual de procedimientos tiene varios pasos, debe ejecutar el siguiente comando para que se continúe con cada paso de la automatización.

    Linux & macOS
    aws ssm send-automation-signal \ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab \ --signal-type StartStep \ --payload StepName="stopInstances"
    Windows
    aws ssm send-automation-signal ^ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab ^ --signal-type StartStep ^ --payload StepName="stopInstances"
    PowerShell
    Send-SSMAutomationSignal ` -AutomationExecutionId ba9cd881-1b36-4d31-a698-0123456789ab ` -SignalType StartStep -Payload @{"StepName"="stopInstances"}

    No se obtienen resultados si el comando se ejecuta correctamente.

  4. Ejecute el siguiente comando para recuperar el estado de cada ejecución de un paso en la automatización.

    Linux & macOS
    aws ssm describe-automation-step-executions \ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab
    Windows
    aws ssm describe-automation-step-executions ^ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab
    PowerShell
    Get-SSMAutomationStepExecution ` -AutomationExecutionId ba9cd881-1b36-4d31-a698-0123456789ab

    El sistema devuelve información similar a la siguiente.

    Linux & macOS
    {
        "StepExecutions": [
            {
                "StepName": "stopInstances",
                "Action": "aws:changeInstanceState",
                "ExecutionStartTime": 1557167178.42,
                "ExecutionEndTime": 1557167220.617,
                "StepStatus": "Success",
                "Inputs": {
                    "DesiredState": "\"stopped\"",
                    "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
                },
                "Outputs": {
                    "InstanceStates": [
                        "stopped"
                    ]
                },
                "StepExecutionId": "654243ba-71e3-4771-b04f-0123456789ab",
                "OverriddenParameters": {},
                "ValidNextSteps": [
                    "startInstances"
                ]
            },
            {
                "StepName": "startInstances",
                "Action": "aws:changeInstanceState",
                "ExecutionStartTime": 1557167273.754,
                "ExecutionEndTime": 1557167480.73,
                "StepStatus": "Success",
                "Inputs": {
                    "DesiredState": "\"running\"",
                    "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
                },
                "Outputs": {
                    "InstanceStates": [
                        "running"
                    ]
                },
                "StepExecutionId": "8a4a1e0d-dc3e-4039-a599-0123456789ab",
                "OverriddenParameters": {}
            }
        ]
    }
    Windows
    {
        "StepExecutions": [
            {
                "StepName": "stopInstances",
                "Action": "aws:changeInstanceState",
                "ExecutionStartTime": 1557167178.42,
                "ExecutionEndTime": 1557167220.617,
                "StepStatus": "Success",
                "Inputs": {
                    "DesiredState": "\"stopped\"",
                    "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
                },
                "Outputs": {
                    "InstanceStates": [
                        "stopped"
                    ]
                },
                "StepExecutionId": "654243ba-71e3-4771-b04f-0123456789ab",
                "OverriddenParameters": {},
                "ValidNextSteps": [
                    "startInstances"
                ]
            },
            {
                "StepName": "startInstances",
                "Action": "aws:changeInstanceState",
                "ExecutionStartTime": 1557167273.754,
                "ExecutionEndTime": 1557167480.73,
                "StepStatus": "Success",
                "Inputs": {
                    "DesiredState": "\"running\"",
                    "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
                },
                "Outputs": {
                    "InstanceStates": [
                        "running"
                    ]
                },
                "StepExecutionId": "8a4a1e0d-dc3e-4039-a599-0123456789ab",
                "OverriddenParameters": {}
            }
        ]
    }
    PowerShell
    Action: aws:changeInstanceState
    ExecutionEndTime     : 5/6/2019 19:45:46
    ExecutionStartTime   : 5/6/2019 19:45:03
    FailureDetails       : 
    FailureMessage       : 
    Inputs               : {[DesiredState, "stopped"], [InstanceIds, ["i-02573cafcfEXAMPLE"]]}
    IsCritical           : False
    IsEnd                : False
    MaxAttempts          : 0
    NextStep             : 
    OnFailure            : 
    Outputs              : {[InstanceStates, Amazon.Runtime.Internal.Util.AlwaysSendList`1[System.String]]}
    OverriddenParameters : {}
    Response             : 
    ResponseCode         : 
    StepExecutionId      : 8fcc9641-24b7-40b3-a9be-0123456789ab
    StepName             : stopInstances
    StepStatus           : Success
    TimeoutSeconds       : 0
    ValidNextSteps       : {startInstances}
  5. Ejecute el siguiente comando para completar la automatización una vez que se hayan completado todos los pasos especificados en el manual de procedimientos elegido. Reemplace cada example resource placeholder con su propia información.

    Linux & macOS
    aws ssm stop-automation-execution \ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab \ --type Complete
    Windows
    aws ssm stop-automation-execution ^ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab ^ --type Complete
    PowerShell
    Stop-SSMAutomationExecution ` -AutomationExecutionId ba9cd881-1b36-4d31-a698-0123456789ab ` -Type Complete

    No se obtienen resultados si el comando se ejecuta correctamente.