使用 virt-install 创建来宾时如何添加其他标记的 VLAN?

问题描述 投票:0回答:1

在使用 virt-install 来配置来宾时,我无法弄清楚用于添加第二个标记 VLAN 的 XPath 语法:

srv01:~$ sudo virt-install\
 --name=ds-controller01.iwc.ig24\
 --disk source.dev=/dev/vg_ig24.iwc.srv01_ssd/lv_ig24.iwc.ds-controller01_root\
 --graphics spice\
 --vcpu=2\
 --ram=2048\
 --os-type=debian10\
 --accelerate\
 --cdrom=/srv/iso/debian-11.iso\
 --network bridge=br0,model=virtio,virtualport_type=openvswitch,mac=$(newmac)\
 --xml './devices/interface/vlan[@trunk=yes]/tag/@id=100'\
 --xml './devices/interface/target/@dev=ds-controller01'

domxml 的目标是这样的:

    <interface type='bridge'>
      <mac address='52:54:00:57:df:60'/>
      <source bridge='br0'/>
      <vlan trunk='yes'>
        <tag id='100'/>
        <tag id='200'/>
        <tag id='300'/>
      </vlan>
      <virtualport type='openvswitch'>
        <parameters interfaceid='23f46a9d-4abf-443e-bdea-6915b95c0042'/>
      </virtualport>
      <target dev='ds-controller01'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>

我尝试为 vlan/trunk/tag 添加额外的“--xml”,但它只是重写了第一个 --xml 语句。

xpath virtualization kvm libvirt
1个回答
0
投票

不太了解 XPath,我找到了两个在线 XML 到 XPath 转换器,XPath Generator OnlineXMLToolBox。我拼凑了他们的输出,我发现这个有效:

srv01:~$ sudo virt-install\
 --name=ds-controller01.iwc.ig24\
 --disk source.dev=/dev/vg_ig24.iwc.srv01_ssd/lv_ig24.iwc.ds-controller01_root\
 --graphics spice\
 --vcpu=2\
 --ram=2048\
 --os-type=debian10\
 --accelerate\
 --cdrom=/srv/iso/debian-11.iso\
 --network bridge=br0,model=virtio,virtualport_type=openvswitch,mac=$(newmac)\
 --xml './devices/interface/vlan[@trunk=yes]/tag/@id=100'\
 --xml './devices/interface/vlan/tag[2]/@id=200' \
 --xml './devices/interface/vlan/tag[3]/@id=300' \
 --xml './devices/interface/target/@dev=ds-controller01'

不起作用的是,在 vlan 200 和 300 的后续标记中包含 [@trunk=yes]

 --xml './devices/interface/vlan[@trunk=yes]/tag/@id=100'\
 --xml './devices/interface/vlan[@trunk=yes]/tag[2]/@id=200' \
 --xml './devices/interface/vlan[@trunk=yes]/tag[3]/@id=300' \

结果是仅包含 vlan 300:

<interface type='bridge'>
  <mac address='52:54:00:9d:15:fd'/>
  <source bridge='br0'/>
  <vlan trunk='yes'>
    <tag id='300'/>
  </vlan>
  <virtualport type='openvswitch'>
    <parameters interfaceid='cedd5495-27b0-4e3c-a109-434f1db8dbc4'/>
  </virtualport>
  <target dev='ds-controller01'/>
  <model type='virtio'/>
  <alias name='net0'/>
  <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
© www.soinside.com 2019 - 2024. All rights reserved.