Remplacement de VNC par SPICE dans OpenStack sur un hôte CentOS 8

Comparaison des protocoles de bureau à distance

Avant de passer à SPICE, il est utile de comparer brièvement les protocoles courants : VNC, SPICE et RDP. Cette analyse aide à comprendre les avantages de chaque solution pour les environnements virtualisés.

Fonctionnalité SPICE VNC RDP
Affichage BIOS Oui Oui Non
Support couleur complet Oui Oui Oui
Changement de résolution Oui Oui Oui
Multi-moniteurs Jusqu'à 4 écrans Un seul écran Support multi-écrans
Transmission d'images Images et graphiques Images uniquement Images et graphiques
Support vidéo Accélération GPU Non Accélération GPU
Audio Audio bidirectionnel Non Audio bidirectionnel
Contrôle souris Client et serveur Contrôle côté serveur Contrôle côté serveur
Transmission USB USB via réseau Non USB via réseau

1. VNC (Virtual Network Computing)

Systèmes compatibles : Windows, Linux. Trafic réseau : Léger (environ 100 Ko/s). Cas d'usage : Principalement pour l'administration de serveurs Linux, car il manque le support audio et USB pour les bureaux virtuels.

# Installation du serveur VNC
dnf install tigervnc-server

# Lancer une session VNC sur le display :1
vncserver :1

# Visualiser les sessions actives
vncserver -list

# Modifier le mot de passe d'accès
vncpasswd

# Fermer la session VNC sur le display :1
vncserver -kill :1

Configuration du fichier /etc/sysconfig/vncservers :

# Éditer le fichier de configuration avec un éditeur comme nano
nano /etc/sysconfig/vncservers

# Exemple de configuration
# Format : display_number:utilisateur
VNCSERVERS="2:admin"
# Options supplémentaires : résolution, désactiver TCP, etc.
VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -localhost"

2. SPICE (Simple Protocol for Independent Computing Environments)

Systèmes compatibles : Linux. Trafic réseau : Élevé (10-20 Mo/s). Cas d'usage : Idéal pour les bureaux virtuels grâce à un excellent support des couleurs, de l'audio et de l'USB.

3. RDP (Remote Desktop Protocol)

Systèmes compatibles : Windows, Linux. Trafic réseau : Modéré (100-200 Ko/s). Cas d'usage : Excellent pour les bureaux virtuels avec support audio, USB et mappage de disques locaux.

Sur Linux, pour accéder à un bureau distant Windows :

# Installer le client RDP
dnf install rdesktop

# Connexion en mode plein écran
rdesktop -f -a 16 adresse_ip:port

Pour accéder à un bureau distant Linux via RDP :

# Installer le serveur XRDP
dnf install xrdp

# Démarrer le service
systemctl start xrdp
systemctl enable xrdp

Description de l'environnement

  • Hôte physique : Windows 10 avec VMware Workstation 16
  • Nœuds OpenStack : Un nœud contrôleur (controller) et deux nœuds de calcul (compute1, compute2)
  • Système d'exploitation des VMs : CentOS 8.3 (version minimale)
  • Version d'OpenStack : Victoria

Configuration réseau :

Nom d'hôte Réseau de gestion Interface réseau 1 Réseau fournisseur Interface réseau 2 Matériel
controller 10.0.0.11 ens33 192.168.2.11 ens34 4 cœurs, 8 Go RAM, 64 Go stockage
compute1 10.0.0.31 ens33 192.168.2.31 ens34 4 cœurs, 8 Go RAM, 64 Go stockage
compute2 10.0.0.32 ens33 192.168.2.32 ens34 4 cœurs, 8 Go RAM, 64 Go stockage

Installation et configuration de SPICE pour la console OpenStack

Sur le nœud contrôleur

1. Installation des paquets

Configurer le dépôt EPEL pour CentOS 8 :

# Sauvegarder les fichiers de dépôt existants
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup

# Installer le dépôt EPEL depuis un miroir
dnf install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm

# Ajuster les URLs pour utiliser le miroir local
sed -i 's|^#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

Rechercher les paquets SPICE disponibles :

dnf search spice

Installer les composants nécessaires :

dnf makecache
dnf install -y spice-server spice-protocol openstack-nova-spicehtml5proxy

# Installer manuellement spice-html5 depuis un RPM local
wget https://www.spice-space.org/download/spice-html5/spice-html5-0.1.1-1.fc18.noarch.rpm
rpm -ivh spice-html5-0.1.1-1.fc18.noarch.rpm

2. Configuration de nova.conf

Éditer le fichier /etc/nova/nova.conf avec les modifications suivantes :

[default]
# Désactiver VNC pour utiliser SPICE
vnc_enabled = false

# Commenter les anciennes configurations VNC
# [vnc]
# enabled = true
# server_listen = $my_ip
# server_proxyclient_address = $my_ip

[spice]
enabled = true
keymap = fr-fr
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
html5proxy_host = 0.0.0.0
html5proxy_port = 6082
html5proxy_base_url = http://10.0.0.11:6082/spice_auto.html

3. Gestion des services

Arrêter et désactiver le proxy VNC :

systemctl stop openstack-nova-novncproxy.service
systemctl disable openstack-nova-novncproxy.service

Activer et démarrer le proxy SPICE :

systemctl enable openstack-nova-spicehtml5proxy.service
systemctl start openstack-nova-spicehtml5proxy.service

Vérifier la configuration du pare-feu pour autoriser le port 6082.

Sur les nœuds de calcul

1. Installation des paquets

Utiliser la même configuration de dépôt EPEL que sur le contrôleur, puis installer les composants :

dnf makecache
dnf install -y spice-server spice-protocol

# Installer manuellement spice-html5
wget https://www.spice-space.org/download/spice-html5/spice-html5-0.1.1-1.fc18.noarch.rpm
rpm -ivh spice-html5-0.1.1-1.fc18.noarch.rpm

2. Configuration de nova.conf

Éditer /etc/nova/nova.conf sur chaque nœud de calcul :

[default]
# Désactiver VNC
vnc_enabled = false

# Commenter les configurations VNC existantes
# [vnc]
# enabled = true
# server_listen = 0.0.0.0
# server_proxyclient_address = $my_ip
# novncproxy_base_url = http://192.168.2.11:6080/vnc_auto.html

[spice]
enabled = true
keymap = fr-fr
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
html5proxy_base_url = http://10.0.0.11:6082/spice_auto.html

3. Redémarrage du service

Appliquer les changements en redémarrant le service Nova sur chaque nœud :

systemctl restart openstack-nova-compute.service

Vérification de l'installation SPICE

Redémarrer une instance depuis le tableau de bord OpenStack, puis accéder à la console pour confirmer l'utilisation du protocole SPICE via l'interface HTML5.

Étiquettes: openstack SPICE VNC CentOS Nova

Publié le 21 juin à 16h22