libvirt笔记network

这段代码展示了如何使用libvirt Python API来管理虚拟网络。首先,它列出所有虚拟网络,然后查找默认网络并打印其详细信息。接着,定义并创建了一个持久化的虚拟网络,检查其活动状态,并在完成后销毁和卸载。最后,创建了一个临时虚拟网络,同样进行激活、销毁操作。此外,还演示了如何设置和查询虚拟网络的自启动属性以及获取其XML描述。
摘要由CSDN通过智能技术生成

虚拟网络可以使用networkLookupByName,networkLookupByUUID,networkLookupByUUIDString和listNetworks这几种方法来发现,可以用下面几种例子展示。

import sys
​import libvirt
​
​conn = Nonetry:
​    conn = libvirt.open("qemu:///system")except libvirt.libvirtError as e:print(repr(e), file=sys.stderr)
​    exit(1)
​
​# discover all the virtual networks
​networks = conn.listNetworks()print('Virtual networks:')for network in networks:print('  '+network)print()
​
​# lookup the default network by name
​network = conn.networkLookupByName('default')print('Virtual network default:')print('  name: '+network.name())
​uuid = network.UUIDString()print('  UUID: '+uuid)print('  bridge: '+network.bridgeName())print()
​
​# lookup the default network by name
​network = conn.networkLookupByUUIDString(uuid)print('Virtual network default:')print('  name: '+network.name())print('  UUID: '+network.UUIDString())print('  bridge: '+network.bridgeName())
​
​conn.close()
​exit(0)
import sys
​import libvirt
​
​xml = """
​<network>
​  <name>mynetwork</name>
​  <bridge name="virbr1" />
​  <forward mode="nat"/>
​  <ip address="192.168.142.1" netmask="255.255.255.0">
​    <dhcp>
​      <range start="192.168.142.2" end="192.168.142.254" />
​    </dhcp>
​  </ip>
​</network>"""
​
​conn = Nonetry:
​    conn = libvirt.open("qemu:///system")except libvirt.libvirtError as e:print(repr(e), file=sys.stderr)
​    exit(1)
​
​# create a persistent virtual network
​network = conn.networkDefineXML(xml)if network == None:print('Failed to create a virtual network', file=sys.stderr)
​    exit(1)
​active = network.isActive()if active == 1:print('The new persistent virtual network is active')else:print('The new persistent virtual network is not active')
​
​network.create() # set the network active
​active = network.isActive()if active == 1:print('The new transient virtual network is active')else:print('The new transient virtual network is not active')
​
​# now destroy the persistent virtual network
​network.destroy()
​
​# erase the persistent virtual network
​network.undefine()
​
​print()
​
​# create a transient virtual network
​network = conn.networkCreateXML(xml)if network == None:print('Failed to define a virtual network', file=sys.stderr)
​    exit(1)
​active = network.isActive()if active == 1:print('The new transient virtual network is active')else:print('The new transient virtual network is not active')
​
​# now destroy the transient virtual network
​network.destroy()
​
​conn.close()
​exit(0)
在这里插入代码片
```​import sys
​import libvirt
​
​conn = Nonetry:
​    conn = libvirt.open("qemu:///system")except libvirt.libvirtError as e:print(repr(e), file=sys.stderr)
​    exit(1)
​
​# lookup the default network by name
​network = conn.networkLookupByName('default')print('Virtual network default:')print('  name: '+network.name())print('  UUID: '+network.UUIDString())print('  bridge: '+network.bridgeName())print('  autostart: '+str(network.autostart()))print('  is active: '+str(network.isActive()))print('  is persistent: '+str(network.isPersistent()))print()
​
​print('Unsetting autostart')
​network.setAutostart(0)print('  autostart: '+str(network.autostart()))print('Setting autostart')
​network.setAutostart(1)print('  autostart: '+str(network.autostart()))print()
​
​xml = network.XMLDesc(0)print('XML description:')print(xml)
​
​conn.close()
​exit(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值