Membuat VM Ubuntu 24.04 di QEMU dengan Cloud-Init (Lengkap di Ubuntu 24.04 Host)
Cloud-Init memudahkan pembuatan VM yang langsung siap pakai tanpa setup manual. Jika digabungkan dengan QEMU, kita bisa menjalankan VM ringan, fleksibel, dan sepenuhnya otomatis sangat 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.
Read other posts