Otomatisasi Konfigurasi dan Provisi Azure Virtual Machines: Memahami VM Extensions, Custom Script Extension, dan Azure Image Builder
Membuat satu VM lalu mengonfigurasinya dengan tangan mungkin masih wajar. Tetapi ketika jumlahnya puluhan atau ratusan, konfigurasi manual berubah menjadi sumber kesalahan, ketidakkonsistenan, dan keterlambatan. Di sinilah otomatisasi konfigurasi VM Azure menjadi kebutuhan, bukan kemewahan.
Panduan ini membahas tiga alat utama: Azure VM extension untuk tugas pasca-deployment, custom script extension Azure (CSE) untuk menjalankan skrip, dan Azure Image Builder tutorial untuk membangun golden image secara otomatis. Anda juga akan belajar kapan memakai masing-masing, dan bagaimana mengombinasikannya. Materinya relevan untuk AZ-104, AZ-305, dan AZ-400.
1. Pentingnya Otomatisasi Konfigurasi Post-Deployment dan Golden Images
Post-deployment configuration adalah semua pengaturan yang dilakukan setelah VM dibuat: memasang software, mengatur agen monitoring, mengonfigurasi layanan, atau bergabung ke domain.
Masalah konfigurasi manual di skala besar:
Configuration drift: setiap VM sedikit berbeda, dan sulit direproduksi.
Lambat dan rawan kesalahan: langkah manual diulang berkali-kali.
Sulit diaudit: tidak jelas apa yang terpasang di VM mana.
Waktu spin-up lama: instalasi saat boot memperlambat scale-out, padahal kapasitas dibutuhkan segera.
Dua pendekatan utama:
Sebuah golden image adalah image standar yang sudah berisi OS yang di-patch, agen, dan software dasar. Praktik terbaik di skala besar biasanya menggabungkan keduanya, seperti dibahas di bagian akhir.
2. Memahami Azure Virtual Machine Extensions
Pengertian VM Extensions
VM extensions adalah aplikasi kecil yang memberi kemampuan konfigurasi dan otomatisasi pasca-pembuatan pada VM Azure. Extension dapat memasang agen, menjalankan skrip, atau mengonfigurasi fitur tertentu tanpa Anda masuk ke VM.
Extension dikelola sebagai resource ARM (Microsoft.Compute/virtualMachines/extensions), sehingga bisa dipasang lewat Portal, CLI, PowerShell, Bicep, ARM Template, atau Azure Policy.
Jenis Extension Populer
Katalog extension terus berubah. Beberapa extension lama dipensiunkan dan diganti. Misalnya, agen monitoring lama digantikan oleh Azure Monitor Agent. Cek dokumentasi untuk status terbaru sebelum merencanakan.
Cara Kerja VM Agent dan Siklus Hidup Extension
Extension dijalankan oleh VM Agent yang berada di dalam sistem operasi:
Windows: Azure Windows Guest Agent.
Linux: Azure Linux Agent (waagent).
Alur sederhananya:
Siklus hidup extension:
Install dan enable: extension dipasang dan dijalankan.
Update: versi baru diterapkan. Beberapa extension mendukung upgrade versi minor otomatis.
Disable dan uninstall: menghentikan atau menghapus extension.
Konfigurasi dibagi menjadi public settings (terlihat) dan protected settings (dienkripsi, misalnya untuk kredensial atau token).
Persyaratan:
VM Agent harus terpasang dan berjalan. Image Marketplace umumnya sudah menyertakannya. Image kustom harus memasangnya.
VM butuh konektivitas ke endpoint Azure yang diperlukan agent.
Provisioning agent atau extension yang gagal sering dipicu oleh agent yang mati, DNS, atau firewall.
AMA membutuhkan Data Collection Rule (DCR) yang dikaitkan agar data benar-benar dikirim. Untuk skala besar, gunakan Azure Policy agar extension dipasang otomatis pada VM baru. Lokasi log di VM: /var/log/azure/ dan /var/log/waagent.log (Linux), serta C:\WindowsAzure\Logs\ (Windows).
3. Memahami Custom Script Extension (CSE)
Fungsi CSE
Custom Script Extension (CSE) mengunduh dan menjalankan skrip secara otomatis saat atau setelah deployment: PowerShell di Windows atau Bash di Linux. Skrip dijalankan dengan hak tinggi (Local System di Windows, root di Linux).
Contoh penggunaan: memasang web server, mengunduh dan memasang aplikasi, mengonfigurasi file, atau menjalankan inisialisasi satu kali.
Menyimpan dan Mengambil Skrip
Azure Blob Storage: simpan skrip di container. Untuk akses privat, gunakan SAS token atau akses berbasis managed identity (bila didukung versi extension). Beri izin minimum, misalnya Storage Blob Data Reader.
GitHub: URL raw dari repositori publik. Untuk repositori privat, perlu token, dan token tersebut harus berada di protected settings, bukan di skrip.
Inline: perintah singkat dapat diberikan langsung pada commandToExecute atau script (Linux).
Jangan menaruh secret di dalam skrip atau di public settings. Ambil secret saat runtime dari Azure Key Vault dengan managed identity.
Batasan dan perilaku penting:
Timeout: eksekusi skrip dibatasi waktu (sekitar 90 menit). Skrip yang lebih lama akan gagal. Untuk tugas panjang, pindahkan ke image atau mekanisme lain.
Satu CSE per VM: hanya satu instance CSE yang dapat berjalan pada satu waktu. Gabungkan beberapa langkah dalam satu skrip.
Dijalankan saat konfigurasi berubah: CSE tidak otomatis berulang setiap reboot. Untuk memicu ulang, ubah settings atau gunakan opsi seperti forceUpdateTag.
Output terbatas: status hanya menampilkan sebagian kecil output. Lihat log lengkap di VM (misalnya /var/lib/waagent/custom-script/ di Linux dan folder log plugin di C:\WindowsAzure\Logs\Plugins\ di Windows).
Tidak interaktif: skrip tidak boleh meminta input.
Reboot di dalam skrip dapat menyebabkan status gagal atau tidak konsisten. Rencanakan dengan hati-hati.
Ketergantungan eksternal: bila skrip mengunduh paket dari internet, kegagalan jaringan atau repositori ikut menggagalkan provisioning.
Alternatif ringan: untuk Linux, cloud-init (lewat custom data) berjalan saat boot pertama dan sudah terintegrasi di banyak image. Run Command cocok untuk eksekusi sekali jalan, dan VM Applications untuk mendistribusikan aplikasi lewat Compute Gallery.
4. Memahami Azure Image Builder (AIB)
Pengertian
Azure Image Builder (AIB) adalah layanan terkelola yang membangun custom VM image secara otomatis, berbasis HashiCorp Packer. Anda mendeskripsikan build sebagai image template (resource Azure, biasanya dalam JSON atau Bicep), lalu AIB menjalankan prosesnya.
Tiga bagian image template:
Source: image dasar (image Marketplace, versi image di Compute Gallery, atau managed image).
Customize: langkah kustomisasi seperti Shell (Linux), PowerShell (Windows), File (menyalin file), serta restart atau Windows Update.
Distribute: tujuan hasil build, misalnya Azure Compute Gallery, managed image, atau VHD.
AIB menjalankan build pada VM sementara di resource group staging, melakukan generalization otomatis (Sysprep di Windows dan deprovision agent di Linux), lalu mendistribusikan hasilnya. Build menggunakan user-assigned managed identity dengan izin yang diperlukan.
Golden Image vs Konfigurasi Runtime
Mengapa golden image penting untuk VMSS: saat autoscale perlu menambah instance, waktu hingga instance siap melayani sangat menentukan. Instance dari golden image siap dalam waktu singkat, sedangkan instalasi saat boot bisa memakan beberapa menit dan rentan gagal. Itu memengaruhi respons terhadap lonjakan trafik.
Integrasi dengan Azure Compute Gallery
Azure Compute Gallery (sebelumnya Shared Image Gallery) menyimpan dan mendistribusikan image Anda.
Image definition menggambarkan jenis image (OS, generasi, publisher, offer, SKU), dan setiap build menghasilkan image version baru.
Replikasi lintas region agar deployment cepat di banyak region.
Berbagi lintas subscription atau tenant dengan RBAC.
Cocok dengan VMSS dan VM individual, serta dapat dipakai sebagai sumber image berikutnya.
Referensi sertifikasi: AZ-104 menguji pembuatan VM, extension, image, dan Compute Gallery. AZ-305 menguji perancangan solusi compute dan strategi image. AZ-400 menguji otomasi build dan pipeline image.
5. Tabel Matriks Perbandingan Ringkas
Kesimpulan
Azure VM extension, custom script extension Azure, dan Azure Image Builder bukan saingan, melainkan lapisan yang saling melengkapi dalam otomatisasi konfigurasi VM Azure. Extension memasang kemampuan pendukung, CSE menangani penyesuaian skrip, dan AIB memastikan fondasi image yang konsisten dan cepat.
Kapan Memakai Apa
Gunakan AIB bila menjalankan banyak VM atau VMSS, butuh waktu spin-up cepat, ingin standar dan kepatuhan yang konsisten, atau ingin menghilangkan ketergantungan pada sumber eksternal saat boot.
Gunakan Extensions untuk agen yang perlu terpasang dan terkelola terus-menerus (monitoring, keamanan, identity), idealnya dipasang otomatis lewat Azure Policy.
Gunakan CSE atau cloud-init untuk penyesuaian akhir yang spesifik per lingkungan atau instance, dan untuk skenario kecil yang tidak sebanding dengan membangun pipeline image.
.png)
.png)
Posting Komentar