Ceci est une ancienne révision du document !
Table des matières
Gestion des VM KVM/Libvirt à distance avec Virsh
Ce guide regroupe les commandes essentielles pour administrer nos machines virtuelles en ligne de commande (CLI) via SSH, en remplacement de virt-manager.
1. Informations et Statut
Lister les machines virtuelles
Pour afficher toutes les VM (y compris celles qui sont éteintes), l'option –all est indispensable.
sudo virsh list --all
Obtenir les détails d'une VM
Affiche les informations générales (Statut, CPU, Mémoire allouée).
sudo virsh dominfo <nom_de_la_vm>
Connaître l'adresse IP d'une VM
Permet de trouver l'IP attribuée par le serveur DHCP interne de libvirt ou détectée sur l'hôte.
sudo virsh domifaddr <nom_de_la_vm>
2. Gestion de l'alimentation
Démarrer une VM
sudo virsh start <nom_de_la_vm>
Éteindre proprement une VM
Envoie un signal ACPI à l'OS invité pour un arrêt propre (comme un clic sur “Éteindre”).
sudo virsh shutdown <nom_de_la_vm>
Forcer l'arrêt (Urgence)
Équivalent à débrancher la prise électrique. À n'utiliser que si la VM est totalement plantée.
sudo virsh destroy <nom_de_la_vm>
Activer le démarrage automatique
Pour que la VM s'allume toute seule au boot du serveur Debian hôte.
sudo virsh autostart <nom_de_la_vm>
Pour désactiver : ajouter l'option –disable à la fin de la commande.
3. Gestion de la Configuration (XML)
Afficher la configuration XML complète
sudo virsh dumpxml <nom_de_la_vm>
Sauvegarder la configuration dans un fichier
Utile pour faire une sauvegarde textuelle avant modification.
sudo virsh dumpxml <nom_de_la_vm> > backup_<nom_de_la_vm>.xml
Modifier la configuration à la volée
Ouvre la configuration de la VM dans l'éditeur de texte par défaut du système (souvent Nano ou Vim). La VM doit être redémarrée pour appliquer les changements.
sudo virsh edit <nom_de_la_vm>
4. Ressources Matérielles (Évolution)
| Type | Commande | Note |
|---|
| RAM | sudo virsh setmaxmem <nom> 4194304 –config sudo virsh setmem <nom> 4194304 –config | VM éteinte obligatoirement (Exprimé en Kibibytes, ici 4 Go) |
| CPU | sudo virsh setvcpus <nom> 4 –maximum –config sudo virsh setvcpus <nom> 4 –config | VM éteinte obligatoirement |
Agrandir un Disque Dur
1. Trouver le chemin du fichier de disque :
sudo virsh domblklist <nom_de_la_vm>
2. Éteindre la VM, puis ajouter l'espace (ex: +20 Go) sur l'hôte :
sudo qemu-img resize /chemin/vers/image.qcow2 +20G
3. Rallumer la VM et étendre la partition à l'intérieur du système invité.
5. Réseau et Stockage
Lister les disques attachés à une VM
sudo virsh domblklist <nom_de_la_vm> --details
Lister les interfaces réseau d'une VM
sudo virsh domiflist <nom_de_la_vm>
6. Création d'une VM depuis un ISO (virt-install)
Pour créer une VM sans interface graphique depuis votre terminal SSH, utilisez l'outil virt-install.
Commande type d'installation
Cette commande va instancier la VM, créer son disque dur virtuel au format QCOW2 et l'allumer sur l'ISO d'installation pour démarrer le processus.
sudo virt-install \ --name "ma-nouvelle-vm" \ --memory 2048 \ --vcpus 2 \ --os-variant debian12 \ --disk size=20,format=qcow2,pool=default \ --network network=default \ --cdrom /var/lib/libvirt/images/debian-12-installer.iso \ --graphics vnc,listen=0.0.0.0 \ --noautoconsole
Détails importants des options
| Option | Rôle |
|---|
–os-variant | Optimise les pilotes virtuels (virtio) pour l'OS choisi. Utilisez osinfo-query os pour voir la liste des distributions supportées. |
–network | Configure la carte réseau. network=default : Utilise le réseau NAT standard de Libvirt. network=routeur_nat : Si vous voulez la brancher directement derrière votre VM routeur personnalisée. |
–graphics vnc,listen=0.0.0.0 | Active un serveur VNC sur l'hôte Debian. Cela vous permettra de vous connecter graphiquement à l'installateur de l'OS depuis votre PC local via un tunnel SSH (ex: sur le port 5900). |
–noautoconsole | Empêche la commande de bloquer votre terminal SSH en essayant d'ouvrir une console texte immédiatement. |
