

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# `AWSSupport-StartEC2RescueWorkflow`
<a name="automation-awssupport-startec2rescueworkflow"></a>

 **Descrizione** 

Il `AWSSupport-StartEC2RescueWorkflow` runbook esegue lo script con codifica base64 fornito (Bash o Powershell) su un'istanza helper creata per salvare l'istanza. Il volume root dell'istanza è collegato e montato sull'istanza helper, nota anche come istanza Rescue. EC2 Se l'istanza è Windows, specificare uno script Powershell. In caso contrario, utilizzare Bash. Il runbook imposta alcune variabili di ambiente che è possibile utilizzare nello script. Le variabili di ambiente contengono informazioni sull'input fornito, nonché informazioni sul volume root offline. Il volume offline è già montato e pronto all'uso. Ad esempio, è possibile salvare il file di configurazione dello stato desiderato in un volume root di Windows offline o eseguire il comando chroot e passare a un volume root di Linux offline ed eseguire la correzione offline.

[Esegui questa automazione (console)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-StartEC2RescueWorkflow)

**Importante**  
Le istanze Amazon EC2 create da Marketplace Amazon Machine Images (AMIs) non sono supportate da questa automazione.

 **Informazioni aggiuntive** 

Per applicare la codifica base64 a uno script, è possibile utilizzare Powershell o Bash. Powershell:

```
[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.IO.File]::ReadAllText('PATH_TO_FILE')))
```

Bash:

```
base64 PATH_TO_FILE
```

Ecco un elenco di variabili di ambiente che è possibile utilizzare negli script offline, a seconda del sistema operativo di destinazione.

Windows:


****  

| Variabile | Description | Valore di esempio | 
| --- | --- | --- | 
|  \$1env: RESCUE\$1ACCOUNT\$1ID EC2  |  \$1\$1 global:ACCOUNT\$1ID \$1\$1  |  123456789012  | 
|  \$1env: EC2 RESCUE\$1DATE  |  \$1\$1 global:DATE \$1\$1  |  2018-09-07  | 
|  \$1env: EC2 RESCUE\$1DATE\$1TIME  |  \$1\$1 global:DATE\$1TIME \$1\$1  |  2018-09-07\$118.09.59  | 
|  \$1 env: EC2 RESCUE\$1 RW\$1DIR EC2  |  EC2Percorso di installazione di Rescue for Windows  |  C:\$1Program Files\$1 Amazon\$1 EC2 Rescue  | 
|  \$1 env: EC2 RESCUE\$1 RW\$1DIR EC2  |  EC2Percorso di installazione di Rescue for Windows  |  C:\$1Program Files\$1 Amazon\$1 EC2 Rescue  | 
|  \$1 env: RESCUE\$1EXECUTION\$1ID EC2  |  \$1\$1 automation:EXECUTION\$1ID \$1\$1  |  7ef8008e-219b-4aca-8bb5-65e2e898e20b  | 
|  \$1 env: EC2 RESCUE\$1OFFLINE\$1CURRENT\$1CONTROL\$1SET  |  Percorso dell'insieme di controlli corrente di Windows offline  |  `HKLM:\AWSTempSystem\ControlSet001`  | 
|  \$1 env: EC2 RESCUE\$1OFFLINE\$1DRIVE  |  Lettera di unità di Windows offline  |  D:\$1  | 
|  \$1 env: EC2 RESCUE\$1OFFLINE\$1EBS\$1DEVICE  |  Dispositivo EBS del volume root offline  |  xvdf  | 
|  \$1 env: EC2 RESCUE\$1OFFLINE\$1KERNEL\$1VER  |  Versione del kernel di Windows offline  |  6.1.7601.24214  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1OS\$1ARCHITECTURE  |  Architettura di Windows offline  |  AMD64  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1OS\$1CAPTION  |  Didascalia di Windows offline  |  Windows Server 2008 R2 Datacenter  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1OS\$1TYPE  |  Tipo di sistema operativo Windows offline  |  Server  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1PROGRAM\$1FILES\$1DIR  |  Percorso della directory dei file di programma di Windows offline  |  D:\$1Program Files  | 
|  \$1 env: EC2 RESCUE\$1OFFLINE\$1PROGRAM\$1FILES\$1X86\$1DIR  |  Percorso della directory dei file di programma x86 di Windows offline  |  D:\$1Program Files (x86)  | 
|  \$1 env: EC2 RESCUE\$1OFFLINE\$1REGISTRY\$1DIR  |  Percorso della directory del Registro di sistema di Windows offline  |  D:\$1Windows\$1System32\$1config  | 
|  \$1 env: EC2 RESCUE\$1OFFLINE\$1SYSTEM\$1ROOT  |  Percorso della directory radice di sistema di Windows offline  |  D:\$1Windows  | 
|  \$1env: EC2 RESCUE\$1REGION  |  \$1\$1 global:REGION \$1\$1  |  us-west-1  | 
|  \$1env: EC2 RESCUE\$1S3\$1BUCKET  |  \$1\$1S3\$1BucketName \$1  |  bucket dimostrativo amzn-s3  | 
|  \$1env: RESCUE\$1S3\$1PREFIX EC2  |  \$1\$1 S3Prefix \$1\$1  |  myprefix/  | 
|  \$1env: EC2 RESCUE\$1SOURCE\$1INSTANCE  |  \$1\$1 InstanceId \$1\$1  |  i-abcdefgh123456789  | 
|  \$1script: EC2 RESCUE\$1OFFLINE\$1WINDOWS\$1INSTALL  |  Metadati di installazione di Windows offline  |  Oggetto Powershell del cliente  | 

