Comment renommer une VM sur KVM + libvirt?
Je voudrais qu'il change le nom dans l'inventaire ainsi que le nom du stockage, etc.
Comment renommer une VM sur KVM + libvirt?
Je voudrais qu'il change le nom dans l'inventaire ainsi que le nom du stockage, etc.
Réponses:
courir
virsh dumpxml name_of_vm > name_of_vm.xml
Annulez la définition de l'ancien VM pour éviter une erreur en raison d'un UUID en double.
virsh undefine name-of-vm
Modifiez le fichier xml puis importez-le.
virsh define name_of_vm.xml
Bien sûr, vous devrez arrêter et démarrer le VM pour que les modifications prennent effet
virsh destroy name_of_vm
virsh start name_of_vm
virsh dumpxml myvm > foo.xml
<edit foo.xml, change the name, move storage>
virsh undefine myvm
virsh define foo.xml
Source: https://www.redhat.com/archives/libvirt-users/2010-October/msg00072.html
virsh
implémenté domrename
dans la version 1.2.19: 02 septembre 2015. La meilleure pratique actuelle est donc simplement:
virsh domrename oldname newname
Comme vous pouvez vous y attendre, le domaine doit être arrêté, mais il ne peut pas non plus avoir de clichés.
virsh edit newname
et changer le chemin du fichier et mv oldname newname
renommer le répertoire si vous voulez que tout corresponde.
Pour changer de nombreuses machines, vous pouvez utiliser ceci:
virsh shutdown old-name
Attendez ci-dessus pour terminer et exécuter:
virsh dumpxml old-name > old-name.xml
virsh undefine old-name
Attendez ci-dessus pour terminer et exécuter:
sed -i 's/<name>old-name<\/name>/<name>new-name<\/name>/g' old-name.xml
virsh define old-name.xml
Exécutez-le un par un pour chaque machine. Vous pouvez utiliser ce RegExp si vous avez une liste contenant old-name new-name
:
([^\r\n]+?)[ \t]+([^\r\n]+)
virsh shutdown $1\n#WAIT!\nvirsh dumpxml $1 > $1.xml\nvirsh undefine $1\n\#WAIT!\nsed -i 's/<name>$1<\\/name>/<name>$2<\\/name>/g' $1.xml\nvirsh define $1.xml\n
Je le fais un peu différemment et peut être une méthode non recommandée (pas sûr).
virsh destroy old-vm
virsh edit old-vm
Dans le changement XML
virsh list --all
1 arrêt old-vm
2 nouveaux vm d'arrêt
Maintenant, définissez l'ancien vm
virsh undefine old-vm