Dans un article récent, j’ai décrit en détail l’installation de Rocky Linux 8 sur un serveur dédié Scaleway Dedibox. Le modèle d’entrée de gamme, la Dedibox Start, offre des performances plutôt modestes avec un processeur Intel Atom C2338, 4 Go de RAM et un SSD de 120 Go. Or, il se trouve que ce petit processeur de rien du tout est capable de faire de la virtualisation matérielle, du moins en théorie :
# lscpu | grep Virtual Virtualization: VT-x
Je vais donc tenter une petite expérience :
- Transformer mon serveur dédié en hyperviseur KVM
sandbox.microlinux.fr
. - Connecter mon gestionnaire de machines virtuelles à cet hyperviseur.
- Installer trois machines virtuelles Rocky Linux 8 sur cet hyperviseur.
- Chaque machine virtuelle devra être joignable sur sa propre adresse IPv4 publique.
- Les machines virtuelles seront nommées respectivement
sandbox-01.microlinux.fr
,sandbox-02.microlinux.fr
etsandbox-03.microlinux.fr
.
L’intérêt pratique d’une telle expérience, c’est de disposer de son propre petit cluster de bacs à sable virtualisés sur une machine qui est actuellement facturée aux alentours de dix euros par mois.
Installer l’hyperviseur KVM
- L’installation de Rocky Linux 8 sur un serveur dédié Scaleway est décrite en détail ici.
- Reportez-vous à la série de liens à la fin de l’article pour la configuration post-installation.
- La mise en place d’un hyperviseur KVM est décrite en détail dans cet article.
Connecter Virtual Machine Manager
Le gestionnaire de machines virtuelles (virt-manager
) devra être installé sur votre poste de travail ou votre portable. Pour la connexion, nous utiliserons l’authentification par clé SSH. Ici, je copie ma clé SSH publique (et non pas la clé privée, hein) vers mon hyperviseur pour pouvoir me connecter sans mot de passe :
$ ssh-copy-id -i .ssh/id_rsa.pub root@sandbox.microlinux.fr
Je lance le gestionnaire de machines virtuelles pour configurer la connexion à distance :
- Fichier > Ajouter une connexion.
- Hyperviseur : QEMU/KVM.
- Je coche Se connecter à l’hôte distant via SSH.
- Nom d’utilisateur :
root
. - Nom de l’hôte :
sandbox.microlinux.fr
. - Je coche Connexion automatique.
- Je clique sur Connecter.
Si tout se passe bien, la connexion apparaît comme ceci dans la fenêtre principale du gestionnaire de machines virtuelles :
Une IP publique pour chaque VM
Avant d’installer nos machines virtuelles, il nous faut des adresses IP publiques pour qu’elles soient joignables depuis l’extérieur. L’interface de gestion de Scaleway offre la possibilité de commander une ou plusieurs adresses IP failover pour notre serveur, et c’est ce que nous allons faire.
Note pour les chipoteurs : Oui, je sais bien que les adresses IPv4 sont officiellement obsolètes depuis 2014. En attendant, je vais simplement me contenter d’en piocher trois dans le lot de celles qui ont miraculeusement résisté à cette obsolescence numérique.
Commander les adresses IP failover pour les VM :
- Se connecter à la console Online.
- Ouvrir le menu Serveur > Liste des serveurs.
- Sélectionner la machine > Administrer > Failover.
- Cliquer sur Commander des adresses IP > Adresses IP seules.
- Choisir les adresses IP dans la liste et cliquer sur Commander.
Associer une adresse IP au serveur :
- Revenir à la page d’administration du serveur > Failover.
- Glisser-déposer l’adresse IP failover vers le serveur correspondant.
- Cliquer sur Mise à jour en bas de la page.
- Attendre cinq minutes.
Associer une adresse MAC virtuelle à l’IP failover :
- Serveur > Liste des serveurs > Sélectionner la machine > Administrer.
- Réseau > Adresses secondaires > + d’infos > Ajouter une adresse MAC.
- Adresse MAC virtuelle > Déplier le menu > Ajouter une adresse MAC virtuelle pour KVM.
- Noter l’adresse MAC, par exemple
52:54:00:00:E4:AC
.
Télécharger Rocky Linux
Dans le cas présent, la meilleure solution consiste à télécharger le support d’installation directement sur l’hyperviseur. Le choix du support d’installation réseau permet de gagner un peu de place sur le disque :
# cd /var/lib/libvirt/images/ # wget -c https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.7-x86_64-boot.iso
Démarrer l’installation
- Lancer le gestionnaire de machines virtuelles.
- Mettre l’hyperviseur distant en surbrillance :
QEMU/KVM: sandbox.microlinux.fr
. - Fichier > Nouvelle machine virtuelle.
- Sélectionner Média d’installation local.
- Cliquer sur Parcourir et actualiser la liste des volumes.
- Sélectionner
Rocky-8.7-x86_64-boot.iso
. - Allouer
1024 Mo
de mémoire et2
cœurs de CPU à la VM. - Créer une image disque de
6 Gio
. - Nom :
sandbox-01.microlinux.fr
- Cocher Personnaliser la configuration avant l’installation.
- Sélectionner le réseau : Bridge device >
br0
. - Cliquer sur Terminer.
- NIC :aa:bb:cc > Adresse MAC > remplacer par l’adresse allouée par Scaleway, par exemple
52:54:00:00:E4:AC
. - Appliquer les changements et cliquer sur Commencer l’installation.
Utiliser le raccourci Ctrl+Alt pour détacher le curseur de la console :
Partitionnement
Une fois qu’on se retrouve dans la fenêtre principale de l’installateur Anaconda, on peut basculer vers une console virtuelle pour effectuer un partitionnement manuel en ligne de commande :
- Touche d’envoi > Ctrl+Alt+F5.
Éventuellement, configurer la disposition du clavier dans la console :
# loadkeys fr-latin1
Partitionner le disque virtuel :
# fdisk /dev/sda
On utilisera un schéma de partitionnement minimaliste :
- une partition d’échange
/dev/sda1
de 1 Go - une partition principale
/dev/sda2
de 5 Go
Le disque virtuel pourra être facilement redimensionné en cas de besoin.
# fdisk -l /dev/sda Disk /dev/sda: 6 GiB, 6442450944 bytes, 12582912 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xd5c6d70d Device Boot Start End Sectors Size Id Type /dev/sda1 2048 2099199 2097152 1G 82 Linux swap / Solaris /dev/sda2 * 2099200 12582911 10483712 5G 83 Linux
Retourner dans l’installateur graphique :
- Touche d’envoi > Ctrl+Alt+F6.
- Partitionnement > Personnalisé > Rafraîchir > Réanalyser les disques.
- Mettre
/dev/sda1
en surbrillance > cliquer sur Reformater > Système de fichiers :swap
> Étiquette :swap
> cliquer sur Mise à jour des paramètres. - Mettre
/dev/sda2
en surbrillance > cliquer sur Reformater > Système de fichiers :ext4
> Point de montage :/
> Étiquette :root
> cliquer sur Mise à jour des paramètres.
Réseau & nom d’hôte
Configurer le réseau :
- Cliquer sur Configurer.
- Nom de la connexion :
WAN
- Périphérique :
ens3 (52:54:00:00:E4:AC)
- Ouvrir l’onglet Paramètres IPv4.
- Méthode : Manuel.
- Adresses : cliquer sur Ajouter.
- Adresse :
163.172.226.12
- Masque de réseau :
24
- Passerelle :
62.210.0.1
- Serveurs DNS :
62.210.16.6
,62.210.16.7
- Ouvrir l’onglet Paramètres IPv6.
- Méthode : Ignorer.
- Cliquer sur Enregistrer.
- Nom d’hôte :
sandbox-01
- Activer le réseau.
Même si l’installateur nous l’affiche en surbrillance jaune, l’adresse IP 62.210.0.1
n’est pas une erreur. Elle correspond à la passerelle unique fournie par Scaleway pour toutes les machines virtuelles.
Configuration post-installation de la VM
Configurer l’authentification par clé SSH :
$ ssh-copy-id -i .ssh/id_rsa.pub root@sandbox-01.microlinux.fr $ ssh-copy-id -i .ssh/id_rsa.pub microlinux@sandbox-01.microlinux.fr
Supprimer le fichier Kickstart généré par l’installateur :
# rm -f anaconda-ks.cfg
Supprimer le délai d’attente du chargeur de démarrage :
# /etc/default/grub GRUB_TIMEOUT=0 ...
Prendre en compte les modifications :
# grub2-mkconfig -o /boot/grub2/grub.cfg
Procéder à la configuration post-installation comme pour un serveur classique :
- Configuration automatique
- Configurer NetworkManager
- Configurer FirewallD
- Synchronisation NTP
- Postfix minimal
- Protéger SSH avec Fail2ban
- Mises à jour automatiques
Créer un template
Une fois que la VM est correctement configurée, je vais m’en servir pour créer un template dans un premier temps :
- Éteindre la VM.
- Mettre la VM en surbrillance.
- Clic droit > Cloner.
- Nom :
sandbox-template
- Cliquer sur Cloner.
- Mettre le template
sandbox-template
en surbrillance. - Édition > Détails de la machine virtuelle.
- Afficher > Détails.
- NIC :aa:bb:cc > Clic droit > Enlever un matériel.
Cloner une VM
À partir du template sandbox-template
, je vais maintenant créer une machine virtuelle clonée sandbox-02.microlinux.fr
qui dispose de sa propre adresse IPv4 publique :
- Mettre le template
sandbox-template
en surbrillance. - Clic droit > Cloner.
- Nom :
sandbox-02.microlinux.fr
- Cliquer sur Cloner.
- Mettre la VM
sandbox-02.microlinux.fr
en surbrillance. - Édition > Détails de la machine virtuelle.
- Afficher > Détails.
- Ajouter un matériel > Réseau.
- Source du réseau > Bridge device > Device Name :
br0
- Adresse MAC : renseigner l’adresse MAC allouée par Scaleway pour l’adresse IPv4 correspondante.
- Modèle du périphérique :
virtio
- Cliquer sur Terminer.
- Démarrer la VM
sandbox-02.microlinux.fr
en affichant la console.
Renseigner le nom d’hôte correct dans /etc/hostname
:
sandbox-02
Rectifier l’adresse IP et le nom d’hôte dans /etc/hosts
:
# /etc/hosts
127.0.0.1 localhost.localdomain localhost
212.129.5.42 sandbox-02.microlinux.fr sandbox-02
Redémarrer :
# reboot
Corriger la configuration de NetworkManager :
# nmtui
- Sélectionner
Edit a connection
. - Supprimer
Wired connection 1
. - Éditer la connexion
WAN
. - Renseigner l’adresse MAC correcte dans la rubrique
Device
. - Renseigner l’adresse IPv4 correcte.
- Activer la connexion
WAN
.
Tester la connexion :
# ping -c 4 google.fr
Éditer /etc/postfix/main.cf
pour corriger la configuration de Postfix :
# Host
myhostname = sandbox-02.microlinux.fr
Prendre en compte les modifications :
# systemctl restart postfix
Éditer /etc/dnf/automatic.conf
pour corriger la configuration des mises à jour automatiques :
[emitters] system_name = sandbox-02.microlinux.fr emit_via = email
Procéder de même pour cloner la machine virtuelle sandbox-03.microlinux.fr
.
Au final, voici nos trois machines virtuelles en état de fonctionnement :
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
0 commentaire