Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWSSupport-StartEC2RescueWorkflow
Deskripsi
AWSSupport-StartEC2RescueWorkflow
Runbook 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.
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 |
|
$ 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
AutomationAssumeRole
Parameter 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
-
aws:executeAwsApi
- Jelaskan contoh yang disediakan -
aws:executeAwsApi
- Jelaskan volume root instance yang disediakan -
aws:assertAwsResourceProperty
- Periksa jenis perangkat volume root EBS -
aws:assertAwsResourceProperty
- Periksa volume root tidak dienkripsi -
aws:assertAwsResourceProperty
- Periksa ID subnet yang diberikan-
(Gunakan subnet instance saat ini) - Jika * SubnetId = SelectedInstanceSubnet * lalu jalankan
aws:createStack
untuk menyebarkan tumpukan EC2Rescue CloudFormation -
(Buat baruVPC) - Jika * SubnetId = CreateNew VPC * lalu jalankan
aws:createStack
untuk menyebarkan tumpukan EC2Rescue CloudFormation -
(Gunakan subnet khusus) - Dalam semua kasus lain:
aws:assertAwsResourceProperty
- Periksa subnet yang disediakan berada di Availability Zone yang sama dengan instance yang disediakanaws:createStack
- Menyebarkan tumpukan EC2Rescue CloudFormation
-
-
aws:invokeLambdaFunction
- Lakukan validasi masukan tambahan -
aws:executeAwsApi
- Perbarui EC2Rescue CloudFormation tumpukan untuk membuat EC2Rescue instance pembantu -
aws:waitForAwsResourceProperty
- Tunggu pembaruan EC2Rescue CloudFormation tumpukan selesai -
aws:executeAwsApi
- Jelaskan output EC2Rescue CloudFormation tumpukan untuk mendapatkan ID instans EC2Rescue pembantu -
aws:waitForAwsResourceProperty
- Tunggu instance EC2Rescue helper menjadi instance terkelola -
aws:changeInstanceState
- Hentikan contoh yang disediakan -
aws:changeInstanceState
- Hentikan contoh yang disediakan -
aws:changeInstanceState
- Paksa menghentikan contoh yang disediakan -
aws:assertAwsResourceProperty
- Periksa nilai CreatePre EC2RescueBackup masukan-
(Buat pra- EC2Rescue cadangan) - Jika * CreatePre EC2RescueBackup = benar*
-
aws:executeAwsApi
- Buat AMI cadangan dari instance yang disediakan -
aws:createTags
- Tandai AMI cadangan
-
-
aws:runCommand
- Instal EC2Rescue pada EC2Rescue contoh pembantu -
aws:executeAwsApi
- Lepaskan volume root dari instance yang disediakan -
aws:assertAwsResourceProperty
- Periksa platform instance yang disediakan-
(Instans adalah Windows):
aws:executeAwsApi
- Lampirkan volume root ke instance EC2Rescue helper sebagai*xvdf*aws:sleep
- Tidur 10 detikaws:runCommand
- Jalankan skrip offline yang disediakan di Powershell -
(Instance adalah Linux):
aws:executeAwsApi
- Lampirkan volume root ke instance EC2Rescue helper sebagai */dev/sdf*aws:sleep
- Tidur 10 detikaws:runCommand
- Jalankan skrip offline yang disediakan di Bash
-
-
aws:changeInstanceState
- Hentikan EC2Rescue contoh pembantu -
aws:changeInstanceState
- Paksa menghentikan EC2Rescue contoh pembantu -
aws:executeAwsApi
- Lepaskan volume root dari instance EC2Rescue helper -
aws:executeAwsApi
- Pasang kembali volume root ke instance yang disediakan -
aws:assertAwsResourceProperty
- Periksa nilai CreatePost EC2RescueBackup masukan-
(Buat postingan- EC2Rescue cadangan) - Jika * CreatePost EC2RescueBackup = benar*
-
aws:executeAwsApi
- Buat AMI cadangan dari instance yang disediakan -
aws:createTags
- Tandai AMI cadangan
-
-
aws:executeAwsApi
- Kembalikan penghapusan awal pada status terminasi untuk volume root dari instance yang disediakan -
aws:changeInstanceState
- Kembalikan status awal dari instance yang disediakan (menjalankan/berhenti) -
aws:deleteStack
- Hapus EC2Rescue CloudFormation tumpukan
Keluaran
runScriptForLinux.Keluaran
runScriptForWindows.Keluaran
preScriptBackup.ImageId
postScriptBackup.ImageId