WebVirtCloud KVM Beheer installeren op Ubuntu 20.04

WebVirtCloud is een web-gebaseerd beheerprogramma voor KVM virtualisatie. Het stelt beheerders en gebruikers in staat Virtuele Machines die op KVM hypervisor draaien te maken, beheren en verwijderen vanuit een webinterface. Het is gebouwd op Django en ondersteunt op gebruikers gebaseerde autorisatie en authenticatie. Met WebVirtCloud kun je meerdere QEMU/KVM Hypervisors beheren, Hypervisor netwerken beheren en datastore pools beheren vanuit een enkele installatie.

In deze zelfstudie laat ik je zien hoe je het WebVirtCloud KVM Beheer gereedschap installeert op Ubuntu 20.04.

Vereisten

  • Een server waarop Ubuntu 20.04 draait.
  • Een root wachtwoord is op de server ingesteld.

Aan de slag

Werk eerst de systeempakketten bij naar de bijgewerkte versie door het volgende commando uit te voeren:

apt-get update -y

Als alle pakketten zijn bijgewerkt, kun je verder gaan met de volgende stap.

Verifieer virtualisatie ondersteuning

Alvorens te beginnen moet je nagaan of je besturingssysteem hardware virtualisatie ondersteunt of niet.

Voer het volgende commando uit om dat te verifiëren.

grep -E -c "vmx|svm" /proc/cpuinfo

Als de uitvoer boven 0 is dan ondersteunt je besturingssysteem hardware virtualisatie.

2

Vervolgens moet je ook controleren of je systeem in staat is KVM virtuele machines te draaien.

Installeer daartoe de cpu-checker met het volgende commando:

apt-get install cpu-checker -y

Eenmaal geïnstalleerd, voer je het volgende commando uit om te controleren:

kvm-ok

Je zou de volgende uitvoer moeten zien:

INFO: /dev/kvm exists
KVM acceleration can be used

Als je klaar bent, kun je verder gaan met de volgende stap.

Installeer KVM Hypervisor

Vervolgens moet je KVM op je server installeren. Je kunt KVM met alle benodigde gereedschappen installeren met het volgende commando:

apt-get install qemu qemu-kvm libvirt-daemon bridge-utils virt-manager virtinst -y

Na de installatie moet je controleren of de KVM module geladen is of niet. Je kunt dit verifiëren met het volgende commando:

lsmod | grep -i kvm

Je zou de volgende uitvoer moeten zien:

kvm_intel             286720  0
kvm                   663552  1 kvm_intel

Controleer vervolgens de status van de libvirtd dienst met het volgende commando:

systemctl status libvirtd

Je zou de volgende uitvoer moeten zien:

? 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

Als je klaar bent, kun je verder gaan met de volgende stap.

Installeer Nginx en andere pakketten

Vervolgens moet je de Nginx, Python, en andere vereiste pakketten op je server installeren. Je kunt ze allemaal installeren met het volgende commando:

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

Als alle pakketten geïnstalleerd zijn, kun je verder gaan met de volgende stap.

Installeer en configureer WebVirtCloud

Download eerst de nieuwste versie van WebVirtCloud uit de Git repository met het volgende commando:

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

Als de download voltooid is, verander je de directory in de webvirtcloud en kopieer je het voorbeeld setting.py bestand:

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

Genereer vervolgens een secrete sleutel met het volgende commando:

openssl rand -base64 32

Je zou de volgende uitvoer moeten krijgen:

mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0=

Bewerk vervolgens het settings.py bestand en definieer je secrete sleutel:

nano webvirtcloud/settings.py

Verander de volgende regel:

SECRET_KEY = "mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0="

Bewaar en sluit het bestand en kopieer dan het WebVirtCloud configuratiebestand naar de Nginx en Supervisor directory:

cp conf/supervisor/webvirtcloud.conf /etc/supervisor/conf.d
cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d

Ga vervolgens terug naar je home directory en verplaats de webvirtcloud directory ot de /srv directory:

cd ..
mv webvirtcloud /srv/

Zet vervolgens het juiste eigendom op de webvirtcloud directory:

chown -R www-data:www-data /srv/webvirtcloud/

Verander vervolgens de directory in webvirtcloud en maak een virtuele omgeving:

cd /srv/webvirtcloud/
virtualenv -p python3 venv

Activeer vervolgens de virtuele omgeving met het volgende commando:

source venv/bin/activate

Installeer vervolgens de vereiste Python afhankelijkheden met het volgende commando:

pip install -r conf/requirements.txt

Je zou de volgende uitvoer moeten zien:

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

Voer vervolgens het migrate commando uit om alle tabellen te genereren:

python3 manage.py migrate

Je zou de volgende uitvoer moeten zien:

  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

Deactiveer vervolgens de virtuele Python omgeving met het volgende commando:

deactivate

Zet vervolgens het juiste eigendom op de webvirtcloud directory met het volgende commando:

chown -R www-data:www-data /srv/webvirtcloud/

Verwijder vervolgens het Nginx standaard virtuele host configuratiebestand:

rm /etc/nginx/sites-enabled/default

Herstart vervolgens de Nginx en Supervisor dienst om de veranderingen toe te passen:

systemctl restart nginx
systemctl restart supervisor

Je kunt nu de status van de Nginx controleren met het volgende commando:

systemctl status nginx

Je zou de volgende uitvoer moeten zien:

? 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.

Stel KVM en Libvirt in

Voer vervolgens het volgende script uit om KVM en Libvirt in te stellen:

wget -O - https://bit.ly/36baWUu | sh

Je zou de volgende uitvoer moeten zien:

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()

Voeg tenslotte een KVM gebruiker toe aan de www-data groep met het volgende commando:

adduser www-data kvm

Toegang tot WebVirtCloud

Op dit punt is WebVirtCloud geïnstalleerd en geconfigureerd. Het is tijd om de WebVirtCloud webinterface te openen.

Open je webbrowser en typ de URL http://your-server-ip. Je wordt doorverwezen naar de WebVirtCloud login pagina:

WebVirtCloud login

Geef standaard gebruikersnaam en wachtwoord op als admin/admin en klik op de knop Sign In. Je zou het WebVirtCloud dashboard moeten zien op de volgende pagina:

webVirtCloud Dashboard

Conclusie

Gefeliciteerd! je hebt WebVirtCloud met succes geïnstalleerd op Ubuntu 20.04 server. Je kunt nu je virtuele machines aanmaken en beheren vanuit de web-gebaseerde interface. Stel me gerust als je vragen hebt.