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
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
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
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