AWSSupport-MigrateXenToNitroLinux - 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-MigrateXenToNitroLinux

Deskripsi

AWSSupport-MigrateXenToNitroLinuxRunbook mengkloning, menyiapkan, dan memigrasikan instans Linux Xen Amazon Elastic Compute Cloud (Amazon EC2) ke jenis instans. Nitro Runbook ini menyediakan dua opsi untuk jenis operasi:

  • Clone&Migrate- Alur kerja opsi ini terdiri dari Pemeriksaan Pendahuluan, Pengujian, dan Clone&Migratefase. Alur kerja dijalankan menggunakan AWSSupport-CloneXenEC2InstanceAndMigrateToNitro runbook.

  • FullMigration- Opsi ini menjalankan Clone&Migrate alur kerja dan kemudian melakukan langkah tambahan Ganti volume Amazon EBS root.

penting

Menggunakan runbook ini menimbulkan biaya ke akun Anda untuk waktu berjalan instans Amazon EC2, pembuatan volume Amazon Elastic Block Store (Amazon EBS), dan. AMIs Untuk detail selengkapnya, lihat Harga Amazon EC2 dan Harga Amazon EBS.

Pemeriksaan awal

Otomatisasi melakukan pemeriksaan awal berikut sebelum melanjutkan migrasi. Jika salah satu pemeriksaan gagal, otomatisasi berakhir. Fase ini hanya bagian dari Clone&Migrate alur kerja.

  • Memeriksa apakah instance target sudah merupakan tipe Nitro instance.

  • Memeriksa apakah opsi pembelian Instans Spot digunakan untuk instance target.

  • Memeriksa apakah volume penyimpanan instance dilampirkan ke instance target.

  • Memverifikasi target misalnya sistem operasi (OS) adalah Linux.

  • Memeriksa apakah instans target adalah bagian dari grup Penskalaan Otomatis Amazon EC2. Jika itu adalah bagian dari grup Auto Scaling, otomatisasi memverifikasi bahwa instance berada dalam keadaan. standby

  • Memverifikasi bahwa instance dikelola olehAWS Systems Manager.

Pengujian

Otomatisasi membuat Amazon Machine Image (AMI) dari instance target dan meluncurkan instance pengujian dari yang baru dibuatAMI. Fase ini adalah bagian dari hanya Clone&Migrate alur kerja.

Jika instans pengujian melewati semua pemeriksaan status, otomatisasi akan dijeda dan persetujuan dari prinsipal yang ditunjuk diminta melalui pemberitahuan Amazon Simple Notification Service (Amazon SNS). Jika persetujuan diberikan, otomatisasi mengakhiri instance pengujian, menghentikan instance target, dan melanjutkan migrasi, sementara yang baru AMI dibuat dibatalkan pendaftaran di akhir alur kerja. Clone&Migrate

catatan

Sebelum memberikan persetujuan, sebaiknya verifikasi bahwa semua aplikasi yang berjalan pada instance target telah ditutup dengan anggun.

Kloning dan Migrasi

Otomatisasi membuat yang lain AMI dari instance target, dan meluncurkan instance baru untuk diubah ke jenis Nitro instance. Otomatisasi melengkapi prasyarat berikut sebelum melanjutkan migrasi. Jika salah satu pemeriksaan gagal, otomatisasi berakhir. Fase ini juga hanya bagian dari Clone&Migrate alur kerja.

  • Menghidupkan atribut jaringan yang disempurnakan (ENA).

  • Menginstal driver ENA versi terbaru jika belum diinstal, atau memperbarui versi driver ENA ke versi terbaru. Untuk memastikan kinerja jaringan maksimum, memperbarui ke versi driver ENA terbaru diperlukan jika jenis Nitro instans adalah generasi ke-6.

  • Memverifikasi bahwa modul NVMe diinstal. Jika modul diinstal, otomatisasi memverifikasi bahwa modul dimuat. initramfs

  • Menganalisis /etc/fstab dan mengganti entri dengan nama perangkat blok (/dev/sd*atau/dev/xvd*) dengan UUID masing-masing. Sebelum memodifikasi konfigurasi, otomatisasi membuat cadangan file di jalur/etc/fstab*.

  • Mematikan penamaan antarmuka yang dapat diprediksi dengan menambahkan net.ifnames=0 opsi ke GRUB_CMDLINE_LINUX baris dalam /etc/default/grub file jika ada, atau ke kernel di/boot/grub/menu.lst.

  • Menghapus /etc/udev/rules.d/70-persistent-net.rules file jika ada. Sebelum menghapus file, otomatisasi membuat cadangan file di jalur/etc/udev/rules.d/.

