Prérequis du Système
- Système d'exploitation : Rocky Linux 9 (ou distributions compatibles RHEL 9+)
- Compte utilisateur disposant des privilèges administrateur (root ou accès sudo)
- Connexion Internet active pour télécharger les paquets nécessaires
- CPU moderne supportant la virtualisation matérielle (Intel VT-x ou AMD-V activé dans le BIOS)
Vérification de la Support Matériel
Avant toute installation, il convient de s'assurer que l'extension de virtualisation est active au niveau du processeur. Les technologies spécifiques sont identifiées par les indicateurs vmx (pour Intel) ou svm (pour AMD).
Exécutez la commande suivante pour inspecter les informations du CPU :
grep -E 'vmx|svm' /proc/cpuinfo
Si des lignes apparaissent dans la sortie, le processeur prend en charge la virtualisation assistée par le matériel.
Déploiement des Binaires de Virtualisation
Une fois la disponibilité matérielle confirmée, procédez à l'installation du paquet complet contenant KVM, QEMU, et les outils de gestion via le gestionnaire de paquets DNF. Vous pouvez installer les outils individuellement, mais l'instalaltion par groupe simplifie la dépendance des bibliothèques.
La commande ci-dessous installe la machine virtuelle, l'interface graphique et les utilitaires de ligne de commande :
sudo dnf install qemu-kvm libvirt python3-libvirt virt-manager libguestfs-tools nftables -y
Après installation, vérifiez le chargement des modules noyaux requis :
lsmod | grep kvm
L'apparition de kvm_intel ou kvm_amd confirme que le pilote est opérationnel.
Gestion du Service Libvirtd
Le démon libvirtd est responsable de l'orchestration des environnements virtuels. Il faut démarrer ce service ainsi que son activation au démarrage automatique.
sudo systemctl enable --now libvirtd
Pour vérifier son état actuel, utilisez :
sudo systemctl status libvirtd
Configuration du Réseau Pont (Bridge)
Pour permettre aux machines virtuelles d'être accessibles depuis le réseau externe, un pont réseau doit être configuré. Cela se fait généralement via NetworkManager en remplaçant l'interface physique actuelle par un pont logique qui inclut cette interface.
- Lister les connexions actuelles :
nmcli connection show
- Identifier l'interface physique : Notez le nom de votre connexion principale (ex:
wired-1) ainsi que son UUID si nécessaire pour la suppression.
Supprimez la configuration existante de l'interface (attention, cela peut couper le réseau temporairement) pour la recréer sous forme de pont :
sudo nmcli connection delete <UUID_OU_NOM>
Créez maintenant l'interface pont elle-même. Dans cet exemple, nous utilisons br0 comme nom de pont :
sudo nmcli connection add type bridge con-name br0 ifname br0 autoconnect yes
Affectez ensuite une adresse IP statique et configurez la passerelle pour ce pont. Supposons une plage locale différente (192.168.10.0/24) pour éviter les conflits avec le réseau d'origine :
sudo nmcli connection modify br0 ipv4.addresses 192.168.10.50/24 ipv4.gateway 192.168.10.1 ipv4.dns "8.8.8.8, 1.1.1.1" ipv4.method manual
- Ajouter l'esclave à partir de l'interface physique :
Rattachons l'ancienne interface physique au nouveau pont. Si le nom était eth0 (remplacez selon votre cas) :
sudo nmcli connection add type bridge-slave con-name eth0-iface ifname eth0 master br0 autoconnect yes
Appliquez ces modifications en reconnectant l'interface :
sudo nmcli connection up br0
Enfin, autorisez KVM à utiliser cette interface en modifiant la configuration de sécurité libvirt :
sudo bash -c 'echo "allow all" > /etc/libvirt/qemu.conf'
Mettez à jour les règles de pare-feu pour autoriser le trafic entrant sur le pont si le fierwall est actif, puis redémarrez le service :
sudo systemctl restart libvirtd
Initialisation d'une Machine Virtuelle
Avec la pile de virtualisation prête, il est possible de provisionner une instance. Pour simplifier l'usage sans élévation de privilèges systématique, attribuez les droits appropriés sur les répertoires de données.
sudo chown -R $USER:libvirt /var/lib/libvirt/images/
Utilisez l'utilitaire virt-install pour déployer une nouvelle machine. Dans cet exemple, nous allons créer une instance basée sur une distribution alternative, ajustant la quantité de ressources allouées.
virt-install \
--name debian-cluster \
--vcpus 2 \
--memory 4096 \
--os-variant debian11 \
--disk path=/var/lib/libvirt/images/debian-virt.qcow2,size=30,format=qcow2 \
--network bridge=br0,model=virtio \
--graphics vnc,listen=0.0.0.0 \
--cdrom /mnt/iso-images/install-debian-11-amd64.iso
L'exécution initie le processus d'installation graphique via VNC. Une fois terminée, l'ISO ne sera plus monté et la machine démarrera sur le disque dur virtuel créé.