So installierst du WebVirtCloud KVM Management auf Ubuntu 20.04

WebVirtCloud ist ein webbasiertes Management-Tool für KVM-Virtualisierung. Es ermöglicht Administratoren und Nutzern das Erstellen, Verwalten und Löschen von Virtuellen Maschinen, die auf dem KVM-Hypervisor laufen, über ein Webinterface. Es ist auf Django aufgebaut und unterstützt benutzerbasierte Autorisierung und Authentifizierung. Mit WebVirtCloud kannst du mehrere QEMU/KVM Hypervisoren verwalten, Hypervisor-Netzwerke managen und Datenspeicherpools von einer einzigen Installation aus verwalten.

In diesem Tutorial zeige ich dir, wie du das WebVirtCloud KVM Management Tool auf Ubuntu 20.04 installieren kannst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Als erstes aktualisierst du die Systempakete auf die aktuelle Version, indem du den folgenden Befehl ausführst:

apt-get update -y

Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren.

Überprüfe die Virtualisierungsunterstützung

Bevor du beginnst, musst du überprüfen, ob dein Betriebssystem die Hardwarevirtualisierung unterstützt oder nicht.

Führe den folgenden Befehl aus, um dies zu überprüfen.

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

Wenn die Ausgabe über 0 liegt, dann unterstützt dein Betriebssystem die Hardwarevirtualisierung.

2

Als nächstes musst du auch überprüfen, ob dein System in der Lage ist, virtuelle KVM-Maschinen auszuführen.

Um dies zu tun, installiere den cpu-checker mit dem folgenden Befehl:

apt-get install cpu-checker -y

Sobald er installiert ist, führe den folgenden Befehl aus, um ihn zu überprüfen:

kvm-ok

Du solltest die folgende Ausgabe sehen:

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

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

KVM Hypervisor installieren

Als nächstes musst du KVM auf deinem Server installieren. Du kannst KVM mit allen benötigten Tools mit dem folgenden Befehl installieren:

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

Nach der Installation musst du überprüfen, ob das KVM Modul geladen wurde oder nicht. Du kannst es mit dem folgenden Befehl überprüfen:

lsmod | grep -i kvm

Du solltest die folgende Ausgabe sehen:

kvm_intel             286720  0
kvm                   663552  1 kvm_intel

Als nächstes überprüfe den Status des libvirtd-Dienstes mit dem folgenden Befehl:

systemctl status libvirtd

Du solltest die folgende Ausgabe sehen:

? 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

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Nginx und andere Pakete installieren

Als nächstes musst du Nginx, Python und andere benötigte Pakete auf deinem Server installieren. Du kannst sie alle mit dem folgenden Befehl installieren:

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

Sobald alle Pakete installiert sind, kannst du mit dem nächsten Schritt fortfahren.

WebVirtCloud installieren und konfigurieren

Lade zunächst die neueste Version von WebVirtCloud aus dem Git Repository mit dem folgenden Befehl herunter:

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

Sobald der Download abgeschlossen ist, wechselst du in das Verzeichnis webvirtcloud und kopierst die Beispieldatei setting.py:

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

Als nächstes generierst du einen geheimen Schlüssel mit dem folgenden Befehl:

openssl rand -base64 32

Du solltest die folgende Ausgabe erhalten:

mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0=

Als nächstes bearbeitest du die Datei settings.py und definierst deinen secrete key:

nano webvirtcloud/settings.py

Ändere die folgende Zeile:

SECRET_KEY = "mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0="

Speichere und schließe die Datei und kopiere die WebVirtCloud Konfigurationsdatei in das Nginx und Supervisor Verzeichnis:

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

Als nächstes gehst du zurück in dein Homeverzeichnis und verschiebst das webvirtcloud-Verzeichnis in das /srv-Verzeichnis:

cd ..
mv webvirtcloud /srv/

Setze als nächstes die richtigen Eigentumsrechte auf das webvirtcloud-Verzeichnis:

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

Als nächstes änderst du das Verzeichnis in webvirtcloud und erstellst eine virtuelle Umgebung:

cd /srv/webvirtcloud/
virtualenv -p python3 venv

Als nächstes aktivierst du die virtuelle Umgebung mit dem folgenden Befehl:

source venv/bin/activate

Als nächstes installierst du die benötigten Python-Abhängigkeiten mit dem folgenden Befehl:

pip install -r conf/requirements.txt

Du solltest die folgende Ausgabe sehen:

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

Führe als nächstes den Befehl migrate aus, um alle Tabellen zu generieren:

python3 manage.py migrate

Du solltest die folgende Ausgabe sehen:

  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

Als nächstes deaktiviere die virtuelle Python-Umgebung mit dem folgenden Befehl:

deactivate

Setze als Nächstes mit dem folgenden Befehl die korrekten Eigentumsrechte für das webvirtcloud-Verzeichnis:

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

Entferne als nächstes die Nginx Standardkonfigurationsdatei für den virtuellen Host:

rm /etc/nginx/sites-enabled/default

Starte als nächstes den Nginx- und Supervisor-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx
systemctl restart supervisor

Du kannst nun den Status von Nginx mit dem folgenden Befehl überprüfen:

systemctl status nginx

Du solltest die folgende Ausgabe sehen:

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

KVM und Libvirt einrichten

Als nächstes führst du das folgende Skript aus, um KVM und Libvirt einzurichten:

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

Du solltest die folgende Ausgabe sehen:

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

Füge abschließend einen KVM-Benutzer mit dem folgenden Befehl zur Gruppe www-data hinzu:

adduser www-data kvm

Access WebVirtCloud

An diesem Punkt ist WebVirtCloud installiert und konfiguriert. Nun ist es an der Zeit, auf das WebVirtCloud-Webinterface zuzugreifen.

Öffne deinen Webbrowser und gib die URL http://your-server-ip ein. Du wirst auf die WebVirtCloud Login-Seite weitergeleitet:

WebVirtCloud Anmeldung

Gib den Standard-Benutzernamen und das Standard-Passwort admin/admin ein und klicke auf die Schaltfläche Sign In. Auf der folgenden Seite solltest du das WebVirtCloud Dashboard sehen:

webVirtCloud Dashboard

Fazit

Herzlichen Glückwunsch! Du hast WebVirtCloud erfolgreich auf dem Ubuntu 20.04 Server installiert. Du kannst nun deine virtuellen Maschinen über die webbasierte Oberfläche erstellen und verwalten. Wenn du Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …