Meracik KVM + Webvirt pada Centos 7.X

742ba9d8136a43046a70afe0a35ffc63

Halo Guys, pada hari ini saya membagikan sedikit jurnal saya mengenai KVM + Webvirt. KVM adalah teknologi virtualisasi yang dikembangkan oleh linux. Nah KVM sendiri dapat berjalan di hampir semua jenis distro linux asalkan processor pada mesin mempunyai fitur virtualisasi. Webvirt digunakan sebagai User Interface dari KVM sendiri, secara default KVM sudah  mempunyai User Interface sendiri dengan Virtual Machine Manager akan tetapi dalam case kali ini Centos saya tidak terinstall Desktop Environment. Maka dari itu digunakanlah Webvirt sebagai UI dari KVM untuk mempermudah penggunaan KVM. Webvirt sendiri terhubung dengan KVM melalui libvirt, libvirt adalah virtualization API.

sebelum mulai melakukan instalasi apapun ada baiknya kita cek CPU kita untuk memastikan bahwa CPU kita support untuk virtualisasi, agar ujung-ujungnya tidak mubasir hehehe.
Untuk Intel CPU:

grep vmx /proc/cpuinfo

untuk AMD CPU:

grep svm /proc/cpuinfo

Seperti biasanya, lakukan update dan instalasi EPEL(Extra Package to Enterprise Linux) repo dahulu. kita gunakan EPEL karena ada beberapa package yang akan kita install tidak terdapat di repository official Centos.

yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install epel.release
yum -y update

Selanjutnya lakukan instalasi KVM:

yum -y install kvm libvirt

setelah selesai instalasi KVM, edit beberapa file libvirt untuk mendukung koneksi KVM dengan Webvirt.
edit:

vi /etc/sysconfig/libvirtd

uncomment:

LIBVIRTD_ARGS="--listen"

edit:

vi /etc/libvirt/libvirtd.conf

tambahkan:

listen_tls = 0

listen_tcp = 1

lakukan restart pada libvirt:
systemctl restart libvirtd
buat user libvirt dan lakukan verifikasi. User ini nantinya kan digunakan untuk menyambunkan antara Webvirt dengan libvirt:

saslpasswd2 -a libvirt gulgul
sasldblistusers2 -f /etc/libvirt/passwd.db

Firewall di centos memiliki default konfigurasi deny, maka dari itu kita perlu allow sebuah port untuk menjalankan libvirt:

firewall-cmd --permanent --add-port 16509/tcp
firewall-cmd --reload
firewall-cmd --list-all

selanjutnya lakukan tes koneksi ke libvirt:

virsh -c qemu+tcp://IP_ADDRESS_HOST/system nodeinfo

Setelah libvirt dan KVM telah siap, kemudian lakukan instalasi WebVirtMgr. referensi instalasi ini dapat dapat dilihat dari: Referensi: https://github.com/retspen/webvirtmgr/wiki/Install-WebVirtMgr

Pertama-tama lakukan instalasi paket pendukung untuk WebVirtMgr ini. Salah satunya karena WebVirtMgr ini dibuat menggunakan python, maka kita perlu melakukan instalasi python.

yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx gcc python-devel
pip install numpy
pip install --upgrade pip

Selanjutnya lakukan instalasi WebVirtMgr ini, kita akan mengcloning WebVirtMgr dari repository officialnya di github.com.

git clone git://github.com/retspen/webvirtmgr.git
cd webvirtmgr
pip install -r requirements.txt
./manage.py syncdb
./manage.py collectstatic
cd ..

setelah melakukan instalasi, buat direktori untuk halaman kita dan pindahkan direktori webvirtmgr ke direktori baru tersebut, sehingga kita dapat mengaksesnya melalu browser nantinya

mkdir /var/www
mv webvirtmgr /var/www

Selanjutnya konfigurasikan Policy pada SELinux sehingga webserver kita dapat terhubung ke jaringan kita.

setsebool httpd_can_network_connect true

lalu setup supervisor pada webvirtmgr, dengan tujuan untuk menjalankan webvirtmgr berjalan diatas python dan nginx:

chown -R nginx:nginx /var/www/webvirtmgr

edit:

vi /etc/supervisor.d/webvirtmgr.ini

tambahkan/edit bagian [program:webvirtmgr]

command=/usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.py
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
logfile=/var/log/supervisor/webvirtmgr.log
log_stderr=true
user=nginx

tambahkan/edit bagian [program:webvirtmgr-console]

command=/usr/bin/python /var/www/webvirtmgr/console/webvirtmgr-console
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=nginx

selanjutnya edit konfigurasi WebVirtMgr sehingga WebVirtMgr dapat diakses dari luar:

vi /var/www/webvirtmgr/conf/gunicorn.conf.py

edit bagian ini:

bind = '127.0.0.1:8000'

menjadi:

bind = 'IP_ADDRESS_HOST:8000'

jangan lupa restart service supervisornya karena kita telah melakukan perubahan:

systemctl restart supervisord

seperti yang sudah dijelaskan diatas bahwa default-konfigurasi firewall di centos adalah deny maka kita harus menambahkan konfigurasi allow kepada beberapa port yang akan kita gunakan

firewall-cmd --permanent --add-port 8000/tcp
firewall-cmd --permanent --add-port 6080/tcp
firewall-cmd --permanent --add-port 5900-5999/tcp
firewall-cmd --reload
firewall-cmd --list-all

Apabila dunia dalam keadaan yang baik-baik saja maka WebVirtMgr akan dapat kita buka di browser dengan alamat

http://host_ip_address:8000

catatan tambahan bila terjadi error:
apabila terjadi error : failed to connect socket to ‘/var/run/libvirt/virtlogd-sock’
maka jalankan ulan service virtlogd

systemctl status virtlogd
systemctl enable virtlogd
systemctl restart virtlogd

apabila terjadi error : could not load PC BIOS ‘bios-256k.bin
maka buat symlink bios-256k

yum -y install seabios.x86_64
ln -s /usr/share/seabios/bios.bin /usr/share/seabios/bios-256k.bin
systemctl restart libvirtd
systemctl status libvirtd

Tinggalkan komentar