Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
software:applications:virsh [2023/02/27 21:54] – créée yoann | software:applications:virsh [2024/06/08 11:02] (Version actuelle) – [Description et commentaires] yoann | ||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
====== Virsh ====== | ====== Virsh ====== | ||
- | **virsh** est le CLI disponible en espace utilisateur dialoguant avec le module KVM et permettant gérer les machines virtuelles notamment: | + | **virsh** est la CLI disponible en espace utilisateur dialoguant avec le module |
* Lister les VMs; | * Lister les VMs; | ||
Ligne 10: | Ligne 10: | ||
* Contrôler l' | * Contrôler l' | ||
* Modifier les configurations à chaud (en ligne) ou de façon permanente. | * Modifier les configurations à chaud (en ligne) ou de façon permanente. | ||
+ | |||
+ | < | ||
+ | Pour un gestionnaire en mode graphique voir **virt-manager** | ||
+ | </ | ||
+ | |||
+ | ===== Connexion ===== | ||
+ | |||
+ | La CLI **virsh** dialogue avec le service de virtualisation. Pour se connecter en mode interactif localement: | ||
+ | |||
+ | <code bash> | ||
+ | virsh | ||
+ | |||
+ | # équivalent à | ||
+ | virsh --connect qemu:/// | ||
+ | </ | ||
+ | |||
+ | ===== Contrôler l' | ||
+ | |||
+ | Une fois en mode interactif, on va pouvoir contrôler les machines via les commandes: | ||
+ | |||
+ | * **list** : afficher les VMs | ||
+ | * **start** : démarrer une VM | ||
+ | * **console** : ouvre un terminal sur la VM | ||
+ | * **suspend** : susprendre l' | ||
+ | * **resume** : reprendre l' | ||
+ | * **shutdown** : arrêter une VM | ||
+ | * **reset** : redémarrage forcé de la VM | ||
+ | * **destroy** : forcer l' | ||
+ | |||
+ | ===== Obtenir des informations ===== | ||
+ | |||
+ | Pour obtenir des informations sur les VMs (désignées domaines) on dispose de la commande **dominfo** | ||
+ | |||
+ | <code bash> | ||
+ | dominfo aVm | ||
+ | </ | ||
+ | |||
+ | * **domstate** : état de la VM | ||
+ | * **dommemstat** : consommation de la mémoire | ||
+ | * **domstats** : affiche les variables statisqtiques | ||
+ | * **domblklist** : lister les périphériques de type bloc (disques) associés à une VM | ||
+ | * **domiflist** : lister les interfaces d'une VM: | ||
+ | |||
+ | La configuration du domaine est décrite dans un fichier XML. Les balises du document sont décrites dans la documentation disponible en ligne à l'URL https:// | ||
+ | |||
+ | La commande **virsh edit** permet d' | ||
+ | <code bash> | ||
+ | virsh edit aDomainName | ||
+ | </ | ||
+ | |||
+ | Utiliser la commande **edit** est équivalent aux commandes: | ||
+ | < | ||
+ | virsh dumpxml --inactive --security-info domain > domain.xml | ||
+ | |||
+ | # Lance l' | ||
+ | vi domain.xml | ||
+ | |||
+ | # Redéfini le domaine avec le fichier modifié | ||
+ | virsh define domain.xml | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Éditer une configuration ===== | ||
+ | |||
+ | Les commandes ci-dessous sont équivalente à **virsh edit** mais l' | ||
+ | |||
+ | <code bash> | ||
+ | # Exporter la configuration de la VM | ||
+ | virsh dumpxml aDomain > aFile.xml | ||
+ | |||
+ | # Editer le fichier XML | ||
+ | vim aFile.xml | ||
+ | |||
+ | # Tester la validité du fichier après altération | ||
+ | virt-xml-validate afile.xml | ||
+ | |||
+ | # Redéfinir la VM via le fichier modifié | ||
+ | virsh define afile.xml | ||
+ | </ | ||
+ | |||
+ | ===== Description et commentaires ==== | ||
+ | |||
+ | Le document XML comprend les balises **%%< | ||
+ | |||
+ | |||
+ | La balise **%%< | ||
+ | |||
+ | <code xml> | ||
+ | < | ||
+ | < | ||
+ | Mes commentaires | ||
+ | ici | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Après toute modification apportée au document, vérifier la syntaxe : | ||
+ | |||
+ | <code bash> | ||
+ | virt-xml-validate aVMConfig.xml | ||
+ | </ | ||
+ | |||
+ | ===== Supprimer une VM ===== | ||
+ | |||
+ | Utiliser la commande **undefine** sur une VM à l' | ||
+ | |||
+ | < | ||
+ | list --all | ||
+ | | ||
+ | --------------------------- | ||
+ | | ||
+ | |||
+ | undefine debian11 | ||
+ | Domain debian11 has been undefined | ||
+ | </ | ||
+ | |||
+ | ===== Connexion à la VM ===== | ||
+ | |||
+ | Pour se connecter à une VM en mode graphique on peut utiliser le client **remote-viewer** | ||
+ | <code bash> | ||
+ | # Affiche l'URI de connexion à l' | ||
+ | domdisplay aDomainName | ||
+ | |||
+ | # Connexion à la GUI de la VM | ||
+ | remote-viewver spice:// | ||
+ | </ | ||
+ | |||
+ | Si une console a été définie on peut également se connecter à la console | ||
+ | <code bash> | ||
+ | virsh console --domain aVM | ||
+ | </ | ||
+ | |||
+ | Si la VM fournit les services telnet ou ssh, on peut ouvrir un shell distant mais il faut d' | ||
+ | |||
+ | |||
+ | ===== Gestion des réseaux ===== | ||
+ | |||
+ | Pour afficher les réseau virtuels : | ||
+ | |||
+ | <code bash> | ||
+ | # liste l' | ||
+ | virsh net-list --all | ||
+ | |||
+ | # liste les réseau virtuels actif : | ||
+ | virsh net-list | ||
+ | </ | ||
+ | |||
+ | |||
+ | Pour obtenir les informations détaillées d’un réseau virtuel : | ||
+ | |||
+ | <code bash> | ||
+ | virsh net-info nom_reseau | ||
+ | </ | ||
+ | |||
+ | Comme pour les VMs, la configuration du réseau virtuel peut être exportée et éditée : | ||
+ | |||
+ | <code bash> | ||
+ | virsh net-dumpxml aNetwork > aNetwork.xml | ||
+ | </ | ||
+ | |||
+ | Ci dessous pour exemple le dump du réseau virtuel par défaut : | ||
+ | <code xml> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <forward mode=' | ||
+ | <nat> | ||
+ | <port start=' | ||
+ | </ | ||
+ | </ | ||
+ | <bridge name=' | ||
+ | <mac address=' | ||
+ | <ip address=' | ||
+ | < | ||
+ | <range start=' | ||
+ | </ | ||
+ | </ip> | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | On peut y voir notamment : | ||
+ | * le périphérique virtuel de type pont associé " | ||
+ | * La configuration DHCP | ||
+ | * La configuration du NAT | ||
+ | |||
+ | |||
+ | Pour désactiver un réseau virtuel : | ||
+ | |||
+ | <code bash> | ||
+ | virsh net-destroy nom_reseau | ||
+ | </ | ||
+ | |||
+ | Pour activer un réseau virtuel : | ||
+ | |||
+ | <code bash> | ||
+ | virsh net-start default | ||
+ | </ | ||
+ | |||
+ | Voir également [[software/ | ||
===== Références ===== | ===== Références ===== | ||
+ | * https:// | ||
+ | * https:// | ||
* https:// | * https:// |