![从一个 XML 文件创建多个 libvirt 卷](https://linux22.com/image/86508/%E4%BB%8E%E4%B8%80%E4%B8%AA%20XML%20%E6%96%87%E4%BB%B6%E5%88%9B%E5%BB%BA%E5%A4%9A%E4%B8%AA%20libvirt%20%E5%8D%B7.png)
我正在使用 libvirt 的virsh vol-create
命令创建多个卷。我开始使用 Jinja2 模板来帮助自动执行特定应用程序的任务。就我而言,如果我可以使用 Jinja2 的循环功能在单个 XML 文件中创建多个“<volume>”部分,这将有助于简化我的工作。然而,一般来说,XML 需要定义一个顶级标签(而不是多个相同的标签),而且无论如何这virsh vol-create
都会给我一个错误:
$ virsh vol-create default volumes.xml
error: Failed to create vol from volumes.xml
error: (storage_volume_definition):16: Extra content at the end of the document
<volume>
^
(文件内容是这里)
是否可以将多个“<volume>”定义放在同一个 XML 文件中?
答案1
这不可能。我创建的一个解决方案是创建我自己的“根标记”,名为<volumeCollection>
并让我自己的 XML 扫描器查找所有<volume>
标记并调用virsh vol-create
找到的每个标记。这是一个包装解决方案,但完成了我所需要的。