libvirt:: 通过命令更改引导顺序
libvirt:: change boot order by command
是否有任何 libvirt 命令可用于更改 VM 的启动顺序?我知道编辑 xml 文件可以完成此操作,但我需要一个命令来执行此操作,因为我必须 shell 脚本中的命令。
谢谢,
狮子座
没有这样的 virsh
调用。然而 libvirt 带有一个 python 绑定。您可以轻松地编写一个可以从您的脚本中调用的小型 python 脚本。像这样的东西会帮助你开始:
import libvirt
from xml.etree import ElementTree
try:
cnx = libvirt.open()
domain = cnx.lookupByName('yournamename')
desc = ElementTree.fromstring(domain.XMLDesc())
os_node = desc.find('os')
if os_node is not None:
boot_nodes = os_node.findall('boot')
for boot_node in boot_nodes:
os_node.remove(boot_node)
# TODO Change the order of boot_nodes here
for boot_node in boot_nodes:
os_node.append(boot_node)
# Write back the definition
cnx.defineXML(ElementTree.tostring(desc).decode())
except libvirt.libvirtError as err:
print(err.get_error_message())
是否有任何 libvirt 命令可用于更改 VM 的启动顺序?我知道编辑 xml 文件可以完成此操作,但我需要一个命令来执行此操作,因为我必须 shell 脚本中的命令。
谢谢, 狮子座
没有这样的 virsh
调用。然而 libvirt 带有一个 python 绑定。您可以轻松地编写一个可以从您的脚本中调用的小型 python 脚本。像这样的东西会帮助你开始:
import libvirt
from xml.etree import ElementTree
try:
cnx = libvirt.open()
domain = cnx.lookupByName('yournamename')
desc = ElementTree.fromstring(domain.XMLDesc())
os_node = desc.find('os')
if os_node is not None:
boot_nodes = os_node.findall('boot')
for boot_node in boot_nodes:
os_node.remove(boot_node)
# TODO Change the order of boot_nodes here
for boot_node in boot_nodes:
os_node.append(boot_node)
# Write back the definition
cnx.defineXML(ElementTree.tostring(desc).decode())
except libvirt.libvirtError as err:
print(err.get_error_message())