comment supprimer un invité après l'avoir créé avec virt-install

19

J'ai créé un invité KVM à partir de la ligne de commande avec virt-installoù j'ai utilisé les options de ligne de commande --disk pool=vg0,size=20et --name virt1.example.com.

Comment puis-je supprimer cet invité KVM de la ligne de commande? Je n'en ai plus besoin.

Pour mémoire, toute la ligne de commande était

virt-install --debug --hvm --vnc --name virt1.example.com --os-type=linux --os-variant=rhel6 --pxe --network network=default,model=e1000,mac=02:54:00:13:be:e4 --disk pool=vg0,size=20 --ram 1024 --vcpus=1 

et voici quelques informations supplémentaires

[root@server ~]# virsh vol-list vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        
virt1.example.com.img /dev/vg0/virt1.example.com.img  

[root@server ~]# virsh list
 Id Name                 State
----------------------------------
  3 virt1.example.com running

Mise à jour

L'exécution de ces trois commandes semble supprimer le KVM installé

virsh destroy virt1.example.com
virsh undefine virt1.example.com
virsh vol-delete --pool vg0 virt1.example.com.img

Pour plus de détails, voir la session du terminal:

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------
 3 virt1.example.com running

[root@server ~]# virsh undefine virt1.example.com
error: Failed to undefine domain virt1.example.com
error: Requested operation is not valid: cannot delete active domain

[root@server ~]# virsh destroy virt1.example.com
Domain virt1.example.com destroyed

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------
  - virt1.example.com shut off

[root@server ~]# virsh undefine virt1.example.com
Domain virt1.example.com has been undefined

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------

[root@server ~]# virsh vol-list --pool vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        
virt1.example.com.img /dev/vg0/virt1.example.com.img  

[root@server ~]# virsh vol-delete --pool vg0 virt1.example.com.img
Vol virt1.example.com.img deleted

[root@server ~]# virsh vol-list --pool vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        

[root@server ~]# cat /etc/issue
CentOS Linux release 6.0 (Final)
Kernel \r on an \m

[root@server ~]# virsh --version
0.8.1
Erik Sjölund
la source
1
Pour les autres personnes qui consultent cette réponse, si votre erreur se trouve à l'étape virsh undefine virt1.example.com (avec une erreur telle que «Refuser d'annuler la définition alors qu'il existe une image de sauvegarde gérée par le domaine»). Ensuite, vous aurez peut-être besoin d'une commande supplémentaire comme: virsh managedsave-remove virt1.example.com.
nmtoken

Réponses:

26

Selon le manuel de virsh, c'est:

virsh destroy _domain-id_
virsh undefine _domain-id_
virsh vol-delete --pool vg0 _domain-id_.img

Et il dit en outre: "Annuler la définition (détruire) la configuration d'un domaine inactif. Puisque le domaine n'exécute pas le nom de domaine ou l'UUID doit être utilisé comme l'ID de domaine."

mailq
la source
Merci @mailq Je pense que j'ai réussi à supprimer le KVM. Peut-être pourriez-vous mettre à jour votre réponse en conséquence?
Erik Sjölund
Maintenant, il reflète la solution
mailq
5
Pour ceux qui sont curieux, voici ce que font ces commandes: virsh destroyfait un arrêt forcé du vm, virsh undefinesupprime la configuration de KVM et virsh vol-deletesupprime l'image disque réelle. Si vous devez obtenir le _domain-id_type virsh list --allpour obtenir une liste de vos machines virtuelles.
Rick Chatham
3
Cette recette a été scriptée dans virt-delete à partir de virt-utils , qui contient également quelques autres scripts utiles.
imz - Ivan Zakharyaschev
Vous pouvez le faire virsh undefine yourdomainname --storage vdaen une seule étape. Faites attention à ne pas l'utiliser --remove-all-storage, sauf si vous savez ce que vous faites.
ILMostro_7