¿Cómo puedo cambiar el nombre de una VM en KVM + libvirt?
Me gustaría cambiar el nombre en el 'inventario', así como cambiar el nombre del almacenamiento, etc.
¿Cómo puedo cambiar el nombre de una VM en KVM + libvirt?
Me gustaría cambiar el nombre en el 'inventario', así como cambiar el nombre del almacenamiento, etc.
Respuestas:
correr
virsh dumpxml name_of_vm > name_of_vm.xml
Defina el antiguo vm para evitar un error debido a un UUID duplicado.
virsh undefine name-of-vm
Edite el archivo xml y luego impórtelo.
virsh define name_of_vm.xml
Por supuesto, tendrá que detener e iniciar el vm para que los cambios surtan efecto.
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
Fuente: https://www.redhat.com/archives/libvirt-users/2010-October/msg00072.html
virsh
implementado domrename
en la versión 1.2.19: 02 de septiembre de 2015. Por lo tanto, la mejor práctica actual es solo:
virsh domrename oldname newname
Como es de esperar, el dominio debe detenerse, pero tampoco puede tener instantáneas.
virsh edit newname
cambiar la ruta del archivo y mv oldname newname
cambiar el nombre del directorio si desea que todo coincida.
Para cambiar muchas máquinas puedes usar esto:
virsh shutdown old-name
Espera a que termine lo anterior y ejecuta:
virsh dumpxml old-name > old-name.xml
virsh undefine old-name
Espera a que termine lo anterior y ejecuta:
sed -i 's/<name>old-name<\/name>/<name>new-name<\/name>/g' old-name.xml
virsh define old-name.xml
Ejecute esto uno por uno para cada máquina. Puede usar este RegExp si tiene una lista que contiene 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
Lo hago un poco diferente y puede ser un método no recomendado (no estoy seguro).
virsh destroy old-vm
virsh edit old-vm
En el cambio XML
virsh list --all
1 apagado de vm antiguo
2 nuevas vm apagado
Ahora indefinir el viejo vm
virsh undefine old-vm