Pasang WebvirtCloud di Rocky Linux/AlmaLinux 9|8


WebVirtCloud adalah platform manajemen virtualisasi KVM berbasis web yang dapat membantu Anda mengelola hypervisor dan mesin virtual. Platform ini memungkinkan Anda untuk membuat, mengelola, mengakses, dan menghapus mesin virtual melalui dasbor web, berbeda dengan operasi berbasis terminal. Selain itu, WebVirtCloud mempermudah pembuatan VM melalui template yang sudah dikonfigurasi sebelumnya dengan sistem operasi populer seperti Ubuntu, Debian, Fedora, CentOS, AlmaLinux, dan Rocky Linux.

Dalam postingan ini kami memberikan panduan untuk pengguna Linux yang menjalankan Rocky/AlmaLinux, atau turunan lain dari Enterprise Linux OS. Panduan ini tidak akan membahas tugas-tugas besar setelah instalasi, tetapi kami berharap di masa depan lebih banyak tutorial akan dibagikan. Jika Anda siap untuk memulai proses instalasi, buka terminal untuk memulai!

1) Pasang dependensi

Pastikan sistem yang sedang Anda gunakan diperbarui. Bisa berupa mesin virtual yang baru disiapkan (sangat disarankan), atau komputer yang sama tempat KVM berjalan (tidak disarankan). Jika Anda memilih untuk melakukan deployment di host hypervisor KVM, waspadai kemungkinan terjadinya kerusakan sistem akibat pembaruan paket yang tidak direncanakan.

Jalankan perintah di bawah ini untuk memperbarui sistem dengan semua paket yang terpasang.

sudo dnf -y update

Konfirmasi pembaruan kernel selama proses upgrade, jika benar sistem akan di-reboot

sudo reboot

Setelah sistem kembali online, buka terminal atau instal dependensi yang diperlukan untuk mengatur WebvirtCloud.

# Enable EPEL repository 
sudo dnf -y install epel-release

# On EL 9 based systems enable crb repository
sudo dnf config-manager --set-enabled crb 2>/dev/null

# Install group development tools
sudo dnf -y groupinstall "Development Tools"

# Install the following additional packages
sudo dnf -y install git gcc libvirt-devel \
glibc supervisor iproute-tc cyrus-sasl-md5 \
cyrus-sasl-devel openldap-devel openssl-devel 

Atur SELinux ke mode Permissive:

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

2) Instal Python 3.11+

Kita perlu menginstal versi Python yang lebih baru. Kamu bisa menginstal Python 3.11 atau versi lebih baru.

sudo dnf install python3.12 python3.12-pip python3.12-devel

Untuk mempermudah penggunaan, buat symlink dari python dan pip yang terpasang

sudo ln -sf /usr/bin/python3.12 /usr/bin/python3
sudo ln -sf /usr/bin/pip3.12 /usr/bin/pip3

Verifikasi instalasi dengan memeriksa versi Python dan Pip.

$  /usr/bin/python3 --version
Python 3.12.3

$ /usr/bin/pip3 --version
pip 23.2.1 from /usr/lib/python3.12/site-packages/pip (python 3.12)

Perbarui Pip ke versi terbaru yang tersedia dari sumber utama:

sudo /usr/bin/python3 -m pip install --upgrade pip

3) Instal server web Nginx

Kami menggunakan Nginx sebagai server web WebvirtCloud. Instal paket tersebut dengan menjalankan perintah berikut:

sudo dnf -y install nginx

Mulai dan aktifkan layanan nginx.

sudo systemctl enable --now nginx

Saat firewalld berjalan, Anda dapat mengizinkan layanan http dan https.

sudo firewall-cmd --add-service={http,https} --permanent

Muat ulang aturan firewalld untuk menerapkan perubahan:

sudo firewall-cmd --reload

4) Instal dan Konfigurasi WebVirtCloud

Metode instalasi yang kami lakukan dalam panduan ini adalah dari sumber. Kloning kode sumber proyek dari Github.

git clone https://github.com/retspen/webvirtcloud.git

Masuk ke direktori webvirtcloud.

cd webvirtcloud

Sebuah template dari settings.py disediakan. Salin atau ubah namanya.

cp webvirtcloud/settings.py.template webvirtcloud/settings.py

Hasilkan nilai SECRET_KEY dengan menjalankan perintah di bawah ini.

SECRET=$(python3 conf/runit/secret_generator.py)

Perbarui nilai SECRET_KEY di file settings.py.

sed -i "s|SECRET_KEY = \"\"|SECRET_KEY = \"$SECRET\"|" webvirtcloud/settings.py

Tambahkan hostname server Anda ke daftar sumber terpercaya untuk permintaan yang tidak aman

$ vi webvirtcloud/settings.py
CSRF_TRUSTED_ORIGINS = ['http://localhost','http://webvirtcloud.example.net']

Ganti webvirtcloud.example.net dengan hostname/fqdn server yang benar sesuai konfigurasi di server DNS atau yang dipetakan di dalam file /etc/hosts. Contoh:

172.20.30.10 webvirtcloud.example.net

Salin file konfigurasi nginx dan supervisord.

sudo cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d
sudo cp conf/supervisor/webvirtcloud.conf /etc/supervisord.d/webvirtcloud.ini

Pada sistem berbasis RHEL, pengguna nginx berjalan sebagai nginx dan bukan akun pengguna www-data. Perbarui file konfigurasi supervisor agar sesuai:

sudo sed -i 's/www-data/nginx/g' /etc/supervisord.d/webvirtcloud.ini

