WebVirtCloud è uno strumento di gestione basato sul Web per la virtualizzazione KVM. Consente ad amministratori e utenti di creare, gestire ed eliminare macchine virtuali in esecuzione su hypervisor KVM da un'interfaccia web. È basato su Django e supporta l'autorizzazione e l'autenticazione basate sull'utente. Con WebVirtCloud puoi gestire più hypervisor QEMU/KVM, gestire reti di hypervisor e gestire pool di datastore da un'unica installazione.
In questo tutorial, ti mostrerò come installare lo strumento di gestione KVM di WebVirtCloud su Ubuntu 20.04.
Prerequisiti
- Un server che esegue Ubuntu 20.04.
- Sul server è configurata una password di root.
Per iniziare
Innanzitutto, aggiorna i pacchetti di sistema alla versione aggiornata eseguendo il comando seguente:
apt-get update -y
Una volta aggiornati tutti i pacchetti, puoi procedere al passaggio successivo.
Verifica supporto per la virtualizzazione
Prima di iniziare, dovrai verificare se il tuo sistema operativo supporta o meno la virtualizzazione dell'hardware.
Esegui il comando seguente per verificarlo.
grep -E -c "vmx|svm" /proc/cpuinfo
Se l'output è superiore a 0, il tuo sistema operativo supporta la virtualizzazione dell'hardware.
2
Successivamente, dovrai anche verificare se il tuo sistema è in grado di eseguire macchine virtuali KVM.
Per farlo, installa cpu-checker con il seguente comando:
apt-get install cpu-checker -y
Una volta installato, esegui il seguente comando per verificare:
kvm-ok
Dovresti vedere il seguente output:
INFO: /dev/kvm exists KVM acceleration can be used
Una volta terminato, puoi procedere al passaggio successivo.
Installa Hypervisor KVM
Successivamente, dovrai installare KVM sul tuo server. Puoi installare KVM con tutti gli strumenti richiesti utilizzando il seguente comando:
apt-get install qemu qemu-kvm libvirt-daemon bridge-utils virt-manager virtinst -y
Dopo l'installazione, sarà necessario verificare se il modulo KVM è stato caricato o meno. Puoi verificarlo con il seguente comando:
lsmod | grep -i kvm
Dovresti vedere il seguente output:
kvm_intel 286720 0 kvm 663552 1 kvm_intel
Quindi, controlla lo stato del servizio libvirtd con il seguente comando:
systemctl status libvirtd
Dovresti vedere il seguente output:
? libvirtd.service - Virtualization daemon Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-08-01 04:57:14 UTC; 1min 3s ago TriggeredBy: ? libvirtd-admin.socket ? libvirtd-ro.socket ? libvirtd.socket Docs: man:libvirtd(8) https://libvirt.org Main PID: 5236 (libvirtd) Tasks: 19 (limit: 32768) Memory: 16.2M CGroup: /system.slice/libvirtd.service ??5236 /usr/sbin/libvirtd ??5385 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_> ??5386 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_> Aug 01 04:57:14 ubuntu2004 systemd[1]: Started Virtualization daemon. Aug 01 04:57:15 ubuntu2004 dnsmasq[5385]: started, version 2.80 cachesize 150 Aug 01 04:57:15 ubuntu2004 dnsmasq[5385]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth net> Aug 01 04:57:15 ubuntu2004 dnsmasq-dhcp[5385]: DHCP, IP range 192.168.122.2 -- 192.168.122.254, lease time 1h Aug 01 04:57:15 ubuntu2004 dnsmasq-dhcp[5385]: DHCP, sockets bound exclusively to interface virbr0 Aug 01 04:57:15 ubuntu2004 dnsmasq[5385]: reading /etc/resolv.conf Aug 01 04:57:15 ubuntu2004 dnsmasq[5385]: using nameserver 127.0.0.53#53 Aug 01 04:57:15 ubuntu2004 dnsmasq[5385]: read /etc/hosts - 5 addresses Aug 01 04:57:15 ubuntu2004 dnsmasq[5385]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses Aug 01 04:57:15 ubuntu2004 dnsmasq-dhcp[5385]: read /var/lib/libvirt/dnsmasq/default.hostsfile
Una volta terminato, puoi procedere al passaggio successivo.
Installa Nginx e altri pacchetti
Successivamente, dovrai installare Nginx, Python e altri pacchetti richiesti sul tuo server. Puoi installarli tutti con il seguente comando:
apt-get install git virtualenv python3-virtualenv python3-dev python3-lxml libvirt-dev zlib1g-dev libxslt1-dev nginx supervisor libsasl2-modules gcc pkg-config python3-guestfs libsasl2-dev libldap2-dev libssl-dev -y
Una volta installati tutti i pacchetti, puoi procedere al passaggio successivo.
Installa e configura WebVirtCloud
Innanzitutto, scarica l'ultima versione di WebVirtCloud dal repository Git utilizzando il seguente comando:
git clone https://github.com/retspen/webvirtcloud
Una volta completato il download, cambia la directory in webvirtcloud e copia il file setting.py di esempio:
cd webvirtcloud
cp webvirtcloud/settings.py.template webvirtcloud/settings.py
Quindi, genera una chiave segreta con il seguente comando:
openssl rand -base64 32
Dovresti ottenere il seguente output:
mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0=
Quindi, modifica il file settings.py e definisci la tua chiave segreta:
nano webvirtcloud/settings.py
Modifica la seguente riga:
SECRET_KEY = "mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0="
Salva e chiudi il file, quindi copia il file di configurazione di WebVirtCloud nella directory di Nginx e Supervisor:
cp conf/supervisor/webvirtcloud.conf /etc/supervisor/conf.d
cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d
Quindi, torna alla tua home directory e sposta la directory webvirtcloud nella directory /srv:
cd ..
mv webvirtcloud /srv/
Quindi, imposta la proprietà corretta sulla directory webvirtcloud:
chown -R www-data:www-data /srv/webvirtcloud/
Quindi, cambia la directory in webvirtcloud e crea un ambiente virtuale:
cd /srv/webvirtcloud/
virtualenv -p python3 venv
Successivamente, attiva l'ambiente virtuale con il seguente comando:
source venv/bin/activate
Quindi, installa le dipendenze Python richieste con il seguente comando:
pip install -r conf/requirements.txt
Dovresti vedere il seguente output:
Successfully built libvirt-python qrcode rwlock websockify Installing collected packages: sqlparse, pytz, asgiref, Django, soupsieve, beautifulsoup4, django-bootstrap5, django-icons, django-login-required-middleware, django-otp, segno, django-qr-code, gunicorn, six, libsass, libvirt-python, lxml, qrcode, rwlock, numpy, websockify, zipp, pyasn1, ldap3 Successfully installed Django-3.2.5 asgiref-3.4.1 beautifulsoup4-4.9.3 django-bootstrap5-2.0.1 django-icons-4.0.0 django-login-required-middleware-0.6.1 django-otp-1.0.6 django-qr-code-2.2.0 gunicorn-20.1.0 ldap3-2.9 libsass-0.21.0 libvirt-python-7.4.0 lxml-4.6.3 numpy-1.21.1 pyasn1-0.4.8 pytz-2021.1 qrcode-7.0 rwlock-0.0.7 segno-1.3.3 six-1.16.0 soupsieve-2.2.1 sqlparse-0.4.1 websockify-0.9.0 zipp-3.4.1
Quindi, esegui il comando migrate per generare tutte le tabelle:
python3 manage.py migrate
Dovresti vedere il seguente output:
Applying otp_totp.0001_initial... OK Applying otp_totp.0002_auto_20190420_0723... OK Applying sessions.0001_initial... OK * Creating default admin user ! SHOW_PROFILE_EDIT_PASSWORD is found inside settings.py * Applying permission can_change_password for all users ! Warning!!! Setting to True for all users ! Don`t forget to remove the option from settings.py * Migrating can_clone_instaces user attribute to permission * Applying permission passwordless_console for all users
Successivamente, disattiva dall'ambiente virtuale Python con il seguente comando:
deactivate
Quindi, imposta la proprietà corretta sulla directory webvirtcloud con il seguente comando:
chown -R www-data:www-data /srv/webvirtcloud/
Quindi, rimuovi il file di configurazione dell'host virtuale predefinito di Nginx:
rm /etc/nginx/sites-enabled/default
Quindi, riavvia il servizio Nginx e Supervisor per applicare le modifiche:
systemctl restart nginx
systemctl restart supervisor
Ora puoi verificare lo stato di Nginx con il seguente comando:
systemctl status nginx
Dovresti vedere il seguente output:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-08-01 10:35:57 UTC; 12s ago Docs: man:nginx(8) Process: 29055 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 29068 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 29076 (nginx) Tasks: 3 (limit: 4691) Memory: 3.4M CGroup: /system.slice/nginx.service ??29076 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??29077 nginx: worker process ??29078 nginx: worker process Aug 01 10:35:57 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server... Aug 01 10:35:57 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.
Imposta KVM e Libvirt
Quindi, esegui il seguente script per configurare KVM e Libvirt:
wget -O - https://bit.ly/36baWUu | sh
Dovresti vedere il seguente output:
Length: 151 [text/plain] Saving to: ‘/etc/supervisor/conf.d/gstfsd.conf’ /etc/supervisor/conf.d/gstfsd.conf 100%[==================================================================>] 151 --.-KB/s in 0s 2021-08-01 10:36:51 (5.50 MB/s) - ‘/etc/supervisor/conf.d/gstfsd.conf’ saved [151/151] * INFO: Found function daemons_running_ubuntu * DEBUG: DAEMONS_RUNNING_FUNC=daemons_running_ubuntu * INFO: Running daemons_running_ubuntu()
Infine, aggiungi un utente KVM al gruppo www-data con il seguente comando:
adduser www-data kvm
Accedi a WebVirtCloud
A questo punto WebVirtCloud è installato e configurato. È ora di accedere all'interfaccia web di WebVirtCloud.
Apri il tuo browser web e digita l'URL http://your-server-ip . Verrai reindirizzato alla pagina di accesso di WebVirtCloud:
Fornisci nome utente e password predefiniti come amministratore/amministratore e fai clic su Accedi pulsante. Dovresti vedere la dashboard di WebVirtCloud nella pagina seguente:
Conclusione
Congratulazioni! hai installato con successo WebVirtCloud sul server Ubuntu 20.04. Ora puoi creare e gestire le tue macchine virtuali dall'interfaccia basata sul web. Sentiti libero di chiedermi se hai domande.