Setelah memverifikasi semua persyaratan, jenis instans diubah ke jenis Nitro instans yang Anda tentukan. Otomatisasi menunggu instance yang baru dibuat untuk meneruskan semua pemeriksaan status setelah memulai sebagai jenis Nitro instans. Otomatisasi kemudian menunggu persetujuan dari prinsipal yang ditunjuk untuk membuat instance yang berhasil AMI diluncurkan. Nitro Jika persetujuan ditolak, otomatisasi berakhir, membiarkan instance yang baru dibuat berjalan, dan instance target tetap dihentikan.

Ganti Volume Amazon EBS root

Jika Anda memilih FullMigration sebagaiOperationType, otomatisasi akan memigrasikan instans Amazon EC2 target ke jenis Nitro instans yang Anda tentukan. Otomatisasi meminta persetujuan dari prinsipal yang ditunjuk untuk mengganti volume akar Amazon EBS dari instans Amazon EC2 target dengan volume akar instans Amazon EC2 yang dikloning. Setelah migrasi berhasil, instans Amazon EC2 yang dikloning dihentikan. Jika otomatisasi gagal, volume root Amazon EBS asli dilampirkan ke instans Amazon EC2 target. Jika volume Amazon EBS root yang dilampirkan ke instans Amazon EC2 target memiliki tag dengan aws: awalan yang diterapkan, FullMigration operasi tidak didukung.

Sebelum Anda mulai

Instance target harus memiliki akses internet outbound. Ini untuk mengakses repositori untuk driver dan dependensi sepertikernel-devel,,,,gcc,patch,, rpm-build wgetdracut, make dan. linux-headers unzip Manajer paket digunakan jika diperlukan.

Topik Amazon SNS diperlukan untuk mengirim pemberitahuan untuk persetujuan dan pembaruan. Untuk informasi selengkapnya tentang membuat topik Amazon SNS, lihat Membuat topik Amazon SNS di Panduan Pengembang Layanan Pemberitahuan Sederhana Amazon.

Runbook ini mendukung sistem operasi berikut:

  • RHEL7.x - 8.5

  • Amazon Linux (2018.03), Amazon Linux 2

  • Debian Server

  • Ubuntu Server 18.04 LTS, 20.04 LTS, dan 20.10 STR

  • SUSE Linux Enterprise Server(SUSE12SP5, SUSE15SP2)

Jalankan Otomasi ini (konsol)

Jenis dokumen

Otomatisasi

Pemilik

Amazon

Platform

Linux

Parameter

  • AutomationAssumeRole

    Jenis: String

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

  • Pengakuan

    Jenis: String

    Deskripsi: (Diperlukan) Baca rincian lengkap dari tindakan yang dilakukan oleh runbook otomatisasi ini, dan masukkan Yes, I understand and acknowledge untuk melanjutkan dengan menggunakan runbook.

  • Persetujuan

    Jenis: String

    Deskripsi: (Diperlukan) ARN peran IAM, pengguna, atau nama pengguna yang dapat memberikan persetujuan untuk otomatisasi. Anda dapat menentukan maksimal 10 pemberi persetujuan.

  • DeleteResourcesOnFailure

    Jenis: Boolean

    Deskripsi: (Opsional) Menentukan apakah instans yang baru AMI dibuat dan migrasi akan dihapus jika otomatisasi gagal.

    Nilai yang valid: Benar | Salah

    Default: BETUL

  • MinimumRequiredApprovals

    Jenis: String

    Deskripsi: (Opsional) Jumlah minimum persetujuan yang diperlukan untuk terus menjalankan otomatisasi saat persetujuan diminta.

    Nilai yang valid: 1-10

    Default: 1

  • NitroInstanceType

    Jenis: String

    Deskripsi: (Diperlukan) Jenis Nitro instans yang ingin Anda ubah instans. Jenis instans yang didukung termasuk M5, M6, C5, C6, R5, R6, dan T3.

    Default: m5.xlarge

  • OperationType

    Jenis: String

    Deskripsi: (Diperlukan) Operasi yang ingin Anda lakukan. FullMigrationOpsi melakukan tugas yang sama dengan Clone&Migrate dan juga menggantikan volume root instance target Anda. Volume root dari instance target diganti dengan volume root dari instance yang baru dibuat setelah proses migrasi. FullMigrationOperasi tidak mendukung volume root yang ditentukan oleh Logical Volume Manager (LVM).

    Nilai yang valid: Clone&Migrate | FullMigration

  • SNS TopicArn

    Jenis: String

    Deskripsi: (Diperlukan) ARN topik Amazon SNS untuk pemberitahuan persetujuan. Topik Amazon SNS digunakan untuk mengirim pemberitahuan persetujuan yang diperlukan selama otomatisasi.

  • TargetInstanceId

    Jenis: String

    Deskripsi: (Diperlukan) ID instans Amazon EC2 untuk bermigrasi.

