Comment installer WebVirtCloud KVM Management sur Ubuntu 20.04

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 fonctionnant 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, tu peux gérer plusieurs hyperviseurs QEMU/KVM, gérer les réseaux d’hyperviseurs et gérer les pools de datastores à partir d’une seule installation.

Dans ce tutoriel, je vais te montrer comment installer l’outil de gestion KVM de WebVirtCloud sur Ubuntu 20.04.

Conditions préalables

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Pour commencer

Tout d’abord, mets les paquets système à la version mise à jour en exécutant la commande suivante :

apt-get update -y

Une fois que tous les paquets sont mis à jour, tu peux passer à l’étape suivante.

Vérifier la prise en charge de la virtualisation

Avant de commencer, tu dois vérifier si ton système d’exploitation prend en charge la virtualisation matérielle ou non.

Exécute la commande suivante pour le vérifier.

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

Si le résultat est supérieur à 0, alors ton système d’exploitation prend en charge la virtualisation matérielle.

2

Ensuite, tu devras aussi vérifier si ton système est capable d’exécuter des machines virtuelles KVM.

Pour ce faire, installe le cpu-checker avec la commande suivante :

apt-get install cpu-checker -y

Une fois installé, exécute la commande suivante pour vérifier :

kvm-ok

Tu devrais voir la sortie suivante :

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

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installe l’hyperviseur KVM

Ensuite, tu devras installer KVM sur ton serveur. Tu peux installer KVM avec tous les outils nécessaires en utilisant la commande suivante :

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

Après l’installation, tu devras vérifier si le module KVM a été chargé ou non. Tu peux le vérifier à l’aide de la commande suivante :

lsmod | grep -i kvm

Tu devrais voir la sortie suivante :

kvm_intel             286720  0
kvm                   663552  1 kvm_intel

Ensuite, vérifie l’état du service libvirtd à l’aide de la commande suivante :

systemctl status libvirtd

Tu devrais 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 tu as terminé, tu peux passer à l’étape suivante.

Installe Nginx et les autres paquets

Ensuite, tu devras installer Nginx, Python et les autres paquets requis sur ton serveur. Tu peux 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 que tous les paquets sont installés, tu peux passer à l’étape suivante.

Installer et configurer WebVirtCloud

Tout d’abord, télécharge 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é, change le répertoire en webvirtcloud et copie le fichier exemple setting.py :

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

Ensuite, génère une clé secrète à l’aide de la commande suivante :

openssl rand -base64 32

Tu devrais obtenir la sortie suivante :

mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0=

Ensuite, modifie le fichier settings.py et définis ta clé secrète :

nano webvirtcloud/settings.py

Change la ligne suivante :

SECRET_KEY = "mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0="

Sauvegarde et ferme le fichier puis copie 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, retourne dans ton répertoire personnel et déplace le répertoire webvirtcloud dans le répertoire /srv :

cd ..
mv webvirtcloud /srv/

Ensuite, définis la propriété appropriée au répertoire webvirtcloud :

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

Ensuite, change le répertoire en webvirtcloud et crée un environnement virtuel :

cd /srv/webvirtcloud/
virtualenv -p python3 venv

Ensuite, active l’environnement virtuel avec la commande suivante :

source venv/bin/activate

Ensuite, installe les dépendances Python requises avec la commande suivante :

pip install -r conf/requirements.txt

Tu devrais 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écute la commande migrate pour générer toutes les tables :

python3 manage.py migrate

Tu devrais 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ésactive l’environnement virtuel Python avec la commande suivante :

deactivate

Ensuite, définis la propriété appropriée au répertoire webvirtcloud avec la commande suivante :

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

Ensuite, supprime le fichier de configuration de l’hôte virtuel par défaut de Nginx :

rm /etc/nginx/sites-enabled/default

Ensuite, redémarre le service Nginx et Supervisor pour appliquer les modifications :

systemctl restart nginx
systemctl restart supervisor

Tu peux maintenant vérifier l’état de Nginx avec la commande suivante :

systemctl status nginx

Tu devrais voir la sortie suivante :

? 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écute le script suivant pour configurer KVM et Libvirt :

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

Tu devrais 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, ajoute 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.

Ouvre ton navigateur Web et tape l’URL http://your-server-ip. Tu seras redirigé vers la page de connexion de WebVirtCloud :

Connexion à WebVirtCloud

Indique le nom d’utilisateur et le mot de passe par défaut comme admin/admin et clique sur le bouton Se connecter. Tu devrais voir le tableau de bord de WebVirtCloud sur la page suivante :

Tableau de bord webVirtCloud

Conclusion

Félicitations ! Tu as installé avec succès WebVirtCloud sur le serveur Ubuntu 20.04. Tu peux maintenant créer et gérer tes machines virtuelles à partir de l’interface Web. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...