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

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

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

virsh edit <domain name>

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

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

我找到了有关如何使用以下命令将文本传送到 vi 的线索:

cat <file name> | vi -

但对我来说这行不通,因为,

  1. virsh 正在打开默认编辑器,并且带有我无法控制的参数。(或者至少我不知道如何修改这些参数)
  2. 不同的 KVM 盒上的默认编辑器可能不同。

提前感谢您的帮助。

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

答案1

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

相关内容