Introduction
Nous allons virtualiser une infrastructure d’école grâce à la solution Hâpy, basée sur OpenNebula :
- Le serveur Amon sécurise les flux réseaux et filtre les accès Web ;
- Le serveur Scribe authentifie les utilisateurs et leur offre un espace de partage de fichiers ;
- Le serveur Eclair prend en charge les clients légers.
Cette école dispose déjà des ressources suivantes :
- Un réseau d’accès 192.168.230.0/24 derrière le routeur du fournisseur d’accès Internet, ce dernier est configuré avec l’adresse IP 192.168.230.254 ;
- Un réseau pédago 10.1.1.0/24 pour les serveurs et postes clients de l’établissement ;
- Un serveur DNS externe 192.168.232.2 ;
- Une passerelle SMTP smtp.mon-fai.example.fr.
Pré-requis
Il faut aborder deux points essentiels à la mise en œuvre de la virtualisation de cet école : l’architecture réseau et les capacités du serveur de virtualisation.
Réseau
Nous partons du principe que le réseau physique de l’école ne dispose pas de VLAN.
Dans notre cas il faut pour le serveur Hâpy :
- Une carte dédiée à l’administration de l’hyperviseur Hâpy, branchée sur le réseau pédago. Attention : Lors de la phase d’installation, cette interface sera connectée au réseau d’accès afin de télécharger les mises à jour et les images ISO nécessaires à l’installation des modules ;
- Une carte dédiée à l’accès internet de l’Amon, branchée sur le réseau d’accès derrière le routeur du FAI ;
- Une carte dédiée pour le réseau pédagogique.
Capacité
Les besoins de capacité de l’hyperviseur dépendront directement des usages.
Le projet des clients léger LTSP nous donne les indications suivantes pour un serveur autonome :
- Pour la mémoire, ils utilisent la formule suivante : 1500Mo + (300Mo * NOMBRE_DE_CLIENTS_LÉGERS) ;
- Pour le processeur, un multi-cœur 2GHz doit faire l’affaire.
Cela représente pour 10 clients légers 4500Mo, soit un peu plus de 4Go de mémoire vive pour le serveur Eclair.
Il faut bien évidemment prendre en compte les autres serveurs virtuels hébergés par notre Hâpy :
- Amon : 1 à 2Go
- Scribe : 2 à 4Go
Pour notre infrastructure, nous disposons :
- D’un CPU Core i7 37770 3.4GHz 4 cœurs 8 threads ;
- De 32 Go de mémoire vive.
Stockage
La taille du stockage est directement liée à la taille des disques que vous souhaitez allouer à vos serveurs.
Dans notre cas, nous choisissons les tailles suivantes :
- 50Go pour le serveur Amon, vous pouvez augmenter la taille pour le cache web et les journaux systèmes
- 50Go pour le serveur Eclair
- 100Go pour le serveur Scribe
Notre serveur Hâpy dispose d’un SSD de 128Go sur lequel nous allons installer le système en partitionnement automatique.
Nous ajouterons manuellement au groupe de volumes un second disque physique SATA de 500Go, une fois l’installation terminée, afin d’augmenter la taille de /var/tmp
et /var/lib/one
.
Mise en œuvre du serveur Hâpy
Maintenant que nos ressources sont définies, nous pouvons passer à l’installation à proprement parler.
Installation
Notre serveur est équipé d’un microcode UEFI qui est pris en charge par EOLE depuis la version 2.5.2.
Nous pouvons donc télécharger l’image ISO 2.6.0 et l’installer sur une clef USB.
La procédure d’installation se déroule comme prévue et le serveur redémarre correctement.
Extension du groupe de volume
Notre configuration nécessite d’ajouter le second disque au groupe de volume, cela se fait très simplement :
- Se connecter root sur la console du serveur
- Déterminer le nom du disque dur de 500Go avec la commande
fdisk -l /dev/sd*
, dans notre cas il s’agit de/dev/sdb
- Transformer ce disque en volume physique LVM avec la commande
pvcreate /dev/sdb
- Étendre le groupe de volume avec ce nouveau volume physique avec la commande:
vgextend hapy-vg /dev/sdb
- Étendre le volume logique de /var/tmp et son système de fichier avec la commande :
lvextend -r -L20G /dev/hapy-vg/var+tmp
- Étendre le volume logique de /var/lib/one et son système de fichier avec la commande :
lvextend -r -L300G /dev/hapy-vg/var+lib+one
Nous avons désormais les tailles suivantes pour nos volumes logiques :
root@igor:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root hapy-vg -wi-ao---- 9,31g swap_1 hapy-vg -wi-ao---- 1,91g tmp hapy-vg -wi-ao---- 1,86g var hapy-vg -wi-ao---- 8,38g var+lib+one hapy-vg -wi-ao---- 300,00g var+tmp hapy-vg -wi-ao---- 20,00g
Mise à jour
Avant de continuer, il est conseillé de faire une mise à jour.
Configuration
Nous allons maintenant configurer le serveur Hâpy en exécutant, en tant qu’utilisateur root, la commande gen_config.
Voici à titre d’exemple la configuration de notre serveur Hâpy :
- Configuration de l’onglet Général
- Mode Basic → Nom de l’établissement ⮕ Établissement de Test
- Mode Basic → Nom de la machine ⮕ igor
- Mode Basic → Nom DNS du réseau local ⮕ etb1.lan
- Mode Basic → Nom de domaine académique (ex : ac-dijon) ⮕ ac-dijon
- Mode Normal → Nombre d’interfaces à activer ⮕ 3
- Configuration de l’onglet Interface 0 :
Durant la phase d’installation, nous branchons l’Interface 0 sur le réseau d’accès derrière le routeur du FAI. Seul une machine d’administration, dont l’adresse IP est 10.1.1.10, aura accès à SSH et à l’EAD.- Mode Basic → Adresse IP de la carte ⮕ 10.1.1.2
- Mode Basic → Adresse IP de la passerelle par défaut ⮕ 10.1.1.1
- Mode Basic → Autoriser les connexions SSH ⮕ oui
- Mode Basic → Adresse IP réseau autorisée pour les connexions SSH ⮕ 10.1.1.10
- Mode Basic → Masque du sous réseau pour les connexions SSH ⮕ 255.255.255.255
- Mode Basic → Adresse IP réseau autorisée pour administrer le serveur ⮕ 10.1.1.10
- Mode Basic → Masque du sous réseau pour administrer le serveur ⮕ 255.255.255.255
- Configuration de l’Onglet Messagerie
- Mode Normal → Adresse électronique recevant les courriers électroniques à destination du compte root ⮕ admin@etb1.lan
- Mode Basic → Router les courriels par une passerelle SMTP ⮕ oui
- Mode Basic → Passerelle SMTP ⮕ smtp.mon-fai.example.fr
- Mode Basic → Adresse IP de la carte ⮕ 10.1.1.2
- Configuration de l’onglet Commutateur virtuel
Nous allons associer les interfaces physiques du serveur Hâpy aux réseaux logiques internet et pédago.
Afin de différencier les réseaux dans OpenNebula, nous utilisons la solution Open vSwitch et déclarons chaque réseau comme VLAN séparé.
Le réseau physique ne supportant pas les VLAN, nous devons passer en mode expert afin de paramétrer les ports du switch virtuel en mode access.- Un premier port de commutateur virtuel associé à une interface physique
- Mode Normal → Nom du port du commutateur virtuel associé à une interface physique ⮕ internet
- Mode Normal → Interface physique ⮕ eth1
- Mode Normal → Identifiant du VLAN virtuel ⮕ 10
- Mode Expert → Mode du VLAN virtuel ⮕ access
- Un second port de commutateur virtuel associé à une interface physique
- Mode Normal → Nom du port du commutateur virtuel associé à une interface physique ⮕ pedago
- Mode Normal → Interface physique ⮕ eth2
- Mode Normal → Identifiant du VLAN virtuel ⮕ 20
- Mode Expert → Mode du VLAN virtuel ⮕ access
- Un premier port de commutateur virtuel associé à une interface physique
- Configuration de l’onglet Virtualisation
Nous devons maintenant déclarer dans OpenNebula les réseaux internet et pedago et faire correspondre les numéros de VLAN avec ceux déclarés au préalable dans l’onglet Commutateur virtuel- Un premier réseau virtuel à plage d’adresse ethernet
- Mode Normal → Nom du réseau virtuel à plage d’adresse ethernet ⮕ internet
- Mode Normal → Nombre d’adresse MAC disponible ⮕ 254
- Mode Normal → Numéro du VLAN ⮕ 10
- Un Second réseau virtuel à plage d’adresse ethernet
- Mode Normal → Nom du réseau virtuel à plage d’adresse ethernet ⮕ pedago
- Mode Normal → Nombre d’adresse MAC disponible ⮕ 254
- Mode Normal → Numéro du VLAN ⮕ 20
- Un premier réseau virtuel à plage d’adresse ethernet
NB : L’accès à l’interface web est limité aux adresses définie par Mode Basic → Adresse IP réseau autorisée pour administrer le serveur.
Nous pouvons maintenant enregistrer cette configuration et exécuter la commande instance pour appliquer la configuration.
Parmi les mots de passe demandé, celui de l’utilisateur eoleone permettra de se connecter à l’interface web d’OpenNebula.
Une fois le serveur instancié, la commande diagnose permet de vérifier l’état du serveur.
Préparation des images d’installation
Il est possible d’initialiser des modèles de VM avec quelques fonctions de base :
- ISO EOLE
- Disque dur vierge
- Modèle d’installation d’Eolebase
Nous allons :
- Télécharger l’image ISO 2.5.2.1 car nous disposons déjà de l’ISO 2.6.0
- Créer un disque vierge de 50Go
Nous exécutons à nouveau gen_config pour modifier la configuration, celle-ci se fait dans l’onglet Modèle :
- Mode Normal → Activer l’auto-création du modèle de machine virtuelle pour installer un module EOLE ⮕ oui
- Mode Normal → Version de l’image ISO EOLE à télécharger ⮕ 2.5.2.1
- Mode Normal → Taille en giga-octets du disque dur vierge ⮕ 50
Une fois la configuration enregistrée et nous exécutons la commande reconfigure pour procéder :
- au téléchargement de l’image ISO 2.5.2.1
- à la création du disque vierge de 50Go
- à la création d’un modèle de machine virtuel pour installer des modules EOLE, nous devons appliquer le correctif #18448 manuellement car il n’est pas publié au moment où nous écrivons ces lignes
Une fois l’image ISO téléchargée, nous pouvons :
- Connecter l’Interface 0 au réseau pédago ;
- Modifier les paramètres de l’interface dans gen_config ;
- Exécuter reconfigure.
La partie requérant un accès shell au serveur Hâpy est terminée, le reste sera fait directement à travers l’interface web d’OpenNebula.
Initialisation du modèle de machine 2.6.0
Nous pouvons désormais, depuis un poste du réseau pédago, nous connecter à l’interface web OpenNebula à l’adresse http://igor.etb1.lan:9000 avec le compte eoleone et le mot de passe saisi précédemment.
Nous accédons au tableau de bord d’un module Hâpy presque vierge.
Nous pouvons voir qu’il y a déjà des images enregistrés et 2 réseaux virtuels configurés.
Notre serveur Hâpy ne dispose pas de certificat valide, il n’est configuré qu’avec le certificat auto-signé par défaut. Nous devons valider ce certificat pour l’URL https://igor.etb1.lan:29876 afin d’accéder aux consoles VNC Web. Après la validation, une erreur 405 indique que la réponse du serveur websocketproxy n’est pas valide en HTTP.
Image ISO 2.6.0
Nous allons maintenant téléverser l’image ISO 2.6.0, pour ce faire nous sélectionnons le menu Storage → Images.
Nous pouvons maintenant cliquer sur le bouton vert + en haut à gauche afin d’ajouter une image avec les paramètres suivant :
- Nom ⮕ ISO-Eole-2.6.0-amd64
- Description ⮕ Image ISO EOLE Stable 2.6.0 64 bits
- Type ⮕ CD-ROM en lecture seule
- Espace de stockage ⮕ 102: iso-images
- Chemin d’accès → Téléverser ⮕ parcourir votre disque dur jusqu’à l’image iso eole-2.6.0-alternate-amd64.iso
- Options avancées → BUS ⮕ Parallel ATA (IDE)
Modèle de machine virtuelle 2.6.0
Nous allons créer manuellement un modèle de machine virtuelle.
Nous sélectionnons le menu Modèles de VM → Machines Virtuelles, puis un clic sur le bouton vert « + » en haut à gauche afin de saisir les paramètres du modèle :
- Onglet Général :
- Onglet Stockage
- Onglet Réseau ⮕ aucun
- Onglet Démarrage de l’OS :
- Onglet Entrée/Sortie :
Préparation des serveurs virtuels
Chacun des modules EOLE (Amon, Scribe et Eclair) nécessitera la même procédure.
Nous allons commencer par préparer un modèle de base du module. À cette étape nous ne faisons aucune configuration spécifique au module. Ce modèle permettra de démarrer de nouveaux serveurs sans repasser par la phase d’installation depuis l’image ISO.
La phase de mise en production consiste à instancier une machine virtuelle à partir du modèle précédent et à dérouler la configuration EOLE (genconfig + instance).
Pour les modules Amon et Scribe, il faut ajouter une étape de personnalisation pour y connecter le module Eclair.
Nous allons commencer par le serveur Amon qui donnera l’accès internet aux autres machines du réseau, y compris Hâpy.
Mise en œuvre du serveur Amon 2.5.2.1
Création d’une image de base
Depuis l’interface web d’OpenNebula, les étapes de création d’un modèle de base sont les suivantes :
- Sélection du menu Modèles de VM → Machines Virtuelles
- Sélection du modèle InstallEOLE-2.5.2.1-amd64 et clic sur le bouton Instancier
- Configuration du modèle et démarrage de la machine
- Dans le menu Instances → Machines Virtuelles, nous ouvrons la console VNC de la machine démarrée
- Nous obtenons l’écran de démarrage de l’image ISO et nous sélectionnons le module Amon
- Nous déroulons l’installation jusqu’à la demande de redémarrage
- Nous redémarrons la machine jusqu’à l’écran d’invite de connexion
- Nous éteignons la machine
- Nous sauvegardons cette machine virtuelle en créant un nouveau modèle de machine virtuelle
- Nous appelons ce modèle Amon 2.5.2.1 – fresh install
- Le disque est sauvegardé et un nouveau modèle est créé
- Nous pouvons supprimer la machine virtuelle après sa sauvegarde
Mise en production
Nous allons démarrer le serveur Amon fraîchement installé pour créer notre serveur de production, afin de conserver les données nous allons demander un serveur persistant :
- Sélection du menu Modèles de VM → Machines Virtuelles
- Sélection du modèle Amon 2.5.2.1 – fresh install et clic sur le bouton Instancier
- Nous démarrons une machine virtuelle Amon 2.5.2.1 – production et en sélectionnant l’option Instancier comme persistant
Nous pouvons maintenant sélectionner le menu Instances → Machines Virtuelles, pendant quelques instant, la machine est en état CLONING car nous avons demandé une image persistante, il faut donc un modèle et une image disque dédiés.
Une fois le clone démarré, nous pouvons ouvrir la console VNC et nous connecter.
Attention, il peut-être difficile de saisir le mot de passe aléatoire dans la console VNC, nous utilisons la souris pour le copier/coller :
- Sélection du mot de passe avec le bouton gauche de la souris
- Coller le mot de passe avec un clic du milieu
Une fois connecté nous exécutons la commande gen_config pour configurer le serveur.
Nous appliquons la configuration en exécutant la commande instance et nous vérifions l’état du serveur après instance avec la commande diagnose.
Préparation pour scribe et Éclair
Nous allons ajouter au DNS de l’Amon des entrées pour les serveurs Hâpy, scribe et l’éclair :
Configuration de l’onglet Mode Expert → Réseau avancé :
- Pour le serveur Hâpy
- Mode Expert → Adresse IP de l’hôte ⮕ 10.1.1.2
- Mode Expert → Nom long de l’hôte ⮕ hapy.etb1.lan
- Mode Expert → Nom court de l’hôte ⮕ hapy
- Pour le serveur Scribe
- Mode Expert → Adresse IP de l’hôte ⮕ 10.1.1.3
- Mode Expert → Nom long de l’hôte ⮕ scribe.etb1.lan
- Mode Expert → Nom court de l’hôte ⮕ scribe
- Pour le serveur Eclair
- Mode Expert → Adresse IP de l’hôte ⮕ 10.1.1.4
- Mode Expert → Nom long de l’hôte ⮕ eclair.etb1.lan
- Mode Expert → Nom court de l’hôte ⮕ eclair
Mise en œuvre du serveur Scribe 2.6.0
Nous allons répéter la même procédure que pour l’Amon en sélectionnant les modèles 2.6.0.
Création d’une image de base
- Sélection du menu Modèles de VM → Machines Virtuelles
- Sélection du modèle InstallEOLE-2.6.0-amd64 et clic sur le bouton Instancier
- Configuration du modèle et démarrage de la machine
- Dans le menu Instances → Machines Virtuelles, nous ouvrons la console VNC de la machine démarrée
- Nous obtenons l’écran de démarrage de l’image ISO et nous sélectionnons le module Scribe
- Nous déroulons l’installation jusqu’à la demande de redémarrage
- Nous redémarrons la machine jusqu’à l’écran d’invite de connexion
- Nous éteignons la machine
- Nous sauvegardons cette machine en créant un nouveau modèle de machine virtuelle
- Nous appelons ce modèle Scribe 2.6.0 – fresh install
- Le disque est sauvegardé et un nouveau modèle est créé
- Nous pouvons supprimer la machine virtuelle après sa sauvegarde
Mise en production
Nous allons démarrer le serveur Scribe fraîchement installé afin de créer notre serveur de production, afin de conserver les données nous allons demander un serveur persistant :
- Sélection du menu Modèles de VM → Machines Virtuelles
- Sélection du modèle Scribe 2.6.0 – fresh install et clic sur le bouton Instancier
- Nous démarrons une machine virtuelle Scribe 2.6.0 – production et en sélectionnant l’option Instancier comme persistant
Nous pouvons maintenant sélectionner le menu Instances → Machines Virtuelles, pendant quelques instant, la machine est en état CLONING car nous avons demandé une image persistante, il faut donc un modèle et une image disque dédié.
Une fois le clone démarré, nous pouvons ouvrir la console VNC et nous connecter.
Attention, il peut-être difficile de saisir le mot de passe aléatoire dans la console VNC, nous utilisons la souris pour le copier/coller :
- Sélection du mot de passe avec le bouton gauche de la souris
- Coller le mot de passe avec un clic du milieu
Une fois connecté nous exécutons la commande gen_config pour configurer le serveur.
Nous appliquons la configuration en exécutant la commande instance et nous vérifions l’état du serveur après instance avec la commande diagnose.
Préparation pour Éclair
Le serveur Eclair a besoin d’un serveur NFS pour accéder aux répertoires personnels des utilisateurs.
Les clients légers nécessitent un serveur DHCP
Nous devons en premier lieu installer le paquet eole-nfs, en ligne de commande sur le serveur scribe :
root@scribe:~# apt-eole install eole-nfs
Nous devons ensuite configurer les services NFS, DHCP, et PXE/TFTP :
- Activation du DHCP et PXE/TFTP
- Paramétrage du DHCP
- Autorisation de l’IP de l’Éclair à utiliser le NFS
- Utilisation de l’adresse IP de l’Eclair comme serveur PXE/TFTP
Nous devons aussi activer le shell pour l’utilisateur admin :
- avec la commande :
root@scribe:~# smbldap-usermod -s /bin/bash admin
- Avec l’EAD du scribe
Mise en œuvre du serveur Eclair 2.6.0
Nous allons répéter la même procédure que pour le scribe.
Création d’une image de base
- Sélection du menu Modèles de VM → Machines Virtuelles
- Sélection du modèle InstallEOLE-2.6.0-amd64 et clic sur le bouton Instancier
- Configuration du modèle et démarrage de la machine
- Dans le menu Instances → Machines Virtuelles, nous ouvrons la console VNC de la machine démarrée
- Nous obtenons l’écran de démarrage de l’image ISO et nous sélectionnons le module Eclair
- Nous déroulons l’installation jusqu’à la demande de redémarrage
- Nous redémarrons la machine jusqu’à l’écran d’invite de connexion
- Nous éteignons la machine
- Nous sauvegardons cette machine en créant un nouveau modèle de machine virtuelle
- Nous appelons ce modèle Eclair 2.6.0 – fresh install
- Le disque est sauvegardé et un nouveau modèle est créé
- Nous pouvons supprimer la machine virtuelle après sa sauvegarde
Mise en production
Nous allons démarrer le serveur Amon fraîchement installé afin de créer notre serveur de production, afin de conserver les données nous allons demander un serveur persistant :
- Sélection du menu Modèles de VM → Machines Virtuelles
- Sélection du modèle Eclair 2.6.0 – fresh install et clic sur le bouton Instancier
- Nous démarrons une machine virtuelle à Scribe 2.6.0 – production en sélectionnant l’option Instancier comme persistant
Nous pouvons maintenant sélectionner le menu Instances → Machines Virtuelles, pendant quelques instant, la machine est en état CLONING car nous avons demandé une image persistante, il faut donc un modèle et une image disque dédié.
Une fois le clone démarré, nous pouvons ouvrir la console VNC et nous connecter.
Attention, il peut-être difficile de saisir le mot de passe aléatoire dans la console VNC, nous utilisons la souris pour le copier/coller :
- Sélection du mot de passe avec le bouton gauche de la souris
- Coller le mot de passe avec un clic du milieu
Une fois connecté nous exécutons la commande gen_config pour configurer le serveur.
NB : Il faut autoriser les connexions SSH pour les clients légers, dans notre cas nous autorisons le réseau 10.1.1.0/24 :
- Configuration de l’onglet Interface 0 :
- Mode Basic → Adresse IP réseau autorisée pour les connexions SSH ⮕ 10.1.1.0
- Mode Basic → Masque du sous réseau pour les connexions SSH ⮕ 255.255.255.255
- Mode Basic → Adresse IP réseau autorisée pour les connexions SSH ⮕ 10.1.1.0
Nous appliquons la configuration en exécutant la commande instance cela génère l’image des clients légers :
Nous vérifions l’état du serveur après instance avec la commande diagnose.
Gestion de l’architecture des clients légers
Par défaut, l’image des clients légers et de la même architecture que le serveur Eclair, c’est à dire AMD64.
Il est toutefois possible de générer des images i386 en paramétrant la variable :
Puis appliquer le paramètre en exécutant la commande reconfigure.
Test d’un client PXE
Nous pouvons désormais démarrer des clients PXE, nous allons définir un nouveau modèle de machine virtuel dans OpenNebula à cet effet.
Nous sélectionnons le menu Modèles de VM → Machines Virtuelles, puis un clic sur le bouton vert « + » en haut à gauche afin de saisir les paramètres du modèle :
- Onglet Général :
- Onglet Stockage ⮕ aucun
- Onglet Réseau ⮕ CR_pedago
- Onglet Démarrage de l’OS :
- Onglet Entrée/Sortie :
Il suffit désormais d’instancier ce modèle et d’accéder à son interface VNC.
Au bout de quelques instant des messages de négociation DHCP apparaissent suivis du chargement d’un noyau et de son initramfs et enfin le système démarre jusqu’à une invite de connexion.
Nous nous connectons avec l’utilisateur admin.
ATTENTION : lors de la première connexion, il faut impérativement configurer le tableau de bord de XFCE en sélectionnant Utiliser les paramètres par défaut.
Aller plus loin
Nous allons ajouter des logiciels que nous souhaitons utiliser sur le serveur Eclair : LibreOffice et l’environnement MATE
Après avoir appliqué un errata, nous pouvons choisir l’environnement MATE à la connexion et nous retrouvons automatiquement les logiciels installés.
Pingback : Déployer des modules EOLE dans une infrastructure Zéphir / Hâpy(s) - EOLE | EOLE