我想使用libvirt API在KVM中管理(创建,删除,列出...)快照。经过一些谷歌搜索后,我在下面的链接中找到了libvirt-domain-snapshot,但是我没有找到这个用于python的模块。
https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html
如何从python访问libvirt-domain-snapshot模块,还是有其他方法可以通过libvirt API管理快照?
答案 0 :(得分:3)
使用pip install libvirt-python
安装libvirt绑定。然后libvirt_connection = libvirt.open('qemu:///system')
创建与libvirt的连接。获取vm vm_dom = libvirt_connection.lookupByUUIDString(domain_uuid)
(domain_uuid
是一个包含您域名的UUID的字符串)。最后致电
vm_dom.snapshotCreateXML(
SNAPSHOT_XML_TEMPLATE.format(snapshot_name=snapshot_name),
libvirt.VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC
)
SNAPSHOT_XML_TEMPLATE
看起来像这样:
SNAPSHOT_XML_TEMPLATE = """<domainsnapshot>
<name>{snapshot_name}</name>
</domainsnapshot>"""
这将创建具有给定名称的光盘和ram快照。 libvirt-python与python3和python2兼容。
答案 1 :(得分:1)
好吧,如果您查看libvirt's docs并查看Application Development
- &gt; Language bindings
,您会看到他们的API有Python Bindings。
由于他们导入的libvirt
模块没有经常安装Python,因此您很可能必须自己安装它。幸运的是,它似乎是part of the Python Package Index。
所以你可以运行:
python -m pip install libvirt
或python3 -m pip install libvirt
(或任何其他等效项,具体取决于您使用的Python版本)来安装模块。
然后你全部设定:)。