Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
AWSSupport-StartEC2RescueWorkflow
Description
Le AWSSupport-StartEC2RescueWorkflow
runbook exécute le script codé en base64 fourni (Bash ou Powershell) sur une instance d'assistance créée pour sauver votre instance. Le volume racine de votre instance est attaché et monté sur l'instance d'assistance, également appelée EC2Rescue instance. Si votre instance est basée sur Windows, fournissez un script Powershell. Dans le cas contraire, utilisez Bash. Le runbook définit certaines variables d'environnement que vous pouvez utiliser dans votre script. Les variables d'environnement contiennent des informations sur l'entrée que vous avez fournie, ainsi que des informations sur le volume racine hors connexion. Le volume hors connexion est déjà monté et prêt à être utilisé. Par exemple, vous pouvez enregistrer un fichier Desired State Configuration dans un volume racine Windows hors connexion ou exécuter une commande chroot pour un volume racine Linux hors connexion et effectuer une correction hors connexion.
Exécuter cette automatisation (console)
Important
EC2Les instances Amazon créées à partir de Marketplace Amazon Machine Images (AMIs) ne sont pas prises en charge par cette automatisation.
Informations supplémentaires
Pour coder un script en base64, vous pouvez utiliser Powershell ou Bash. PowerShell :
[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.IO.File]::ReadAllText('PATH_TO_FILE')))
Bash :
base64 PATH_TO_FILE
Voici une liste des variables d'environnement que vous pouvez utiliser dans vos scripts hors connexion, en fonction du système d'exploitation cible
Windows :
Variable | Description | Exemple de valeur |
---|---|---|
$env : _ _ID EC2RESCUE ACCOUNT |
{{global : ACCOUNT _ID}} |
123456789012 |
$env : _ EC2RESCUE DATE |
{{mondial :DATE}} |
2018-09-07 |
$env : _ _ EC2RESCUE DATE TIME |
{{mondial : DATE _TIME}} |
2018-09-07_18.09.59 |
$env : _ _ EC2RESCUE EC2RW DIR |
EC2Rescuepour le chemin d'installation de Windows |
C:\Program Files \ Amazon \ EC2Rescue |
$env : _ _ EC2RESCUE EC2RW DIR |
EC2Rescuepour le chemin d'installation de Windows |
C:\Program Files \ Amazon \ EC2Rescue |
$env : _ _ID EC2RESCUE EXECUTION |
{{automatisation : EXECUTION _ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
$env : EC2RESCUE _ _ _ OFFLINE _ CURRENT CONTROL SET |
Chemin de l'ensemble de contrôles Windows hors connexion |
|
$env : _ _ EC2RESCUE OFFLINE DRIVE |
Lecteur Windows hors connexion |
D:\ |
$env : EC2RESCUE _ _ _ OFFLINE EBS DEVICE |
EBSAppareil à volume racine hors ligne |
xvdf |
$env : EC2RESCUE _ _ _ OFFLINE KERNEL VER |
Version de noyau Windows hors connexion |
6.1.7601.24214 |
$env : EC2RESCUE _ _OS_ OFFLINE ARCHITECTURE |
Architecture Windows hors connexion |
AMD64 |
$env : EC2RESCUE _ _OS_ OFFLINE CAPTION |
Légende Windows hors connexion |
Windows Server 2008 R2 Datacenter |
$env : EC2RESCUE _ _OS_ OFFLINE TYPE |
Type de système d'exploitation Windows hors connexion |
Serveur |
$env : EC2RESCUE _ _ _ OFFLINE _ PROGRAM FILES DIR |
Chemin de répertoire de fichiers de programme Windows hors connexion |
D:\Program Files |
$env : EC2RESCUE _ _ _ OFFLINE _X86_ PROGRAM FILES DIR |
Chemin de répertoire de fichiers de programme x86 hors connexion |
D:\Program Files (x86) |
$env : EC2RESCUE _ _ _ OFFLINE REGISTRY DIR |
Chemin de répertoire de registre Windows hors connexion |
D:\Windows\System32\config |
$env : EC2RESCUE _ _ _ OFFLINE SYSTEM ROOT |
Chemin de répertoire racine du système Windows hors connexion |
D:\Windows |
$env : _ EC2RESCUE REGION |
{{mondial :REGION}} |
us-west-1 |
$env : _S3_ EC2RESCUE BUCKET |
{{S3BucketName }} |
seau de démonstration amzn-s3 |
$env : _S3_ EC2RESCUE PREFIX |
{{ S3Prefix }} |
myprefix/ |
$env : _ _ EC2RESCUE SOURCE INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
$script : EC2RESCUE _ _ OFFLINE _ WINDOWS INSTALL |
Métadonnées d'installation Windows hors connexion |
Objet Powershell client |
Linux :
Variable | Description | Exemple de valeur |
---|---|---|
EC2RESCUE_ ACCOUNT _IDENTIFIANT |
{{global : ACCOUNT _ID}} |
123456789012 |
EC2RESCUE_DATE |
{{mondial :DATE}} |
2018-09-07 |
EC2RESCUE_DATE_TIME |
{{mondial : DATE _TIME}} |
2018-09-07_18.09.59 |
EC2RESCUE_EC2RL_DIR |
EC2Rescuepour le chemin d'installation de Linux |
/usr/local/ec2rl-1.1.3 |
EC2RESCUE_ EXECUTION _IDENTIFIANT |
{{automatisation : EXECUTION _ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
EC2RESCUE_OFFLINE_DEVICE |
Nom du périphérique hors connexion |
/dev/xvdf1 |
EC2RESCUE_OFFLINE_EBS_DEVICE |
EBSAppareil à volume racine hors ligne |
/dev/sdf |
EC2RESCUE_OFFLINE_SYSTEM_ROOT |
Point de montage du volume racine hors connexion |
/mnt/mount |
EC2RESCUE_PYTHON |
Version Python |
python2.7 |
EC2RESCUE_REGION |
{{mondial :REGION}} |
us-west-1 |
EC2RESCUE_S3_ BUCKET |
{{S3BucketName }} |
seau de démonstration amzn-s3 |
EC2RESCUE_S3_ PREFIX |
{{ S3Prefix }} |
myprefix/ |
EC2RESCUE_SOURCE_INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
Type de document
Automatisation
Propriétaire
Amazon
Plateformes
LinuxmacOS, Windows
Paramètres
-
AMIPrefix
Type : String
Par défaut :
AWSSupport-EC2Rescue
Description : (Facultatif) Préfixe pour le AMI nom de la sauvegarde.
-
AutomationAssumeRole
Type : String
Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle AWS Identity and Access Management (IAM) qui permet à Systems Manager Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, Systems Manager Automation utilise les autorisations de l'utilisateur qui lance ce runbook.
-
CreatePostEC2RescueBackup
Type : String
Valeurs valides : true | false
Valeur par défaut : false
Description : (Facultatif) Réglez-le
true
sur pour créer un AMI ou InstanceId après avoir exécuté le script, avant de le démarrer. Ils AMI persisteront une fois l'automatisation terminée. Il est de votre responsabilité de sécuriser l'AMIaccès au ou de le supprimer. -
CreatePreEC2RescueBackup
Type : String
Valeurs valides : true | false
Valeur par défaut : false
Description : (Facultatif) Réglez-le
true
sur pour créer un AMI ou InstanceId avant d'exécuter le script. Ils AMI persisteront une fois l'automatisation terminée. Il est de votre responsabilité de sécuriser l'AMIaccès au ou de le supprimer. -
EC2RescueInstanceType
Type : String
Valeurs valides : t2.small | t2.medium | t2.large
Par défaut : t2.small
Description : (Facultatif) Type d'EC2instance de l'EC2Rescueinstance.
-
InstanceId
Type : String
Description : ID (obligatoire) de votre EC2 instance. IMPORTANT: AWS Systems Manager L'automatisation arrête cette instance. Les données stockées sur les volumes de stockage d'instance seront perdues. L'adresse IP publique change si vous n'utilisez pas une adresse IP Elastic.
-
OfflineScript
Type : String
Description : (Obligatoire) script codé en Base64 à exécuter sur l'instance d'assistant. Utilisez Bash si votre instance source est Linux et PowerShell si c'est Windows.
-
S3 BucketName
Type : String
Description : (Facultatif) nom du compartiment S3 de votre compte dans lequel vous souhaitez charger les journaux de dépannage. Assurez-vous que la stratégie de compartiment n'accorde pas des autorisations en lecture/écriture superflues pour les tiers qui n'ont pas besoin d'accéder aux journaux collectés.
-
S3Prefix
Type : String
Par défaut :
AWSSupport-EC2Rescue
Description : (Facultatif) préfixe pour les journaux S3.
-
SubnetId
Type : String
Par défaut : SelectedInstanceSubnet
Description : (Facultatif) L'ID de sous-réseau de l'EC2Rescueinstance. Par défaut, le même sous-réseau dans lequel l'instance réside est utilisé. IMPORTANT: si vous fournissez un sous-réseau personnalisé, il doit se trouver dans la même zone de disponibilité que InstanceId les points de SSM terminaison et il doit autoriser l'accès à ceux-ci.
-
UniqueId
Type : String
Par défaut : {{automation : EXECUTION _ID}}
Description : (Facultatif) Identifiant unique pour l'automatisation.
IAMAutorisations requises
Le AutomationAssumeRole
paramètre nécessite les actions suivantes pour utiliser correctement le runbook.
Il est recommandé que la politique IAM gérée A Role soit attachée à l'utilisateur qui exécute l'automatisation. mazonSSMAutomation En plus de cette stratégie, l'utilisateur doit avoir :
{ "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" } ] }
Étapes de document
-
aws:executeAwsApi
- Décrivez l'instance fournie -
aws:executeAwsApi
- Décrivez le volume racine de l'instance fournie -
aws:assertAwsResourceProperty
- Vérifiez que le type de périphérique du volume racine est EBS -
aws:assertAwsResourceProperty
- Vérifiez que le volume racine n'est pas crypté -
aws:assertAwsResourceProperty
- Vérifiez l'ID de sous-réseau fourni-
(Utiliser le sous-réseau d'instance actuel) - Si * SubnetId = SelectedInstanceSubnet *, exécutez
aws:createStack
pour déployer la pile EC2Rescue CloudFormation -
(Créer un nouveauVPC) - Si * SubnetId = CreateNew VPC *, exécutez
aws:createStack
pour déployer la EC2Rescue CloudFormation pile -
(Utiliser un sous-réseau personnalisé) - Dans tous les autres cas :
aws:assertAwsResourceProperty
- Vérifiez que le sous-réseau fourni se trouve dans la même zone de disponibilité que l'instance fournieaws:createStack
- Déployez la EC2Rescue CloudFormation pile
-
-
aws:invokeLambdaFunction
- Procéder à une validation des entrées supplémentaire -
aws:executeAwsApi
- Mettre à jour la EC2Rescue CloudFormation pile pour créer l'EC2Rescueinstance d'assistance -
aws:waitForAwsResourceProperty
- Attendez que la mise à jour de la EC2Rescue CloudFormation pile soit terminée -
aws:executeAwsApi
- Décrivez la sortie de la EC2Rescue CloudFormation pile pour obtenir l'ID de l'EC2Rescueinstance d'assistance -
aws:waitForAwsResourceProperty
- Attendez que l'instance EC2Rescue d'assistance devienne une instance gérée -
aws:changeInstanceState
- Arrête l'instance fournie -
aws:changeInstanceState
- Arrête l'instance fournie -
aws:changeInstanceState
- Forcer l'arrêt de l'instance fournie -
aws:assertAwsResourceProperty
- Vérifiez la valeur CreatePre EC2RescueBackup d'entrée-
(Créer une EC2Rescue pré-sauvegarde) - Si * CreatePre EC2RescueBackup = vrai*
-
aws:executeAwsApi
- Créez une AMI sauvegarde de l'instance fournie -
aws:createTags
- Marquez la AMI sauvegarde
-
-
aws:runCommand
- Installation EC2Rescue sur l'instance EC2Rescue d'assistance -
aws:executeAwsApi
- Détachez le volume racine de l'instance fournie -
aws:assertAwsResourceProperty
- Vérifiez la plate-forme d'instance fournie-
(Instance Windows) :
aws:executeAwsApi
- Attachez le volume racine à l'instance d'EC2Rescueassistance sous la forme *xvdf*aws:sleep
- Dormez 10 secondesaws:runCommand
- Exécutez le script hors ligne fourni dans Powershell -
(Instance Linux) :
aws:executeAwsApi
- Attachez le volume racine à l'instance d'EC2Rescueassistance sous la forme */dev/sdf*aws:sleep
- Dormez 10 secondesaws:runCommand
- Exécute le script hors ligne fourni dans Bash
-
-
aws:changeInstanceState
- Arrêtez l'EC2Rescueinstance d'assistance -
aws:changeInstanceState
- Forcer l'arrêt de l'EC2Rescueinstance d'assistance -
aws:executeAwsApi
- Détachez le volume racine de l'instance d'EC2Rescueassistance -
aws:executeAwsApi
- Rattachez le volume racine à l'instance fournie -
aws:assertAwsResourceProperty
- Vérifiez la valeur CreatePost EC2RescueBackup d'entrée-
(Créer une EC2Rescue post-sauvegarde) - Si * CreatePost EC2RescueBackup = vrai*
-
aws:executeAwsApi
- Créez une AMI sauvegarde de l'instance fournie -
aws:createTags
- Marquez la AMI sauvegarde
-
-
aws:executeAwsApi
- Restaure l'état initial de suppression à la fin du volume racine de l'instance fournie -
aws:changeInstanceState
- Restaure l'état initial de l'instance fournie (en cours d'exécution/arrêtée) -
aws:deleteStack
- Supprimer la EC2Rescue CloudFormation pile
Sorties
runScriptForLinux. Sortie
runScriptForWindows. Sortie
preScriptBackup.ImageId
postScriptBackup.ImageId