Pythonスクリプトから簡単なコマンドを使用してKVM仮想マシンを起動できるKVM APIがあるかどうか疑問に思っていました.
私の Python スクリプトは一連のチェックを実行して、特定の VM を起動する必要があるかどうかを確認します。必要に応じて VM を起動したいと考えています。
今必要なのは API 呼び出しを見つけることだけですが、libvirt Web サイト内でそれらを開始するための単純な呼び出しが見つかりません。これが可能かどうか誰にもわかりますか?
libvirt の Python API バインディングから create() 関数を使用できます。
import libvirt
#connect to hypervisor running on localhost
conn = libvirt.open('qemu:///system')
dom0 = conn.lookupByName('my-vm-1')
dom0.create()
基本的に、python API は C API であり、libvirt.C_API_CALL から virConnect 部分を引いたもの、または conn.C_API_CALL から virDomain 部分を引いたものによって呼び出されます。
libvirt API の create 呼び出しとここを参照してください。
最も簡単な方法は、おそらく最善の方法ではありませんが、Pythonを使用してos.systemを使用してqemu-kvmを呼び出すことです。この方法には、VMを手動で管理する必要があるという欠点があります。
libvirtを使用するには、最初にvirt-installを呼び出してドメインを定義する必要があります。
virt-install \
--connect qemu:///system \
--virt-type kvm \
--name MyNewVM \
--ram 512 \
--disk path=/var/lib/libvirt/images/MyNewVM.img,size=8 \
--vnc \
--cdrom /var/lib/libvirt/images/Fedora-14-x86_64-Live-KDE.iso \
--network network=default,mac=52:54:00:9c:94:3b \
--os-variant fedora14
私はこれをhttp://wiki.libvirt.org/page/VM_lifecycleから直接選びました
ドメインを作成したら、を使用virsh start MyNewVM
してVMを起動できます。この方法を使用すると、VMの管理がはるかに簡単になります。
libvirt を使用するか、[qemu-]kvm コマンドを呼び出すことが、pythonistas の 2 つの選択肢のようです。kvmtools プロジェクト コードに興味深いスニペットが見つかるかもしれません: http://www.linux-kvm.org/page/Kvmtools os.system の代わりに subprocess モジュールを利用する)
KVM を管理する必要がある場合は、virsh コマンドを使用できます。virsh コマンドのリストは次のとおりです。
適切な形式で提供されていなかったため、リストは削除されました
virsh のヘルプを使用してすべてのオプションを一覧表示できます。start オプションが役立つ場合があります。
KVM の管理に python スクリプトを使用している場合は、次のスクリプトも実行することをお勧めします。それはあなたに良いアイデアを提供します。http://russell.ballestrini.net/series/virt-back/