Izin IAM yang diperlukan

AutomationAssumeRoleParameter membutuhkan tindakan berikut untuk menggunakan runbook dengan sukses.

  • ssm:DescribeAutomationExecutions

  • ssm:StartAutomationExecution

  • ssm:DescribeInstanceInformation

  • ssm:DescribeAutomationStepExecutions

  • ssm:SendCommand

  • ssm:GetAutomationExecution

  • ssm:ListCommands

  • ssm:ListCommandInvocations

  • ec2:DescribeInstances

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DescribeImages

  • ec2:CreateImage

  • ec2:RunInstances

  • ec2:DescribeInstanceStatus

  • ec2:DeregisterImage

  • ec2:DeleteSnapshot

  • ec2:TerminateInstances

  • ec2:StartInstances

  • ec2:DescribeKeyPairs

  • ec2:StopInstances

  • kms:CreateGrant*

  • kms:ReEncrypt

  • ec2:ModifyInstanceAttribute

  • autoscaling:DescribeAutoScalingInstances

  • iam:passRole

  • iam:ListRoles

Langkah Dokumen

  • startOfPreliminaryChecksBranch- Cabang ke alur kerja pemeriksaan awal.

  • getTargetInstanceProperties- Mengumpulkan rincian dari contoh target.

  • checkIfNitroInstanceTypeIsSupportedInAZ- Menentukan apakah jenis instans Amazon EC2 target didukung di Availability Zone yang sama dengan instans target.

  • getXenInstanceTypeDetails- Mengumpulkan rincian tentang jenis contoh sumber.

  • checkIfInstanceHypervisorIsNitroAlready- Memeriksa apakah instance target sudah berjalan sebagai tipe Nitro instance.

  • checkIfTargetInstanceLifecycleIsSpot- Memeriksa apakah opsi pembelian dari instance target adalah Spot.

  • checkIfOperatingSystemIsLinux- Memeriksa apakah target contoh OS adalah Linux.

  • verifySSMConnectivityForTargetInstance- Memverifikasi bahwa contoh target dikelola oleh Systems Manager.

  • checkIfEphemeralVolumeAreSupported- Memeriksa apakah jenis instance saat ini dari contoh target mendukung volume toko contoh.

  • verifyIfTargetInstanceHasEphemeralVolumesAttached- Memeriksa apakah instance target memiliki volume penyimpanan instance yang terpasang.

  • checkIfRootVolumeIsEBS- Memeriksa apakah jenis volume root instance target adalah EBS.

  • checkIfTargetInstanceIsInASG- Memeriksa apakah instance target adalah bagian dari grup Auto Scaling.

  • endOfPreliminaryChecksBranch- Akhir dari cabang pemeriksaan awal.

  • startOfTestBranch- Cabang ke alur kerja Pengujian.

  • createTestImage- Membuat tes AMI dari contoh target.

  • launchTestInstanceInSameSubnet- Meluncurkan instance pengujian dari pengujian AMI menggunakan konfigurasi yang sama dengan instance target.

  • cleanupTestInstance- Mengakhiri contoh uji.

  • endOfTestBranch- Akhir cabang Pengujian.

  • checkIfTestingBranchSucceeded- Memeriksa status cabang Pengujian.

  • approvalToStopTargetInstance- Menunggu persetujuan dari kepala sekolah yang ditunjuk untuk menghentikan contoh target.

  • stopTargetEC2Instance- Menghentikan contoh target.

  • forceStopTargetEC2Instance- Force menghentikan instance target hanya jika langkah sebelumnya gagal menghentikan instance.

  • startOfCloneAndMigrateBranch- Cabang ke Clone&Migrate alur kerja.

  • createBackupImage- Menciptakan AMI contoh target untuk berfungsi sebagai cadangan.

  • launchInstanceInSameSubnet- Meluncurkan instance baru dari cadangan AMI menggunakan konfigurasi yang sama dengan instance sumber.

  • waitForClonedInstanceToPassStatusChecks- Menunggu instance yang baru dibuat untuk lulus semua pemeriksaan status.

  • verifySSMConnectivityForClonedInstance- Memverifikasi bahwa instance yang baru dibuat dikelola oleh Systems Manager.

  • checkAndInstallENADrivers- Memeriksa apakah driver ENA diinstal pada instance yang baru dibuat, dan menginstal driver jika diperlukan.

  • checkAndAddNVMEDrivers- Memeriksa apakah driver NVMe diinstal pada instance yang baru dibuat, dan menginstal driver jika diperlukan.

  • checkAndModifyFSTABEntries- Memeriksa apakah nama perangkat digunakan /etc/fstab dan menggantinya dengan UUID jika diperlukan.

  • stopClonedInstance- Menghentikan instance yang baru dibuat.

  • forceStopClonedInstance- Force menghentikan instance yang baru dibuat hanya jika langkah sebelumnya gagal menghentikan instance.

  • checkENAAttributeForClonedInstance- Memeriksa apakah atribut jaringan yang disempurnakan diaktifkan untuk instance yang baru dibuat.

  • setNitroInstanceTypeForClonedInstance- Mengubah jenis instance untuk instance yang baru dibuat ke jenis Nitro instance yang Anda tentukan.

  • startClonedInstance- Memulai instance yang baru dibuat yang tipe instansinya Anda ubah.

  • approvalForCreatingImageAfterDriversInstallation- Jika instans berhasil dimulai sebagai jenis Nitro instans, otomatisasi menunggu persetujuan dari prinsipal yang diperlukan. Jika persetujuan diberikan, AMI dibuat untuk digunakan sebagai EmasAMI.

  • createImageAfterDriversInstallation- Menciptakan AMI untuk digunakan sebagai EmasAMI.

  • endOfCloneAndMigrateBranch- Akhir Clone&Migrate cabang.

  • cleanupTestImage- Deregisters yang AMI dibuat untuk pengujian.

  • failureHandling- Memeriksa apakah Anda memilih untuk menghentikan sumber daya pada kegagalan.

  • onFailureTerminateClonedInstance- Mengakhiri instance yang baru dibuat jika otomatisasi gagal.

  • onFailurecleanupTestImage- Deregisters yang AMI dibuat untuk pengujian.

  • onFailureApprovalToStartTargetInstance- Jika otomatisasi gagal, tunggu persetujuan dari prinsipal yang ditunjuk untuk memulai instance target.

  • onFailureStartTargetInstance- Jika otomatisasi gagal, mulai contoh target.

