如何在python

时间:2018-01-12 19:06:06

标签: python virtualization kvm libvirt

我想使用libvirt API在KVM中管理(创建,删除,列出...)快照。经过一些谷歌搜索后,我在下面的链接中找到了libvirt-domain-snapshot,但是我没有找到这个用于python的模块。

https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html

如何从python访问libvirt-domain-snapshot模块,还是有其他方法可以通过libvirt API管理快照?

2 个答案:

答案 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 libvirtpython3 -m pip install libvirt(或任何其他等效项,具体取决于您使用的Python版本)来安装模块。

然后你全部设定:)。