Come posso rinominare una VM su KVM + libvirt?
Vorrei che cambiasse il nome nell '"inventario" e cambiasse il nome della memoria ecc.
Come posso rinominare una VM su KVM + libvirt?
Vorrei che cambiasse il nome nell '"inventario" e cambiasse il nome della memoria ecc.
Risposte:
correre
virsh dumpxml name_of_vm > name_of_vm.xml
Annulla la definizione della vecchia VM per impedire un errore a causa di un UUID duplicato.
virsh undefine name-of-vm
Modifica il file xml quindi importalo.
virsh define name_of_vm.xml
Ovviamente dovrai interrompere e avviare la VM per rendere effettive le modifiche
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
Fonte: https://www.redhat.com/archives/libvirt-users/2010-October/msg00072.html
virsh
implementato domrename
nella versione 1.2.19: 02 settembre 2015. Quindi l'attuale best practice è solo:
virsh domrename oldname newname
Come ci si potrebbe aspettare, Thedomain deve essere fermato, ma non può avere nessuna istantanea.
virsh edit newname
e modificare il percorso del file e mv oldname newname
rinominare la directory se si desidera che tutto corrisponda.
Per cambiare molte macchine puoi usare questo:
virsh shutdown old-name
Attendere il termine di cui sopra ed eseguire:
virsh dumpxml old-name > old-name.xml
virsh undefine old-name
Attendere il termine di cui sopra ed eseguire:
sed -i 's/<name>old-name<\/name>/<name>new-name<\/name>/g' old-name.xml
virsh define old-name.xml
Eseguire questo uno per uno per ogni macchina. È possibile utilizzare questo RegExp se si dispone di un elenco contenente 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 faccio in modo leggermente diverso e potrebbe essere un metodo non raccomandato (non sono sicuro).
virsh destroy old-vm
virsh edit old-vm
Nella modifica XML
virsh list --all
1 vecchio spegnimento vm
2 new-vm shut-off
Ora definisci il vecchio vm
virsh undefine old-vm