GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installer et configurer KVM dans Ubuntu 20.04 LTS

Ce guide étape par étape explique ce qu'est KVM, comment installer et configurer KVM sur le serveur Ubuntu 20.04 et comment créer et gérer des machines invitées KVM avec le programme Virsh.

Qu'est-ce que KVM ?

KVM , abréviation de K V basé sur ernel M virtuel achine, est un module de noyau FreeBSD et Linux qui permet au noyau d'agir comme un hyperviseur. À partir de la version 2.6.20 du noyau, KVM est fusionné avec la ligne principale du noyau Linux.

À l'aide de KVM, vous pouvez facilement configurer un environnement de virtualisation dans une machine Linux et héberger une large gamme de systèmes d'exploitation invités, notamment Linux, Windows, BSD, Mac OS et bien d'autres.

Dans ce guide, nous verrons comment installer et configurer KVM dans le serveur sans tête Ubuntu 20.04. Et nous verrons également comment créer et gérer des machines invitées KVM à l'aide de l'utilitaire de ligne de commande Virsh.

Prérequis

Avant d'installer KVM, assurez-vous d'abord que le processeur de votre système prend en charge la virtualisation matérielle. Nous avons documenté différentes manières d'identifier si un système Linux prend en charge la virtualisation dans le guide suivant.

  • Comment savoir si un processeur prend en charge la technologie de virtualisation (VT)

Si votre système prend en charge la virtualisation matérielle, continuez les étapes suivantes.

1. Installer et configurer KVM dans Ubuntu 20.04 LTS

Pour les besoins de ce guide, j'utiliserai les systèmes suivants.

