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.