Membuat VM Ubuntu 24.04 di QEMU dengan Cloud-Init (Lengkap di Ubuntu 24.04 Host)
Pendahuluan
Cloud-Init memudahkan pembuatan VM yang langsung siap pakai tanpa setup manual. Dengan QEMU, kita bisa menjalankan VM ringan, fleksibel, dan sepenuhnya otomatis — cocok untuk pengujian, development, atau infrastruktur mini di laptop/server pribadi.
Artikel ini membahas langkah demi langkah membuat VM Ubuntu 24.04 di QEMU, lengkap dengan:
- Auto-login & SSH access,
- Password dan user otomatis,
- Persistensi data,
- Cloning VM,
- Dan manajemen dasar seperti start, stop, dan reboot.
1. Instalasi Dasar di Host Ubuntu 24.04
sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils cloud-image-utils virtinst
Pastikan KVM aktif:
kvm-ok
2. Download Image Ubuntu Cloud
mkdir -p ~/vm/ubuntu2404
cd ~/vm/ubuntu2404
wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
3. Buat File Cloud-Init
user-data
#cloud-config
hostname: ubuntu-vm
manage_etc_hosts: true
users:
- name: ubuntu
sudo: ALL=(ALL) NOPASSWD:ALL
groups: users, admin, sudo
shell: /bin/bash
lock_passwd: false
plain_text_passwd: "ubuntu123"
ssh_authorized_keys:
- ssh-rsa AAAAB3... user@host
ssh_pwauth: true
disable_root: false
chpasswd:
list: |
ubuntu:ubuntu123
expire: false
package_update: true
packages:
- qemu-guest-agent
- net-tools
- curl
- vim
runcmd:
- systemctl enable qemu-guest-agent
- systemctl start qemu-guest-agent
- echo "Cloud-init setup done!" > /home/ubuntu/READY
meta-data
instance-id: ubuntu2404
local-hostname: ubuntu-vm
4. Buat ISO Cloud-Init
cloud-localds seed.img user-data meta-data
5. Buat Disk VM
qemu-img create -f qcow2 disk.qcow2 20G
qemu-img convert -O qcow2 noble-server-cloudimg-amd64.img base.qcow2
cp base.qcow2 disk.qcow2
6. Jalankan VM
qemu-system-x86_64 \
-enable-kvm \
-m 2048 \
-cpu host \
-smp 2 \
-drive file=disk.qcow2,format=qcow2 \
-drive file=seed.img,format=raw \
-nic user,model=virtio,hostfwd=tcp::2222-:22 \
-nographic
Login lewat SSH:
ssh -p 2222 ubuntu@localhost
Password: ubuntu123
7. Menghentikan & Menjalankan Ulang VM
Hentikan VM:
- Di console:
Ctrl + AlaluX - Dari dalam VM:
sudo shutdown -h now - Dari host:
kill $(cat vm.pid)(jika dijalankan sebagai daemon)
Menjalankan ulang:
Gunakan perintah QEMU yang sama seperti awal menjalankan VM.
8. Membuat VM Lain dari Template yang Sama
Gunakan base image yang sama, buat direktori baru:
cd ~/vm
cp -r ubuntu2404 ubuntu2404-vm2
cd ubuntu2404-vm2
Ubah meta-data:
instance-id: ubuntu2404-vm2
local-hostname: ubuntu-vm2
Buat seed baru:
cloud-localds seed.img user-data meta-data
Buat disk overlay:
qemu-img create -f qcow2 -b ../ubuntu2404/base.qcow2 disk.qcow2
Jalankan:
qemu-system-x86_64 \
-enable-kvm \
-m 2048 \
-cpu host \
-smp 2 \
-drive file=disk.qcow2,format=qcow2 \
-drive file=seed.img,format=raw \
-nic user,model=virtio,hostfwd=tcp::2223-:22 \
-nographic
Login:
ssh -p 2223 ubuntu@localhost
VM siap digunakan sebagai server lokal, test environment, atau base untuk deployment otomatis di sistem DevOps pribadi.