AWSSupport-StartEC2RescueWorkflow - AWS Systems Manager Referensi buku runbook otomatisasi

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWSSupport-StartEC2RescueWorkflow

Deskripsi

AWSSupport-StartEC2RescueWorkflowRunbook menjalankan skrip berenkode base64 yang disediakan (Bash atau Powershell) pada instance helper yang dibuat untuk menyelamatkan instance Anda. Volume root instance Anda dilampirkan dan dipasang ke instance helper, juga dikenal sebagai EC2Rescue instance. Jika instance Anda adalah Windows, berikan skrip Powershell. Jika tidak, gunakan Bash. Runbook menetapkan beberapa variabel lingkungan yang dapat Anda gunakan dalam skrip Anda. Variabel lingkungan berisi informasi tentang input yang Anda berikan, serta informasi tentang volume root offline. Volume offline sudah terpasang dan siap digunakan. Misalnya, Anda dapat menyimpan file Konfigurasi Status yang Diinginkan ke volume root Windows offline, atau chroot ke volume root Linux offline dan melakukan remediasi offline.

Jalankan Otomasi ini (konsol)

penting

EC2Instans Amazon yang dibuat dari Marketplace Amazon Machine Images (AMIs) tidak didukung oleh otomatisasi ini.

Informasi Tambahan

Untuk base64 menyandikan skrip, Anda dapat menggunakan Powershell atau Bash. PowerShell:

[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.IO.File]::ReadAllText('PATH_TO_FILE')))

Bash:

base64 PATH_TO_FILE

Berikut adalah daftar variabel lingkungan yang dapat Anda gunakan dalam skrip offline Anda, tergantung pada OS target

Windows:

Variabel Deskripsi Nilai contoh

$ 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

EC2Rescueuntuk jalur instalasi Windows

C:\Program File\ Amazon\ EC2Rescue

$ env: _ _ EC2RESCUE EC2RW DIR

EC2Rescueuntuk jalur instalasi Windows

C:\Program File\ Amazon\ EC2Rescue

$ env: _ ID EC2RESCUE EXECUTION

{{otomatisasi: EXECUTION _ID}}

7ef8008e-219b-4aca-8bb5-65e2e898e20b

$ env: EC2RESCUE _ _ _ OFFLINE _ CURRENT CONTROL SET

Offline Windows Kontrol Saat Ini Set jalur

HKLM:\AWSTempSystem\ControlSet001

$ env: _ _ EC2RESCUE OFFLINE DRIVE

Huruf drive Windows offline

D:\

$ env: EC2RESCUE _ _ _ OFFLINE EBS DEVICE

EBSPerangkat volume root offline

xvdf

$ env: EC2RESCUE _ _ _ OFFLINE KERNEL VER

Versi Kernel Windows Offline

6.1.7601.24214

$ env: EC2RESCUE _ _ OS_ OFFLINE ARCHITECTURE

Arsitektur Windows Offline

AMD64

$ env: EC2RESCUE _ _ OS_ OFFLINE CAPTION

Keterangan Windows Offline

Pusat Data Windows Server 2008 R2

$ env: EC2RESCUE _ _ OS_ OFFLINE TYPE

Jenis OS Windows Offline

Server

$ env: EC2RESCUE _ _ _ OFFLINE _ PROGRAM FILES DIR

Jalur direktori file Program Windows Offline

D:\Program Berkas

$ env: EC2RESCUE _ _ _ OFFLINE _X86_ PROGRAM FILES DIR

Offline Windows Program file jalur direktori x86

D:\Program Berkas (x86)

$ env: EC2RESCUE _ _ _ OFFLINE REGISTRY DIR

Jalur direktori registri Windows offline

D:\Windows\System32\config

$ env: EC2RESCUE _ _ _ OFFLINE SYSTEM ROOT

Jalur direktori root sistem Windows offline

D:\Windows

$ env: _ EC2RESCUE REGION

{{global:REGION}}

us-west-1

$ env: _S3_ EC2RESCUE BUCKET

{{S3BucketName }}

amzn-s3-demo-ember

$ env: _S3_ EC2RESCUE PREFIX

{{S3Awalan}}

myprefix/

$ env: _ _ EC2RESCUE SOURCE INSTANCE

{{ InstanceId }}

abcdefgh123456789

$ skrip: EC2RESCUE _ _ OFFLINE _ WINDOWS INSTALL

Metadata Instalasi Windows Offline

Objek Powershell Pelanggan

Linux:

Variabel Deskripsi Nilai contoh

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

EC2Rescueuntuk jalur instalasi Linux

/usr/lokal/ec2rl-1.1.3