Linux:


****  

| Variabile | Description | Valore di esempio | 
| --- | --- | --- | 
|  EC2RESCUE\$1ACCOUNT\$1ID  |  \$1\$1 global:ACCOUNT\$1ID \$1\$1  |  123456789012  | 
|  EC2DATA DI SALVATAGGIO  |  \$1\$1 global:DATE \$1\$1  |  2018-09-07  | 
|  EC2DATE\$1ORA DI SALVATAGGIO  |  \$1\$1 global:DATE\$1TIME \$1\$1  |  2018-09-07\$118.09.59  | 
|  EC2RESCUE\$1 RL\$1DIR EC2  |  EC2Percorso di installazione di Rescue for Linux  |  /usr/local/ec2rl-1.1.3  | 
|  EC2RESCUE\$1EXECUTION\$1ID  |  \$1\$1 automation:EXECUTION\$1ID \$1\$1  |  7ef8008e-219b-4aca-8bb5-65e2e898e20b  | 
|  EC2DEVICE\$1RESCUE OFFLINE  |  Nome del dispositivo offline  |  /dev/xvdf1  | 
|  EC2DEVICE\$1RESCUE\$1OFFLINE\$1EBS  |  Dispositivo EBS del volume root offline  |  /dev/sdf  | 
|  EC2RESCUE\$1OFFLINE\$1SYSTEM\$1ROOT  |  Punto di montaggio del volume radice offline  |  /mnt/mount  | 
|  EC2RESCUE\$1PYTHON  |  Versione di Python  |  python2.7  | 
|  EC2RESCUE\$1REGION  |  \$1\$1 global:REGION \$1\$1  |  us-west-1  | 
|  EC2RESCUE\$1S3\$1BUCKET  |  \$1\$1S3\$1\$1 BucketName   |  bucket dimostrativo amzn-s3  | 
|  EC2PREFISSO RESCUE\$1S3  |  \$1\$1 S3Prefix \$1\$1  |  myprefix/  | 
|  EC2RESCUE\$1SOURCE\$1INSTANCE  |  \$1\$1 InstanceId \$1\$1  |  i-abcdefgh123456789  | 

**Tipo di documento**

Automazione

**Proprietario**

Amazon

**Piattaforme**

LinuxmacOS, Windows

**Parametri**
+ AMIPrefix

  Tipo: String

  Impostazione predefinita: `AWSSupport-EC2Rescue`

  Descrizione: (facoltativo) prefisso del nome dell'AMI di backup.
+ AutomationAssumeRole

  Tipo: String

  Descrizione: (Facoltativo) L'Amazon Resource Name (ARN) del ruolo AWS Identity and Access Management (IAM) che consente a Systems Manager Automation di eseguire le azioni per tuo conto. Se non viene specificato alcun ruolo, Systems Manager Automation utilizza le autorizzazioni dell'utente che avvia questo runbook.
