Setup Vagrant dengan Libvirt Plugin di Ubuntu & Manjaro

Photo of author
Publish in

Sekarang sedang musimnya teknologi Cloud, kita bisa dengan mudah membuat virtualisasi pada saat butuh OS untuk experiment. Tapi tidak semua orang punya biaya lebih untuk menyewa cloud, jadi mereka memilih membuat virualisasi di local komputer secara pribadi.

Sayangnya melakukan setup OS dari awal itu cukup memakan waktu, apalagi untuk kebutuhan yang berulang. Maka ada tools yang namanya vagrant, tools ini membantu untuk mempermudah proses provisioning dengan memberikan format template yang bisa kita duplicate dan tentunya box hub yang bisa kita unduh (box adalah peribahasa untuk template vm vagrant).

Detail pembahasan vagrant bisa kamu baca di arikel saya yang lain : Mengenal Vagrant – Tools Virtualisasi di GNU/Linux

Artikel ini sebenarnya membahas keresahan yang saya alami pada vagrant, karena umumnya user vagrant akan menggunakan virtualbox atau vmware sebagai virtual machine nya. Tapi pada waktu yang bersamaan saya menjalankan waydroid pada laptop sehingga keduanya tidak dapat jalan secara bersamaan.

Jadi bagaimana caranya waydroid bisa jalan bersamaan dengan virtual server yang saya buat di local menggunakan vagrant ?

Jawabnya yaitu menggunkan teknologi virtualisasi yang sama. Disini Waydroid menggunakan teknologi yang mekanismenya kurang lebih sama seperti qemu, maka agar virtual server saya jalan secara bersamaan saya harus menggunakan qemu yang ter-integrasi dengan vagrant.

Beruntungnya vagrant sudah menyediakan tools tersebut yaitu vagrant-libvirt. Meskipun proses setup tidak berjalan mudah, tapi akhirnya saya mendapatkan cara yang pas dan mudah untuk dilakukan. Jadi saya akan coba bagikan disini agar kalian tidak perlu mencoba jalur yang terjal seperti saya di awal.

Bagian 1 : Install Qemu, Kvm & Libvirt

Pertama kita perlu melakukan installasi package yang dibutuhkan seperti qemu, kvm, libvirt dan sebagainya.

Ubuntu

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager nfs-kernel-server dnsmasq ebtables

Manjaro

sudo pacman -Syu
sudo pacman -S qemu libvirt virt-manager dnsmasq vde2 bridge-utils openbsd-netcat

Bagian 2 : Install Vagrant

Setelah semua bagian package pendukung di install, selanjutnya kita installkan vagrant.

Ubuntu

wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list

sudo apt update && sudo apt install vagrant

Manjaro

sudo pamac install vagrant

Bagian 3 : Install support package

Selanjutnya install beberapa package pendukung lainnya.

Ubuntu

sudo apt update
sudo apt install -y build-essential libvirt-dev ruby-dev libxml2-dev libxslt1-dev zlib1g-dev ebtables dnsmasq-base curl

Manjaro

Tidak ada package yang perlu di install

Bagian 4 : Install plugin vagrant-libvirt dan konfigurasi

Setelah semua package yang dibutuhkan terinstall, selanjutnya kita masuk ke konfigruasi vagrant. Pertama install plugin libvirt pada vagrant.

vagrant plugin install vagrant-libvirt

Pastikan proses installasi berhasil dilakukan, selanjutnya tambahkan user yang kamu gunakan kedalam group dari libvirt dan libvirt-qemu. Kenapa ? Agar pernagkat qemu mau menjalankan perintah virtualisasi yang kamu berikan.

sudo usermod -aG libvirt $(whoami)
sudo usermod -aG libvirt-qemu $(whoami)

Selanjutnya aktifkan dan jalankan service berikut.

sudo systemctl enable --now libvirtd
sudo systemctl enable --now virtlogd
sudo systemctl enable --now virtlockd

Untuk memastikan semua proses installasi dan konfigurasi sudah berjalan, maka reboot komputer.

Bagian 5 : Uji Coba

Sekarang kita coba pastikan semuanya berjalan dengan baik, kita lakukan ujicoba dengan menjalankan sebuah vm dengan membuat Vagrantfile. Kamu bisa buat dimana saja misalkan buat directory ~/vagrant lalu buat Vagrantfile berikut.

mkdir ~/vagrant
nano ~/vagrant/Vagrantfile

Masukan konfigurasi minimal berikut, disini kita akan membuat sebuah vm menggunakan box dari bento/ubuntu-24.04 dengan private ip 192.168.121.10.

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-24.04"
  config.vm.synced_folder ".", "/vagrant", type: "nfs", nfs_version: 4
  config.vm.network "private_network", ip: "192.168.121.10"
end

Jika sudah disimpan maka kamu bisa pindah direktory dan jalankan vagrant up.

cd ~/vagrant
vagrant up

Tunggu sampai proses vagrant up selesai, apabila kamu belum memiliki box bento/ubuntu-24.04 maka sistem akan melakukan pengunduhan terlebih dahulu.

Tips

Pastikan pada proses ini tidak ada sistem virtualisasi lain yang berjalan baik itu virtualbox maupun vmware karena akan mempengaruhi terhadap keberhasilan sistem. Kecuali virtualisasi yang dibuat dari gnome-boxes karena mereka masih menggunakan teknologi yang sama.

Jika kamu tertaik dengan video praktiknya, maka kamu bisa coba menonton video berikut :

Penutup

Dengan artikel ini kita jadi paham bahwa vagrant bisa menjalankan vm menggunakan teknologi qemu yang secara default menjadi bawaah dari linux, membuat sistem virtualisasi menjadi lebih ringan dibandingkan dengan virtualisasi lain dan pastinya tidak akan menggangu aplikasi Waydroid.

Tapi kekurangnnya adalah size dari box yang menggunakan format qemu lebih besar jika dibandingkan dengan format virtualbox dan vmware.

Referensi :

  • https://www.warriornux.com/mengenal-vagrant/
  • https://github.com/waydroid/waydroid
  • Beberapa diskusi dengan chatgpt