EC2RESCUE_ EXECUTION _ID

{{otomatisasi: EXECUTION _ID}}

7ef8008e-219b-4aca-8bb5-65e2e898e20b

EC2RESCUE_OFFLINE_DEVICE

Nama perangkat offline

/dev/xvdf1

EC2RESCUE_OFFLINE_EBS_DEVICE

EBSPerangkat volume root offline

/dev/sdf

EC2RESCUE_OFFLINE_SYSTEM_ROOT

Titik pemasangan volume root offline

/mnt/mount

EC2RESCUE_PYTHON

Versi Python

python2.7

EC2RESCUE_REGION

{{global:REGION}}

us-west-1

EC2RESCUE_S3_ BUCKET

{{S3BucketName }}

amzn-s3-demo-ember

EC2RESCUE_S3_ PREFIX

{{S3Awalan}}

myprefix/

EC2RESCUE_SOURCE_INSTANCE

{{ InstanceId }}

abcdefgh123456789

Jenis dokumen

Otomatisasi

Pemilik

Amazon

Platform

Linux,macOS, Windows

Parameter

  • AMIPrefix

    Tipe: String

    Default: AWSSupport-EC2Rescue

    Deskripsi: (Opsional) Awalan untuk AMI nama cadangan.

  • AutomationAssumeRole

    Tipe: String

    Deskripsi: (Opsional) Nama Sumber Daya Amazon (ARN) dari peran AWS Identity and Access Management (IAM) yang memungkinkan Otomasi Systems Manager untuk melakukan tindakan atas nama Anda. Jika tidak ada peran yang ditentukan, Systems Manager Automation menggunakan izin pengguna yang memulai runbook ini.

  • CreatePostEC2RescueBackup

    Tipe: String

    Nilai yang valid: benar/salah

    Bawaan: salah

    Deskripsi: (Opsional) Setel true untuk membuat AMI dari InstanceId setelah menjalankan skrip, sebelum memulainya. AMIKehendak bertahan setelah otomatisasi selesai. Adalah tanggung jawab Anda untuk mengamankan akses keAMI, atau menghapusnya.

  • CreatePreEC2RescueBackup

    Tipe: String

    Nilai yang valid: benar/salah

    Bawaan: salah

    Deskripsi: (Opsional) Setel true untuk membuat AMI dari InstanceId sebelum menjalankan skrip. AMIKehendak bertahan setelah otomatisasi selesai. Adalah tanggung jawab Anda untuk mengamankan akses keAMI, atau menghapusnya.

  • EC2RescueInstanceType

    Tipe: String

    Nilai yang valid: t2.small | t2.medium | t2.large

    Default: t2.small

    Deskripsi: (Opsional) Jenis EC2 instance untuk EC2Rescue instance.

  • InstanceId

    Tipe: String

    Deskripsi: (Wajib) ID EC2 instans Anda. IMPORTANT: AWS Systems Manager Otomasi menghentikan instance ini. Data yang disimpan dalam volume penyimpanan instance akan hilang. Alamat IP publik akan berubah jika Anda tidak menggunakan IP Elastis.

  • OfflineScript

    Tipe: String

    Deskripsi: (Wajib) Skrip yang dikodekan Base64 untuk dijalankan terhadap instance helper. Gunakan Bash jika instance sumber Anda adalah Linux, dan PowerShell jika itu adalah Windows.

  • S3 BucketName

    Tipe: String

    Deskripsi: (Opsional) Nama bucket S3 di akun tempat Anda ingin mengunggah log pemecahan masalah. Pastikan kebijakan bucket tidak memberikan izin baca/tulis yang tidak perlu kepada pihak yang tidak memerlukan akses ke log yang dikumpulkan.

  • S3Prefix

    Tipe: String

    Default: AWSSupport-EC2Rescue

    Deskripsi: (Opsional) Awalan untuk log S3.

  • SubnetId

    Tipe: String

    Default: SelectedInstanceSubnet

    Deskripsi: (Opsional) ID subnet untuk EC2Rescue contoh. Secara default, subnet yang sama di mana instance yang disediakan berada digunakan. IMPORTANT: Jika Anda menyediakan subnet kustom, subnet tersebut harus berada di Availability Zone yang sama InstanceId, dan harus mengizinkan akses ke SSM endpoint.

  • UniqueId

    Tipe: String

    Default: {{otomatisasi: EXECUTION _ID}}

    Deskripsi: (Opsional) Pengidentifikasi unik untuk otomatisasi.

IAMIzin yang diperlukan

AutomationAssumeRoleParameter memerlukan tindakan berikut untuk menggunakan runbook dengan sukses.

