WebVirtCloud je webový nástroj pro správu virtualizace KVM. Umožňuje správcům a uživatelům vytvářet, spravovat a odstraňovat virtuální stroje běžící na hypervizoru KVM z webového rozhraní. Je postaven na Django a podporuje uživatelskou autorizaci a ověřování. S WebVirtCloud můžete spravovat několik hypervizorů QEMU/KVM, spravovat sítě hypervizorů a spravovat fondy datových úložišť z jediné instalace.
V tomto tutoriálu vám ukážu, jak nainstalovat nástroj WebVirtCloud KVM Management na Ubuntu 20.04.
Předpoklady
- Server se systémem Ubuntu 20.04.
- Na serveru je nakonfigurováno heslo uživatele root.
Začínáme
Nejprve aktualizujte systémové balíčky na aktualizovanou verzi spuštěním následujícího příkazu:
apt-get update -y
Jakmile jsou všechny balíčky aktualizovány, můžete přejít k dalšímu kroku.
Ověřte podporu virtualizace
Před spuštěním budete muset ověřit, zda váš operační systém podporuje hardwarovou virtualizaci či nikoli.
Pro ověření spusťte následující příkaz.
grep -E -c "vmx|svm" /proc/cpuinfo
Pokud je výstup vyšší než 0, váš operační systém podporuje hardwarovou virtualizaci.
2
Dále budete také muset zkontrolovat, zda je váš systém schopen spouštět virtuální stroje KVM.
Chcete-li tak učinit, nainstalujte cpu-checker pomocí následujícího příkazu:
apt-get install cpu-checker -y
Po instalaci spusťte následující příkaz pro ověření:
kvm-ok
Měli byste vidět následující výstup:
INFO: /dev/kvm exists KVM acceleration can be used
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalovat KVM Hypervisor
Dále budete muset nainstalovat KVM na váš server. KVM můžete nainstalovat se všemi požadovanými nástroji pomocí následujícího příkazu:
apt-get install qemu qemu-kvm libvirt-daemon bridge-utils virt-manager virtinst -y
Po instalaci budete muset ověřit, zda byl modul KVM načten nebo ne. Můžete to ověřit pomocí následujícího příkazu:
lsmod | grep -i kvm
Měli byste vidět následující výstup:
kvm_intel 286720 0 kvm 663552 1 kvm_intel
Dále zkontrolujte stav služby libvirtd pomocí následujícího příkazu:
systemctl status libvirtd
Měli byste vidět následující výstup:
? 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
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalovat Nginx a další balíčky
Dále budete muset nainstalovat Nginx, Python a další požadované balíčky na váš server. Všechny je můžete nainstalovat pomocí následujícího příkazu:
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
Jakmile jsou všechny balíčky nainstalovány, můžete přejít k dalšímu kroku.
Instalace a konfigurace WebVirtCloud
Nejprve si stáhněte nejnovější verzi WebVirtCloud z úložiště Git pomocí následujícího příkazu:
git clone https://github.com/retspen/webvirtcloud
Po dokončení stahování změňte adresář na webvirtcloud a zkopírujte ukázkový soubor setting.py:
cd webvirtcloud
cp webvirtcloud/settings.py.template webvirtcloud/settings.py
Dále vygenerujte tajný klíč pomocí následujícího příkazu:
openssl rand -base64 32
Měli byste získat následující výstup:
mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0=
Dále upravte soubor settings.py a definujte svůj tajný klíč:
nano webvirtcloud/settings.py
Změňte následující řádek:
SECRET_KEY = "mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0="
Uložte a zavřete soubor a poté zkopírujte konfigurační soubor WebVirtCloud do adresáře Nginx and Supervisor:
cp conf/supervisor/webvirtcloud.conf /etc/supervisor/conf.d
cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d
Dále se vraťte do svého domovského adresáře a přesuňte adresář webvirtcloud do adresáře /srv:
cd ..
mv webvirtcloud /srv/
Dále nastavte správné vlastnictví adresáře webvirtcloud:
chown -R www-data:www-data /srv/webvirtcloud/
Dále změňte adresář na webvirtcloud a vytvořte virtuální prostředí:
cd /srv/webvirtcloud/
virtualenv -p python3 venv
Dále aktivujte virtuální prostředí pomocí následujícího příkazu:
source venv/bin/activate
Dále nainstalujte požadované závislosti Pythonu pomocí následujícího příkazu:
pip install -r conf/requirements.txt
Měli byste vidět následující výstup:
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
Dále spusťte příkaz migrate pro vygenerování všech tabulek:
python3 manage.py migrate
Měli byste vidět následující výstup:
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
Dále deaktivujte z virtuálního prostředí Pythonu pomocí následujícího příkazu:
deactivate
Dále nastavte správné vlastnictví adresáře webvirtcloud pomocí následujícího příkazu:
chown -R www-data:www-data /srv/webvirtcloud/
Dále odstraňte výchozí konfigurační soubor virtuálního hostitele Nginx:
rm /etc/nginx/sites-enabled/default
Poté restartujte službu Nginx a Supervisor, aby se změny projevily:
systemctl restart nginx
systemctl restart supervisor
Nyní můžete ověřit stav Nginx pomocí následujícího příkazu:
systemctl status nginx
Měli byste vidět následující výstup:
? 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.
Nastavení KVM a Libvirt
Dále spusťte následující skript pro nastavení KVM a Libvirt:
wget -O - https://bit.ly/36baWUu | sh
Měli byste vidět následující výstup:
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()
Nakonec přidejte uživatele KVM do skupiny www-data pomocí následujícího příkazu:
adduser www-data kvm
Přístup k WebVirtCloud
V tomto okamžiku je WebVirtCloud nainstalován a nakonfigurován. Je čas vstoupit do webového rozhraní WebVirtCloud.
Otevřete webový prohlížeč a zadejte adresu URL http://ip-vaseho-serveru . Budete přesměrováni na přihlašovací stránku WebVirtCloud:
Zadejte výchozí uživatelské jméno a heslo jako admin/admin a klikněte na Přihlásit se knoflík. Na následující stránce byste měli vidět řídicí panel WebVirtCloud:
Závěr
Gratulujeme! úspěšně jste nainstalovali WebVirtCloud na server Ubuntu 20.04. Nyní můžete vytvářet a spravovat své virtuální stroje z webového rozhraní. Neváhejte se mě zeptat, pokud máte nějaké otázky.