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: