Hari ini saya ingin mencoba sesuatu yang menurut saya cukup menarik di Proxmox, yaitu membuat VM yang sudah langsung siap pakai tanpa perlu setup manual di dalamnya. Target saya sederhana: deploy Rocky Linux 8 yang sudah punya user, password, dan IP sejak pertama kali boot. Ini masih tahap saya belajar dan ingin uji coba, jadi saya catat semua prosesnya sebagai referensi pribadi sekaligus bahan belajar.
Dari yang saya pahami, Cloud-Init memungkinkan kita melakukan konfigurasi awal VM langsung dari sisi Proxmox. Jadi bukan lagi install OS lalu konfigurasi manual, tapi kita “siapkan semuanya dari luar” sebelum VM dinyalakan. Ini yang ingin saya buktikan apakah benar-benar mempermudah workflow.
STEP 1 — Download Image Rocky Linux
Langkah pertama yang saya lakukan adalah mengambil image Rocky Linux yang memang sudah mendukung Cloud-Init. Saya download langsung dari node Proxmox agar lebih cepat dan tidak perlu upload manual lewat web.
wget https://download.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-GenericCloud.latest.x86_64.qcow2

Output yang muncul menunjukkan proses download hingga selesai dengan ukuran sekitar 1GB lebih. Image ini berbeda dengan ISO biasa karena sudah disiapkan khusus untuk Cloud-Init, jadi tidak perlu proses instalasi OS lagi.
STEP 2 — Membuat VM Kosong
Setelah image siap, saya membuat VM baru tanpa menggunakan ISO. Tujuannya karena disk utama nanti akan diisi dari hasil import image Rocky tadi, bukan dari installer.
- Masuk Web UI Proxmox
- Create VM dengan spesifikasi
- OS: Do not use any media
- Disk Size: 10 GB
- CPU: 2 Cores
- Memory: 2GB

Di tahap ini VM sebenarnya belum bisa dipakai karena belum memiliki disk OS. Tapi ini jadi fondasi awal sebelum disk dimasukkan.
STEP 3 — Import Disk ke Storage
Selanjutnya saya import image ke storage Proxmox yang saya gunakan, yaitu nfs-vm. Proses ini akan mengubah file .qcow2 menjadi format yang sesuai dengan storage.
qm importdisk 200 Rocky-8-GenericCloud.latest.x86_64.qcow2 nfs-vm
Output:

Artinya disk sudah berhasil masuk, tapi masih status unused0. Ini penting dipahami karena disk belum otomatis terpasang ke VM.
STEP 4 — Attach Disk ke VM
Di sini saya mulai menghubungkan disk ke VM sebagai disk utama. Saya menggunakan controller virtio-scsi supaya performanya lebih optimal.
qm set 200 --scsihw virtio-scsi-pci --scsi0 nfs-vm:200/vm-200-disk-0.raw
Setelah ini, disk sudah berubah dari unused0 menjadi scsi0. Artinya sekarang VM sudah punya disk OS dan siap untuk boot.
Hal penting yang saya perhatikan di step ini:
- Disk harus hanya satu (jangan double
.rawdan.qcow2) - Disk utama harus di
scsi0 - Format NFS harus
storage:VMID/file
STEP 5 — Menambahkan Cloud-Init Drive
Langkah ini cukup krusial karena tanpa Cloud-Init drive, semua konfigurasi tidak akan terbaca oleh VM saat boot.

Via CLI
qm set 200 --ide2 nfs-vm:cloudinit
Output:

Setelah ditambahkan, Proxmox akan punya media khusus untuk menyimpan konfigurasi Cloud-Init. Ini yang nantinya dibaca oleh Rocky Linux saat pertama kali dijalankan.

STEP 6 — Pre-Setup Konfigurasi VM
Di tahap ini saya mulai melakukan konfigurasi awal sesuai tujuan saya.

Di bagian ini, Proxmox sebenarnya sedang membuat file konfigurasi Cloud-Init yang berisi:
- user baru
- password
- konfigurasi network
Yang saya set di sini:
- user: rafi
- password:
****** - IP: statis
STEP 7 — Mengatur Boot dan Console
Sebelum VM dijalankan, saya memastikan boot sudah mengarah ke disk utama dan console aktif untuk troubleshooting jika diperlukan.
qm set 200 --boot c --bootdisk scsi0
qm set 200 --serial0 socket --vga serial0
Step ini penting walaupun terlihat sederhana, karena salah boot order bisa bikin VM tidak jalan dengan benar.
STEP 8 — Menjalankan VM
Setelah semua konfigurasi selesai, jalankan VM untuk melihat apakah semua yang saya setup benar-benar bekerja.

Di tahap ini terlihat bahwa konfigurasi langsung diterapkan dan benar-benar jalan via Cloud-Init.
- user sudah otomatis dibuat
- password bisa dipakai login
- IP langsung aktif
- tidak perlu setup manual
Catatan Penting dari Percobaan Ini
Selama menyusun dan memahami step ini, ada beberapa hal yang menurut saya cukup penting:
- Cloud-Init tidak akan jalan tanpa
ide2(step ke 5) - Disk harus benar-benar di
scsi0 - Error paling sering biasanya di attach disk atau format storage
Akhir Kata Rafi…
Dari yang saya pelajari, Cloud-Init ini sebenarnya sangat powerful untuk automation, tapi setup awalnya cukup sensitif. Salah satu step saja bisa bikin semuanya tidak jalan, jadi harus benar-benar teliti di awal.
Kalau ini berhasil, saya merasa ini bisa sangat membantu untuk:
- bikin template VM
- deploy banyak VM sekaligus
- automation environment


Leave a Reply