Comment créer une VM à partir de zéro avec virsh?

24

Il semble que vous ne pouvez pas créer une toute nouvelle machine virtuelle avec virsh à moins d'avoir déjà un fichier XML fonctionnel.

Je viens d'installer tous les bits nécessaires au fonctionnement de QEMU-KVM, et je dois maintenant créer ma toute première VM.

Comment?

Astuce: je n'ai pas de graphiques!

EnzoR
la source
Hé, revisitant juste quelques questions. Comment avez-vous suivi cela?
I_GNU_it_all_along
J'ai résolu le problème en consultant les pages de manuel et les sites Web officiels QEMU et KVM et un certain nombre de tests et d'essais. J'ai demandé à tout faire manuellement, mais j'ai des réponses sur la façon de le faire avec des applications tierces. J'ai presque fini et je publierai mes solutions de travail ici aussi dès que possible.
EnzoR
1
@I_GNU_it_all_along Le vôtre est la seule réponse / commentaire significatif que j'ai eu jusqu'à présent.
EnzoR
1
Merci beaucoup. Désolé, je ne pourrais pas être plus d'aide avec l'installation manuelle.
I_GNU_it_all_along
1
@I_GNU_it_all_along J'ai trouvé ce truc de fichier XML précuit vraiment ennuyeux. Je ne pense pas que je suis un singe stupide si je veux comprendre. Le problème avec les choses basées sur libvrtd est qu'il y a trop peu de documentation et tout le monde semble assez à l'aise avec une approche de boîte noire. Merci beaucoup.
EnzoR

Réponses:

36

Il y a une bonne procédure pas à pas ici . L'outil que vous souhaitez utiliser est essentiellement virt-install, que vous devriez déjà avoir si vous avez installé tout le nécessaire pour QEMU-KVM. Voici la section la plus pertinente.

6. Création d'une nouvelle machine virtuelle invitée à l'aide de virt-install

L'outil virt-install est utilisé pour créer la machine virtuelle. Cet outil peut être utilisé en mode interactif ou non interactif.

Dans l'exemple suivant, j'ai transmis toutes les valeurs requises pour créer une machine virtuelle en tant que paramètres de ligne de commande à la commande virt-install.

# virt-install \
-n myRHELVM1 \
--description "Test VM with RHEL 6" \
--os-type=Linux \
--os-variant=rhel6 \
--ram=2048 \
--vcpus=2 \
--disk path=/var/lib/libvirt/images/myRHELVM1.img,bus=virtio,size=10 \
--graphics none \
--cdrom /var/rhel-server-6.5-x86_64-dvd.iso \
--network bridge:br0

Dans la commande virt-install ci-dessus, les paramètres ont la signification suivante:

  • n: Nom de votre machine virtuelle

  • description: Une description valide de votre machine virtuelle. Par exemple: serveur d'applications, serveur de base de données, serveur Web, etc.

  • os-type: Le type de système d'exploitation peut être Linux, Solaris, Unix ou Windows.

  • os-variant: Type de distribution pour le type os ci-dessus. Par exemple, pour linux, il peut s'agir de rhel6, centos6, ubuntu14, suse11, fedora6, etc.

    Pour Windows, cela peut être win2k, win2k8, win8, win7

  • ram: Mémoire pour la VM en Mo

  • vcpu: Nombre total de CPU virtuels pour la machine virtuelle.

  • disk path=/var/lib/libvirt/images/myRHELVM1.img,bus=virtio,size=10: Chemin d'accès au stockage des fichiers d'image de machine virtuelle. Taille en Go. Dans cet exemple, ce fichier image VM fait 10 Go.

  • graphics none: Cela indique à virt-install d'utiliser une console texte sur le port série de la machine virtuelle au lieu d'une fenêtre graphique VNC. Si vous avez configuré xmanager, vous pouvez ignorer ce paramètre.

  • cdrom: Indique l'emplacement de l'image d'installation. Vous pouvez spécifier l'emplacement d'installation NFS ou http (au lieu de –-cdrom). Par exemple: --location=http://.com/pub/rhel6/x86_64/*

  • network bridge:br0: Cet exemple utilise l'adaptateur ponté br0. Il est également possible de créer votre propre réseau sur n'importe quel port spécifique au lieu d'un adaptateur ponté.

    Si vous souhaitez utiliser le NAT, utilisez quelque chose comme ci-dessous pour le paramètre réseau avec le nom de réseau virtuel appelé VMnetwork1. Tous les fichiers de configuration réseau se trouvent sous / etc / libvirt / qemu / networks / pour les machines virtuelles. Par exemple:

    –-network network=VMnetwork1

I_GNU_it_all_along
la source
6
C'est assez étrange que cela ne soit pas mentionné dans la plupart des documentations, mais ils supposent plutôt que vous avez déjà une machine virtuelle fonctionnelle, alors que vous lisez probablement le tutoriel précisément parce que vous ne l'avez pas. Quoi qu'il en soit, merci. :)
Teekin