Як я можу перейменувати VM на KVM + libvirt?
Я хотів би, щоб вона змінила назву в "інвентарі", а також змінила назву сховища тощо.
Як я можу перейменувати VM на KVM + libvirt?
Я хотів би, щоб вона змінила назву в "інвентарі", а також змінила назву сховища тощо.
Відповіді:
бігати
virsh dumpxml name_of_vm > name_of_vm.xml
Скасуйте старий vm для запобігання помилки через дублікат UUID.
virsh undefine name-of-vm
Відредагуйте файл XML, а потім імпортуйте його.
virsh define name_of_vm.xml
Звичайно, вам доведеться зупинити і запустити vm, щоб зміни набрали чинності
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
Джерело: https://www.redhat.com/archives/libvirt-users/2010-O жовтня/ msg00072.html
virsh
впроваджено domrename
у випуску 1.2.19: 02 вересня 2015 року. Отже, найкраща практика є:
virsh domrename oldname newname
Як ви могли очікувати, цей домен повинен бути припинений, але він також не може мати знімків.
virsh edit newname
змінити шлях до файлу та mv oldname newname
перейменувати каталог, якщо ви хочете, щоб усе відповідало.
Щоб змінити багато машин, ви можете скористатися цим:
virsh shutdown old-name
Зачекайте, коли вище закінчиться і запустіть:
virsh dumpxml old-name > old-name.xml
virsh undefine old-name
Зачекайте, коли вище закінчиться і запустіть:
sed -i 's/<name>old-name<\/name>/<name>new-name<\/name>/g' old-name.xml
virsh define old-name.xml
Запустіть це по одному для кожної машини. Ви можете використовувати цей RegExp, якщо у вас є список, що містить 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
Я роблю це трохи інакше, і це може бути нерекомендований метод (не впевнений).
virsh destroy old-vm
virsh edit old-vm
У зміні XML
virsh list --all
1 стареньке вимкнення
2 відключення нового vm
Тепер визначте старого-вм
virsh undefine old-vm