python 实现libvirt管理(简单的几个功能)

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:28   1158   0

环境:ubuntu

官方文档:http://libvirt.org/docs/libvirt-appdev-guide-python/en-US/pdf/Version-1.1-Libvirt_Application_Development_Guide_Using_Python-en-US.pdf

要懂一点python

python libvirt模块的安装:

apt-get install python-libvirt 或去python官网下载包,编译安装

前提得有以经创建好的域,可以利用virsh来创建,xml文件在网上可以找到。

这个代码是获得域的hostname。

from __future__ import print_functio
import sys
import libvirt
from xml.dom import minidom
domName = 'myubuntu1'
conn = libvirt.open('qemu:///system')
if conn == None:
    print('Failed to open connection to qemu:///system', file=sys.stderr)
    exit(1)
dom = conn.lookupByName(domName)
if dom == None:
    print('Failed to find the domain '+domName, file=sys.stderr)
    exit(1)
name = dom.hostname()
print('The hostname of the domain is ' + str(name))
conn.close()
exit(0)

这个搞懂再利用下面的函数就可以实现libvirt管理下面的几个小功能了。

常用的几个函数功能:

0.启动虚拟机
dom.create()
1.定义一个永久的虚拟机
xml = f.read()
dom = conn.defineXML(xml)
2.可以创建一个临时的,destroy时会撤销不存在
xml = f.read()
conn.createXML(xml)
3.显示已经定义的所有domain但未运行
conn.listDefinedDomains()
4.查看虚拟机的信息
dom =conn.lookupByName('myubuntu1')
dom...
5.暂停
dom.suspend()
6.重新开始
dom.resume()
7.列出已经定义的所有的虚拟机但未运行的
conn.listDefinedDomains()
8.列出正在运行的虚拟机的ID
conn.listDomainsID()
9.关闭虚拟机
dom.destroy()
10.撤销(移除)已经定义的虚拟机
dom.undefine()
11.获得所有正在运行的虚拟机的id
domainIDs = conn.listDomainsID()



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP