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 Rescue-Instanz genannt, angehängt und an diese gemountet. EC2 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
EC2 Amazon-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: RESCUE_ACCOUNT_ID EC2 |
{{ global:ACCOUNT_ID }} |
123456789012 |
$env: EC2 RESCUE_DATE |
{{ global:DATE }} |
2018-09-07 |
$env: EC2 RESCUE_DATE_TIME |
{{ global:DATE_TIME }} |
2018-09-07_18.09.59 |
$env: EC2 RESCUE_ RW_DIR EC2 |
EC2Installationspfad für Rescue für Windows |
C:\Program Files\ Amazon\ EC2 Rescue |
$env: EC2 RESCUE_ RW_DIR EC2 |
EC2Installationspfad für Rescue für Windows |
C:\Program Files\ Amazon\ EC2 Rescue |
$env: RESCUE_EXECUTION_ID EC2 |
{{ automation:EXECUTION_ID }} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
$env: EC2 RESCUE_OFFLINE_CURRENT_CONTROL_SET |
Offline Windows Current Control Set-Pfad |
|
$env: EC2 RESCUE_OFFLINE_DRIVE |
Offline-Windows-Laufwerkbuchstabe |
D:\ |
$env: EC2 RESCUE_OFFLINE_EBS_DEVICE |
Offline-Root-Volume-EBS-Gerät |
xvdf |
$env: EC2 RESCUE_OFFLINE_KERNEL_VER |
Offline-Windows-Kernel-Version |
6.1.7601.24214 |
$env: EC2 RESCUE_OFFLINE_OS_ARCHITECTURE |
Offline-Windows-Architektur |
AMD64 |
$env: EC2 RESCUE_OFFLINE_OS_CAPTION |
Offline-Windows-Beschriftung |
Windows Server 2008 R2 Datacenter |
$env: EC2 RESCUE_OFFLINE_OS_TYPE |
Offline-Windows-Betriebssystemtyp |
Server |
$env: EC2 RESCUE_OFFLINE_PROGRAM_FILES_DIR |
Offline-Windows-Programmdateien-Verzeichnispfad |
D:\Program Files |
$env: EC2 RESCUE_OFFLINE_PROGRAM_FILES_X86_DIR |
Offline-Windows-Programmdateien-x86-Verzeichnispfad |
D:\Program Files (x86) |
$env: EC2 RESCUE_OFFLINE_REGISTRY_DIR |
Offline-Windows-Registry-Verzeichnispfad |
D:\Windows\System32\config |
$env: EC2 RESCUE_OFFLINE_SYSTEM_ROOT |
Offline-Windows-Systemstamm-Verzeichnispfad |
D:\Windows |
$env: EC2 RESCUE_REGION |
{{ global:REGION }} |
us-west-1 |
$env: EC2 RESCUE_S3_BUCKET |
{{S3}} BucketName |
amzn-s3-Demo-Bucket |
$env: RESCUE_S3_PREFIX EC2 |
{{ S3Prefix }} |
myprefix/ |
$env: EC2 RESCUE_SOURCE_INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
$skript: EC2 RESCUE_OFFLINE_WINDOWS_INSTALL |
Offline-Windows-Installations-Metadaten |
Customer PowerShell-Objekt |
Linux:
Variable | Beschreibung | Beispielwert |
---|---|---|
EC2RESCUE_ACCOUNT-ID |
{{ global:ACCOUNT_ID }} |
123456789012 |
EC2RESCUE_DATE |
{{ global:DATE }} |
2018-09-07 |
EC2RETTUNGSDATUM_UHRZEIT |
{{ global:DATE_TIME }} |
2018-09-07_18.09.59 |
EC2RESCUE_RL_DIR EC2 |
EC2Installationspfad von Rescue für Linux |
/usr/local/ec2rl-1.1.3 |
EC2RESCUE_EXECUTION_ID |
{{ automation:EXECUTION_ID }} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
EC2RESCUE_OFFLINE-GERÄT |
Offline-Gerätename |
/dev/xvdf1 |
EC2RESCUE_OFFLINE_EBS_DEVICE |
Offline-Root-Volume-EBS-Gerät |
/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_PRÄFIX |
{{ S3Prefix }} |
myprefix/ |
EC2RESCUE_SOURCE_INSTANZ |
{{ InstanceId }} |
i-abcdefgh123456789 |
Typ des Dokuments
Automatisierung
Eigentümer
Amazon
Plattformen
Linux, macOS, Windows
Parameter
-
AMIPrefix
Typ: Zeichenfolge
Standard:
AWSSupport-EC2Rescue
Beschreibung: (Optional) Ein Präfix für den Backup-AMI-Namen.
-
AutomationAssumeRole
Typ: Zeichenfolge
Beschreibung: (Optional) Der Amazon-Ressourcenname (ARN) der AWS Identity and Access Management (IAM) -Rolle, mit der Systems Manager Automation die Aktionen in Ihrem Namen ausführen kann. 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 ein AMI von InstanceId nach der Ausführung des Skripts zu erstellen, bevor Sie es starten. Das AMI bleibt nach Abschluss der Automatisierung erhalten. Es liegt in Ihrer Verantwortung, den Zugriff auf das AMI zu gewährleisten oder es zu löschen. -
CreatePreEC2RescueBackup
Typ: Zeichenfolge
Zulässige Werte: true | false
Standard: false
Beschreibung: (Optional) Stellen Sie es auf ein,
true
um InstanceId vor der Ausführung des Skripts ein AMI von zu erstellen. Das AMI bleibt nach Abschluss der Automatisierung erhalten. Es liegt in Ihrer Verantwortung, den Zugriff auf das AMI zu gewährleisten oder es zu löschen. -
EC2RescueInstanceType
Typ: Zeichenfolge
Gültige Werte: t2.small | t2.medium | t2.large
Standard: t2.small
Beschreibung: (Optional) Der EC2 Instance-Typ für die Rescue-Instance. EC2
-
InstanceId
Typ: Zeichenfolge
Beschreibung: (Erforderlich) ID Ihrer EC2 Instanz. WICHTIG: Die AWS Systems Manager 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 EC2 Rescue-Instanz. Standardmäßig wird dasselbe Subnetz verwendet, in dem sich die bereitgestellte Instance befindet. WICHTIG: Wenn Sie ein benutzerdefiniertes Subnetz angeben, muss es sich in derselben Availability Zone befinden wie InstanceId und es muss den Zugriff auf die SSM-Endpunkte 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 von Amazon SSMAutomation Role IAM verwaltete Richtlinie beigefügt ist. 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
— Vergewissern Sie sich, dass der Gerätetyp des Root-Volumes EBS ist -
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 EC2 Rescue-Stack bereitzustellen CloudFormation -
(Neue VPC erstellen) — Wenn * SubnetId = CreateNew VPC*, dann ausführen,
aws:createStack
um den Rescue-Stack bereitzustellen EC2 CloudFormation -
(Verwenden eines benutzerdefinierten Subnetzes) – In allen anderen Fällen:
aws:assertAwsResourceProperty
- Überprüfen Sie, ob sich das angegebene Subnetz in derselben Availability Zone wie die bereitgestellte Instanz befindetaws:createStack
- Stellen Sie den EC2 Rescue-Stack CloudFormation bereit
-
-
aws:invokeLambdaFunction
- Führen Sie eine zusätzliche Eingabevalidierung durch -
aws:executeAwsApi
- Aktualisieren Sie den EC2 CloudFormation Rescue-Stack, um die EC2 Rescue-Helper-Instanz zu erstellen -
aws:waitForAwsResourceProperty
- Warten Sie, bis das EC2 CloudFormation Rescue-Stack-Update abgeschlossen ist -
aws:executeAwsApi
- Beschreiben Sie die EC2 CloudFormation Rescue-Stack-Ausgabe, um die EC2 Rescue-Helper-Instanz-ID zu erhalten -
aws:waitForAwsResourceProperty
- Warten Sie, bis die EC2 Rescue-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 EC2 RescueBackup Eingabewert-
(EC2Pre-Rescue-Backup erstellen) — Wenn * CreatePre EC2 RescueBackup = true*
-
aws:executeAwsApi
- Erstellen Sie ein AMI-Backup der bereitgestellten Instanz -
aws:createTags
- Taggen Sie das AMI-Backup
-
-
aws:runCommand
- Installieren Sie EC2 Rescue auf der EC2 Rescue-Helper-Instanz -
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 EC2 Rescue-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 */dev/sdf* an die EC2 Rescue-Helper-Instanz anaws:sleep
- Schlafen Sie 10 Sekundenaws:runCommand
- Führen Sie das bereitgestellte Offline-Skript in Bash aus
-
-
aws:changeInstanceState
- Stoppen Sie die EC2 Rescue-Helper-Instanz -
aws:changeInstanceState
- Erzwingt das Stoppen der EC2 Rescue-Helper-Instanz -
aws:executeAwsApi
- Trennen Sie das Root-Volume von der EC2 Rescue-Helper-Instanz -
aws:executeAwsApi
- Hängen Sie das Root-Volume wieder an die bereitgestellte Instanz an -
aws:assertAwsResourceProperty
- Überprüfen Sie den CreatePost EC2 RescueBackup Eingabewert-
(Backup nach dem EC2 Rescue erstellen) — Wenn * CreatePost EC2 RescueBackup = true*
-
aws:executeAwsApi
- Erstellen Sie ein AMI-Backup der bereitgestellten Instanz -
aws:createTags
- Taggen Sie das AMI-Backup
-
-
aws:executeAwsApi
— Stellen Sie 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 Rescue-Stack EC2 CloudFormation
Ausgaben
runScriptForLinux.Ausgabe
runScriptForWindows.Ausgabe
preScriptBackup.ImageId
postScriptBackup.ImageId