WebVirtCloud est un outil de gestion basé sur le Web pour la virtualisation KVM. Il permet aux administrateurs et aux utilisateurs de créer, gérer et supprimer des machines virtuelles s'exécutant sur l'hyperviseur KVM à partir d'une interface Web. Il est construit sur Django et prend en charge l'autorisation et l'authentification basées sur l'utilisateur. Avec WebVirtCloud, vous pouvez gérer plusieurs hyperviseurs QEMU/KVM, gérer des réseaux d'hyperviseurs et gérer des pools de banques de données à partir d'une seule installation.
Dans ce tutoriel, je vais vous montrer comment installer l'outil WebVirtCloud KVM Management sur Ubuntu 20.04.
Prérequis
- Un serveur exécutant Ubuntu 20.04.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Tout d'abord, mettez à jour les packages système vers la version mise à jour en exécutant la commande suivante :
apt-get update -y
Une fois tous les packages mis à jour, vous pouvez passer à l'étape suivante.
Vérifier la prise en charge de la virtualisation
Avant de commencer, vous devrez vérifier si votre système d'exploitation prend en charge la virtualisation matérielle ou non.
Exécutez la commande suivante pour le vérifier.
grep -E -c "vmx|svm" /proc/cpuinfo
Si la sortie est supérieure à 0, votre système d'exploitation prend en charge la virtualisation matérielle.
2
Ensuite, vous devrez également vérifier si votre système est capable d'exécuter des machines virtuelles KVM.
Pour cela, installez le cpu-checker avec la commande suivante :
apt-get install cpu-checker -y
Une fois installé, exécutez la commande suivante pour vérifier :
kvm-ok
Vous devriez voir le résultat suivant :
INFO: /dev/kvm exists KVM acceleration can be used
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer l'hyperviseur KVM
Ensuite, vous devrez installer KVM sur votre serveur. Vous pouvez installer KVM avec tous les outils requis à l'aide de la commande suivante :
apt-get install qemu qemu-kvm libvirt-daemon bridge-utils virt-manager virtinst -y
Après l'installation, vous devrez vérifier si le module KVM a été chargé ou non. Vous pouvez le vérifier avec la commande suivante :
lsmod | grep -i kvm
Vous devriez voir le résultat suivant :
kvm_intel 286720 0 kvm 663552 1 kvm_intel
Ensuite, vérifiez l'état du service libvirtd avec la commande suivante :
systemctl status libvirtd
Vous devriez voir le résultat suivant :
? 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
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer Nginx et d'autres packages
Ensuite, vous devrez installer Nginx, Python et les autres packages requis sur votre serveur. Vous pouvez tous les installer avec la commande suivante :
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
Une fois tous les packages installés, vous pouvez passer à l'étape suivante.
Installer et configurer WebVirtCloud
Tout d'abord, téléchargez la dernière version de WebVirtCloud depuis le dépôt Git à l'aide de la commande suivante :
git clone https://github.com/retspen/webvirtcloud
Une fois le téléchargement terminé, changez le répertoire vers le webvirtcloud et copiez l'exemple de fichier setting.py :
cd webvirtcloud
cp webvirtcloud/settings.py.template webvirtcloud/settings.py
Ensuite, générez une clé secrète avec la commande suivante :
openssl rand -base64 32
Vous devriez obtenir le résultat suivant :
mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0=
Ensuite, éditez le fichier settings.py et définissez votre clé secrète :
nano webvirtcloud/settings.py
Modifiez la ligne suivante :
SECRET_KEY = "mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0="
Enregistrez et fermez le fichier puis copiez le fichier de configuration de WebVirtCloud dans le répertoire Nginx et Supervisor :
cp conf/supervisor/webvirtcloud.conf /etc/supervisor/conf.d
cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d
Ensuite, retournez dans votre répertoire personnel et déplacez le répertoire webvirtcloud du répertoire /srv :
cd ..
mv webvirtcloud /srv/
Ensuite, définissez la propriété appropriée sur le répertoire webvirtcloud :
chown -R www-data:www-data /srv/webvirtcloud/
Ensuite, changez le répertoire en webvirtcloud et créez un environnement virtuel :
cd /srv/webvirtcloud/
virtualenv -p python3 venv
Ensuite, activez l'environnement virtuel avec la commande suivante :
source venv/bin/activate
Ensuite, installez les dépendances Python requises avec la commande suivante :
pip install -r conf/requirements.txt
Vous devriez voir le résultat suivant :
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
Ensuite, exécutez la commande migrate pour générer toutes les tables :
python3 manage.py migrate
Vous devriez voir le résultat suivant :
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
Ensuite, désactivez depuis l'environnement virtuel Python avec la commande suivante :
deactivate
Ensuite, définissez la propriété appropriée sur le répertoire webvirtcloud avec la commande suivante :
chown -R www-data:www-data /srv/webvirtcloud/
Ensuite, supprimez le fichier de configuration de l'hôte virtuel par défaut Nginx :
rm /etc/nginx/sites-enabled/default
Ensuite, redémarrez le service Nginx et Supervisor pour appliquer les modifications :
systemctl restart nginx
systemctl restart supervisor
Vous pouvez maintenant vérifier l'état du Nginx avec la commande suivante :
systemctl status nginx
Vous devriez voir le résultat suivant :
? 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.
Configurer KVM et Libvirt
Ensuite, exécutez le script suivant pour configurer KVM et Libvirt :
wget -O - https://bit.ly/36baWUu | sh
Vous devriez voir le résultat suivant :
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()
Enfin, ajoutez un utilisateur KVM au groupe www-data avec la commande suivante :
adduser www-data kvm
Accéder à WebVirtCloud
À ce stade, WebVirtCloud est installé et configuré. Il est temps d'accéder à l'interface Web de WebVirtCloud.
Ouvrez votre navigateur Web et saisissez l'URL http://your-server-ip . Vous allez être redirigé vers la page de connexion WebVirtCloud :
Indiquez le nom d'utilisateur et le mot de passe par défaut en tant qu'administrateur/administrateur et cliquez sur Connexion bouton. Vous devriez voir le tableau de bord WebVirtCloud sur la page suivante :
Conclusion
Toutes nos félicitations! vous avez installé avec succès WebVirtCloud sur le serveur Ubuntu 20.04. Vous pouvez désormais créer et gérer vos machines virtuelles à partir de l'interface Web. N'hésitez pas à me demander si vous avez des questions.