publish: virt-install : créer des machines virtuelles en ligne de commande
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"title": "virt-install : créer des machines virtuelles en ligne de commande",
|
||||
"_updated_at": "2026-05-17 05:53:31",
|
||||
"slug": "virt-install",
|
||||
"published": true,
|
||||
"published_at": "2023-04-01 04:43",
|
||||
"category": "Informatique",
|
||||
"tags": {
|
||||
"tags": [
|
||||
"Virtual Machine",
|
||||
"VM"
|
||||
]
|
||||
},
|
||||
"seo_title": "",
|
||||
"seo_description": "",
|
||||
"og_image": "https://www.abonnel.fr/file?uuid=44b66b04-7b1c-46a3-bbb9-d362692c5b4d&name=cover.svg"
|
||||
}
|
||||
@@ -1,206 +0,0 @@
|
||||
# virt-install : créer des machines virtuelles en ligne de commande
|
||||
|
||||
## Qu'est-ce que virt-install ?
|
||||
|
||||
**virt-install** est un outil en ligne de commande qui permet de créer et d'installer des machines virtuelles sous Linux. Il s'appuie sur la bibliothèque **libvirt** et utilise généralement **KVM** (Kernel-based Virtual Machine), la technologie de virtualisation intégrée au noyau Linux.
|
||||
|
||||
Là où des interfaces graphiques comme **virt-manager** vous font cliquer dans des fenêtres, virt-install fait tout en une seule commande. C'est particulièrement utile pour :
|
||||
|
||||
- **Automatiser** la création de machines virtuelles (scripts, déploiements en série),
|
||||
- **Travailler sur un serveur** sans environnement graphique (SSH uniquement),
|
||||
- **Reproduire** une configuration à l'identique sur plusieurs hôtes,
|
||||
- **Gagner du temps** quand on crée régulièrement des VM de test.
|
||||
|
||||
Avec virt-install, vous spécifiez en arguments toutes les caractéristiques de la machine : quantité de mémoire vive, nombre de processeurs virtuels, taille du disque, type de système d'exploitation, configuration réseau et source d'installation (ISO, réseau, image disque existante…).
|
||||
|
||||
## L'écosystème autour de virt-install
|
||||
|
||||
Pour bien comprendre l'outil, il faut situer les briques logicielles qui travaillent ensemble :
|
||||
|
||||
- **KVM** est le module du noyau Linux qui permet à votre processeur de faire tourner d'autres systèmes d'exploitation de manière isolée et performante.
|
||||
- **QEMU** est l'émulateur qui simule le matériel (carte réseau, disque, écran…) vu par la machine virtuelle. Couplé à KVM, il devient très rapide car il délègue le calcul au vrai processeur.
|
||||
- **libvirt** est la couche d'abstraction qui pilote QEMU/KVM (et d'autres hyperviseurs). C'est elle qui gère le cycle de vie des VM : démarrage, arrêt, sauvegarde, réseau virtuel, stockage.
|
||||
- **virt-install** est un client de libvirt, spécialisé dans la création initiale d'une VM.
|
||||
|
||||
En résumé : virt-install dit à libvirt « crée-moi cette VM », libvirt configure QEMU, et QEMU utilise KVM pour exécuter la machine virtuelle.
|
||||
|
||||
## Prérequis matériels
|
||||
|
||||
Pour profiter pleinement de KVM, votre processeur doit prendre en charge la virtualisation matérielle :
|
||||
|
||||
- **VT-x** sur les processeurs Intel,
|
||||
- **AMD-V** sur les processeurs AMD.
|
||||
|
||||
Cette fonctionnalité doit aussi être **activée dans le BIOS/UEFI** de votre machine (elle est parfois désactivée par défaut, notamment sur les ordinateurs portables).
|
||||
|
||||
Pour vérifier rapidement que votre CPU est compatible :
|
||||
|
||||
```
|
||||
grep -E 'vmx|svm' /proc/cpuinfo
|
||||
```
|
||||
|
||||
Si la commande renvoie des lignes, c'est bon : `vmx` indique un CPU Intel compatible, `svm` un CPU AMD compatible. Si elle ne renvoie rien, soit votre processeur ne supporte pas la virtualisation, soit elle est désactivée dans le BIOS.
|
||||
|
||||
## Installation sur Fedora Linux
|
||||
|
||||
Sur Fedora, l'installation se fait avec **dnf**. Le paquet principal s'installe ainsi :
|
||||
|
||||
```
|
||||
sudo dnf install virt-install
|
||||
```
|
||||
|
||||
En pratique, virt-install seul ne suffit pas : il a besoin du service libvirt pour fonctionner et de qemu-kvm pour réellement exécuter les VM. Pour une installation complète, on installe généralement l'ensemble :
|
||||
|
||||
```
|
||||
sudo dnf install virt-install libvirt qemu-kvm virt-viewer
|
||||
```
|
||||
|
||||
Le paquet **virt-viewer** est utile pour afficher l'écran de la VM depuis votre poste.
|
||||
|
||||
Sur Fedora, il est encore plus simple d'installer le groupe de paquets dédié à la virtualisation, qui regroupe tout ce dont vous avez besoin :
|
||||
|
||||
```
|
||||
sudo dnf group install --with-optional virtualization
|
||||
```
|
||||
|
||||
Une fois les paquets installés, démarrez et activez le service libvirt :
|
||||
|
||||
```
|
||||
sudo systemctl enable --now libvirtd
|
||||
```
|
||||
|
||||
Pour utiliser libvirt sans `sudo` à chaque commande, ajoutez votre utilisateur au groupe `libvirt` (puis reconnectez-vous) :
|
||||
|
||||
```
|
||||
sudo usermod -aG libvirt $USER
|
||||
```
|
||||
|
||||
## Installation sur Debian, Ubuntu et Linux Mint
|
||||
|
||||
Sur les distributions de la famille Debian (Debian, Ubuntu, Linux Mint, MX Linux…), on utilise **apt** au lieu de dnf, et les noms de paquets diffèrent légèrement. Mettez d'abord la liste des paquets à jour :
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
Puis installez la pile complète de virtualisation :
|
||||
|
||||
```
|
||||
sudo apt install virtinst libvirt-daemon-system libvirt-clients qemu-kvm virt-viewer bridge-utils
|
||||
```
|
||||
|
||||
Notez bien deux particularités par rapport à Fedora :
|
||||
|
||||
- Le paquet s'appelle **virtinst** (sans tiret) et non `virt-install`. Une fois installé, la commande reste bien `virt-install`.
|
||||
- **libvirt-daemon-system** fournit le service système libvirt, tandis que **libvirt-clients** apporte les outils en ligne de commande comme `virsh`.
|
||||
|
||||
Démarrez et activez le service libvirt :
|
||||
|
||||
```
|
||||
sudo systemctl enable --now libvirtd
|
||||
```
|
||||
|
||||
Sur Debian et Mint, l'utilisateur doit appartenir à deux groupes pour piloter libvirt sans `sudo` :
|
||||
|
||||
```
|
||||
sudo usermod -aG libvirt,kvm $USER
|
||||
```
|
||||
|
||||
Déconnectez-vous puis reconnectez-vous (ou utilisez `newgrp libvirt`) pour que l'appartenance aux groupes soit prise en compte.
|
||||
|
||||
Vérifiez que tout fonctionne :
|
||||
|
||||
```
|
||||
virsh list --all
|
||||
```
|
||||
|
||||
Si vous obtenez un tableau vide sans erreur de permission, l'installation est réussie. Sur Ubuntu et Mint, le réseau virtuel par défaut est généralement actif tout de suite ; sur Debian, il faut parfois le démarrer manuellement (voir la section sur le réseau plus bas).
|
||||
|
||||
### Note sur AppArmor (Ubuntu/Mint)
|
||||
|
||||
Sur Ubuntu et Linux Mint, **AppArmor** restreint par défaut les processus QEMU. Si vous placez vos images disque ailleurs que dans `/var/lib/libvirt/images/`, vous pouvez rencontrer des erreurs de permission au démarrage de la VM. Le plus simple est de respecter ce dossier par défaut, ou bien d'ajuster la profile AppArmor de libvirt (sujet plus avancé).
|
||||
|
||||
## Anatomie d'une commande virt-install
|
||||
|
||||
Reprenons un exemple concret, ligne par ligne, pour créer une VM Fedora :
|
||||
|
||||
```
|
||||
sudo virt-install \
|
||||
--name ma-vm \
|
||||
--ram 2048 \
|
||||
--vcpus 2 \
|
||||
--disk path=/var/lib/libvirt/images/ma-vm.qcow2,size=20,format=qcow2 \
|
||||
--os-variant fedora39 \
|
||||
--cdrom /chemin/vers/Fedora-Workstation-Live-x86_64-39.iso \
|
||||
--network bridge=virbr0 \
|
||||
--graphics spice
|
||||
```
|
||||
|
||||
Décortiquons chaque option :
|
||||
|
||||
- `--name ma-vm` : le nom de la machine virtuelle dans libvirt. C'est avec ce nom que vous la manipulerez ensuite (`virsh start ma-vm`, par exemple).
|
||||
- `--ram 2048` : la quantité de mémoire vive en mégaoctets, soit 2 Go ici.
|
||||
- `--vcpus 2` : le nombre de processeurs virtuels alloués à la VM.
|
||||
- `--disk` : crée (ou utilise) un disque virtuel. `size=20` signifie 20 Go, et `format=qcow2` choisit un format compact qui n'occupe que l'espace réellement utilisé sur l'hôte.
|
||||
- `--os-variant fedora39` : indique à libvirt quel système va être installé, pour optimiser automatiquement la configuration. La liste des variantes disponibles s'obtient avec `osinfo-query os`.
|
||||
- `--cdrom` : le fichier ISO à utiliser comme média d'installation, comme si vous insériez un CD.
|
||||
- `--network bridge=virbr0` : connecte la VM au pont réseau `virbr0`, le réseau virtuel par défaut créé par libvirt.
|
||||
- `--graphics spice` : active un affichage graphique via le protocole SPICE (plus moderne et performant que VNC). Vous pouvez aussi utiliser `vnc` ou `none` pour une VM sans interface graphique.
|
||||
|
||||
À l'exécution, virt-install démarre la VM et ouvre la console graphique : vous arrivez sur l'installateur de Fedora exactement comme avec une vraie machine.
|
||||
|
||||
## Vérifier le réseau virtuel par défaut
|
||||
|
||||
Le pont `virbr0` est créé automatiquement par libvirt, mais il peut être inactif (notamment sur Debian fraîchement installé). Vérifiez-le avec :
|
||||
|
||||
```
|
||||
sudo virsh net-list --all
|
||||
```
|
||||
|
||||
Si le réseau `default` apparaît comme `inactive`, démarrez-le et activez son démarrage automatique :
|
||||
|
||||
```
|
||||
sudo virsh net-start default
|
||||
sudo virsh net-autostart default
|
||||
```
|
||||
|
||||
## Aller plus loin : installation automatisée
|
||||
|
||||
L'un des grands intérêts de virt-install est de pouvoir installer un OS **sans aucune interaction** grâce à un fichier de configuration de type Kickstart (Fedora/RHEL) ou preseed (Debian/Ubuntu). Par exemple :
|
||||
|
||||
```
|
||||
sudo virt-install \
|
||||
--name auto-vm \
|
||||
--ram 2048 --vcpus 2 \
|
||||
--disk size=20 \
|
||||
--os-variant fedora39 \
|
||||
--location https://download.fedoraproject.org/pub/fedora/linux/releases/39/Server/x86_64/os/ \
|
||||
--initrd-inject=/chemin/vers/ks.cfg \
|
||||
--extra-args "inst.ks=file:/ks.cfg console=ttyS0" \
|
||||
--graphics none
|
||||
```
|
||||
|
||||
Ici, la VM s'installe depuis le réseau, lit un fichier Kickstart qui répond à toutes les questions de l'installateur, et tout se passe sur la console série, sans écran graphique. Idéal pour les scripts de déploiement.
|
||||
|
||||
## Gérer la VM après création
|
||||
|
||||
Une fois la machine créée, virt-install passe la main à libvirt. Vous pilotez ensuite la VM avec `virsh` :
|
||||
|
||||
```
|
||||
virsh list --all # lister toutes les VM
|
||||
virsh start ma-vm # démarrer
|
||||
virsh shutdown ma-vm # arrêt propre
|
||||
virsh destroy ma-vm # arrêt forcé (équivalent à couper le courant)
|
||||
virsh undefine ma-vm # supprimer la définition (sans toucher au disque)
|
||||
virsh console ma-vm # ouvrir une console série
|
||||
```
|
||||
|
||||
Pour afficher graphiquement l'écran de la VM depuis votre poste :
|
||||
|
||||
```
|
||||
virt-viewer ma-vm
|
||||
```
|
||||
|
||||
## En résumé
|
||||
|
||||
virt-install est l'outil de référence pour créer des machines virtuelles KVM en ligne de commande sur Linux. Il s'installe facilement sur les principales distributions (`dnf install virt-install` sur Fedora, `apt install virtinst` sur Debian/Ubuntu/Mint), s'intègre avec libvirt pour gérer ensuite vos VM via `virsh`, et permet aussi bien l'installation interactive que l'automatisation complète via Kickstart ou preseed. Une fois la pile en place, créer une nouvelle VM ne prend plus que quelques secondes de saisie.
|
||||
@@ -1,31 +1,206 @@
|
||||
# virt-install
|
||||
# virt-install : créer des machines virtuelles en ligne de commande
|
||||
|
||||

