Episode ini membahas mengapa instalasi OS manual tidak efisien di skala besar, cara kerja cloud-init untuk konfigurasi otomatis saat boot pertama, langkah membuat VM template, serta perbedaan full clone dan linked clone untuk provisioning VM dalam hitungan detik.

Menginstall OS secara manual sekali-dua kali itu menyenangkan. Mengulanginya untuk VM ketiga puluh — memasukkan hostname, membuat user, menyalin SSH key, mengatur IP — adalah resep kelelahan dan human error. Episode 4 memperkenalkan solusi yang dipakai data center modern: cloud-init dan VM templates.
Kita akan memahami mengapa instalasi manual tidak efisien, menguasai konsep cloud-init, merakit base VM menjadi template yang siap pakai, lalu memakai full clone dan linked clone untuk melahirkan VM baru dalam hitungan detik. Di akhir episode, kalian bisa melakukan rapid provisioning layaknya engineer infrastruktur sungguhan.
Di skala satu atau dua server, wizard instalasi terasa wajar. Tapi begitu beban kerja tumbuh, cara manual menunjukkan kelemahannya: setiap VM butuh waktu puluhan menit untuk install dan konfigurasi, hasilnya sering tidak konsisten antar VM, dan konfigurasi yang melenceng jadi sumber bug yang sulit dilacak. Belum lagi jika VM perlu dibuat ulang setelah migrasi atau disaster recovery.
Prinsip infrastruktur modern adalah reproducibility: VM harus lahir dari resep yang sama setiap kali, dengan identitas unik (hostname, IP, password) yang diinjeksi saat lahir. Inilah yang memungkinkan automasi dan skala.
cloud-init adalah standar industri untuk bootstrap konfigurasi cloud. Saat VM pertama kali boot, cloud-init membaca data dari sumber yang dikonfigurasi — di Proxmox, sumber itu adalah disk cloud-init yang terhubung ke VM sebagai drive tambahan.
Hostname dan domain
User, password, dan SSH key
IP address, netmask, gateway, dan DNS
Rangkaian perintah (user-data scripts)Data ini disuntikkan Proxmox ke disk cloud-init dari halaman Cloud-init di konfigurasi VM, lalu dibaca oleh agent cloud-init di dalam guest pada boot pertama. Karena identitas diinjeksi saat boot, satu template bisa melahirkan VM dengan identitas yang berbeda-beda tanpa modifikasi manual.
qemu-guest-agent adalah service di dalam guest yang berkomunikasi dengan host melalui channel QEMU. Dengan agent aktif, Proxmox bisa membaca IP address guest secara otomatis, menjalankan shutdown dengan bersih, dan mengambil screenshot — semua tanpa login ke VM. Agent ini wajib dipasang di base VM sebelum dijadikan template, karena banyak fitur seperti backup snapshot yang bergantung padanya.
Langkah pertama adalah membuat VM biasa dari ISO (seperti episode 3), menginstall OS-nya, lalu memasang dua komponen penting:
apt update && apt install -y qemu-guest-agent cloud-init
systemctl enable --now qemu-guest-agentSetelah kedua paket terinstall, lakukan clean up: hapus file sementara, bersihkan hostname yang telah ditetapkan cloud-init, kosongkan log, dan jalankan cloud-init clean untuk menghapus state sebelumnya. Pastikan VM dalam keadaan mati dengan benar sebelum dikonversi.
Sebelum konversi, tambahkan disk cloud-init di tab Hardware -> Add -> CloudInit Drive. Proxmox otomatis menyediakan disk kecil (sekitar 4 MB) yang nantinya menampung data konfigurasi per VM. Tanpa disk ini, VM hasil clone tidak akan menerima injeksi konfigurasi apa pun.
Di web UI, klik kanan VM lalu pilih Convert to Template, atau lewat CLI:
qm template 100Setelah dikonversi, VM tidak bisa lagi dijalankan langsung — dia menjadi cetakan pasif yang hanya bisa di-clone. Simpan template ini sebagai aset jangka panjang.
Proxmox menyediakan dua jenis clone:
qm clone 100 200 --name web-01 --full trueUntuk beban kerja production yang memerlukan independensi penuh, gunakan full clone. Untuk laboratorium dan pengujian cepat, linked clone sangat efisien.
Dengan template siap, provisioning VM baru menjadi cepat dan konsisten:
qm clone 100 200 --name db-01
qm set 200 --ipconfig0 ip=192.168.1.50/24,gw=192.168.1.1
qm set 200 --ciuser admin --sshkeys ~/.ssh/id_ed25519.pub
qm start 200Perintah qm set 200 --ipconfig0 ip=192.168.1.50/24,gw=192.168.1.1 menginjeksi IP statis, sementara --ciuser dan --sshkeys menyiapkan user serta SSH key. VM boot, cloud-init menerapkan konfigurasi, dan dalam hitungan detik VM siap digunakan tanpa pernah menyentuh wizard instalasi.
Beberapa kebiasaan yang membuat template tetap sehat dalam jangka panjang:
local-lvm atau ZFS.ubuntu-24.04-cloudinit, agar mudah dikenali.Untuk memperbarui template, cukup buat VM baru dari template lama, install update di dalamnya, lalu convert kembali menjadi template:
qm clone 9000 300 --name refresh-tpl
qm start 300
# install update di dalam VM 300, lalu matikan
qm template 300Dengan alur ini, VM baru yang lahir dari template selalu berdasarkan versi OS yang segar. Perintah qm template 300 mengubah VM hasil refresh menjadi template baru, menggantikan yang lama.
Tip
Simpan template sebagai aset berharga. Satu base template per distribusi utama (misalnya Ubuntu dan Debian) sudah cukup untuk mayoritas kebutuhan — jangan membuat template berlebihan yang malah susah dirawat.
Episode 4 mengubah cara kalian melahirkan VM: memahami inefisiensi instalasi manual, menguasai cloud-init untuk konfigurasi otomatis saat boot, merakit base VM dengan qemu-guest-agent dan cloud-init menjadi template, serta membedakan full clone dan linked clone untuk provisioning cepat.
Inti yang harus dibawa pulang:
qm template mengubah VM menjadi cetakan pasif yang hanya bisa di-clone.Di episode 5 selanjutnya kita akan membahas LXC Containers — alternatif ringan dari VM penuh yang berbagi kernel host, perbedaan LXC Proxmox dengan Docker, cara mengunduh template container dengan pveam, hingga mengapa unprivileged container lebih aman. Buka template yang kalian buat di episode 4, karena konsep yang sama akan kalian jumpai di sini!