Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWSSupport-StartEC2RescueWorkflow
Beschreibung
Das AWSSupport-StartEC2RescueWorkflow
Runbook führt das bereitgestellte Base64-kodierte Skript (Bash oder Powershell) auf einer Hilfsinstanz aus, die zur Rettung Ihrer Instanz erstellt wurde. Das Root-Volume Ihrer Instance ist an die Helper-Instance, auch Instance genannt, angehängt und an diese gemountet. EC2Rescue Wenn Ihre Instance unter Windows läuft, geben Sie ein Powershell-Skript an. Verwenden Sie andernfalls Bash. Das Runbook legt einige Umgebungsvariablen fest, die Sie in Ihrem Skript verwenden können. Die Umgebungsvariablen enthalten Informationen über die Eingabe, die Sie bereitgestellt haben, sowie Informationen zu dem Offline-Root-Volume. Das Offline-Volume ist bereits gemountet und kann verwendet werden. Beispiel: Sie können eine Desired State Configuration-Datei zu einem Offline-Windows-Root-Volume oder chroot zu einem Offline-Linux-Root-Volume speichern und eine Offline-Wiederherstellung durchführen.
Führen Sie diese Automatisierung aus (Konsole)
Wichtig
EC2Amazon-Instances, die über Marketplace Amazon Machine Images (AMIs) erstellt wurden, werden von dieser Automatisierung nicht unterstützt.
Zusätzliche Informationen
Um ein Skript mit base64 zu kodieren, können Sie PowerShell oder Bash verwenden. Powershell:
[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.IO.File]::ReadAllText('PATH_TO_FILE')))
Bash:
base64 PATH_TO_FILE
Hier sehen Sie eine Liste der Umgebungsvariablen, die Sie in Ihren Offline-Skripts verwenden können, je nach Ziel-Betriebssystem.
Windows:
Variable | Beschreibung | Beispielwert |
---|---|---|
$env: _ _ID EC2RESCUE ACCOUNT |
{{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 |
EC2Rescuefür Windows-Installationspfad |
C:\Program Dateien\ Amazon\ EC2Rescue |
$env: _ _ EC2RESCUE EC2RW DIR |
EC2Rescuefür Windows-Installationspfad |
C:\Program Dateien\ Amazon\ EC2Rescue |
$env: __ID EC2RESCUE EXECUTION |
{{Automatisierung: EXECUTION _ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
$env: EC2RESCUE _ _ _ OFFLINE CURRENT CONTROL SET |
Offline Windows Current Control Set-Pfad |
|
$env: _ _ EC2RESCUE OFFLINE DRIVE |
Offline-Windows-Laufwerkbuchstabe |
D:\ |
$env: _ _ _ EC2RESCUE OFFLINE EBS DEVICE |
Offline-Root-Volume-Gerät EBS |
xvdf |
$env: EC2RESCUE _ _ _ OFFLINE KERNEL VER |
Offline-Windows-Kernel-Version |
6.1.7601.24214 |
$env: _ _OS_ EC2RESCUE OFFLINE ARCHITECTURE |
Offline-Windows-Architektur |
AMD64 |
$env: _ _OS_ EC2RESCUE OFFLINE CAPTION |
Offline-Windows-Beschriftung |
Windows Server 2008 R2 Datacenter |
$env: _ _OS_ EC2RESCUE OFFLINE TYPE |
Offline-Windows-Betriebssystemtyp |
Server |
$env: _ _ _ EC2RESCUE OFFLINE PROGRAM FILES DIR |
Offline-Windows-Programmdateien-Verzeichnispfad |
D:\Program Files |
$env: EC2RESCUE _ _ _ _X86_ OFFLINE PROGRAM FILES DIR |
Offline-Windows-Programmdateien-x86-Verzeichnispfad |
D:\Program Files (x86) |
$env: _ _ _ EC2RESCUE OFFLINE REGISTRY DIR |
Offline-Windows-Registry-Verzeichnispfad |
D:\Windows\System32\config |
$env: _ _ _ EC2RESCUE OFFLINE SYSTEM ROOT |
Offline-Windows-Systemstamm-Verzeichnispfad |
D:\Windows |
$env: _ EC2RESCUE REGION |
{{global:REGION}} |
us-west-1 |
$env: _S3_ EC2RESCUE BUCKET |
{{S3}} BucketName |
amzn-s3-Demo-Bucket |
$env: _S3_ EC2RESCUE PREFIX |
{{ S3Prefix }} |
myprefix/ |
$env: EC2RESCUE _ _ SOURCE INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
$skript: _ _ _ EC2RESCUE OFFLINE WINDOWS INSTALL |
Offline-Windows-Installations-Metadaten |
Customer PowerShell-Objekt |
Linux:
Variable | Beschreibung | Beispielwert |
---|---|---|
EC2RESCUE_ _ID ACCOUNT |
{{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 |
EC2Rescuefür Linux-Installationspfad |
/usr/local/ec2rl-1.1.3 |
EC2RESCUE_ EXECUTION _ID |
{{Automatisierung: EXECUTION _ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
EC2RESCUE_OFFLINE_DEVICE |
Offline-Gerätename |
/dev/xvdf1 |
EC2RESCUE_OFFLINE_EBS_DEVICE |
Offline-Root-Volume-Gerät EBS |
/dev/sdf |
EC2RESCUE_OFFLINE_SYSTEM_ROOT |
Offline-Root-Volume-Mounting-Punkt |
/mnt/mount |
EC2RESCUE_PYTHON |
Python-Version |
python2.7 |
EC2RESCUE_REGION |
{{global:REGION}} |
us-west-1 |
EC2RESCUE_S3_ BUCKET |
{{S3}} BucketName |
amzn-s3-Demo-Bucket |
EC2RESCUE_S3_ PREFIX |
{{ S3Prefix }} |
myprefix/ |
EC2RESCUE_SOURCE_INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
Art des Dokuments
Automatisierung
Eigentümer
Amazon
Plattformen
LinuxmacOS, Windows
Parameter
-
AMIPrefix
Typ: Zeichenfolge
Standard:
AWSSupport-EC2Rescue
Beschreibung: (Optional) Ein Präfix für den AMI Backup-Namen.
-
AutomationAssumeRole
Typ: Zeichenfolge
Beschreibung: (Optional) Der Amazon-Ressourcenname (ARN) der Rolle AWS Identity and Access Management (IAM), der es Systems Manager Automation ermöglicht, die Aktionen in Ihrem Namen durchzuführen. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation die Berechtigungen des Benutzers, der dieses Runbook startet.
-
CreatePostEC2RescueBackup
Typ: Zeichenfolge
Zulässige Werte: true | false
Standard: false
Beschreibung: (Optional) Stellen Sie es auf ein,
true
um InstanceId nach AMI der Ausführung des Skripts, also vor dem Start, ein of zu erstellen. Das AMI bleibt auch nach Abschluss der Automatisierung bestehen. Es liegt in Ihrer Verantwortung, den Zugriff auf die AMI zu sichern oder sie zu löschen. -
CreatePreEC2RescueBackup
Typ: Zeichenfolge
Zulässige Werte: true | false
Standard: false
Beschreibung: (Optional) Stellen Sie es auf ein,
true
um InstanceId vor AMI der Ausführung des Skripts ein of zu erstellen. Das AMI bleibt auch nach Abschluss der Automatisierung bestehen. Es liegt in Ihrer Verantwortung, den Zugriff auf die AMI zu sichern oder sie zu löschen. -
EC2RescueInstanceType
Typ: Zeichenfolge
Gültige Werte: t2.small | t2.medium | t2.large
Standard: t2.small
Beschreibung: (Optional) Der Instance-Typ für die InstanceEC2. EC2Rescue
-
InstanceId
Typ: Zeichenfolge
Beschreibung: (Erforderlich) ID Ihrer EC2 Instanz. IMPORTANT: AWS Systems Manager Die Automatisierung stoppt diese Instanz. Auf den Instance-Speichervolumes gespeicherte Daten gehen verloren. Die öffentliche IP-Adresse ändert sich, wenn Sie keine Elastic IP verwenden.
-
OfflineScript
Typ: Zeichenfolge
Beschreibung: (Erforderlich) Base64-kodiertes Skript zur Ausführung gegen die Helper-Instance. Verwenden Sie Bash, wenn Ihre Quellinstanz Linux und PowerShell Windows ist.
-
S3 BucketName
Typ: Zeichenfolge
Beschreibung: (Optional) Name des S3-Buckets in Ihrem Konto, in den Sie die Protokolle zur Fehlerbehebung hochladen möchten. Stellen Sie sicher, dass die Bucket-Richtlinie keine unnötigen Lese-/Schreibberechtigungen für Parteien gewährt, die keinen Zugriff auf die gesammelten Protokolle benötigen.
-
S3Prefix
Typ: Zeichenfolge
Standard:
AWSSupport-EC2Rescue
Beschreibung: (Optional) Ein Präfix für die S3-Protokolle.
-
SubnetId
Typ: Zeichenfolge
Standard: SelectedInstanceSubnet
Beschreibung: (Optional) Die Subnetz-ID für die EC2Rescue Instance. Standardmäßig wird dasselbe Subnetz verwendet, in dem sich die bereitgestellte Instance befindet. IMPORTANT: Wenn Sie ein benutzerdefiniertes Subnetz angeben, muss es sich in derselben Availability Zone befinden wie InstanceId und es muss den Zugriff auf die SSM Endpoints ermöglichen.
-
UniqueId
Typ: Zeichenfolge
Standard: {{automation: EXECUTION _ID}}
Beschreibung: (Optional) Eine eindeutige Kennung für die Automatisierung.
Erforderliche IAM Berechtigungen
Der AutomationAssumeRole
Parameter erfordert die folgenden Aktionen, um das Runbook erfolgreich zu verwenden.
Es wird empfohlen, dass dem Benutzer, der die Automatisierung ausführt, die IAM A-Role-verwaltete Richtlinie beigefügt ist. mazonSSMAutomation Zusätzlich zu dieser Richtlinie benötigt der Benutzer:
{ "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" } ] }
Dokumentschritte
-
aws:executeAwsApi
- Beschreiben Sie die bereitgestellte Instanz -
aws:executeAwsApi
- Beschreiben Sie das Root-Volume der bereitgestellten Instanz -
aws:assertAwsResourceProperty
— Stellen Sie sicher, dass der Gerätetyp des Root-Volumes EBS -
aws:assertAwsResourceProperty
- Stellen Sie sicher, dass das Root-Volume nicht verschlüsselt ist -
aws:assertAwsResourceProperty
- Überprüfen Sie die angegebene Subnetz-ID-
(Verwenden Sie das aktuelle Instanz-Subnetz) — Wenn * SubnetId = SelectedInstanceSubnet *, dann starten Sie
aws:createStack
, um den Stack bereitzustellen EC2Rescue CloudFormation -
(Neues erstellenVPC) — Wenn * SubnetId = CreateNew VPC *, dann ausführen
aws:createStack
, um den EC2Rescue CloudFormation Stack bereitzustellen -
(Verwenden eines benutzerdefinierten Subnetzes) – In allen anderen Fällen:
aws:assertAwsResourceProperty
- Überprüfen Sie, ob sich das bereitgestellte Subnetz in derselben Availability Zone wie die bereitgestellte Instanz befindetaws:createStack
- Stellen Sie den Stack EC2Rescue CloudFormation bereit
-
-
aws:invokeLambdaFunction
- Führen Sie eine zusätzliche Eingabevalidierung durch -
aws:executeAwsApi
- Aktualisieren Sie den EC2Rescue CloudFormation Stack, um die EC2Rescue Helper-Instanz zu erstellen -
aws:waitForAwsResourceProperty
- Warten Sie, bis das EC2Rescue CloudFormation Stack-Update abgeschlossen ist -
aws:executeAwsApi
- Beschreiben Sie die EC2Rescue CloudFormation Stack-Ausgabe, um die EC2Rescue Helper-Instanz-ID zu erhalten -
aws:waitForAwsResourceProperty
- Warten Sie, bis die EC2Rescue Helper-Instanz zu einer verwalteten Instanz wird -
aws:changeInstanceState
- Stoppt die bereitgestellte Instanz -
aws:changeInstanceState
- Stoppt die bereitgestellte Instanz -
aws:changeInstanceState
- Erzwingt das Stoppen der bereitgestellten Instanz -
aws:assertAwsResourceProperty
- Überprüfen Sie den CreatePre EC2RescueBackup Eingabewert-
(Vor dem EC2Rescue Backup erstellen) — Wenn * CreatePre EC2RescueBackup = true*
-
aws:executeAwsApi
- Erstellen Sie ein AMI Backup der bereitgestellten Instanz -
aws:createTags
- Kennzeichnen Sie das AMI Backup
-
-
aws:runCommand
- EC2Rescue Auf der EC2Rescue Helper-Instanz installieren -
aws:executeAwsApi
- Trennen Sie das Root-Volume von der bereitgestellten Instanz -
aws:assertAwsResourceProperty
- Überprüfen Sie die bereitgestellte Instanzplattform-
(Instance ist Windows):
aws:executeAwsApi
- Hängen Sie das Root-Volume als *xvdf* an die EC2Rescue Helper-Instanz anaws:sleep
- Schlafen Sie 10 Sekundenaws:runCommand
- Führen Sie das bereitgestellte Offline-Skript in Powershell aus -
(Instance ist Linux):
aws:executeAwsApi
- Hängen Sie das Root-Volume als EC2Rescue */dev/sdf* an die Helper-Instanz anaws:sleep
- Schlafen Sie 10 Sekundenaws:runCommand
- Führen Sie das bereitgestellte Offline-Skript in Bash aus
-
-
aws:changeInstanceState
- Stoppen Sie die EC2Rescue Helper-Instanz -
aws:changeInstanceState
- Erzwingt das Stoppen der EC2Rescue Hilfsinstanz -
aws:executeAwsApi
- Trennen Sie das Root-Volume von der EC2Rescue Helper-Instanz -
aws:executeAwsApi
- Hängen Sie das Root-Volume wieder an die bereitgestellte Instanz an -
aws:assertAwsResourceProperty
- Überprüfen Sie den CreatePost EC2RescueBackup Eingabewert-
(EC2RescuePost-Backup erstellen) — Wenn * CreatePost EC2RescueBackup = true*
-
aws:executeAwsApi
- Erstellen Sie eine AMI Sicherungskopie der bereitgestellten Instanz -
aws:createTags
- Kennzeichnen Sie das AMI Backup
-
-
aws:executeAwsApi
— Stellt den ursprünglichen Status „Löschen bei Beendigung“ für das Root-Volume der bereitgestellten Instanz wieder her -
aws:changeInstanceState
- Stellt den ursprünglichen Zustand der bereitgestellten Instanz wieder her (laufend/gestoppt) -
aws:deleteStack
- Löscht den Stapel EC2Rescue CloudFormation
Ausgaben
runScriptForLinux.Ausgabe
runScriptForWindows.Ausgabe
preScriptBackup.ImageId
postScriptBackup.ImageId