As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
AWSSupport-StartEC2RescueWorkflow
Descrição
O AWSSupport-StartEC2RescueWorkflow
runbook executa o script codificado em base64 fornecido (Bash ou Powershell) em uma instância auxiliar criada para salvar sua instância. O volume raiz da sua instância é anexado e montado na instância auxiliar, também conhecida como EC2Rescue instância. Se sua instância for Windows, forneça um script do Powershell. Caso contrário, use Bash. O runbook define algumas variáveis de ambiente que você pode usar em seu script. As variáveis de ambiente contêm informações sobre a entrada que você forneceu, bem como informações sobre o volume raiz offline. O volume offline já está instalado e pronto para uso. Por exemplo, você pode salvar um arquivo de configuração de estado desejado para um volume raiz do Windows offline, ou chroot para um volume raiz do Linux offline, e executar uma correção offline.
Executar esta automação (console)
Importante
EC2As instâncias da Amazon criadas a partir do Marketplace Amazon Machine Images (AMIs) não são suportadas por essa automação.
Informações adicionais
Para codificar um script em base64, você pode usar Powershell ou Bash. Powershell:
[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.IO.File]::ReadAllText('PATH_TO_FILE')))
Bash:
base64 PATH_TO_FILE
Esta é uma lista de variáveis de ambiente que você pode usar em seus scripts offline, dependendo do sistema operacional de destino
Windows:
Variável | Descrição | Valor de exemplo |
---|---|---|
$ 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 |
EC2Rescuepara o caminho de instalação do Windows |
C:\Program Files\ Amazon\ EC2Rescue |
$ env: _ _ EC2RESCUE EC2RW DIR |
EC2Rescuepara o caminho de instalação do Windows |
C:\Program Files\ Amazon\ EC2Rescue |
$ env: _ _ID EC2RESCUE EXECUTION |
{{automação: EXECUTION _ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
$ env: EC2RESCUE _ _ _ OFFLINE _ CURRENT CONTROL SET |
Caminho definido de controle atual do Windows offline |
|
$ env: _ _ EC2RESCUE OFFLINE DRIVE |
Letra de unidade offline do Windows |
D:\ |
$ env: EC2RESCUE _ _ _ OFFLINE EBS DEVICE |
EBSDispositivo de volume raiz off-line |
xvdf |
$ env: EC2RESCUE _ _ _ OFFLINE KERNEL VER |
Versão de kernel do Windows offline |
6.1.7601.24214 |
$ env: EC2RESCUE _ _OS_ OFFLINE ARCHITECTURE |
Arquitetura do Windows offline |
AMD64 |
$ env: EC2RESCUE _ _OS_ OFFLINE CAPTION |
Legenda off-line do Windows |
Datacenter do Windows Server 2008 R2 |
$ env: EC2RESCUE _ _OS_ OFFLINE TYPE |
Tipo de sistema operacional Windows offline |
Servidor |
$ env: EC2RESCUE _ _ _ OFFLINE _ PROGRAM FILES DIR |
Caminho de diretório de arquivos de programa do Windows offline |
D:\Program Files |
$ env: EC2RESCUE _ _ _ OFFLINE _X86_ PROGRAM FILES DIR |
Caminho de diretório x86 de arquivos de programa do Windows offline |
D:\Program Files (x86) |
$ env: EC2RESCUE _ _ _ OFFLINE REGISTRY DIR |
Caminho de diretório de registro do Windows offline |
D:\Windows\System32\config |
$ env: EC2RESCUE _ _ _ OFFLINE SYSTEM ROOT |
Caminho de diretório de raiz do sistema do Windows offline |
D:\Windows |
$ env: _ EC2RESCUE REGION |
{{global:REGION}} |
us-west-1 |
$ env: _S3_ EC2RESCUE BUCKET |
{{S3BucketName }} |
mybucket |
$ env: _S3_ EC2RESCUE PREFIX |
{{ S3Prefix }} |
myprefix/ |
$ env: _ _ EC2RESCUE SOURCE INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
$ script: EC2RESCUE _ _ OFFLINE _ WINDOWS INSTALL |
Metadados de instalação do Windows offline |
Objeto Powershell do cliente |
Linux
Variável | Descrição | Valor de exemplo |
---|---|---|
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 |
EC2Rescuepara o caminho de instalação do Linux |
/usr/local/ec2rl-1.1.3 |
EC2RESCUE_ EXECUTION _ID |
{{automação: EXECUTION _ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
EC2RESCUE_OFFLINE_DEVICE |
Nome do dispositivo offline |
/dev/xvdf1 |
EC2RESCUE_OFFLINE_EBS_DEVICE |
EBSDispositivo de volume raiz off-line |
/dev/sdf |
EC2RESCUE_OFFLINE_SYSTEM_ROOT |
Ponto de montagem de volume raiz offline |
/mnt/mount |
EC2RESCUE_PYTHON |
Versão do 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 de documento
Automação
Proprietário
Amazon
Plataformas
Linux, macOS, Windows
Parâmetros
-
AMIPrefix
Tipo: string
Padrão:
AWSSupport-EC2Rescue
Descrição: (Opcional) Um prefixo para o AMI nome do backup.
-
AutomationAssumeRole
Tipo: string
Descrição: (Opcional) O Amazon Resource Name (ARN) da função AWS Identity and Access Management (IAM) que permite que o Systems Manager Automation execute as ações em seu nome. Se nenhum perfil for especificado, o Systems Manager Automation usa as permissões do usuário que inicia este runbook.
-
CreatePostEC2RescueBackup
Tipo: string
Valores válidos: True | False
Padrão: False
Descrição: (Opcional) Defina-o
true
para criar um AMI of InstanceId depois de executar o script, antes de iniciá-lo. Eles AMI persistirão após a conclusão da automação. É sua responsabilidade proteger o acesso ao AMI ou excluí-lo. -
CreatePreEC2RescueBackup
Tipo: string
Valores válidos: True | False
Padrão: False
Descrição: (Opcional) Defina-o
true
para criar um AMI of InstanceId antes de executar o script. Eles AMI persistirão após a conclusão da automação. É sua responsabilidade proteger o acesso ao AMI ou excluí-lo. -
EC2RescueInstanceType
Tipo: string
Valores permitidos: t2.small | t2.medium | t2.large
Padrão: t2.small
Descrição: (Opcional) O tipo de EC2 EC2Rescue instância da instância.
-
InstanceId
Tipo: string
Descrição: ID (obrigatório) da sua EC2 instância. IMPORTANT: a AWS Systems Manager automação interrompe essa instância. Dados armazenados em volumes de armazenamento de instâncias serão perdidos. O endereço IP público será alterado se você não estiver usando um IP elástico.
-
OfflineScript
Tipo: string
Descrição: (obrigatório) Script codificado em Base64 a ser executado contra a instância auxiliar. Use o Bash se sua instância de origem for Linux e PowerShell se for Windows.
-
S3 BucketName
Tipo: string
Descrição: (Opcional) Nome do bucket do S3 em sua conta na qual você deseja carregar os logs de solução de problemas. Verifique se a política de buckets não concede permissões de leitura/gravação desnecessárias a partes que não precisam acessar os logs coletados.
-
S3Prefix
Tipo: string
Padrão:
AWSSupport-EC2Rescue
Descrição: (Opcional) Um prefixo para os logs da S3.
-
SubnetId
Tipo: string
Padrão: SelectedInstanceSubnet
Descrição: (Opcional) O ID da sub-rede da EC2Rescue instância. Por padrão, é usada a mesma sub-rede na qual a instância fornecida reside. IMPORTANT: se você fornecer uma sub-rede personalizada, ela deverá estar na mesma InstanceId zona de disponibilidade e permitir o acesso aos SSM endpoints.
-
UniqueId
Tipo: string
Padrão: {{automation: EXECUTION _ID}}
Descrição: (opcional) um identificador exclusivo para o fluxo de trabalho.
IAMPermissões necessárias
O parâmetro AutomationAssumeRole
requer as seguintes ações para usar o runbook com êxito.
É recomendável que o usuário que executa a automação tenha a política IAM gerenciada A mazonSSMAutomationRole anexada. Além dessa política, o usuário deve ter:
{ "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" } ] }
Etapas do documento
-
aws:executeAwsApi
: descreve a instância fornecida -
aws:executeAwsApi
: descreve o volume raiz da instância fornecida -
aws:assertAwsResourceProperty
- Verifique se o tipo de dispositivo de volume raiz é EBS -
aws:assertAwsResourceProperty
: verifica se o volume raiz não está criptografado -
aws:assertAwsResourceProperty
: verifica o ID de sub-rede fornecido-
(Use a sub-rede da instância atual) - Se * SubnetId = SelectedInstanceSubnet *, execute
aws:createStack
para implantar a pilha EC2Rescue CloudFormation -
(Criar novoVPC) - Se * SubnetId = CreateNew VPC *, execute
aws:createStack
para implantar a EC2Rescue CloudFormation pilha -
(Usar sub-rede personalizada) - em todos os demais casos:
aws:assertAwsResourceProperty
: verifique se a sub-rede fornecida está na mesma zona de disponibilidade da instância fornecidaaws:createStack
- Implante a EC2Rescue CloudFormation pilha
-
-
aws:invokeLambdaFunction
: execute validação adicional de entrada -
aws:executeAwsApi
- Atualize a EC2Rescue CloudFormation pilha para criar a instância EC2Rescue auxiliar -
aws:waitForAwsResourceProperty
- Aguarde a conclusão da atualização da EC2Rescue CloudFormation pilha -
aws:executeAwsApi
- Descreva a saída da EC2Rescue CloudFormation pilha para obter o ID da EC2Rescue instância auxiliar -
aws:waitForAwsResourceProperty
- Aguarde até que a instância EC2Rescue auxiliar se torne uma instância gerenciada -
aws:changeInstanceState
: interrompe a instância fornecida -
aws:changeInstanceState
: interrompe a instância fornecida -
aws:changeInstanceState
: força a parada da instância fornecida -
aws:assertAwsResourceProperty
- Verifique o valor CreatePre EC2RescueBackup de entrada-
(Criar EC2Rescue pré-backup) - Se * CreatePre EC2RescueBackup = verdadeiro*
-
aws:executeAwsApi
- Crie um AMI backup da instância fornecida -
aws:createTags
- Marque o AMI backup
-
-
aws:runCommand
- Instale EC2Rescue na EC2Rescue instância auxiliar -
aws:executeAwsApi
: desanexa o volume raiz da instância fornecida -
aws:assertAwsResourceProperty
: verifica a plataforma da instância fornecida-
(Instância é Windows):
aws:executeAwsApi
- Anexe o volume raiz à instância EC2Rescue auxiliar como *xvdf*aws:sleep
: repousa por 10 segundosaws:runCommand
: executa o script offline fornecido no Powershell -
(Instância é Linux):
aws:executeAwsApi
- Anexe o volume raiz à instância EC2Rescue auxiliar como */dev/sdf*aws:sleep
: repousa por 10 segundosaws:runCommand
: executa o script offline fornecido no Bash
-
-
aws:changeInstanceState
- Pare a EC2Rescue instância auxiliar -
aws:changeInstanceState
- Forçar a parada da EC2Rescue instância auxiliar -
aws:executeAwsApi
- Separe o volume raiz da instância EC2Rescue auxiliar -
aws:executeAwsApi
: anexa o volume raiz novamente à instância fornecida -
aws:assertAwsResourceProperty
- Verifique o valor CreatePost EC2RescueBackup de entrada-
(Criar EC2Rescue pós-backup) - Se * CreatePost EC2RescueBackup = verdadeiro*
-
aws:executeAwsApi
- Crie um AMI backup da instância fornecida -
aws:createTags
- Marque o AMI backup
-
-
aws:executeAwsApi
: restaura a exclusão inicial no estado de encerramento para o volume raiz da instância fornecida -
aws:changeInstanceState
: restaura o estado inicial da instância fornecida (em execução/parado) -
aws:deleteStack
- Exclua a EC2Rescue CloudFormation pilha
Saídas
runScriptForSaída Linux
runScriptForSaída do Windows
preScriptBackup.ImageId
postScriptBackup.ImageId