Buka dan sunting file konfigurasi nginx

sudo vi /etc/nginx/conf.d/webvirtcloud.conf

Tetapkan nilai yang benar untuk nama server dan konfigurasi file untuk pencatatan.

server {
    listen 80;

    server_name webvirtcloud.example.net; #Replace with correct hostname
    access_log /var/log/nginx/webvirtcloud_access_log;
    error_log /var/log/nginx/webvirtcloud_error_log;

Pindahkan direktori webvirtcloud ke /srv.

cd ..
sudo mv webvirtcloud /srv

Buat lingkungan virtual Python untuk WebvirtCloud.

cd /srv/webvirtcloud
/usr/bin/python3 -m venv venv

Aktifkan lingkungan virtual yang baru dibuat

source venv/bin/activate

Pasang dependensi Python di dalam lingkungan virtual

pip3 install --upgrade pip
pip3 install -r conf/requirements.txt

Lakukan migrasi dan pembuatan file statis.

pip3 install setuptools
python3 manage.py migrate
python3 manage.py collectstatic --noinput

Atur kepemilikan ke pengguna server web.

sudo chown -R nginx:nginx /srv/webvirtcloud

Mulai dan aktifkan layanan nginx dan supervisor

sudo systemctl enable nginx supervisord
sudo systemctl restart nginx supervisord

Periksa layanan yang dikelola oleh supervisor apakah berjalan

$ sudo supervisorctl status
novncd                           RUNNING   pid 73923, uptime 0:00:10
socketiod                        RUNNING   pid 73924, uptime 0:00:10
webvirtcloud                     RUNNING   pid 73925, uptime 0:00:10

Anda juga dapat memeriksa status layanan nginx

systemctl status nginx

5) Akses Dashboard WebvirtCloud

Buka browser Anda dan akses antarmuka web WebvirtCloud di http://yourserverdomain

Nama pengguna dan kata sandi default adalah admin / admin. Untuk mengubah kata sandi, buka pengguna admin > Profil

Klik «Ganti Kata Sandi» untuk menetapkan kata sandi baru.

Tetapkan kata sandi baru dan konfirmasi.

6) Tambahkan Host KVM ke WebvirtCloud

Siapkan host KVM Anda dengan menginstal paket yang diperlukan dan melakukan konfigurasi lainnya.

Pada hypervisor KVM

Kami telah membuat skrip bash yang membantu Anda menyiapkan node KVM. Skrip ini tersedia di repositori Github kami.

curl -O https://raw.githubusercontent.com/cloudspinx/linux-bash-scripts/main/webvirtcloud/centos-rocky-kvm-prep.sh

Jalankan skrip di host KVM:

sudo bash centos-rocky-kvm-prep.sh

Gunakan versi Python yang disediakan OS di gstfsd

  • Sistem berbasis RHEL 9
sudo sed -i 's/python3/python3.9/g' /etc/supervisord.d/gstfsd.ini
  • Sistem berbasis RHEL 8
sudo sed -i 's/python3/python3.6/g' /etc/supervisord.d/gstfsd.ini

Mulai ulang layanan supervisord.

sudo systemctl restart supervisord

Periksa status layanan.

$ sudo supervisorctl status
gstfsd                           STARTING

Pada Instance WebvirtCloud

Buat pasangan kunci SSH di server WebVirtCloud jika belum ada:

$ sudo -u nginx ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/nginx/.ssh/id_rsa):
Created directory '/var/lib/nginx/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/lib/nginx/.ssh/id_rsa.
Your public key has been saved in /var/lib/nginx/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:U9TVDTByyHL3hybL3MAB8BQ84SiiTVfW/juaWE7VNiI [email 
The key's randomart image is:
+---[RSA 3072]----+
|        +=B*+ooo.|
|       o.*Bo+.  o|
|    o o .+++ o . |
|   + o . .. +.+ .|
|  . .   S E+o*+. |
|         . o=o.. |
|          o  .   |
|         = .o    |
|        . +. .   |
+----[SHA256]-----+

Kita perlu menyalin kunci publik SSH yang dihasilkan ke hypervisor KVM untuk mengaktifkan autentikasi tanpa kata sandi:

ssh-copy-id -i /var/lib/nginx/.ssh/id_rsa.pub user@compute-server-ip

Untuk hypervisor KVM yang tidak mengizinkan autentikasi kata sandi, salin kuncinya secara manual.

cat /var/lib/nginx/.ssh/id_rsa.pub

Anda dapat menambahkan konten ke file kunci yang diizinkan SSH.

vi ~/.ssh/authorized_keys

Uji koneksi dari webvirtcloud ke host KVM.

sudo -u nginx ssh user@compute-server-ip

# Example
sudo -u nginx ssh [email 

Jika Anda mengalami masalah dengan identitas, hapus file /var/lib/nginx/.ssh/known_hosts dan coba lagi.

Tambahkan host komputasi baru dengan pergi ke „Computes” → „SSH”

Masukkan nama host, nama pengguna, dan alamat IP yang digunakan saat menyalin kunci publik SSH.

Jika semuanya berjalan dengan baik, status seharusnya adalah «Terhubung».

Klik ikon “mata” pada node untuk mulai mengelola sumber daya virtualisasi di host KVM. Untuk konfigurasi Storage pools, lihat artikel berikut:

Buku yang direkomendasikan:

  • Menguasai Virtualisasi KVM – eBook Terbaik

Halaman berikutnya:

  • Konfigurasikan Pool Penyimpanan KVM menggunakan WebvirtCloud