使用Python API來操作libvirt虛擬機介面

使用Python也可以透過libvirt所提供的API來輕易操作虛擬機,我們在這裡先示範最簡單的部份,透過Python使用libvirt所提供的API,把目前系統正在執行中的VM都列出來。程式碼如下所示:

[code lang=”python”]
#!/usr/bin/python
import libvirt
import sys
conn = libvirt.open("qemu:///system")

for id in conn.listDomainsID():
vm = conn.lookupByID(id)
print vm.name()
[/code]

執行之前,請先把此程式設定為可執行檔,然後直接執行即可,如下所示(假設此程式名為virlist.py):

[code lang=”bash”]
$ chmod +x virlist.py
$ ./virlist.py
[/code]

但是要能夠順利執行此程式碼,你的系統中要安裝有相關的套件才行。假設你使用的是Ubuntu 14.04,在執行下列安裝之後就好了:

[code lang=”bash”]
$ sudo apt-get update
$ sudo apt-get install -y aptitude
$ sudo aptitude -y install qemu-kvm libvirt-bin virtinst bridge-utils
[/code]

如果包括沒有在執行的VM也要列出來的話,那麼就要改用以下的程式碼:

[code lang=”python”]
#! /usr/bin/python
import libvirt
import sys
conn = libvirt.openReadOnly("qemu:///system")

print "Running VMs:"
for id in conn.listDomainsID():
vm = conn.lookupByID(id)
print " ID:" + str(id) + "(" + vm.name() + ")"

print "Inactive VMs:"
for domname in conn.listDefinedDomains():
print " " + domname
conn.close()

[/code]

以下是執行結果:
2015-10-14_16-34-48