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 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. EC2Rescue 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)
Importante
EC2Le istanze Amazon 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 | Descrizione | Valore di esempio |
---|---|---|
$env: _ _ID EC2RESCUE ACCOUNT |
{{globale: ACCOUNT _ID}} |
123456789012 |
$env: _ EC2RESCUE DATE |
{{globale:DATE}} |
2018-09-07 |
$env: _ _ EC2RESCUE DATE TIME |
{{globale: DATE _TIME}} |
2018-09-07_18.09.59 |
$env: _ _ EC2RESCUE EC2RW DIR |
EC2Rescueper il percorso di installazione di Windows |
C:\Program Files\ Amazon\ EC2Rescue |
$ env: _ _ EC2RESCUE EC2RW DIR |
EC2Rescueper il percorso di installazione di Windows |
C:\Program Files\ Amazon\ EC2Rescue |
$ env: _ _ID EC2RESCUE EXECUTION |
{{automazione: 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 con volume root offline EBS |
xvdf |
$env: EC2RESCUE _ _ _ OFFLINE KERNEL VER |
Versione del kernel di Windows offline |
6.1.7601.24214 |
$env: _ _OS_ EC2RESCUE OFFLINE ARCHITECTURE |
Architettura di Windows offline |
AMD64 |
$env: _ _OS_ EC2RESCUE OFFLINE CAPTION |
Didascalia di Windows offline |
Windows Server 2008 R2 Datacenter |
$env: _ _OS_ EC2RESCUE OFFLINE 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 _ _ _ _X86_ OFFLINE PROGRAM FILES 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 |
{{globale:REGION}} |
us-west-1 |
$env: _S3_ EC2RESCUE BUCKET |
{{S3}} BucketName |
bucket dimostrativo amzn-s3 |
$env: _S3_ EC2RESCUE 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_ _ID ACCOUNT |
{{globale: ACCOUNT _ID}} |
123456789012 |
EC2RESCUE_DATE |
{{globale:DATE}} |
2018-09-07 |
EC2RESCUE_DATE_TIME |
{{globale: DATE _TIME}} |
2018-09-07_18.09.59 |
EC2RESCUE_EC2RL_DIR |
EC2Rescueper il percorso di installazione di Linux |
/usr/local/ec2rl-1.1.3 |
EC2RESCUE_ EXECUTION _ID |
{{automazione: EXECUTION _ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
EC2RESCUE_OFFLINE_DEVICE |
Nome del dispositivo offline |
/dev/xvdf1 |
EC2RESCUE_OFFLINE_EBS_DEVICE |
Dispositivo con volume EBS 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 |
{{S3}} BucketName |
bucket dimostrativo amzn-s3 |
EC2RESCUE_S3_ PREFIX |
{{ S3Prefix }} |
myprefix/ |
EC2RESCUE_SOURCE_INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
Tipo di documento
Automazione
Proprietario
Amazon
Piattaforme
LinuxmacOS, Windows
Parametri
-
AMIPrefix
Tipo: stringa
Impostazione predefinita:
AWSSupport-EC2Rescue
Descrizione: (Facoltativo) Un prefisso per il AMI nome del backup.
-
AutomationAssumeRole
Tipo: stringa
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: stringa
Valori validi: true | false
Impostazione predefinita: false
Descrizione: (Facoltativo) Impostalo su per
true
creare un file AMI di InstanceId dopo aver eseguito lo script, prima di avviarlo. AMIPersisterà dopo il completamento dell'automazione. È responsabilità dell'utente garantire l'accesso al AMI file o eliminarlo. -
CreatePreEC2RescueBackup
Tipo: stringa
Valori validi: true | false
Impostazione predefinita: false
Descrizione: (Facoltativo) Impostalo
true
per creare un AMI of InstanceId prima di eseguire lo script. AMIPersisterà dopo il completamento dell'automazione. È responsabilità dell'utente garantire l'accesso al AMI file o eliminarlo. -
EC2RescueInstanceType
Tipo: stringa
Valori validi: t2.small | t2.medium | t2.large
Impostazione predefinita: t2.small
Descrizione: (Facoltativo) Il tipo di istanza per l'istanzaEC2. EC2Rescue
-
InstanceId
Tipo: stringa
Descrizione: (Obbligatorio) ID dell'EC2istanza. IMPORTANT: 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: stringa
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: stringa
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: stringa
Impostazione predefinita:
AWSSupport-EC2Rescue
Descrizione: (facoltativo) prefisso dei log S3.
-
SubnetId
Tipo: stringa
Predefinito: SelectedInstanceSubnet
Descrizione: (Facoltativo) L'ID di sottorete per l'EC2Rescueistanza. Per impostazione predefinita, viene utilizzata la stessa sottorete in cui si trova l'istanza specificata. IMPORTANT: Se si fornisce una sottorete personalizzata, questa deve trovarsi nella stessa InstanceId zona di disponibilità e deve consentire l'accesso agli endpoint. SSM
-
UniqueId
Tipo: stringa
Impostazione predefinita: {{automation: EXECUTION _ID}}
Descrizione: (Facoltativo) Un identificatore univoco per l'automazione.
Autorizzazioni richieste IAM
Il AutomationAssumeRole
parametro richiede le seguenti azioni per utilizzare correttamente il runbook.
Si consiglia all'utente che esegue l'automazione di avere allegata la policy IAM gestita A mazonSSMAutomation Role. 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
- Verifica 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 distribuire lo stack EC2Rescue CloudFormation -
(Crea nuovoVPC) - Se * SubnetId = CreateNew VPC * allora esegui
aws:createStack
per distribuire 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
- Distribuisci lo stack EC2Rescue CloudFormation
-
-
aws:invokeLambdaFunction
- Esegui una convalida aggiuntiva degli input -
aws:executeAwsApi
- Aggiorna lo EC2Rescue CloudFormation stack per creare l'EC2Rescueistanza helper -
aws:waitForAwsResourceProperty
- Attendi il completamento dell'aggiornamento EC2Rescue CloudFormation dello stack -
aws:executeAwsApi
- Descrivi l'output EC2Rescue CloudFormation dello stack per ottenere l'ID dell'istanza EC2Rescue helper -
aws:waitForAwsResourceProperty
- Attendi che l'istanza EC2Rescue helper diventi un'istanza gestita -
aws:changeInstanceState
- Arresta l'istanza fornita -
aws:changeInstanceState
- Arresta l'istanza fornita -
aws:changeInstanceState
- Arresta forzatamente l'istanza fornita -
aws:assertAwsResourceProperty
- Controlla il valore CreatePre EC2RescueBackup di input-
(Crea un EC2Rescue pre-backup) - If* CreatePre EC2RescueBackup = true*
-
aws:executeAwsApi
- Crea un AMI backup dell'istanza fornita -
aws:createTags
- Etichetta il AMI backup
-
-
aws:runCommand
- Installa EC2Rescue sull'istanza EC2Rescue helper -
aws:executeAwsApi
- Scollega il volume root dall'istanza fornita -
aws:assertAwsResourceProperty
- Controlla la piattaforma di istanza fornita-
(L'istanza è Windows):
aws:executeAwsApi
- Collega il volume root all'istanza EC2Rescue helper come *xvdf*aws:sleep
- Dormi 10 secondiaws:runCommand
- Esegui lo script offline fornito in Powershell -
(L'istanza è Linux):
aws:executeAwsApi
- Collega il volume root EC2Rescue all'istanza di supporto come */dev/sdf*aws:sleep
- Dormi 10 secondiaws:runCommand
- Esegui lo script offline fornito in Bash
-
-
aws:changeInstanceState
- Interrompi l'istanza EC2Rescue helper -
aws:changeInstanceState
- Arresta forzatamente l'istanza EC2Rescue helper -
aws:executeAwsApi
- Stacca il volume root dall'istanza helper EC2Rescue -
aws:executeAwsApi
- Ricollega il volume root all'istanza fornita -
aws:assertAwsResourceProperty
- Controlla il valore CreatePost EC2RescueBackup di input-
(Crea un EC2Rescue post-backup) - If* CreatePost EC2RescueBackup = true*
-
aws:executeAwsApi
- Crea un AMI backup dell'istanza fornita -
aws:createTags
- Etichetta il AMI backup
-
-
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
- Elimina lo stack EC2Rescue CloudFormation
Output
runScriptForLinux.Output
runScriptForWindows.Output
preScriptBackup.ImageId
postScriptBackup.ImageId