この記事は約12分44秒で読むことができます。

libvirt管理のネットワークばばっと作成する話

実行例

テンプレつくってコピッて置換しておしまい

コード表示

[root@centos ~]# cd /etc/libvirt/qemu/networks
[root@centos networks]# virsh net-list --all
 名前               状態     自動起動  永続
----------------------------------------------------------

[root@centos networks]# tree
.
├── autostart
└── tmpl
    └── mynet@.xml

2 directories, 1 file
[root@centos networks]# cat tmpl/my*
<network ipv6='yes'>
  <name>mynet@</name>
  <forward mode='nat'/>
  <bridge name='virbr@' stp='on' delay='0'/>
  <ip address='192.168.@.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.@.1' end='192.168.@.254'/>
    </dhcp>
  </ip>
</network>
[root@centos networks]# seq 100 102 | xargs -I{} bash -c 'cp $(pwd)/tmpl/mynet@.xml $(pwd)/mynet{}.xml && sed -i s/@/{}/g $(pwd)/mynet{}.xml'
[root@centos networks]# tree
.
├── autostart
├── mynet100.xml
├── mynet101.xml
├── mynet102.xml
└── tmpl
    └── mynet@.xml

2 directories, 4 files
[root@centos networks]# cat my*
<network ipv6='yes'>
  <name>mynet100</name>
  <forward mode='nat'/>
  <bridge name='virbr100' stp='on' delay='0'/>
  <ip address='192.168.100.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.1' end='192.168.100.254'/>
    </dhcp>
  </ip>
</network>
<network ipv6='yes'>
  <name>mynet101</name>
  <forward mode='nat'/>
  <bridge name='virbr101' stp='on' delay='0'/>
  <ip address='192.168.101.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.101.1' end='192.168.101.254'/>
    </dhcp>
  </ip>
</network>
<network ipv6='yes'>
  <name>mynet102</name>
  <forward mode='nat'/>
  <bridge name='virbr102' stp='on' delay='0'/>
  <ip address='192.168.102.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.102.1' end='192.168.102.254'/>
    </dhcp>
  </ip>
</network>
[root@centos networks]# virsh net-list --all
 名前               状態     自動起動  永続
----------------------------------------------------------

[root@centos networks]# seq 100 102 | xargs -I{} bash -c 'virsh net-define mynet{}.xml && virsh net-start mynet{}'
ネットワーク mynet100 が mynet100.xml から定義されました

ネットワーク mynet100 が起動されました

ネットワーク mynet101 が mynet101.xml から定義されました

ネットワーク mynet101 が起動されました

ネットワーク mynet102 が mynet102.xml から定義されました

ネットワーク mynet102 が起動されました

[root@centos networks]# virsh net-list --all
 名前               状態     自動起動  永続
----------------------------------------------------------
 mynet100             動作中  いいえ (no) はい (yes)
 mynet101             動作中  いいえ (no) はい (yes)
 mynet102             動作中  いいえ (no) はい (yes)

[root@centos networks]# brctl show
bridge name	bridge id		STP enabled	interfaces
brd0		8000.00d8612cf15b	no		eno1
docker0		8000.02420140344c	no		
virbr100		8000.52540049f529	yes		virbr100-nic
virbr101		8000.5254000d3917	yes		virbr101-nic
virbr102		8000.5254005384cf	yes		virbr102-nic
[root@centos networks]# seq 100 102 | xargs -I{} bash -c 'ip a show virbr{}'
95: virbr100: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:49:f5:29 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.1/24 brd 192.168.100.255 scope global virbr100
       valid_lft forever preferred_lft forever
97: virbr101: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:0d:39:17 brd ff:ff:ff:ff:ff:ff
    inet 192.168.101.1/24 brd 192.168.101.255 scope global virbr101
       valid_lft forever preferred_lft forever
99: virbr102: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:53:84:cf brd ff:ff:ff:ff:ff:ff
    inet 192.168.102.1/24 brd 192.168.102.255 scope global virbr102
       valid_lft forever preferred_lft forever
[root@centos networks]# tree
.
├── autostart
├── mynet100.xml
├── mynet101.xml
├── mynet102.xml
└── tmpl
    └── mynet@.xml

2 directories, 4 files
[root@centos networks]# seq 100 102 | xargs -I{} bash -c 'virsh net-destroy mynet{} && virsh net-undefine mynet{}'
ネットワーク mynet100 は強制停止されました

ネットワーク mynet100 の定義が削除されました

ネットワーク mynet101 は強制停止されました

ネットワーク mynet101 の定義が削除されました

ネットワーク mynet102 は強制停止されました

ネットワーク mynet102 の定義が削除されました

[root@centos networks]# tree
.
├── autostart
└── tmpl
    └── mynet@.xml

2 directories, 1 file
[root@centos networks]# brctl show
bridge name	bridge id		STP enabled	interfaces
brd0		8000.00d8612cf15b	no		eno1
docker0		8000.02420140344c	no		
[root@centos networks]# seq 100 102 | xargs -I{} bash -c 'ip a show virbr{}'
Device "virbr100" does not exist.
Device "virbr101" does not exist.
Device "virbr102" does not exist.
[root@centos networks]# virsh net-list --all
 名前               状態     自動起動  永続
----------------------------------------------------------


Leave a Reply

Your email address will not be published. Required fields are marked *