+ CreatePostEC2RescueBackup

  Tipo: String

  Valori validi: true \$1 false

  Impostazione predefinita: false

  Descrizione: (Facoltativo) Impostalo `true` per creare un AMI InstanceId dopo aver eseguito lo script, prima di avviarlo. L'AMI verrà conservata dopo il completamento dell'automazione. È responsabilità dell'utente proteggere l'accesso all'AMI oppure eliminarla.
+ CreatePreEC2RescueBackup

  Tipo: String

  Valori validi: true \$1 false

  Impostazione predefinita: false

  Descrizione: (Facoltativo) Impostalo `true` per creare un AMI di InstanceId prima dell'esecuzione dello script. L'AMI verrà conservata dopo il completamento dell'automazione. È responsabilità dell'utente proteggere l'accesso all'AMI oppure eliminarla. 
+ EC2RescueInstanceType

  Tipo: String

  Valori validi: t2.small \$1 t2.medium \$1 t2.large \$1 t3.small \$1 t3.medium \$1 t3.large \$1 i3.large

  Predefinito: t3.medium

  Descrizione: (Facoltativo) Il tipo di istanza EC2 per l' EC2istanza Rescue.
+ InstanceId

  Tipo: String

  Descrizione: (obbligatorio) ID dell'istanza EC2. IMPORTANTE: AWS Systems Manager l'automazione interrompe questa istanza. I dati archiviati nei volumi dell'instance store andranno persi. L'indirizzo IP pubblico verrà modificato se non si utilizza un IP elastico.
+ OfflineScript

  Tipo: String

  Descrizione: (obbligatorio) script con codifica Base64 da eseguire sull'istanza helper. Usa Bash se la tua istanza di origine è Linux e PowerShell se è Windows.
+ S3 BucketName

  Tipo: String

  Descrizione: (facoltativo) nome del bucket S3 nell'account in cui si desidera caricare i log della risoluzione dei problemi. Assicurati che la bucket policy non conceda read/write autorizzazioni non necessarie a parti che non hanno bisogno di accedere ai log raccolti.
+ S3Prefix

  Tipo: String

  Impostazione predefinita: `AWSSupport-EC2Rescue`

  Descrizione: (facoltativo) prefisso dei log S3.
+ SubnetId

  Tipo: String

  Impostazione predefinita: SelectedInstanceSubnet

  Descrizione: (Facoltativo) L'ID di sottorete per l'istanza EC2 Rescue. Per impostazione predefinita, viene utilizzata la stessa sottorete in cui si trova l'istanza specificata. IMPORTANTE: se si fornisce una sottorete personalizzata, questa deve trovarsi nella stessa InstanceId zona di disponibilità dell'utente e deve consentire l'accesso agli endpoint SSM.
+ UniqueId

  Tipo: String

  Impostazione predefinita: \$1\$1 automation:EXECUTION\$1ID \$1\$1

  Descrizione: (Facoltativo) Un identificatore univoco per l'automazione.

**Autorizzazioni IAM richieste**

Il `AutomationAssumeRole` parametro richiede le seguenti azioni per utilizzare correttamente il runbook.

Si consiglia all'utente che esegue l'automazione di allegare la policy gestita di **Amazon SSMAutomation Role** IAM. Oltre a tale policy l'utente deve disporre di quanto segue:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-EC2Rescue-*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::awssupport-ssm.*/*.template",
                "arn:aws:s3:::awssupport-ssm.*/*.zip"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreateInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:PutRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:PassRole",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSSupport-EC2Rescue-*",
                "arn:aws:iam::111122223333:instance-profile/AWSSupport-EC2Rescue-*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "lambda:CreateFunction",
                "ec2:CreateVpc",
                "ec2:ModifyVpcAttribute",
                "ec2:DeleteVpc",
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:DetachInternetGateway",
                "ec2:DeleteInternetGateway",
                "ec2:CreateSubnet",
                "ec2:DeleteSubnet",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:CreateRouteTable",
                "ec2:AssociateRouteTable",
                "ec2:DisassociateRouteTable",
                "ec2:DeleteRouteTable",
                "ec2:CreateVpcEndpoint",
                "ec2:DeleteVpcEndpoints",
                "ec2:ModifyVpcEndpoint",
                "ec2:Describe*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

 **Fasi del documento** 

1. `aws:executeAwsApi`- Descrivi l'istanza fornita

1. `aws:executeAwsApi`- Descrivi il volume principale dell'istanza fornita

1. `aws:assertAwsResourceProperty`- Verifica che il tipo di dispositivo del volume principale sia EBS

