通过脚本修改正在运行的 KVM 域的 xml 定义

Lin*_*abe 2 scripting vi virsh

如何通过 ssh 修改虚拟机的 xml 定义?我知道我可以通过登录主机并使用以下命令以交互方式执行此操作:

virsh edit <domain name>
Run Code Online (Sandbox Code Playgroud)

但我想使用在远程主机上运行的脚本自动对 xml 进行修改,然后通过 ssh 在 KVM 机器上执行命令。

据我观察, virsh edit 正在打开默认编辑器(在我的例子中为 vi )供我编辑文件。我想用另一个文本文件中包含的 vm 定义以某种方式覆盖此文件(由 virsh edit 命令交互打开)。

我发现了关于如何使用以下方式将文本通过管道传输到 vi 的线程:

cat <file name> | vi -
Run Code Online (Sandbox Code Playgroud)

但这对我来说不起作用,因为

  1. virsh 正在打开默认编辑器,其中包含我无法控制的参数。(或者至少我不知道如何修改这些参数)
  2. 不同 KVM 设备上的默认编辑器可能不同。

预先感谢您的帮助。

编辑:只是想澄清一下,我没有关闭虚拟机并重新定义它的选项。我想修改正在运行的域。

Mic*_*ton 5

用于virsh dumpxml获取 XML,然后virsh define用您的修改替换域定义。

  • 你没有告诉我们你试过了!告诉我们你所做的一切。 (2认同)