Menangani reboot saat menjalankan perintah - AWS Systems Manager

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

Menangani reboot saat menjalankan perintah

Jika Anda menggunakanRun Command, kemampuan AWS Systems Manager, untuk menjalankan skrip yang me-reboot node terkelola, kami sarankan Anda menentukan kode keluar dalam skrip Anda. Jika Anda mencoba me-reboot node dari skrip dengan menggunakan beberapa mekanisme lain, status eksekusi skrip mungkin tidak diperbarui dengan benar, bahkan jika reboot adalah langkah terakhir dalam skrip Anda. Untuk node terkelola Windows, Anda tentukan exit 3010 dalam skrip Anda. Untuk Linux dan node macOS terkelola, Anda tentukanexit 194. Kode keluar menginstruksikan AWS Systems Manager Agent (SSM Agent) untuk me-reboot node yang dikelola, dan kemudian memulai ulang skrip setelah reboot selesai. Sebelum memulai reboot, SSM Agent menginformasikan layanan Systems Manager di cloud bahwa komunikasi akan terganggu selama reboot server.

catatan

Skrip reboot tidak dapat menjadi bagian dari aws:runDocument plugin. Jika dokumen berisi skrip reboot dan dokumen lain mencoba menjalankan dokumen itu melalui aws:runDocument plugin, SSM Agent mengembalikan kesalahan.

Buat skrip idempoten

Saat mengembangkan skrip yang me-reboot node terkelola, buat skrip idempoten sehingga eksekusi skrip berlanjut di tempat yang ditinggalkannya setelah reboot. Skrip idempoten mengelola status dan memvalidasi apakah tindakan dilakukan atau tidak. Hal ini mencegah langkah untuk dijalankan beberapa kali ketika hanya dimaksudkan untuk dijalankan satu kali.

Berikut adalah contoh garis besar skrip idempoten yang me-reboot node terkelola beberapa kali.

$name = Get current computer name If ($name –ne $desiredName) { Rename computer exit 3010 } $domain = Get current domain name If ($domain –ne $desiredDomain) { Join domain exit 3010 } If (desired package not installed) { Install package exit 3010 }

Contoh

Contoh skrip berikut menggunakan kode keluar untuk memulai ulang node terkelola. Contoh Linux menginstal pembaruan paket di Amazon Linux, dan kemudian memulai ulang node. Windows ServerContoh menginstal Telnet-Client pada node, dan kemudian restart.

Amazon Linux
#!/bin/bash yum -y update needs-restarting -r if [ $? -eq 1 ] then exit 194 else exit 0 fi
Windows
$telnet = Get-WindowsFeature -Name Telnet-Client if (-not $telnet.Installed) { # Install Telnet and then send a reboot request to SSM Agent. Install-WindowsFeature -Name "Telnet-Client" exit 3010 }