Disarankan bahwa pengguna yang menjalankan otomatisasi memiliki kebijakan yang IAM dikelola mazonSSMAutomationPeran yang dilampirkan. Selain kebijakan itu, pengguna harus memiliki:

{ "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" } ] }

Langkah Dokumen

  1. aws:executeAwsApi- Jelaskan contoh yang disediakan

  2. aws:executeAwsApi- Jelaskan volume root instance yang disediakan

  3. aws:assertAwsResourceProperty- Periksa jenis perangkat volume root EBS

  4. aws:assertAwsResourceProperty- Periksa volume root tidak dienkripsi

  5. aws:assertAwsResourceProperty- Periksa ID subnet yang diberikan

    1. (Gunakan subnet instance saat ini) - Jika * SubnetId = SelectedInstanceSubnet * lalu jalankan aws:createStack untuk menyebarkan tumpukan EC2Rescue CloudFormation

    2. (Buat baruVPC) - Jika * SubnetId = CreateNew VPC * lalu jalankan aws:createStack untuk menyebarkan tumpukan EC2Rescue CloudFormation

    3. (Gunakan subnet khusus) - Dalam semua kasus lain:

      aws:assertAwsResourceProperty- Periksa subnet yang disediakan berada di Availability Zone yang sama dengan instance yang disediakan

      aws:createStack- Menyebarkan tumpukan EC2Rescue CloudFormation

  6. aws:invokeLambdaFunction- Lakukan validasi masukan tambahan

  7. aws:executeAwsApi- Perbarui EC2Rescue CloudFormation tumpukan untuk membuat EC2Rescue instance pembantu

  8. aws:waitForAwsResourceProperty- Tunggu pembaruan EC2Rescue CloudFormation tumpukan selesai

  9. aws:executeAwsApi- Jelaskan output EC2Rescue CloudFormation tumpukan untuk mendapatkan ID instans EC2Rescue pembantu

  10. aws:waitForAwsResourceProperty- Tunggu instance EC2Rescue helper menjadi instance terkelola

  11. aws:changeInstanceState- Hentikan contoh yang disediakan

  12. aws:changeInstanceState- Hentikan contoh yang disediakan

  13. aws:changeInstanceState- Paksa menghentikan contoh yang disediakan

  14. aws:assertAwsResourceProperty- Periksa nilai CreatePre EC2RescueBackup masukan

    1. (Buat pra- EC2Rescue cadangan) - Jika * CreatePre EC2RescueBackup = benar*

    2. aws:executeAwsApi- Buat AMI cadangan dari instance yang disediakan

    3. aws:createTags- Tandai AMI cadangan

  15. aws:runCommand- Instal EC2Rescue pada EC2Rescue contoh pembantu

  16. aws:executeAwsApi- Lepaskan volume root dari instance yang disediakan

  17. aws:assertAwsResourceProperty- Periksa platform instance yang disediakan

    1. (Instans adalah Windows):

      aws:executeAwsApi- Lampirkan volume root ke instance EC2Rescue helper sebagai*xvdf*

      aws:sleep- Tidur 10 detik

      aws:runCommand- Jalankan skrip offline yang disediakan di Powershell

    2. (Instance adalah Linux):

      aws:executeAwsApi- Lampirkan volume root ke instance EC2Rescue helper sebagai */dev/sdf*

      aws:sleep- Tidur 10 detik

      aws:runCommand- Jalankan skrip offline yang disediakan di Bash

  18. aws:changeInstanceState- Hentikan EC2Rescue contoh pembantu

  19. aws:changeInstanceState- Paksa menghentikan EC2Rescue contoh pembantu

  20. aws:executeAwsApi- Lepaskan volume root dari instance EC2Rescue helper

  21. aws:executeAwsApi- Pasang kembali volume root ke instance yang disediakan

  22. aws:assertAwsResourceProperty- Periksa nilai CreatePost EC2RescueBackup masukan

    1. (Buat postingan- EC2Rescue cadangan) - Jika * CreatePost EC2RescueBackup = benar*

    2. aws:executeAwsApi- Buat AMI cadangan dari instance yang disediakan

    3. aws:createTags- Tandai AMI cadangan

  23. aws:executeAwsApi- Kembalikan penghapusan awal pada status terminasi untuk volume root dari instance yang disediakan

  24. aws:changeInstanceState- Kembalikan status awal dari instance yang disediakan (menjalankan/berhenti)

  25. aws:deleteStack- Hapus EC2Rescue CloudFormation tumpukan

Keluaran

runScriptForLinux.Keluaran

runScriptForWindows.Keluaran

preScriptBackup.ImageId

postScriptBackup.ImageId