Comment démarrer automatiquement une VM créée par virt-manager?

10

J'ai créé une machine virtuelle avec virt-manager qui fonctionne sur kvm / qemu. La machine fonctionne bien lorsqu'elle est démarrée via virt-manager. Cependant, je voudrais pouvoir démarrer et arrêter la machine virtuelle via un script dans init.d, afin qu'il monte et descend avec l'hôte. J'ai besoin que virt-manager montre que la machine fonctionne et que je puisse me connecter à sa console par là.

Lorsque j'utilise la ligne de commande générée par l'exécution ps -eaf | grep kvmaprès le démarrage de vm via virt-manager, j'obtiens des messages de console sur les périphériques de caractères redirigés, mais la machine démarre et fonctionne correctement. Cependant, je ne reçois aucune indication de virt-manager qu'il a commencé. Comment puis-je modifier la ligne de commande pour que virt-manager récupère la machine virtuelle en cours d'exécution? Y a-t-il autre chose sur la ligne de commande qui devrait changer lors du démarrage en dehors de virt-manager?

La ligne de commande est (légèrement reformatée pour plus de lisibilité):

/usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 512 -smp 1 -name BORON \
-uuid fa7e5fbd-7d8e-43c4-ebd9-1504a4383eb1 \
-chardev socket,id=monitor,path=/var/lib/libvirt/qemu/BORON.monitor,server,nowait \
-monitor chardev:monitor -localtime -boot c \
-drive file=/dev/FS1/BORON,if=ide,index=0,boot=on,format=raw \
-net nic,macaddr=52:54:00:20:0b:fd,vlan=0,name=nic.0 \
-net tap,fd=41,vlan=0,name=tap.0 -chardev pty,id=serial0 -serial chardev:serial0 \
-parallel none -usb -usbdevice tablet -vnc 127.0.0.1:1 -k en-us -vga cirrus
Jeff Shattock
la source

Réponses:

17

En ce qui concerne le démarrage / arrêt automatique et que vous utilisez virsh, vous pouvez le faire comme ceci (en tant qu'utilisateur privilégié)

virsh autostart Domain

Je ne sais pas pourquoi virt manager ne vous donne aucune sortie. Il a une connexion avec la machine qui héberge la machine, n'est-ce pas? Il devrait afficher une liste de domaines s'il est connecté.

Tim Bielawa
la source
13

Ouvrez l'affichage de la machine virtuelle, cliquez sur Affichage-> Détails

entrez la description de l'image ici

Sélectionnez Options de démarrage et cochez Démarrer la machine virtuelle au démarrage de l'hôte

entrez la description de l'image ici

Phyxx
la source
1
Cela ne fonctionne pas en quelque sorte pour moi ..
Afriza N. Arief
10

La réponse de Tim est le chemin à parcourir, virshvous permet de faire beaucoup de choses utiles, sauf cela.

Pour définir le démarrage automatique d'une machine virtuelle, vous utilisez:

# virsh autostart <domain-id>

Il <domain-id>s'agit soit du numéro de la machine virtuelle, de l'UUID, soit d'un "nom convivial" comme "debian1", que vous avez entré virt-manager.

Pour obtenir une liste de machines virtuelles (numéros et noms), utilisez:

# virsh list --all

Dans mon cas, je reçois:

 Id Name                 State
----------------------------------
  1 other                running
  2 other-clone          running

J'ai donc utilisé:

# virsh autostart other
Tomasz Gandor
la source
8

installez virsh puis

virsh list                    (this will print list of your VMs)
virsh dominfo your_vm_name    (get info about selected VM)
virsh autostart your_vm_name  (set autostart of selected VM)
HVNSweeting
la source
si la VM est bloquée sur grub, virt-viewer your_vm_name, et démarrez. Après cela, changez / etc / default / grub, assurez-vous que GRUB_TIMEOUT=0. puisupdate-grub
HVNSweeting
6

Vous pouvez également placer un lien symbolique vers le domxml invité dans /etc/libvirt/qemu/autostart:

Ressemblera à ceci pour une VM nommée "test":
test.xml -> /etc/libvirt/qemu/test.xml

Dyasny
la source
1

Vous pouvez également utiliser KVM_AutoBoot ( https://github.com/eduardolucioac/kvm_autoboot ) pour démarrer une ou plusieurs machines virtuelles au démarrage du serveur à l'aide de KVM (libvirt). Il est également possible de définir un intervalle entre le démarrage d'une machine virtuelle et la suivante.

Merci! = D

Eduardo Lucio
la source