Serveur de virtualisation KVM :

  • SE – Serveur minimal Ubuntu 20.04 LTS (pas d'interface graphique)
  • Adresse IP :192.168.225.52/24

Client distant :

  • SE – Bureau GNOME Ubuntu 20.04

Tout d'abord, installons KVM sur le serveur Ubuntu.

1.1. Installer KVM dans Ubuntu 20.04 LTS

Installez Kvm et toutes les dépendances requises pour configurer un environnement de virtualisation sur votre serveur Ubuntu 20.04 LTS à l'aide de la commande :

$ sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system virtinst bridge-utils

Ici,

  • qemu - Un émulateur et virtualiseur de machine générique,
  • qemu-kvm - Métapaquet QEMU pour la prise en charge de KVM (c'est-à-dire la virtualisation complète QEMU sur du matériel x86),
  • libvirt-clients - des programmes pour la librairie libvirt,
  • libvirt-daemon-system - Fichiers de configuration du démon Libvirt,
  • virtuel - des programmes pour créer et cloner des machines virtuelles,
  • bridge-utils - utilitaires de configuration du pont Ethernet Linux.

Une fois KVM installé, démarrez le service libvertd (s'il n'est pas déjà démarré) :

$ sudo systemctl enable libvirtd
$ sudo systemctl start libvirtd

Vérifiez l'état du service libvirtd avec la commande :

$ systemctl statut libvirtd

Exemple de résultat :

● libvirtd.service - Démon de virtualisationChargé :chargé (/lib/systemd/system/libvirtd.service ; activé ; préréglage fournisseur :activé) Actif :actif (en cours d'exécution) depuis sam 2020-07-04 08:13:41 UTC; Il y a 7minTriggeredBy :● libvirtd-ro.socket ● libvirtd-admin.socket ● libvirtd.socket Docs :man:libvirtd(8) https://libvirt.org PID principal :4492 (libvirtd) Tâches :19 (limite :32768) Mémoire :12.9M CGroup:/system.slice/libvirtd.service ├─4492 /usr/sbin/libvirtd ├─4641 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf - -l> └─4642 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --l>Juil 04 08:13:42 ubuntuserver dnsmasq[4641] :options de temps de compilation :IPv6 GNU-getopt DBus i18n>Jul 04 08:13:42 ubuntuserver dnsmasq-dhcp[4641] :DHCP, plage IP 192.168.122.2 -- 192.168.12>Jul 04 08:13:42 ubuntuserver dnsmasq-dhcp[4641] :DHCP, sockets liés exclusivement à interfa>Jul 04 08:13:42 ubuntuserver dnsmasq[4641] :lecture de /etc/resolv.confJul 04 08:13:42 ubuntuserver dnsmasq[4641] :utilisation du serveur de noms 127.0.0.53#53Jul 04 08 :13:42 ubuntuserver dnsmasq[4641] :lire /etc/hosts - 7 adressesJ ul 04 08:13:42 ubuntuserver dnsmasq[4641] :lire /var/lib/libvirt/dnsmasq/default.addnhosts>juil 04 08:13:42 ubuntuserver dnsmasq-dhcp[4641] :lire /var/lib/libvirt/ dnsmasq/default.host>Jul 04 08:13:42 ubuntuserver dnsmasq[4641] :lecture de /etc/resolv.confJul 04 08:13:42 ubuntuserver dnsmasq[4641] :utilisation du serveur de noms 127.0.0.53#53

Eh bien, le service libvertd a été activé et démarré ! Faisons le reste de la configuration maintenant.

1.2. Configurer la mise en réseau Bridge avec KVM dans Ubuntu

Un réseau ponté partage l'interface réseau réelle de l'ordinateur hôte avec d'autres machines virtuelles pour se connecter au réseau extérieur. Par conséquent, chaque machine virtuelle peut se lier directement à toutes les adresses IPv4 ou IPv6 disponibles, tout comme un ordinateur physique.

Par défaut, KVM configure un pont virtuel privé, afin que toutes les machines virtuelles puissent communiquer entre elles, au sein de l'ordinateur hôte. Il fournit son propre sous-réseau et DHCP pour configurer le réseau de l'invité et utilise NAT pour accéder au réseau hôte.

Regardez l'adresse IP des interfaces virtuelles KVM par défaut à l'aide de la commande "ip":

$ ip a

Exemple de résultat :

1 :lo : mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 hôte de portée lo valid_lft pour toujours prefer_lft pour toujours inet6 ::1/128 hôte de portée valid_lft pour toujours prefer_lft pour toujours2:enp0s3: mtu 1500 qdisc fq_codel état UP groupe par défaut qlen 1000 lien/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff inet 192.168.225.52/24 brd 192.168.225.255 portée dynamique globale enp0s3 valid_lft 39559sec prefer_lft 39559sec inet6 2409:4072:6c0f:431d :a00:27ff:fe8a:5294/64 portée globale mngtmpaddr noprefixroute valid_lft pour toujours prefered_lft pour toujours inet6 fe80::a00:27ff:fe8a:5294/64 lien de portée valid_lft pour toujours prefer_lft pour toujours3:enp0s8: mtu 1500 qdisc fq_codel état UP groupe par défaut qlen 1000 lien/éther 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff inet 192.168.225.60/24 br d 192.168.225.255 portée dynamique globale enp0s8 valid_lft 39559sec prefer_lft 39559sec inet6 2409:4072:6c0f:431d:a00:27ff:fe10:7cc1/64 portée globale mngtmpaddr noprefixroute valid_lft pour toujours prefer_lft pour toujours inet6 fe80::afe00:27ff pour toujours inet6 fe80::afe00:27ff pour toujours 64 portée lien valid_lft pour toujours prefered_lft pour toujours4 :enp0s9 : mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:5d:61:28 brd ff:ff:ff :ff:ff:ff inet 192.168.225.51/24 brd 192.168.225.255 portée dynamique globale enp0s9 valid_lft 39559sec prefered_lft 39559sec inet6 2409:4072:6c0f:431d:a00:27ff:fe5d:6128/64 portée global mngtmpaddrft pour toujours valide_lft fe80::a00:27ff:fe5d:6128/64 lien de portée valid_lft pour toujours prefer_lft pour toujours5 :virbr0 : mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00:f1:98:9e brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 portée globale virbr0 valid_lft pour toujours prefered_lft pour toujours6 :virbr0-nic : mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000 link/ether 52:54:00:f1:98:9e brd ff :ff:ff:ff:ff:ff

Adresse IP de l'interface virtuelle par défaut du KVM

Comme vous pouvez le voir, le réseau par défaut KVM virbr0 utilise l'adresse IP 192.168.122.1/24. Toutes les machines virtuelles utiliseront une adresse IP dans la plage IP 192.168.122.0/24 et le système d'exploitation hôte sera accessible à 192.168.122.1. Vous devriez pouvoir vous connecter en ssh au système d'exploitation hôte (à 192.168.122.1) depuis l'intérieur du système d'exploitation invité et utiliser scp pour copier les fichiers dans les deux sens.

C'est OK si vous accédez uniquement aux machines virtuelles à l'intérieur de l'hôte lui-même. Cependant, nous ne pouvons pas accéder aux machines virtuelles à partir d'autres systèmes distants du réseau.

Parce qu'ils utilisent une plage IP différente, c'est-à-dire 192.168.225.0/24 dans mon cas. Afin d'accéder aux machines virtuelles à partir d'autres hôtes distants, nous devons configurer un pont public qui s'exécute sur le réseau hôte et utilise n'importe quel serveur DHCP externe sur le réseau hôte.

Pour le dire en termes simples, nous allons faire en sorte que toutes les machines virtuelles utilisent la même série IP utilisée par le système hôte.

Avant de configurer un réseau ponté public, nous devons désactiver Netfilter pour des raisons de performance et de sécurité . Netfilter est actuellement activé sur les ponts par défaut.

Pour désactiver netfilter, créez un fichier nommé /etc/sysctl.d/bridge.conf :

$ sudo vi /etc/sysctl.d/bridge.conf

Ajoutez les lignes suivantes :

net.bridge.bridge-nf-call-ip6tables=0net.bridge.bridge-nf-call-iptables=0net.bridge.bridge-nf-call-arptables=0

Enregistrer et fermer le fichier.

Ensuite, créez un autre fichier appelé /etc/udev/rules.d/99-bridge.rules :

$ sudo vi /etc/udev/rules.d/99-bridge.rules

Ajoutez la ligne suivante :

ACTION=="add", SUBSYSTEM=="module", KERNEL=="br_netfilter", RUN+="/sbin/sysctl -p /etc/sysctl.d/bridge.conf"

Cela définira les indicateurs nécessaires pour désactiver netfilter sur les ponts à l'endroit approprié au démarrage du système. Enregistrez et fermez le fichier. Redémarrez votre système pour prendre en compte ces changements.

Ensuite, nous devons désactiver le réseau par défaut que KVM a installé pour lui-même.

Trouvez le nom des interfaces réseau KVM par défaut à l'aide de la commande "ip link" :

lien ip $

Exemple de sortie :

1 :lo : mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00 :002:enp0s3: mtu 1500 qdisc fq_codel state UP mode DEFAULT groupe par défaut qlen 1000 link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff :ff3:enp0s8: mtu 1500 qdisc fq_codel state UP mode DEFAULT groupe par défaut qlen 1000 link/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff :ff4:enp0s9: mtu 1500 qdisc fq_codel state UP mode DEFAULT groupe par défaut qlen 1000 link/ether 08:00:27:5d:61:28 brd ff:ff:ff:ff:ff :ff5 :virbr0 : mtu 1500 qdisc noqueue state DOWN mode DEFAULT groupe par défaut qlen 1000 link/ether 52:54:00:1f:a2:e7 brd ff:ff:ff:ff:ff:ff6 :virbr0-nic : mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:1f:a2:e7 brd ff:ff:ff:ff:ff:ff

Afficher les interfaces réseau KVM par défaut

Comme vous le voyez dans la sortie ci-dessus, les entrées "virbr0" et "virbr0-nic" sont les réseaux KVM.

Supprimons le réseau KVM par défaut avec la commande :

$ virsh net-destroy par défaut

Exemple de résultat :

Réseau par défaut détruit

Annuler la définition du réseau par défaut avec la commande :

$ virsh net-undefine par défaut

Exemple de résultat :

Le réseau par défaut n'a pas été défini

supprimer les interfaces réseau KVM par défaut

Si les commandes ci-dessus ne fonctionnent pas pour une raison quelconque, vous pouvez utiliser ces commandes pour désactiver et annuler la définition du réseau KVM par défaut :

$ sudo ip link delete virbr0 type bridge
$ sudo lien ip supprimer virbr0-nic

Maintenant, exécutez à nouveau "ip link" pour vérifier si les interfaces virbr0 et virbr0-nic sont réellement supprimées :

Lien IP $ 1 :lo : mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT groupe default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002 :enp0s3 : mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff3 :enp0s8 : mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff4 :enp0s9 : mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:5d:61:28 brd ff:ff:ff:ff:ff:ff 

Voir? Les réseaux KVM par défaut ont disparu.

Maintenant, configurons le pont public KVM à utiliser lors de la création d'une nouvelle machine virtuelle.

Remarque :

N'utilisez pas de cartes d'interface réseau sans fil pour les ponts. La plupart des entrelacs sans fil ne prennent pas en charge le pontage. Utilisez toujours des interfaces réseau câblées pour une connectivité transparente !

Pour créer un pont réseau dans l'hôte, modifiez /etc/netplan/00-installer-config.yaml fichier et ajoutez les détails du pont.

Voici le contenu par défaut du fichier 00-installer-config.yaml fichier sur mon serveur Ubuntu 20.04 LTS.

$ cat /etc/netplan/00-installer-config.yaml # Voici la configuration réseau écrite par 'subiquity'network :ethernets :enp0s3 :dhcp4 : true enp0s8 :dhcp4 : true enp0s9 :dhcp4 : true version : 2

Comme vous le voyez, j'ai trois interfaces réseau câblées, à savoir enp0s3, enp0s8 et enp0s9 sur mon serveur Ubuntu.

Avant de modifier ce fichier, sauvegardez votre fichier /etc/netplan/00-installer-config.yaml existant :

$ sudo cp /etc/netplan/00-installer-config.yaml{,.backup}

Modifiez ensuite le fichier de configuration par défaut à l'aide de votre éditeur préféré :

$ sudo vi /etc/netplan/00-installer-config.yaml

Ajoutez/modifiez-le comme ci-dessous :

# Voici la configuration réseau écrite par 'subiquity'network :ethernets :enp0s3 :dhcp4 : false dhcp6 : false enp0s8 :dhcp4 : false dhcp6 : false enp0s9 :dhcp4 : false dhcp6 : false ponts :br0 :interfaces :[ enp0s3 ] adresses :[192.168.225.52/24] passerelle4 :192.168.225.1 mtu :1500 serveurs de noms :adresses :[8.8.8.8,8.8.4.4] paramètres :stp :vrai délai de transfert :4 dhcp4 :non dhcp6 :aucune version :2 

créer un pont réseau dans ubuntu

Ici, l'interface réseau de pont "br0" est attachée à l'interface réseau de l'hôte "enp0s3". L'adresse IP de br0 est 192.168.225.52. La passerelle est 192.168.225.1. J'utilise les serveurs Google DNS (8.8.8.8 et 8.8.4.4) pour me connecter à Internet. Assurez-vous que l'indentation de l'espace est exactement la même que ci-dessus. Si les indentations de ligne ne sont pas correctes, l'interface réseau pontée ne s'activera pas. Remplacez les valeurs ci-dessus qui correspondent à votre réseau.

Après avoir modifié le fichier de configuration réseau, enregistrez-le et fermez-le. Appliquez les modifications en exécutant la commande suivante :

$ sudo netplan --debug apply

Vérifiez maintenant si l'adresse IP a été attribuée à l'interface du pont :

$ ip a

Exemple de résultat :

1 :lo : mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 hôte de portée lo valid_lft pour toujours prefer_lft pour toujours inet6 ::1/128 hôte de portée valid_lft pour toujours prefer_lft pour toujours2:enp0s3: mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000 link /ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff3:enp0s8: mtu 1500 qdisc fq_codel état UP groupe par défaut qlen 1000 lien/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff inet6 2409:4072:48b:ab02:a00:27ff:fe10:7cc1/64 portée globale mngtmpaddr noprefixroute valid_lft pour toujours prefer_lft pour toujours inet6 fe80 ::a00:27ff:fe10:7cc1/64 lien de portée valid_lft pour toujours prefered_lft pour toujours4:enp0s9: mtu 1500 qdisc fq_codel état groupe UP par défaut qlen 1000 lien/ether 08:00:27:5d :61:28 brd ff :ff:ff:ff:ff:ff inet6 2409:4072:48b:ab02:a00:27ff:fe5d:6128/64 portée globale mngtmpaddr noprefixroute valid_lft pour toujours prefer_lft pour toujours inet6 fe80::a00:27ff:fe5d:6128/64 portée lien valid_lft pour toujours prefer_lft pour toujours7 :br0 : mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff inet  192.168.225.52/24 brd 192.168.225.255 portée globale br0 valid_lft pour toujours prefer_lft pour toujours inet6 fe80::a00:27ff:fe8a:5294/64 lien de portée valid_lft pour toujours prefer_lft pourve

vérifier l'adresse IP du réseau du pont KVM

Comme vous le voyez dans la sortie ci-dessus, l'interface réseau pontée br0 est attribué avec l'adresse IP 192.168.225.52 et l'entrée enp0s3 a maintenant l'entrée "master br0". Cela signifie que enp0s3 appartient au pont.

Vous pouvez également utiliser "brctl" commande pour afficher l'état du pont :

$ brctl montrer br0

Exemple de résultat :

nom du pont ID du pont interfaces activées par STPbr0 8000.0800278a5294 oui enp0s3

Nous devons maintenant configurer KVM pour utiliser ce pont. Pour ce faire, créez un fichier XML appelé host-bridge.xml :

$ vi host-bridge.xml

Ajoutez les lignes suivantes :

 host-bridge  

Exécutez les commandes suivantes pour démarrer le pont nouvellement créé et en faire le pont par défaut pour les VM :

$ virsh net-define host-bridge.xml
$ virsh net-start host-bridge
$ virsh net-autostart host-bridge

démarrer le pont hôte KVM

Pour vérifier si le pont est actif et démarré, exécutez :

$ virsh net-list --all

Exemple de sortie :

Démarrage automatique de l'état du nom persistant ------------------------------------------------ ----- host-bridge actif oui oui

vérifier l'état du pont hôte KVM

Félicitations ! Nous avons réussi à configurer le pont KVM et il est maintenant actif.

Lire connexe :

  • Installer et configurer KVM sur le serveur CentOS 8
  • Installer et configurer KVM dans OpenSUSE Tumbleweed

2. Créez et gérez des machines virtuelles KVM à l'aide de Virsh

Nous utilisons "virsh" utilitaire de ligne de commande pour gérer les machines virtuelles. Le programme virsh est utilisé pour créer, répertorier, mettre en pause, redémarrer, arrêter et supprimer des machines virtuelles à partir de la ligne de commande.

Par défaut, les fichiers de la machine virtuelle et les autres fichiers associés sont stockés sous /var/lib/libvirt/ emplacement. Le chemin par défaut pour stocker les images ISO est /var/lib/libvirt/boot/ . Nous pouvons bien sûr modifier ces emplacements lors de l'installation d'une nouvelle VM.

2.1. Lister toutes les machines virtuelles

Tout d'abord, vérifions s'il existe des machines virtuelles.

Pour afficher la liste de toutes les machines virtuelles disponibles, exécutez :

$ sudo virsh list --all

Exemple de résultat :

Répertorier les machines virtuelles à l'aide de virsh

Comme vous pouvez le voir, il n'y a pas de machines virtuelles existantes.

2.2. Créer des machines virtuelles KVM

Créons une machine virtuelle Ubuntu 18.04 avec 2 Go de RAM, 1 cœur de processeur, 10 Go de disque dur. Pour ce faire, exécutez :

$ sudo virt-install --name Ubuntu-18.04 --ram=2048 --vcpus=1 --cpu host --hvm --disk path=/var/lib/libvirt/images/ubuntu-18.04-vm1 ,size=10 --cdrom /home/ostechnix/ubuntu18.iso --network bridge=br0 --graphics vnc

Décomposons la commande ci-dessus et voyons ce que fait chaque option.

  • --nom Ubuntu-18.04 :Le nom de la machine virtuelle
  • --ram=2048  :alloue 2 Go de RAM à la machine virtuelle.
  • --vcpus=1  :Indique le nombre de cœurs de processeur dans la VM.
  • --hôte du processeur  :optimise les propriétés du processeur pour la machine virtuelle en exposant la configuration du processeur de l'hôte à l'invité.
  • --hvm  : Demandez la virtualisation matérielle complète.
  • --disk path=/var/lib/libvirt/images/ubuntu-18.04-vm1,size=10 :L'emplacement pour enregistrer le disque dur de la VM et sa taille. Dans ce cas, j'ai alloué une taille de disque dur de 10 Go.
  • --cdrom /home/ostechnix/ubuntu18.iso :L'emplacement où vous avez l'image ISO réelle du programme d'installation d'Ubuntu.
  • --pont réseau=br0 :indiquez à la machine virtuelle d'utiliser le réseau de pont. Si vous n'avez pas configuré de pont réseau, ignorez ce paramètre.
  • --graphics vnc  :Autorise l'accès VNC à la VM à partir d'un client distant.

Un exemple de sortie de la commande ci-dessus serait :

ATTENTION Graphiques demandés mais DISPLAY n'est pas défini. N'exécute pas virt-viewer.WARNING Aucune console à lancer pour l'invité, par défaut --wait -1Starting install...Allocation 'ubuntu-18.04-vm1' | 10 Go 00:00:06 L'installation du domaine est toujours en cours. En attente de la fin de l'installation.

Ce message restera affiché jusqu'à ce que vous vous connectiez à la VM à partir d'un système distant via n'importe quelle application VNC et terminiez l'installation du système d'exploitation.

Étant donné que notre système hôte KVM (serveur Ubuntu) n'a pas d'interface graphique, nous ne pouvons pas continuer l'installation du système d'exploitation invité. Je vais donc utiliser une machine de rechange dotée d'une interface graphique pour terminer l'installation du système d'exploitation invité à l'aide d'un client VNC.

Nous en avons fini avec le serveur Ubuntu ici. Les étapes suivantes doivent être effectuées sur un système client.

2.3. Accéder aux machines virtuelles à partir de systèmes distants via le client VNC

Accédez aux systèmes distants dotés d'un environnement de bureau graphique et installez n'importe quelle application client VNC si elle n'est pas déjà installée. J'ai un bureau Ubuntu avec Remmina client de bureau à distance installé.

SSH dans le système hôte KVM :

$ ssh [protégé par e-mail]

Ici,

  • ostechnix est le nom de l'utilisateur dans l'hôte KVM (serveur Ubuntu 20.04)
  • 192.168.225.52 est l'adresse IP de l'hôte KVM.

Trouvez le port VNC utilisé par la machine virtuelle en cours d'exécution à l'aide de la commande :

$ sudo virsh dumpxml Ubuntu-18.04 | grep vnc

Remplacez "Ubuntu-18.04" par le nom de votre machine virtuelle.

Exemple de résultat :

'5900' autoport='yes' listen='127.0.0.1'>

Le numéro de port VNC est 5900 .

Tapez la commande de transfert de port SSH suivante depuis votre terminal :

$ ssh [protégé par e-mail] -L 5900:127.0.0.1:5900

Lancez l'application client VNC et choisissez le protocole "VNC" puis tapez "localhost:5900" dans la barre d'adresse et enfin appuyez sur ENTER :

Connectez-vous à des machines virtuelles distantes à l'aide du client de bureau à distance Remmina

L'application VNC va maintenant vous montrer la fenêtre d'installation du système d'exploitation.

Accéder aux machines virtuelles à partir de systèmes distants via le client VNC

Continuez simplement l'installation du système d'exploitation invité. Une fois l'installation terminée, fermez la fenêtre de l'application VNC.

2.4. Répertorier les VM en cours d'exécution

Exécutez la commande "virt list" pour voir la liste des VM en cours d'exécution :

Liste $ sudo virsh

Exemple de résultat :

 Id Name State------------------------------ 2 Ubuntu-18.04 en cours d'exécution

Comme vous pouvez le voir, la machine virtuelle Ubuntu 18.04 est en cours d'exécution et son ID est 2.

2.5. Démarrer les VM

Pour démarrer une VM, exécutez :

$ sudo virsh démarrer Ubuntu-18.04

Vous pouvez également utiliser l'ID de la VM pour la démarrer :

$ sudo virsh start 2

2.6. Redémarrez les VM

Pour redémarrer une VM en cours d'exécution, procédez comme suit :

$ sudo virsh redémarrer Ubuntu-18.04

Ou,

$ sudo reboot 2

2.7. Suspendre les VM

Pour mettre en pause une VM en cours d'exécution, procédez comme suit :

$ sudo suspend Ubuntu-18.04

Ou,

$ sudo suspendre 2

2.8. Reprendre les VM

Pour reprendre une VM suspendue, procédez comme suit :

$ sudo virsh resume Ubuntu-18.04

Ou,

$ sudo resume 2

2.9. Arrêter les VM

Pour éteindre une VM en cours d'exécution, procédez comme suit :

$ sudo virsh shutdown Ubuntu-18.04

Ou,

$ sudo shutdown 2

2.10. Supprimer les VM

Pour supprimer complètement une VM, procédez comme suit :

$ sudo virsh undefine Ubuntu-18.04
$ sudo virsh détruit Ubuntu-18.04

Virsh a beaucoup de commandes et d'options. Pour les connaître tous, reportez-vous à la section d'aide de virsh :

$ virsh --help

3. Gérez graphiquement les invités KVM

Se souvenir de toutes les commandes virsh est presque impossible. Si vous êtes un administrateur Linux en herbe, vous aurez peut-être du mal à effectuer toutes les opérations de gestion Kvm à partir de la ligne de commande. Pas de soucis! Il existe quelques outils Web disponibles pour gérer graphiquement les machines invitées KVM. Les guides suivants expliquent en détail comment gérer les invités Kvm à l'aide de Cockpit et de Virt-manager.

  • Gérer les machines virtuelles KVM à l'aide de la console Web Cockpit
  • Comment gérer les machines virtuelles KVM avec Virt-Manager

4. Activer l'accès à la console Virsh pour les machines virtuelles

Après avoir créé les invités KVM, je peux y accéder via SSH, le client VNC, Virt-viewer, Virt-manager et la console Web Cockpit, etc. Mais je ne pouvais pas y accéder à l'aide de la commande "virsh console". Pour accéder aux invités KVM à l'aide de "virsh console", reportez-vous au guide suivant :

  • Comment activer l'accès à la console Virsh pour les invités KVM
Autres guides liés au KVM
  • Créer une machine virtuelle KVM à l'aide de l'image Qcow2 sous Linux
  • Comment migrer des VM Virtualbox vers des VM KVM sous Linux
  • Activer la prise en charge UEFI pour les machines virtuelles KVM sous Linux
  • Comment activer la virtualisation imbriquée dans KVM sous Linux
  • Afficher les statistiques des systèmes de virtualisation avec Virt-top sous Linux
  • Comment trouver l'adresse IP d'une machine virtuelle KVM
  • Comment renommer la machine virtuelle invitée KVM
  • Accéder et modifier des images de disque de machine virtuelle avec Libguestfs
  • Créer rapidement des images de machines virtuelles avec Virt-builder
  • Comment sauver des machines virtuelles avec Virt-rescue
  • Comment étendre la taille du disque de la machine virtuelle KVM sous Linux
  • Configurer un dossier partagé entre l'hôte KVM et l'invité
  • Comment modifier l'emplacement du pool de stockage par défaut KVM Libvirt
  • [Résolu] Impossible d'accéder au fichier de stockage, erreur d'autorisation refusée dans KVM Libvirt
  • Comment exporter et importer des machines virtuelles KVM sous Linux

Conclusion

Dans ce guide, nous avons expliqué comment installer et configurer KVM dans l'édition serveur Ubuntu 20.04 LTS.

Nous avons également examiné comment créer et gérer des machines virtuelles KVM à partir de la ligne de commande à l'aide de virsh outil et en utilisant les outils GUI Cockpit et Virt-manager.

Enfin, nous avons vu comment activer l'accès à la console virsh pour les machines virtuelles KVM. À ce stade, vous devriez avoir un environnement de virtualisation entièrement fonctionnel sur votre serveur Ubuntu 20.04.


Ubuntu
  1. Comment installer et configurer KVM sur le serveur Ubuntu 18.04 LTS

  2. Comment installer et configurer Kubernetes (k8s) sur Ubuntu 18.04 LTS

  3. Comment installer et configurer GitLab sur Ubuntu 18.04 LTS

  4. Comment installer et configurer Ansible sur Ubuntu 18.04 LTS

  5. Comment installer et configurer Fail2ban sur Ubuntu 20.04 LTS

Comment installer et configurer GitLab CE sur Ubuntu 18.04 LTS

Comment installer et configurer Docker-CE sur Ubuntu 18.04 LTS

Comment installer et configurer Odoo ERP sur Ubuntu 20.04 LTS

Installer et configurer Wildfly (JBoss) sur Ubuntu 18.04 LTS

Comment installer et configurer MySQL dans Ubuntu 20.04 LTS

Comment installer KVM sur Ubuntu 20.04 LTS