Table des matières

, , , , ,

:TODO_DOCUPDATE:

Créer une VM avec virt-install

La CLI virt-install est un assistant de création de machine Virtuelle. Elle peut être lancée en mode interactif ou invoquée via un ensemble d'options décrivant la VM à créer.

todo: bureau distant avec spice

Installation de virt-install

sudo apt-get install virtinst libosinfo-bin

Pour que les processus de création et de gestion des VMs se déroulent sans erreur, l'utilisateur doit faire parti des groupes libvirt et libvirt-qemu. L'utilisateur libvirt-qemu gérant le service hyperviseur doit pouvoir accéder aux fichiers disques et aux ISO utilisés lors de la création de la VM.

Ci-dessous un exemple de retour d'erreur lors d'une tentative de création de VM dans un dossier utilisateur sur lequel l'hyperviseur n'a pas les droits appropriés :

WARNING  il se peut que /home/yoann/KVM/install_files/debian-12.5.0-amd64-netinst.iso ne soit pas accessible à l’hyperviseur. Vous devrez fournir à l’utilisateur « libvirt-qemu » des permissions de recherche pour les répertoires suivants : ['/home/yoann', '/home/yoann/KVM', '/home/yoann/KVM/install_files']

Début d’installation…
ERROR    Cannot access storage file '/home/yoann/KVM/debian12/vda' (as uid:64055, gid:104): Permission non accordée

Pour ajouter l'utilisateur courant au groupe libvirt-qemu

sudo adduser $( id -un ) libvirt-qemu

Ensuite on peut changer le groupe principal de l'utilisateur courant et créer les dossier :

newgrp libvirt-qemu
 
mkdir -p ~/KVM/maVM

Exemple de création d'une VM

Plusieurs modes d'installation sont possibles, ici on a choisit de télécharger un ISO et d'installer la VM à partir de celui-ci. virt-install peut créer le fichier disque et le réseau, ici nous choisissons de les créer en amont.

lister les réseaux disponibles:

virsh net-list
 Name      State    Autostart   Persistent
--------------------------------------------
 default   active   yes         yes
 
# Afficher les caractéristiques du réseau "default"
virsh net-info default
Name:           default
UUID:           af20a5ca-db45-4b5e-a2ee-e50ad4c79264
Active:         yes
Persistent:     yes
Autostart:      yes
Bridge:         virbr0

Ici il existe un réseau par défaut, le nom du pont est virbr0, on l'utilisera pour notre VM.

Plusieurs formats sont disponibles pour le fichier disque de la VM. On utilise qcow2, il sera provisionné à l'usage.

# Positionne le groupe libvirt-qemu comme groupe principal de l'utilisateur courant
newgrp libvirt-qemu
 
mkdir -p ~/KVM/debian11
cd ~/KVM/debian11
qemu-img create -f qcow2 vda 5G
L'utilisateur libvirt-qemu doit avoir accès en lecture/écriture sur le dossier contenant l'image disque.

Créons à présent la VM avec virt-install:

virt-install \
 -n debian11-amd64 \
 --description "Debian 11 codename bullseye" \
 --os-type=Linux \
 --os-variant=debian9 \
 --ram=1024 \
 --vcpus=2 \
 --disk format=qcow2,path=/home/yoann/KVM/debian11/vda \
 --vnc \
 --cdrom /home/yoann/KVM/inst_medias/debian-11.6.0-amd64-netinst.iso \
 --network bridge:virbr0

L'utilisation de l'option --os-variant est fortement recommandée. Elle prépositionne un ensemble d'options permettant d'optimiser la VM. Les valeurs possibles de --os-variant peuvent être obtenues par la commande osinfo-query os

Cette exemple succinct donne les éléments de base de la syntaxe de virt-install. Des notes plus détaillées sont disponibles

Références