Menggunakan cloud-init untuk memperbarui dan menginstal paket pada VM Linux di Azure

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan rencanakan yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

Berlaku untuk: ✔️ Mesin Virtual Linux ✔️ Set skala fleksibel

Artikel ini menunjukkan cara menggunakan cloud-init untuk memperbarui paket pada komputer virtual (VM) linux atau kumpulan skala komputer virtual pada waktu provisi di Azure. Skrip cloud-init ini berjalan pada boot pertama setelah sumber daya disediakan oleh Azure. Untuk mengetahui informasi selengkapnya tentang cara kerja cloud-init secara asli di Azure dan distro Linux yang didukung, lihat gambaran umum cloud-init

Memperbarui VM dengan cloud-init

Untuk tujuan keamanan, Anda mungkin ingin mengonfigurasi VM untuk menerapkan pembaruan terbaru pada boot pertama. Karena cloud-init berfungsi di berbagai distro Linux, tidak perlu menentukan apt, zypper atau yum untuk manajer paket. Sebaliknya, Anda menentukan package_upgrade dan membiarkan proses cloud-init menentukan mekanisme yang sesuai untuk distro yang digunakan.

Untuk contoh ini, kita akan menggunakan Azure Cloud Shell. Untuk melihat proses peningkatan versi, buat file bernama cloud_init_upgrade.txt dan tempel konfigurasi berikut. Anda dapat menggunakan editor apa pun yang diinginkan. Pastikan bahwa seluruh file cloud-init disalin dengan benar, terutama baris pertama.

Salin teks di bawah dan tempel ke dalam file cloud_init_upgrade.txt. Pastikan bahwa seluruh file cloud-init disalin dengan benar, terutama baris pertama.

#cloud-config
package_upgrade: true
packages:
- httpd

Sebelum menyebarkan, Anda perlu membuat grup sumber daya dengan perintah az group create. Grup sumber daya Azure adalah kontainer logis tempat sumber daya Azure disebarkan dan dikelola. Contoh berikut ini menampilkan cara membuat grup sumber daya bernama myResourceGroup di lokasi eastus.

az group create --name myResourceGroup --location eastus

Sekarang, buat VM dengan az vm create dan tentukan file cloud-init dengan parameter --custom-data sebagai berikut:

az vm create \
  --resource-group myResourceGroup \
  --name vmName \
  --image imageCIURN \
  --custom-data cloud_init_upgrade.txt \
  --admin-username azureuser \
  --generate-ssh-keys

Catatan

Ganti nilai myResourceGroup, vmName, dan imageCIURN yang sesuai. Pastikan gambar dengan Cloud-init dipilih.

SSH ke alamat IP publik VM Anda yang ditunjukkan dalam output dari perintah sebelumnya. Masukkan pengguna Anda sendiri dan publicIpAddress sebagai berikut:

ssh <user>@<publicIpAddress>

Jalankan alat manajemen paket dan periksa pembaruan:

  • Jalankan perintah berikut untuk mengonfirmasi bahwa tidak ada pembaruan yang tertunda
sudo yum check-update

Saat cloud-init memeriksa dan menginstal pembaruan pada boot, seharusnya tidak ada pembaruan tambahan yang diterapkan.

  • Anda dapat melihat proses pembaruan, jumlah paket yang diubah serta penginstalan httpd dengan menjalankan perintah berikut dan meninjau output.
sudo yum history
ID     | Command line                                | Date and time    | Action(s)      | Altered
--------------------------------------------------------------------------------------------------
     3 | -y install httpd                            | 2022-02-18 18:30 | Install        |    7
     2 | -y upgrade                                  | 2022-02-18 18:23 | I, O, U        |  321 EE
     1 |                                             | 2021-02-04 19:20 | Install        |  496 EE

Langkah berikutnya

Untuk contoh perubahan konfigurasi cloud-init tambahan, lihat artikel berikut ini: