1つのXMLファイルから複数のlibvirtボリュームを作成する

1つのXMLファイルから複数のlibvirtボリュームを作成する

virsh vol-create複数のボリュームを作成するには、libvirtのコマンドを使用しています。私はアプリケーション固有のタスクを自動化するのに役立つJinja2テンプレートを使い始めました。私の場合、Jinja2のループ機能を使用して単一のXMLファイルに複数の「<volume>」セクションを作成できる場合は、作業を簡素化するのに役立ちます。ただし、通常、XMLでは(複数の同じタグではなく)1つの最上位タグを定義する必要があり、これによって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>
^

(ファイル内容はここ)

同じXMLファイルに複数の「<volume>」定義を入れることはできますか?

答え1

これは不可能です。私が作った1つの解決策は、名前付きの独自の「ルートタグ」を作成し、すべてのタグを<volumeCollection>検索し、<volume>見つかった各タグを呼び出す独自のXMLスキャナを持つことでしたvirsh vol-create。これはラッパーソリューションですが、必要な作業を行います。

関連情報