L’infrastructure de bureau virtuel (VDI) permet de déporter le système d’un ordinateur sur un serveur. Le système va être hébergé sur le serveur seul la souris, le clavier et l’affichage vont être déportés sur le client léger. Cela permet de garder en service des machines qui ne sont plus assez puissantes pour supporter un système d’exploitation par exemple.
Généralité
Fonctionnement d’un VDI
Dans une architecture VDI un serveur est utilisé pour faire tourner des clients légers. Le système de ces clients va tourner sur le serveur, seul les contrôles (clavier, souris..) et l’affichage seront déportés. Votre équipement va servir de terminal d’accès (client léger).
Grâce à la mise en place d’un VDI, vous pourrez utiliser des terminaux légers mais aussi garder en service des équipements devenus obsolètes/lents, vous permettant d’avoir un gain financier car ces équipements pourront rester en service. Autre point positif, les clients légers se déploient très facilement une fois votre serveur configuré.
Néanmoins l’architecture de votre solution doit avoir été murement réfléchie. Vous devrez dimensionner votre serveur en fonction du nombre de clients légers, mais aussi avoir un réseau assez performant afin que vos clients n’aies pas de lenteur.
Les VDI existants
Sur le marché il y a plusieurs solutions de VDI, pour vous citer quelques exemples:
Outils sous licence:
- XenDesktop (Citrix)
- Microsoft (A partir Windows Server 2008)
Outils libres:
- RHEV (Red Hat Entreprise Virtualization)
- LTSP (Linux Terminel Server Project) que nous allons déployer dans ce tutoriel
LTSP
Architecture
Lors de ce tutoriel nous allons mettre en place l’architecture suivante:
Elle est composée d’un serveur LTSP et d’un client léger. Si vous êtes curieux vous pouvez réaliser ce tutoriel sur un outil de virtualisation (Worstation, Virtualbox…). Dans ce cas, créez une machine virtuelle sous Ubuntu qui sera votre serveur et créez une seconde machine, en supprimant le disque dur, qui sera votre client léger. Prenez soin de mettre vos deux machines sur le même réseau.
Fonctionnement
L’outil LTSP s’appuie sur trois protocoles pour fonctionner: DHCP, TFTP et SSH.
Grâce au protocole DHCP, notre serveur va attribuer aux clients la configuration réseau adéquate. Ensuite le client léger va charger son système grâce au protocole TFTP. Les échanges entre le client et le serveur vont ensuite s’effectuer avec le protocole SSH.
Installation
Lors de ce tutoriel je vais utiliser la distribution Ubuntu 16.04 téléchargeable ici. Commencez par mettre à jour votre système.
sudo apt-get update sudo apt-get upgrade
Configurez une IP fixe sur votre serveur, éditez le fichier « interfaces » avec la commande suivante:
sudo nano /etc/network/interfaces
Copiez le contenu suivant dans le fichier en remplaçant eth0 par votre interface réseau. Vous pourrez avoir le nom de celle-ci en tapant la commande « ifconfig » si vous ne la connaissez pas.
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.1.24.203 netmask 255.255.255.0 gateway 10.1.24.254 dns-nameservers 8.8.8.8
Redémarrez le service réseau du serveur afin que les modifications soient prises en compte.
sudo /etc/init.d/networking restart
Nous allons installer LTSP. Lancez la commande ci-dessous:
sudo apt-get install ltsp-server-standalone
Passons à la configuration du serveur DHCP, éditez le fichier suivant:
sudo nano /etc/ltsp/dhcpd.conf
Entrez le texte ci-dessous en adaptant les paramètres à votre réseau:
# # Configuration DHCP LTSP dhcpd.conf # authoritative; subnet 10.1.24.0 netmask 255.255.255.0 { range 10.1.24.50 10.1.24.250; option domain-name "ain.local"; option domain-name-servers 8.8.8.8; option broadcast-address 10.1.24.255; option routers 10.1.24.254; next-server 10.1.24.203 option subnet-mask 255.255.255.0; option root-path "/opt/ltsp/i386"; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/i386/pxelinux.0"; } else { filename "/ltsp/i386/nbi.img"; } }
Maintenant que le serveur est configuré nous allons redémarrer le service DHCP afin que les modifications soient prises en compte.
sudo service isc-dhcp-server restart
Nous allons créer l’image système qui va être chargée sur nos clients. Vous devez avoir une connexion internet fonctionnelle pour cette étape. Lancez la commande suivante:
sudo ltsp-build-client --arch i386
Le chargement se lance, cette opération va prendre quelques minutes. Une fois terminée, entrez les commandes suivantes afin que la création soit prise en compte:
sudo apt-get update sudo apt-get upgrade sudo ltsp-update-kernels sudo ltsp-update-image sudo ltsp-update-sshkeys
Dans ce tutoriel je laisse les paramètres par défaut, libre à vous de les modifier en éditant le fichier suivant :
sudo nano /opt/ltsp/i386/etc/lts.conf
Vous pourrez modifier différents paramètres, comme par exemple si un client de votre réseau possède moins de XX GB de RAM, celui-ci sera forcé de démarrer en client léger.
Lancement client léger
Notre serveur est configuré, nous allons maintenant tester le bon fonctionnement de celui-ci. Vous devez dans un premier temps vous assurer que le client démarre en premier sur la carte réseau. Pour vérifier, rendez-vous dans le bios de votre client dans l’onglet « Boot » et utilisez – ou + pour mettre votre carte réseau en première.
Allez ensuite dans l’onglet « Exit » et sélectionnez « Exit Saving Changes » pour sauvegarder vos modifications.
Démarrez le client. Celui-ci va dans un premier temps récupérer une adresse IP:
Le client va ensuite charger l’image système en TFTP.
Une fois le chargement terminé, vous devriez arriver sur la fenêtre ci-dessous:
Dépannage
Si votre client ne charge pas l’image système, contrôlez votre configuration. Vérifiez que les services DHCP, TFTP et SSH soient bien lancés sur le serveur avec les commandes suivantes:
systemctl status isc-dhcp-server systemctl status ssh systemctl status tftpd-hpa
Nous arrivons à la fin de ce tutoriel. Vous connaissez désormais les bases sur la virtualisation de clients légers et savez comment mettre en place une architecture VDI.
Merci pour tous ces détails.
Je monte un réseau expérimental chez moi, pour le fun!
Ingénieur logiciel, je m’oriente vers l’adm.
Bonne suite.
Merci pour votre retour et bonne chance pour votre nouvelle orientation 🙂
Amusez-vous bien !
Bonjour,
J’ai installé ltsp sur mon serveur ubuntu 16.04 et quand je connecte un client léger(ordi portable) en boot pxe, j’ai bien écran de login.
Mais lorsque je rentre les identifiants d’un utilisateur du serveur, il se connecte, il y a un écran noir avec la souris(en chargement) et ensuite il y a un message de restart LDM, que faire ?
Le login est bien accepté vu que lorsque je rentre un mauvais mdp, il y a un message d’erreur.
J’ai essayé avec des raspberry pi (avec berryterminal) mais c’est le même problème.
Merci d’avance.
Marceau
Bonjour,
Je vous conseille de regarder les logs de votre serveur cela vous permettra d’avoir une piste sur la cause du problème.