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