|
||||
## Qu'est-ce que virt-install ?
|
||||
|
||||
Le programme **virt-install** est un outil en ligne de commande qui permet de créer et d'installer des machines virtuelles sous Linux en utilisant la technologie de virtualisation **KVM** (Kernel-based Virtual Machine).
|
||||
**virt-install** est un outil en ligne de commande qui permet de créer et d'installer des machines virtuelles sous Linux. Il s'appuie sur la bibliothèque **libvirt** et utilise généralement **KVM** (Kernel-based Virtual Machine), la technologie de virtualisation intégrée au noyau Linux.
|
||||
|
||||
Avec **virt-install**, vous pouvez spécifier les caractéristiques de la machine virtuelle, telles que la quantité de mémoire et d'espace disque, le type de processeur, le réseau et les médias d'installation. Vous pouvez également automatiser le processus d'installation en utilisant des fichiers de configuration ou des scripts.
|
||||
Là où des interfaces graphiques comme **virt-manager** vous font cliquer dans des fenêtres, virt-install fait tout en une seule commande. C'est particulièrement utile pour :
|
||||
|
||||
## Installer avec Fedora Linux
|
||||
Pour installer le paquet virt-install sur Fedora, vous pouvez utiliser la commande suivante dans un terminal :
|
||||
- **Automatiser** la création de machines virtuelles (scripts, déploiements en série),
|
||||
- **Travailler sur un serveur** sans environnement graphique (SSH uniquement),
|
||||
- **Reproduire** une configuration à l'identique sur plusieurs hôtes,
|
||||
- **Gagner du temps** quand on crée régulièrement des VM de test.
|
||||
|
||||
sudo dnf install virt-install
|
||||
Avec virt-install, vous spécifiez en arguments toutes les caractéristiques de la machine : quantité de mémoire vive, nombre de processeurs virtuels, taille du disque, type de système d'exploitation, configuration réseau et source d'installation (ISO, réseau, image disque existante…).
|
||||
|
||||
Cette commande installe le paquet **virt-install** ainsi que ses dépendances.
|
||||
## L'écosystème autour de virt-install
|
||||
|
||||
Si nécessaire, vous pouvez également installer le paquet **libvirt** pour gérer les machines virtuelles et **qemu-kvm** pour la virtualisation de niveau machine avec **KVM** :
|
||||
Pour bien comprendre l'outil, il faut situer les briques logicielles qui travaillent ensemble :
|
||||
|
||||
sudo dnf install libvirt qemu-kvm
|
||||
- **KVM** est le module du noyau Linux qui permet à votre processeur de faire tourner d'autres systèmes d'exploitation de manière isolée et performante.
|
||||
- **QEMU** est l'émulateur qui simule le matériel (carte réseau, disque, écran…) vu par la machine virtuelle. Couplé à KVM, il devient très rapide car il délègue le calcul au vrai processeur.
|
||||
- **libvirt** est la couche d'abstraction qui pilote QEMU/KVM (et d'autres hyperviseurs). C'est elle qui gère le cycle de vie des VM : démarrage, arrêt, sauvegarde, réseau virtuel, stockage.
|
||||
- **virt-install** est un client de libvirt, spécialisé dans la création initiale d'une VM.
|
||||
|
||||
Pour utiliser la virtualisation de niveau machine avec **KVM**, votre processeur doit prendre en charge la virtualisation matérielle (**VT-x** pour les processeurs Intel ou **AMD-V** pour les processeurs AMD) et vous devez activer la virtualisation dans le BIOS de votre ordinateur.
|
||||
En résumé : virt-install dit à libvirt « crée-moi cette VM », libvirt configure QEMU, et QEMU utilise KVM pour exécuter la machine virtuelle.
|
||||
|
||||
Pour utiliser **virt-install**, vous devez avoir les permissions d'administrateur sur votre système et avoir installé les paquets **libvirt**, **qemu-kvm**, **virt-install** et les dépendances associées.
|
||||
## Prérequis matériels
|
||||
|
||||
## Exemple d'utilisation
|
||||
Voici un exemple de commande `virt-install` pour créer une machine virtuelle avec une image ISO d'installation de Fedora Linux :
|
||||
Pour profiter pleinement de KVM, votre processeur doit prendre en charge la virtualisation matérielle :
|
||||
|
||||
sudo virt-install --name=ma-machine-virtuelle --ram=2048 --vcpus=2 --disk path=/var/lib/libvirt/images/ma-machine-virtuelle.img,size=20 --os-variant=fedora34 --cdrom=/chemin/vers/l-image-iso/Fedora-Workstation-Live-x86_64-34-1.2.iso --network bridge=virbr0 --graphics=vnc
|
||||
- **VT-x** sur les processeurs Intel,
|
||||
- **AMD-V** sur les processeurs AMD.
|
||||
|
||||
Cette commande crée une machine virtuelle appelée ma-machine-virtuelle avec 2 Go de RAM, 2 vCPU, un disque dur virtuel de 20 Go, une image ISO d'installation de Fedora 34 et une carte réseau virtuelle connectée au réseau `virbr0`. La machine virtuelle sera lancée avec une interface graphique `VNC` pour la configuration de l'installation.
|
||||
Cette fonctionnalité doit aussi être **activée dans le BIOS/UEFI** de votre machine (elle est parfois désactivée par défaut, notamment sur les ordinateurs portables).
|
||||
|
||||
Assurez-vous que le bridge réseau **virbr0** existe sur votre système avant de créer la machine virtuelle. Voir la commande .
|
||||
Pour vérifier rapidement que votre CPU est compatible :
|
||||
|
||||
```
|
||||
grep -E 'vmx|svm' /proc/cpuinfo
|
||||
```
|
||||
|
||||
Si la commande renvoie des lignes, c'est bon : `vmx` indique un CPU Intel compatible, `svm` un CPU AMD compatible. Si elle ne renvoie rien, soit votre processeur ne supporte pas la virtualisation, soit elle est désactivée dans le BIOS.
|
||||
|
||||
## Installation sur Fedora Linux
|
||||
|
||||
Sur Fedora, l'installation se fait avec **dnf**. Le paquet principal s'installe ainsi :
|
||||
|
||||
```
|
||||
sudo dnf install virt-install
|
||||
```
|
||||
|
||||
En pratique, virt-install seul ne suffit pas : il a besoin du service libvirt pour fonctionner et de qemu-kvm pour réellement exécuter les VM. Pour une installation complète, on installe généralement l'ensemble :
|
||||
|
||||
```
|
||||
sudo dnf install virt-install libvirt qemu-kvm virt-viewer
|
||||
```
|
||||
|
||||
Le paquet **virt-viewer** est utile pour afficher l'écran de la VM depuis votre poste.
|
||||
|
||||
Sur Fedora, il est encore plus simple d'installer le groupe de paquets dédié à la virtualisation, qui regroupe tout ce dont vous avez besoin :
|
||||
|
||||
```
|
||||
sudo dnf group install --with-optional virtualization
|
||||
```
|
||||
|
||||
Une fois les paquets installés, démarrez et activez le service libvirt :
|
||||
|
||||
```
|
||||
sudo systemctl enable --now libvirtd
|
||||
```
|
||||
|
||||
Pour utiliser libvirt sans `sudo` à chaque commande, ajoutez votre utilisateur au groupe `libvirt` (puis reconnectez-vous) :
|
||||
|
||||
```
|
||||
sudo usermod -aG libvirt $USER
|
||||
```
|
||||
|
||||
## Installation sur Debian, Ubuntu et Linux Mint
|
||||
|
||||
Sur les distributions de la famille Debian (Debian, Ubuntu, Linux Mint, MX Linux…), on utilise **apt** au lieu de dnf, et les noms de paquets diffèrent légèrement. Mettez d'abord la liste des paquets à jour :
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
Puis installez la pile complète de virtualisation :
|
||||
|
||||
```
|
||||
sudo apt install virtinst libvirt-daemon-system libvirt-clients qemu-kvm virt-viewer bridge-utils
|
||||
```
|
||||
|
||||
Notez bien deux particularités par rapport à Fedora :
|
||||
|
||||
- Le paquet s'appelle **virtinst** (sans tiret) et non `virt-install`. Une fois installé, la commande reste bien `virt-install`.
|
||||
- **libvirt-daemon-system** fournit le service système libvirt, tandis que **libvirt-clients** apporte les outils en ligne de commande comme `virsh`.
|
||||
|
||||
Démarrez et activez le service libvirt :
|
||||
|
||||
```
|
||||
sudo systemctl enable --now libvirtd
|
||||
```
|
||||
|
||||
Sur Debian et Mint, l'utilisateur doit appartenir à deux groupes pour piloter libvirt sans `sudo` :
|
||||
|
||||
```
|
||||
sudo usermod -aG libvirt,kvm $USER
|
||||
```
|
||||
|
||||
Déconnectez-vous puis reconnectez-vous (ou utilisez `newgrp libvirt`) pour que l'appartenance aux groupes soit prise en compte.
|
||||
|
||||
Vérifiez que tout fonctionne :
|
||||
|
||||
```
|
||||
virsh list --all
|
||||
```
|
||||
|
||||
Si vous obtenez un tableau vide sans erreur de permission, l'installation est réussie. Sur Ubuntu et Mint, le réseau virtuel par défaut est généralement actif tout de suite ; sur Debian, il faut parfois le démarrer manuellement (voir la section sur le réseau plus bas).
|
||||
|
||||
### Note sur AppArmor (Ubuntu/Mint)
|
||||
|
||||
Sur Ubuntu et Linux Mint, **AppArmor** restreint par défaut les processus QEMU. Si vous placez vos images disque ailleurs que dans `/var/lib/libvirt/images/`, vous pouvez rencontrer des erreurs de permission au démarrage de la VM. Le plus simple est de respecter ce dossier par défaut, ou bien d'ajuster la profile AppArmor de libvirt (sujet plus avancé).
|
||||
|
||||
## Anatomie d'une commande virt-install
|
||||
|
||||
Reprenons un exemple concret, ligne par ligne, pour créer une VM Fedora :
|
||||
|
||||
```
|
||||
sudo virt-install \
|
||||
--name ma-vm \
|
||||
--ram 2048 \
|
||||
--vcpus 2 \
|
||||
--disk path=/var/lib/libvirt/images/ma-vm.qcow2,size=20,format=qcow2 \
|
||||
--os-variant fedora39 \
|
||||
--cdrom /chemin/vers/Fedora-Workstation-Live-x86_64-39.iso \
|
||||
--network bridge=virbr0 \
|
||||
--graphics spice
|
||||
```
|
||||
|
||||
Décortiquons chaque option :
|
||||
|
||||
- `--name ma-vm` : le nom de la machine virtuelle dans libvirt. C'est avec ce nom que vous la manipulerez ensuite (`virsh start ma-vm`, par exemple).
|
||||
- `--ram 2048` : la quantité de mémoire vive en mégaoctets, soit 2 Go ici.
|
||||
- `--vcpus 2` : le nombre de processeurs virtuels alloués à la VM.
|
||||
- `--disk` : crée (ou utilise) un disque virtuel. `size=20` signifie 20 Go, et `format=qcow2` choisit un format compact qui n'occupe que l'espace réellement utilisé sur l'hôte.
|
||||
- `--os-variant fedora39` : indique à libvirt quel système va être installé, pour optimiser automatiquement la configuration. La liste des variantes disponibles s'obtient avec `osinfo-query os`.
|
||||
- `--cdrom` : le fichier ISO à utiliser comme média d'installation, comme si vous insériez un CD.
|
||||
- `--network bridge=virbr0` : connecte la VM au pont réseau `virbr0`, le réseau virtuel par défaut créé par libvirt.
|
||||
- `--graphics spice` : active un affichage graphique via le protocole SPICE (plus moderne et performant que VNC). Vous pouvez aussi utiliser `vnc` ou `none` pour une VM sans interface graphique.
|
||||
|
||||
À l'exécution, virt-install démarre la VM et ouvre la console graphique : vous arrivez sur l'installateur de Fedora exactement comme avec une vraie machine.
|
||||
|
||||
## Vérifier le réseau virtuel par défaut
|
||||
|
||||
Le pont `virbr0` est créé automatiquement par libvirt, mais il peut être inactif (notamment sur Debian fraîchement installé). Vérifiez-le avec :
|
||||
|
||||
```
|
||||
sudo virsh net-list --all
|
||||
```
|
||||
|
||||
Si le réseau `default` apparaît comme `inactive`, démarrez-le et activez son démarrage automatique :
|
||||
|
||||
```
|
||||
sudo virsh net-start default
|
||||
sudo virsh net-autostart default
|
||||
```
|
||||
|
||||
## Aller plus loin : installation automatisée
|
||||
|
||||
L'un des grands intérêts de virt-install est de pouvoir installer un OS **sans aucune interaction** grâce à un fichier de configuration de type Kickstart (Fedora/RHEL) ou preseed (Debian/Ubuntu). Par exemple :
|
||||
|
||||
```
|
||||
sudo virt-install \
|
||||
--name auto-vm \
|
||||
--ram 2048 --vcpus 2 \
|
||||
--disk size=20 \
|
||||
--os-variant fedora39 \
|
||||
--location https://download.fedoraproject.org/pub/fedora/linux/releases/39/Server/x86_64/os/ \
|
||||
--initrd-inject=/chemin/vers/ks.cfg \
|
||||
--extra-args "inst.ks=file:/ks.cfg console=ttyS0" \
|
||||
--graphics none
|
||||
```
|
||||
|
||||
Ici, la VM s'installe depuis le réseau, lit un fichier Kickstart qui répond à toutes les questions de l'installateur, et tout se passe sur la console série, sans écran graphique. Idéal pour les scripts de déploiement.
|
||||
|
||||
## Gérer la VM après création
|
||||
|
||||
Une fois la machine créée, virt-install passe la main à libvirt. Vous pilotez ensuite la VM avec `virsh` :
|
||||
|
||||
```
|
||||
virsh list --all # lister toutes les VM
|
||||
virsh start ma-vm # démarrer
|
||||
virsh shutdown ma-vm # arrêt propre
|
||||
virsh destroy ma-vm # arrêt forcé (équivalent à couper le courant)
|
||||
virsh undefine ma-vm # supprimer la définition (sans toucher au disque)
|
||||
virsh console ma-vm # ouvrir une console série
|
||||
```
|
||||
|
||||
Pour afficher graphiquement l'écran de la VM depuis votre poste :
|
||||
|
||||
```
|
||||
virt-viewer ma-vm
|
||||
```
|
||||
|
||||
## En résumé
|
||||
|
||||
virt-install est l'outil de référence pour créer des machines virtuelles KVM en ligne de commande sur Linux. Il s'installe facilement sur les principales distributions (`dnf install virt-install` sur Fedora, `apt install virtinst` sur Debian/Ubuntu/Mint), s'intègre avec libvirt pour gérer ensuite vos VM via `virsh`, et permet aussi bien l'installation interactive que l'automatisation complète via Kickstart ou preseed. Une fois la pile en place, créer une nouvelle VM ne prend plus que quelques secondes de saisie.
|
||||
@@ -1,18 +1,32 @@
|
||||
{
|
||||
"uuid": "44b66b04-7b1c-46a3-bbb9-d362692c5b4d",
|
||||
"slug": "virt-install",
|
||||
"title": "virt-install",
|
||||
"title": "virt-install : créer des machines virtuelles en ligne de commande",
|
||||
"author": "cedric@abonnel.fr",
|
||||
"published": true,
|
||||
"published_at": "2023-04-01 04:43:34",
|
||||
"featured": false,
|
||||
"published_at": "2023-04-01 04:43",
|
||||
"created_at": "2023-04-01 04:43:34",
|
||||
"updated_at": "2023-04-01 04:43:34",
|
||||
"revisions": [],
|
||||
"updated_at": "2026-05-17 05:53:35",
|
||||
"revisions": [
|
||||
{
|
||||
"n": 1,
|
||||
"date": "2026-05-17 05:53:35",
|
||||
"comment": "Titre modifié, tags modifiés, contenu modifié, image de couverture modifiée",
|
||||
"title": "virt-install"
|
||||
}
|
||||
],
|
||||
"cover": "cover.svg",
|
||||
"files_meta": [],
|
||||
"external_links": [],
|
||||
"seo_title": "",
|
||||
"seo_description": "",
|
||||
"og_image": "",
|
||||
"category": "Informatique"
|
||||
"og_image": "https://www.abonnel.fr/file?uuid=44b66b04-7b1c-46a3-bbb9-d362692c5b4d&name=cover.svg",
|
||||
"category": "Informatique",
|
||||
"tags": {
|
||||
"tags": [
|
||||
"Virtual Machine",
|
||||
"VM"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# virt-install
|
||||
|
||||

|
||||
|
||||
Le programme **virt-install** est un outil en ligne de commande qui permet de créer et d'installer des machines virtuelles sous Linux en utilisant la technologie de virtualisation **KVM** (Kernel-based Virtual Machine).
|
||||
|
||||
Avec **virt-install**, vous pouvez spécifier les caractéristiques de la machine virtuelle, telles que la quantité de mémoire et d'espace disque, le type de processeur, le réseau et les médias d'installation. Vous pouvez également automatiser le processus d'installation en utilisant des fichiers de configuration ou des scripts.
|
||||
|
||||
## Installer avec Fedora Linux
|
||||
Pour installer le paquet virt-install sur Fedora, vous pouvez utiliser la commande suivante dans un terminal :
|
||||
|
||||
sudo dnf install virt-install
|
||||
|
||||
Cette commande installe le paquet **virt-install** ainsi que ses dépendances.
|
||||
|
||||
Si nécessaire, vous pouvez également installer le paquet **libvirt** pour gérer les machines virtuelles et **qemu-kvm** pour la virtualisation de niveau machine avec **KVM** :
|
||||
|
||||
sudo dnf install libvirt qemu-kvm
|
||||
|
||||
Pour utiliser la virtualisation de niveau machine avec **KVM**, votre processeur doit prendre en charge la virtualisation matérielle (**VT-x** pour les processeurs Intel ou **AMD-V** pour les processeurs AMD) et vous devez activer la virtualisation dans le BIOS de votre ordinateur.
|
||||
|
||||
Pour utiliser **virt-install**, vous devez avoir les permissions d'administrateur sur votre système et avoir installé les paquets **libvirt**, **qemu-kvm**, **virt-install** et les dépendances associées.
|
||||
|
||||
## Exemple d'utilisation
|
||||
Voici un exemple de commande `virt-install` pour créer une machine virtuelle avec une image ISO d'installation de Fedora Linux :
|
||||
|
||||
sudo virt-install --name=ma-machine-virtuelle --ram=2048 --vcpus=2 --disk path=/var/lib/libvirt/images/ma-machine-virtuelle.img,size=20 --os-variant=fedora34 --cdrom=/chemin/vers/l-image-iso/Fedora-Workstation-Live-x86_64-34-1.2.iso --network bridge=virbr0 --graphics=vnc
|
||||
|
||||
Cette commande crée une machine virtuelle appelée ma-machine-virtuelle avec 2 Go de RAM, 2 vCPU, un disque dur virtuel de 20 Go, une image ISO d'installation de Fedora 34 et une carte réseau virtuelle connectée au réseau `virbr0`. La machine virtuelle sera lancée avec une interface graphique `VNC` pour la configuration de l'installation.
|
||||
|
||||
Assurez-vous que le bridge réseau **virbr0** existe sur votre système avant de créer la machine virtuelle. Voir la commande .
|
||||
@@ -1217,3 +1217,4 @@
|
||||
{"ts":"2026-05-17 05:43:50","url":"/journal_geek/2023/20230527-etude-d-une-configuration-docker-compose","ref":"https://www.abonnel.fr/journal_geek/2023/20230527-etude-d-une-configuration-docker-compose?idx=journal_geek%3Aephemeride","ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}
|
||||
{"ts":"2026-05-17 05:46:49","url":"/electronique/ces-technos-qui-n-ont-jamais-encore-percees","ref":"","ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36"}
|
||||
{"ts":"2026-05-17 05:51:44","url":"/journal_geek/2023/20230113-afficher-le-nombre-de-mise-a-jour-avec-dnf-a-l-ouverture-de-session","ref":"","ua":"Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; spider-feedback@bytedance.com)"}
|
||||
{"ts":"2026-05-17 05:53:33","url":"/electronique/ces-technos-qui-n-ont-jamais-encore-percees","ref":"","ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36"}
|
||||
|
||||
Reference in New Issue
Block a user