Izin IAM yang diperlukan

AutomationAssumeRoleParameter membutuhkan tindakan berikut untuk menggunakan runbook dengan sukses.

  • ssm:DescribeAutomationExecutions

  • ssm:DescribeInstanceInformation

  • ssm:DescribeAutomationStepExecutions

  • ssm:SendCommand

  • ssm:GetAutomationExecution

  • ssm:ListCommands

  • ssm:ListCommandInvocations

  • ec2:DescribeInstances

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DescribeImages

  • ec2:CreateImage

  • ec2:RunInstances

  • ec2:DescribeInstanceStatus

  • ec2:DeregisterImage

  • ec2:DeleteSnapshot

  • ec2:TerminateInstances

  • ec2:StartInstances

  • ec2:DescribeKeyPairs

  • ec2:StopInstances

  • kms:CreateGrant*

  • kms:ReEncrypt

  • ec2:ModifyInstanceAttribute

  • ec2:DetachVolume

  • ec2:AttachVolume

  • ec2:DescribeVolumes

  • autoscaling:DescribeAutoScalingInstances

  • iam:PassRole

  • ec2:CreateTags

  • cloudformation:DescribeStackResources

Langkah Dokumen

FullMigrationAlur kerja menjalankan langkah yang sama dengan Clone&Migrate alur kerja dan juga melakukan langkah-langkah berikut:

  • checkConcurrency- Memverifikasi bahwa hanya ada satu otomatisasi runbook ini yang menargetkan instans Amazon EC2 yang Anda tentukan. Jika runbook menemukan otomatisasi lain yang sedang berlangsung menargetkan instance yang sama, otomatisasi akan berakhir.

  • getTargetInstanceProperties- Mengumpulkan rincian dari contoh target.

  • checkRootVolumeTags- Menentukan apakah volume root instans Amazon EC2 target berisi tag yang AWS dicadangkan.

  • cloneTargetInstanceAndMigrateToNitro- Memulai otomatisasi anak menggunakan AWS-CloneXenInstanceToNitro runbook.

  • branchOnTheOperationType- Cabang pada nilai yang Anda tentukan untuk OperationType parameter.

  • getClonedInstanceId- Mengambil ID dari instance yang baru diluncurkan dari otomatisasi anak.

  • checkIfRootVolumeIsBasedOnLVM- Menentukan apakah partisi root dikelola oleh LVM.

  • branchOnTheRootVolumeLVMStatus- Jika persetujuan minimum yang diperlukan diterima dari prinsipal, otomatisasi berlanjut dengan penggantian volume root.

  • manualInstructionsInCaseOfLVM- Jika volume root dikelola oleh LVM, otomatisasi mengirimkan output yang berisi instruksi untuk cara mengganti volume root secara manual.

  • startOfReplaceRootEBSVolumeBranch- Mulai alur kerja cabang Ganti Root EBS Volume.

  • checkIfTargetInstanceIsManagedByCFN- Menentukan apakah contoh target dikelola oleh AWS CloudFormation tumpukan.

  • branchOnCFNStackStatus- Cabang berdasarkan status CloudFormation tumpukan.

  • approvalForRootVolumesReplacement(WithCFN)- Jika instance target diluncurkan olehCloudFormation, otomatisasi menunggu persetujuan setelah instans yang baru diluncurkan berhasil dimulai sebagai jenis Nitro instans. Ketika persetujuan diberikan, volume Amazon EBS dari instans target diganti dengan volume root dari instans yang baru diluncurkan.

  • approvalForRootVolumesReplacement- Menunggu persetujuan setelah instance yang baru diluncurkan berhasil dimulai sebagai jenis Nitro instance. Ketika persetujuan diberikan, volume Amazon EBS dari instans target diganti dengan volume root dari instans yang baru diluncurkan.

  • assertIfTargetEC2InstanceIsStillStopped- Memverifikasi bahwa instance target dalam stopped keadaan sebelum mengganti volume root.

  • stopTargetInstanceForRootVolumeReplacement- Jika instance target berjalan, otomatisasi menghentikan instance sebelum mengganti volume root.

  • forceStopTargetInstanceForRootVolumeReplacement- Angkatan menghentikan contoh target jika langkah sebelumnya gagal.

  • stopClonedInstanceForRootVolumeReplacement- Menghentikan instans yang baru dibuat sebelum mengganti volume Amazon EBS.

  • forceStopClonedInstanceForRootVolumeReplacement- Force menghentikan instance yang baru dibuat jika langkah sebelumnya gagal.

  • getBlockDeviceMappings- Mengambil pemetaan perangkat blok untuk target dan instance yang baru dibuat.

  • replaceRootEbsVolumes- Menggantikan volume root dari instance target dengan volume root dari instance yang baru dibuat.

  • EndOfReplaceRootEBSVolumeBranch- Akhir Ganti Akar EBS Volume alur kerja cabang.

  • checkENAAttributeForTargetInstance- Memeriksa apakah atribut jaringan yang disempurnakan (ENA) diaktifkan untuk instans Amazon EC2 target.

  • enableENAAttributeForTargetInstance- Mengaktifkan atribut ENA untuk instans Amazon EC2 target jika diperlukan.

  • setNitroInstanceTypeForTargetInstance- Mengubah instance target ke jenis Nitro instance yang Anda tentukan.

  • replicateRootVolumeTags- Mereplikasi tag pada volume Amazon EBS root dari instans Amazon EC2 target.

  • startTargetInstance- Memulai instans Amazon EC2 target setelah mengubah jenis instans.

  • onFailureStopTargetEC2Instance- Menghentikan instans Amazon EC2 target jika gagal memulai sebagai jenis Nitro instans.

  • onFailureForceStopTargetEC2Instance- Paksa menghentikan instans Amazon EC2 target jika langkah sebelumnya gagal.

  • OnFailureRevertOriginalInstanceType- Mengembalikan instans Amazon EC2 target ke jenis instans asli jika instans target gagal dimulai sebagai Nitro jenis instans.

  • onFailureRollbackRootVolumeReplacement- Mengembalikan semua perubahan yang dilakukan oleh replaceRootEbsVolumes langkah jika diperlukan.

  • onFailureApprovalToStartTargetInstance- Menunggu persetujuan pokok yang ditunjuk untuk memulai instans Amazon EC2 target setelah mengembalikan perubahan sebelumnya.

  • onFailureStartTargetInstance- Memulai instans Amazon EC2 target.

  • terminateClonedEC2Instance- Mengakhiri instans Amazon EC2 yang dikloning setelah mengganti volume Amazon EBS root.