1. `aws:assertAwsResourceProperty`- Verifica che il volume root non sia crittografato

1. `aws:assertAwsResourceProperty`- Controlla l'ID di sottorete fornito

   1. (Usa la sottorete dell'istanza corrente) - Se \$1 SubnetId = SelectedInstanceSubnet \$1, esegui `aws:createStack` per distribuire lo stack Rescue EC2 CloudFormation 

   1. (Crea nuovo VPC) - Se \$1 SubnetId = CreateNew VPC\$1, esegui `aws:createStack` per distribuire lo stack Rescue EC2 CloudFormation 

   1. (Utilizzo della sottorete personalizzata): in tutti gli altri casi:

      `aws:assertAwsResourceProperty`- Verifica che la sottorete fornita si trovi nella stessa zona di disponibilità dell'istanza fornita

      `aws:createStack`- Implementa lo stack Rescue EC2 CloudFormation 

1. `aws:invokeLambdaFunction`- Esegui una convalida aggiuntiva degli input

1. `aws:executeAwsApi`- Aggiorna lo CloudFormation stack EC2 Rescue per creare l'istanza dell'helper EC2 Rescue

1. `aws:waitForAwsResourceProperty`- Attendi il completamento dell'aggiornamento dello CloudFormation stack EC2 Rescue

1. `aws:executeAwsApi`- Descrivi l'output CloudFormation dello stack EC2 Rescue per ottenere l'ID dell'istanza di EC2 Rescue helper

1. `aws:waitForAwsResourceProperty`- Attendi che l'istanza EC2 Rescue helper diventi un'istanza gestita

1. `aws:changeInstanceState`- Arresta l'istanza fornita

1. `aws:changeInstanceState`- Arresta l'istanza fornita

1. `aws:changeInstanceState`- Arresta forzatamente l'istanza fornita

1. `aws:assertAwsResourceProperty`- Controlla il valore CreatePre EC2 RescueBackup di input

   1. (Crea un backup pre- EC2 Rescue) - I\$1 CreatePre EC2 RescueBackup = true\$1

   1. `aws:executeAwsApi`- Creare un backup AMI dell'istanza fornita

   1. `aws:createTags`- Etichetta il backup AMI

1. `aws:runCommand`- Installa EC2 Rescue sull'istanza dell'helper di EC2 Rescue

1. `aws:executeAwsApi`- Stacca il volume principale dall'istanza fornita

1. `aws:assertAwsResourceProperty`- Controlla la piattaforma di istanza fornita

   1. (L'istanza è Windows):

      `aws:executeAwsApi`- Collega il volume root all'istanza dell'helper EC2 Rescue come \$1xvdf\$1

      `aws:sleep`- Dormi per 10 secondi

      `aws:runCommand`- Esegui lo script offline fornito in Powershell

   1. (L'istanza è Linux):

      `aws:executeAwsApi`- Collega il volume root all'istanza dell'helper EC2 Rescue come \$1/dev/sdf\$1

      `aws:sleep`- Dormi per 10 secondi

      `aws:runCommand`- Esegui lo script offline fornito in Bash

1. `aws:changeInstanceState`- Arresta l'istanza dell' EC2helper Rescue

1. `aws:changeInstanceState`- Arresta forzatamente l'istanza EC2 Rescue helper

1. `aws:executeAwsApi`- Scollega il volume root dall'istanza dell'helper EC2 Rescue

1. `aws:executeAwsApi`- Ricollega il volume root all'istanza fornita

1. `aws:assertAwsResourceProperty`- Controlla il valore CreatePost EC2 RescueBackup di input

   1. (Crea un backup EC2 post-Rescue) - I\$1 CreatePost EC2 RescueBackup = true\$1

   1. `aws:executeAwsApi`- Creare un backup AMI dell'istanza fornita

   1. `aws:createTags`- Etichetta il backup AMI

1. `aws:executeAwsApi`- Ripristina l'eliminazione iniziale allo stato di terminazione per il volume principale dell'istanza fornita

1. `aws:changeInstanceState`- Ripristina lo stato iniziale dell'istanza fornita (in esecuzione/interrotta)

1. `aws:deleteStack`- Eliminare lo stack Rescue EC2 CloudFormation 

 **Output** 

runScriptForLinux.Output

runScriptForWindows.Output

preScriptBackup.ImageId

postScriptBackup.ImageId