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
Descrizione
Il AWSSupport-StartEC2RescueWorkflow
runbook esegue lo script codificato base64 fornito (Bash o Powershell) su un'istanza di supporto creata per salvare l'istanza. Il volume root dell'istanza è collegato e montato sull'istanza helper, nota anche come istanza EC2Rescue. Se l'istanza è Windows, specificare uno script Powershell. In caso contrario, utilizzare Bash. Il runbook imposta alcune variabili di ambiente che puoi usare nel tuo 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)
Importante
Le istanze Amazon EC2 create dal Marketplace Amazon Machine Images (AMI) 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]::Unicode.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 | Descrizione | Valore di esempio |
---|---|---|
$env:EC2RESCUE_ACCOUNT_ID |
{{ global:ACCOUNT_ID }} |
123456789012 |
$env:EC2RESCUE_DATE |
{{ global:DATE }} |
2018-09-07 |
$env:EC2RESCUE_DATE_TIME |
{{ global:DATE_TIME }} |
2018-09-07_18.09.59 |
$env:EC2RESCUE_EC2RW_DIR |
Percorso di installazione di EC2Rescue per Windows |
C:\Program Files\Amazon\EC2Rescue |
$env:EC2RESCUE_EC2RW_DIR |
Percorso di installazione di EC2Rescue per Windows |
C:\Program Files\Amazon\EC2Rescue |
$env:EC2RESCUE_EXECUTION_ID |
{{ automation:EXECUTION_ID }} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
$env:EC2RESCUE_OFFLINE_CURRENT_CONTROL_SET |
Percorso dell'insieme di controlli corrente di Windows offline |
|
$env:EC2RESCUE_OFFLINE_DRIVE |
Lettera di unità di Windows offline |
D:\ |
$env:EC2RESCUE_OFFLINE_EBS_DEVICE |
Dispositivo EBS del volume root offline |
xvdf |
$env:EC2RESCUE_OFFLINE_KERNEL_VER |
Versione del kernel di Windows offline |
6.1.7601.24214 |
$env:EC2RESCUE_OFFLINE_OS_ARCHITECTURE |
Architettura di Windows offline |
AMD64 |
$env:EC2RESCUE_OFFLINE_OS_CAPTION |
Didascalia di Windows offline |
Windows Server 2008 R2 Datacenter |
$env:EC2RESCUE_OFFLINE_OS_TYPE |
Tipo di sistema operativo Windows offline |
Server |
$env:EC2RESCUE_OFFLINE_PROGRAM_FILES_DIR |
Percorso della directory dei file di programma di Windows offline |
D:\Program Files |
$env:EC2RESCUE_OFFLINE_PROGRAM_FILES_X86_DIR |
Percorso della directory dei file di programma x86 di Windows offline |
D:\Program Files (x86) |
$env:EC2RESCUE_OFFLINE_REGISTRY_DIR |
Percorso della directory del Registro di sistema di Windows offline |
D:\Windows\System32\config |
$env:EC2RESCUE_OFFLINE_SYSTEM_ROOT |
Percorso della directory radice di sistema di Windows offline |
D:\Windows |
$env:EC2RESCUE_REGION |
{{ global:REGION }} |
us-west-1 |
$env:EC2RESCUE_S3_BUCKET |
{{S3BucketName}} |
mybucket |
$env:EC2RESCUE_S3_PREFIX |
{{ S3Prefix }} |
myprefix/ |
$env:EC2RESCUE_SOURCE_INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
$script:EC2RESCUE_OFFLINE_WINDOWS_INSTALL |
Metadati di installazione di Windows offline |
Oggetto Powershell del cliente |
Linux:
Variabile | Descrizione | Valore di esempio |
---|---|---|
EC2RESCUE_ACCOUNT_ID |
{{ global:ACCOUNT_ID }} |
123456789012 |
EC2RESCUE_DATE |
{{ global:DATE }} |
2018-09-07 |
EC2RESCUE_DATE_TIME |
{{ global:DATE_TIME }} |
2018-09-07_18.09.59 |
EC2RESCUE_EC2RL_DIR |
Percorso di installazione di EC2Rescue per Linux |
/usr/local/ec2rl-1.1.3 |
EC2RESCUE_EXECUTION_ID |
{{ automation:EXECUTION_ID }} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
EC2RESCUE_OFFLINE_DEVICE |
Nome del dispositivo offline |
/dev/xvdf1 |
EC2RESCUE_OFFLINE_EBS_DEVICE |
Dispositivo EBS del volume root offline |
/dev/sdf |
EC2RESCUE_OFFLINE_SYSTEM_ROOT |
Punto di montaggio del volume radice offline |
/mnt/mount |
EC2RESCUE_PYTHON |
Versione di Python |
python2.7 |
EC2RESCUE_REGION |
{{ global:REGION }} |
us-west-1 |
EC2RESCUE_S3_BUCKET |
{{S3BucketName}} |
mybucket |
EC2RESCUE_S3_PREFIX |
{{ S3Prefix }} |
myprefix/ |
EC2RESCUE_SOURCE_INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
Tipo di documento
Automazione di
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.
-
CreatePostEC2 RescueBackup
Tipo: String
Valori validi: true | false
Di default: false
Descrizione: (Facoltativo) Impostalo
true
per creare un'AMI o 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. -
CreatePreEC2 RescueBackup
Tipo: String
Valori validi: true | false
Di default: false
Descrizione: (Facoltativo) Impostalo
true
su per creare un'AMI o InstanceId prima di eseguire lo script. L'AMI verrà conservata dopo il completamento dell'automazione. È responsabilità dell'utente proteggere l'accesso all'AMI oppure eliminarla. -
EC2 RescueInstanceType
Tipo: String
Valori validi: t2.small | t2.medium | t2.large
Impostazione predefinita: t2.small
Descrizione: (facoltativo) tipo di istanza EC2 per l'istanza EC2Rescue.
-
InstanceId
Tipo: String
Descrizione: (obbligatorio) ID dell'istanza EC2. IMPORTANTE: AWS Systems Manager Automation arresta 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. Verificare che la policy del bucket non conceda autorizzazioni di lettura/scrittura non necessarie alle parti che non necessitano dell'accesso ai log raccolti.
-
S3Prefix
Tipo: String
Impostazione predefinita:
AWSSupport-EC2Rescue
Descrizione: (facoltativo) prefisso dei log S3.
-
SubnetId
Tipo: String
Predefinito: SelectedInstanceSubnet
Descrizione: (facoltativo) ID sottorete dell'istanza EC2Rescue. Per impostazione predefinita, viene utilizzata la stessa sottorete in cui si trova l'istanza specificata. IMPORTANTE: se fornisci una sottorete personalizzata, questa deve trovarsi nella stessa InstanceId zona di disponibilità e deve consentire l'accesso agli endpoint SSM.
-
UniqueId
Tipo: String
Impostazione predefinita: {{ automation:EXECUTION_ID }}
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 AutomationRole policy gestita di AmazonSSM IAM. Oltre a tale policy l'utente deve disporre di quanto segue:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:An-AWS-Account-ID: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::An-AWS-Account-ID:role/AWSSupport-EC2Rescue-*", "arn:aws:iam::An-AWS-Account-ID: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
-
aws:executeAwsApi
- Descrivi l'istanza fornita -
aws:executeAwsApi
- Descrivi il volume principale dell'istanza fornita -
aws:assertAwsResourceProperty
- Verificare che il tipo di dispositivo del volume principale sia EBS -
aws:assertAwsResourceProperty
- Verifica che il volume root non sia crittografato -
aws:assertAwsResourceProperty
- Controlla l'ID di sottorete fornito-
(Usa la sottorete dell'istanza corrente) - Se * SubnetId = SelectedInstanceSubnet *, esegui
aws:createStack
per implementare lo stack EC2Rescue CloudFormation -
(Crea un nuovo VPC) - Se * SubnetId = CreateNew VPC*, esegui
aws:createStack
per implementare lo stack EC2Rescue CloudFormation -
(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 fornitaaws:createStack
- Implementazione dello stack EC2Rescue CloudFormation
-
-
aws:invokeLambdaFunction
- Esegui una convalida dell'input aggiuntiva -
aws:executeAwsApi
- Aggiornare lo CloudFormation stack EC2Rescue per creare l'istanza helper EC2Rescue -
aws:waitForAwsResourceProperty
- Attendi il completamento dell'aggiornamento dello CloudFormation stack EC2Rescue -
aws:executeAwsApi
- Descrivere l'output dello CloudFormation stack EC2Rescue per ottenere l'ID dell'istanza di supporto EC2Rescue -
aws:waitForAwsResourceProperty
- Attendi che l'istanza helper EC2Rescue diventi un'istanza gestita -
aws:changeInstanceState
- Arresta l'istanza fornita -
aws:changeInstanceState
- Arresta l'istanza fornita -
aws:changeInstanceState
- Arresto forzato dell'istanza fornita -
aws:assertAwsResourceProperty
- Controlla il valore di RescueBackup ingresso CreatePre EC2-
(Crea un backup precedente a EC2Rescue) - Se * EC2 = vero* CreatePre RescueBackup
-
aws:executeAwsApi
- Crea un backup AMI dell'istanza fornita -
aws:createTags
- Contrassegna il backup AMI
-
-
aws:runCommand
- Installare EC2Rescue sull'istanza helper EC2Rescue -
aws:executeAwsApi
- Scollegare il volume principale dall'istanza fornita -
aws:assertAwsResourceProperty
- Controlla la piattaforma di istanza fornita-
(L'istanza è Windows):
aws:executeAwsApi
- Collega il volume root all'istanza helper EC2Rescue come *xvdf*aws:sleep
- Dormi 10 secondiaws:runCommand
- Esegui lo script offline fornito in Powershell -
(L'istanza è Linux):
aws:executeAwsApi
- Collega il volume root all'istanza helper di EC2Rescue come */dev/sdf*aws:sleep
- Dormi 10 secondiaws:runCommand
- Esegui lo script offline fornito in Bash
-
-
aws:changeInstanceState
- Arrestare l'istanza helper EC2Rescue -
aws:changeInstanceState
- Arresto forzato dell'istanza helper EC2Rescue -
aws:executeAwsApi
- Scollegare il volume principale dall'istanza helper EC2Rescue -
aws:executeAwsApi
- Ricollega il volume principale all'istanza fornita -
aws:assertAwsResourceProperty
- Controlla il valore di RescueBackup ingresso CreatePost EC2-
(Crea un backup post-EC2Rescue) - Se * EC2 = vero* CreatePost RescueBackup
-
aws:executeAwsApi
- Crea un backup AMI dell'istanza fornita -
aws:createTags
- Contrassegna il backup AMI
-
-
aws:executeAwsApi
- Ripristina l'eliminazione iniziale allo stato di terminazione per il volume principale dell'istanza fornita -
aws:changeInstanceState
- Ripristina lo stato iniziale dell'istanza fornita (in esecuzione/interrotta) -
aws:deleteStack
- Eliminare lo stack CloudFormation EC2Rescue
Output
runScriptForUscita Linux
runScriptForWindows. Uscita
preScriptBackup.ImageId
postScriptBackup.ImageId