Table des matières

, , , , , , ,

Aide-mémoire virsh

:TODO:

Fonctionnement global

Selon les distributions il peut y avoir un service système monolithique, c'est le cas pour Debian/Ubuntu avec libvirtd ou un ensemble de daemons comme pour RHEL/Fedora/RockyLinux exécutant virtqemud, virtnetworkd et virtstoraged.

Modes d'exécution des VMs

libvirt fonctionne selon deux modes distincts :

Exemples avec options longues et courtes :

# Lister les VMs disponibles sur le système (l'utilisateur invoquant la commande
# devra y être autorisé ) 
virsh --connect qemu:///system list --all
virsh -c qemu:///system list --all
 
# Lister les VMs de l'utilisateur courant
virsh --connect qemu:///session list --all
virsh -c qemu:///session list --all

Pour ne pas avoir à spécifier systématiquement cette option on peut utiliser la variable d'environnement LIBVIRT_DEFAULT_URI

export LIBVIRT_DEFAULT_URI="qemu:///system"
 
# Lister les VMs système en cours d'exécution
virsh list

Si l'utilisateur souhaite invoquer un mode par défaut, il peut exporter la variable dans son fichier ~/.bashrc

Vocabulaire libvirt

Journaux

Lister les traces produites par le service libvirtd :

journalctl --unit libvirtd

Gestion des pools

Création d'un nouveau pool persistant de type répertoire sur un disque externe pour stockage des médias d'installation.

Dans cet exemple le répertoire existe et n'est pas vide, il contient les fichiers ISOs :

virsh pool-define-as --name removable-sysinstall --type dir --target /media/yoann/srv_info/libvirt/pool/install/
virsh pool-start removable-sysinstall

Pour créer un pool temporaire, on peut utiliser virsh pool-create-as

virsh pool-create-as --name temp-repo --type dir --target /media/tmp/

On peut à présent lister les volumes de ce pool :

virsh vol-list --pool removable-sysinstall
 
# Equivalent
virsh vol-list removable-sysinstall

Réseau

Lister les réseau disponibles :

virsh net-list --all

Pour créer un nouveau réseau, utiliser une définition dans un fichier XML

user-vmnet.xml
<network>
  <name>user-vmnet</name>
  <forward mode='nat' />
  <bridge name='virbr1' stp='on' delay='0'/>
  <domain name='user-vmnet.internal'/>
  <ip address='192.168.123.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.123.2' end='192.168.123.254'/>
    </dhcp>
  </ip>
</network>

Pour créer le réseau depuis le fichier XML :

virsh net-define ./user-vmnet.xml

Le réseau est créé mais l'interface n'est pas encore démarrée :

 

Références