{{tag>software virtualisation kvm qemu linux vm}} :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 ===== * https://unix.stackexchange.com/questions/309788/how-to-create-a-vm-from-scratch-with-virsh * https://www.thegeekstuff.com/2014/10/linux-kvm-create-guest-vm/