Otomatisasi Konfigurasi dan Provisi Azure Virtual Machines: Memahami VM Extensions, Custom Script Extension, dan Azure Image Builder

Daftar Isi

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:

Pendekatan

Cara Kerja

Alat Azure

Runtime configuration

VM dibuat dari image generik, lalu dikonfigurasi saat atau setelah deployment

VM Extensions, Custom Script Extension, cloud-init

Golden image (immutable)

Konfigurasi dibakar ke dalam image, VM langsung siap saat dibuat

Azure Image Builder, Packer, Azure Compute Gallery

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

Extension

Fungsi

Azure Monitor Agent (AMA)

Mengumpulkan metrik dan log dari VM ke Azure Monitor dan Log Analytics (menggantikan Log Analytics agent lama yang sudah dipensiunkan)

Custom Script Extension

Mengunduh dan menjalankan skrip kustom

Anti-malware dan security extensions

Misalnya Microsoft Antimalware dan agen Microsoft Defender for Endpoint

Azure Key Vault VM extension

Menyegarkan sertifikat dari Key Vault secara otomatis ke VM

Domain Join extension

Menggabungkan VM Windows ke domain Active Directory

Microsoft Entra login extension

Memungkinkan login ke VM memakai identitas Entra ID

Azure Disk Encryption

Mengaktifkan enkripsi disk di dalam OS

PowerShell DSC extension

Menerapkan konfigurasi deklaratif pada Windows

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

Aspek

Konfigurasi Runtime (CSE dan Extensions)

Golden Image (AIB)

Waktu provisioning

Lebih lama, instalasi terjadi saat VM dibuat

Cepat, semuanya sudah ada di image

Konsistensi

Dapat bervariasi bila ada kegagalan saat boot

Seragam dan immutable

Keandalan scale-out

Bergantung pada repositori atau jaringan saat boot

Tidak bergantung pada sumber eksternal saat runtime

Keamanan dan kepatuhan

Sulit memastikan seluruh VM identik

Image dapat dipindai, diuji, dan diberi versi

Fleksibilitas

Tinggi, mudah diubah per deployment

Perlu build ulang untuk perubahan

Beban pengelolaan

Rendah, tanpa pipeline image

Perlu pipeline, versioning, dan siklus rebuild

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

Aspek

VM Extensions

Custom Script Extension

Azure Image Builder

Tujuan utama

Memasang agen dan kemampuan pendukung (monitoring, keamanan, identity)

Menjalankan skrip kustom pasca-deployment

Membangun golden image yang siap pakai

Waktu eksekusi

Saat atau setelah VM dibuat

Saat atau setelah VM dibuat

Saat build image (sebelum VM dibuat)

Kecepatan provisioning VM

Menambah waktu pasca-deployment

Menambah waktu sesuai lama skrip

Tercepat, VM langsung siap

Skenario terbaik

Agen monitoring, Key Vault, anti-malware, domain join

Penyesuaian akhir, konfigurasi per-lingkungan

Beban kerja skala besar, VMSS, standar kepatuhan

Kompleksitas setup

Rendah

Rendah hingga menengah

Menengah hingga tinggi (pipeline, gallery, identity)

Konsistensi hasil

Bergantung pada extension

Bergantung pada kualitas skrip

Tinggi, immutable dan berversi

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.

Posting Komentar