Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Deskripsi
AWSSupport-StartEC2RescueWorkflow
Runbook menjalankan skrip berenkode base64 yang disediakan (Bash atau Powershell) pada instance pembantu yang dibuat untuk menyelamatkan instance Anda. Volume root instance Anda dilampirkan dan dipasang ke instance helper, juga dikenal sebagai instance EC2 Rescue. 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
EC2 Instans 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: RESCUE_ACCOUNT_ID EC2 |
{{global:Account_ID}} |
123456789012 |
$ env: RESCUE_DATE EC2 |
{{global:tanggal}} |
2018-09-07 |
$ env: RESCUE_DATE_TIME EC2 |
{{global:tanggal_waktu}} |
2018-09-07_18.09.59 |
$ env: EC2 MENYELAMATKAN_ RW_DIR EC2 |
EC2Rescue untuk jalur instalasi Windows |
C:\Program File\ Amazon\ EC2 Penyelamatan |
$ env: EC2 MENYELAMATKAN_ RW_DIR EC2 |
EC2Rescue untuk jalur instalasi Windows |
C:\Program File\ Amazon\ EC2 Penyelamatan |
$env: RESCUE_EXECUTION_ID EC2 |
{{Automation:Execution_ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
$env: RESCUE_OFFLINE_CURRENT_CONTROL_SET EC2 |
Offline Windows Kontrol Saat Ini Set jalur |
|
$ env: RESCUE_OFFLINE_DRIVE EC2 |
Huruf drive Windows offline |
D:\ |
$ env: RESCUE_OFFLINE_EBS_DEVICE EC2 |
Perangkat EBS volume root offline |
xvdf |
$env: RESCUE_OFFLINE_KERNEL_VER EC2 |
Versi Kernel Windows Offline |
6.1.7601.24214 |
$env: RESCUE_OFFLINE_OS_ARCHITECTURE EC2 |
Arsitektur Windows Offline |
AMD64 |
$env: RESCUE_OFFLINE_OS_CAPTION EC2 |
Keterangan Windows Offline |
Pusat Data Windows Server 2008 R2 |
$ env: RESCUE_OFFLINE_OS_TYPE EC2 |
Jenis OS Windows Offline |
Server |
$env: RESCUE_OFFLINE_PROGRAM_FILES_DIR EC2 |
Jalur direktori file Program Windows Offline |
D:\Program Berkas |
$env: RESCUE_OFFLINE_PROGRAM_FILES_X86_DIR EC2 |
Offline Windows Program file jalur direktori x86 |
D:\Program Berkas (x86) |
$env: RESCUE_OFFLINE_REGISTRY_DIR EC2 |
Jalur direktori registri Windows offline |
D:\Windows\System32\config |
$env: RESCUE_OFFLINE_SYSTEM_ROOT EC2 |
Jalur direktori root sistem Windows offline |
D:\Windows |
$ env: RESCUE_REGION EC2 |
{{global:wilayah}} |
us-west-1 |
$env: RESCUE_S3_BUCKET EC2 |
{{S3BucketName }} |
amzn-s3-demo-ember |
$env: RESCUE_S3_AWALAN EC2 |
{{S3Awalan}} |
myprefix/ |
$env: RESCUE_SOURCE_INSTANCE EC2 |
{{ InstanceId }} |
abcdefgh123456789 |
$ skrip: EC2 RESCUE_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:tanggal}} |
2018-09-07 |
EC2RESCUE_DATE_TIME |
{{global:tanggal_waktu}} |
2018-09-07_18.09.59 |
EC2MENYELAMATKAN_ EC2 RL_DIR |
EC2Penyelamatan untuk jalur instalasi Linux |
/usr/local/ec2rl-1.1.3 |
EC2RESCUE_EXECUTION_ID |
{{Automation:Execution_ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
EC2RESCUE_OFFLINE_DEVICE |
Nama perangkat offline |
/dev/xvdf1 |
EC2RESCUE_OFFLINE_EBS_DEVICE |
Perangkat EBS 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:wilayah}} |
us-west-1 |
EC2RESCUE_S3_BUCKET |
{{S3BucketName }} |
amzn-s3-demo-ember |
EC2RESCUE_S3_AWALAN |
{{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 nama AMI cadangan.
-
AutomationAssumeRole
Tipe: String
Deskripsi: (Opsional) Nama Sumber Daya Amazon (ARN) 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 InstanceId setelah menjalankan skrip, sebelum memulainya. AMI akan bertahan setelah otomatisasi selesai. Anda bertanggung jawab untuk mengamankan akses ke AMI, atau menghapusnya. -
CreatePreEC2RescueBackup
Tipe: String
Nilai yang valid: benar/salah
Bawaan: salah
Deskripsi: (Opsional) Setel
true
untuk membuat AMI InstanceId sebelum menjalankan skrip. AMI akan bertahan setelah otomatisasi selesai. Anda bertanggung jawab untuk mengamankan akses ke AMI, atau menghapusnya. -
EC2RescueInstanceType
Tipe: String
Nilai yang valid: t2.small | t2.medium | t2.large
Default: t2.small
Deskripsi: (Opsional) Jenis EC2 instans untuk instance EC2 Rescue.
-
InstanceId
Tipe: String
Deskripsi: (Wajib) ID EC2 instans Anda. PENTING: 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: (Diperlukan) 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 contoh EC2 Penyelamatan. Secara default, subnet yang sama di mana instance yang disediakan berada digunakan. PENTING: Jika Anda menyediakan subnet kustom, subnet harus berada di Availability Zone yang sama InstanceId, dan harus mengizinkan akses ke endpoint SSM.
-
UniqueId
Tipe: String
Default: {{Automation:Execution_ID}}
Deskripsi: (Opsional) Pengidentifikasi unik untuk otomatisasi.
Izin IAM yang diperlukan
AutomationAssumeRole
Parameter memerlukan tindakan berikut untuk menggunakan runbook dengan sukses.
Disarankan pengguna yang menjalankan otomatisasi memiliki kebijakan terkelola IAM SSMAutomationPeran Amazon 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 adalah 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 Rescue EC2 CloudFormation -
(Buat VPC baru) - Jika * SubnetId = CreateNew VPC* kemudian jalankan
aws:createStack
untuk menyebarkan tumpukan Rescue EC2 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 EC2 Penyelamatan CloudFormation
-
-
aws:invokeLambdaFunction
- Lakukan validasi masukan tambahan -
aws:executeAwsApi
- Perbarui CloudFormation tumpukan EC2 Rescue untuk membuat instance pembantu EC2 Rescue -
aws:waitForAwsResourceProperty
- Tunggu pembaruan CloudFormation tumpukan EC2 Rescue selesai -
aws:executeAwsApi
- Jelaskan output CloudFormation tumpukan EC2 Rescue untuk mendapatkan ID instans pembantu EC2 Rescue -
aws:waitForAwsResourceProperty
- Tunggu instance pembantu EC2 Rescue 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 EC2 RescueBackup masukan-
(Buat cadangan EC2 pra-Penyelamatan) - Jika * CreatePre EC2 RescueBackup = benar*
-
aws:executeAwsApi
- Buat cadangan AMI dari instance yang disediakan -
aws:createTags
- Tandai cadangan AMI
-
-
aws:runCommand
- Instal EC2 Rescue pada contoh pembantu EC2 Rescue -
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 EC2 Rescue 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 EC2 Rescue helper sebagai */dev/sdf*aws:sleep
- Tidur 10 detikaws:runCommand
- Jalankan skrip offline yang disediakan di Bash
-
-
aws:changeInstanceState
- Hentikan contoh pembantu EC2 Penyelamatan -
aws:changeInstanceState
- Paksa menghentikan contoh pembantu EC2 Penyelamatan -
aws:executeAwsApi
- Lepaskan volume root dari instance EC2 Rescue helper -
aws:executeAwsApi
- Pasang kembali volume root ke instance yang disediakan -
aws:assertAwsResourceProperty
- Periksa nilai CreatePost EC2 RescueBackup masukan-
(Buat cadangan pasca- EC2 Penyelamatan) - Jika * CreatePost EC2 RescueBackup = benar*
-
aws:executeAwsApi
- Buat cadangan AMI dari instance yang disediakan -
aws:createTags
- Tandai cadangan AMI
-
-
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 CloudFormation tumpukan EC2 Rescue
Keluaran
runScriptForLinux.Keluaran
runScriptForWindows.Keluaran
preScriptBackup.ImageId
postScriptBackup.ImageId