我想知道是否有一個KVM API允許您使用簡單的命令從python腳本啓動KVM虛擬機。啓動虛擬機的KVM api
我的Python腳本執行一系列檢查來查看我們是否需要啓動特定的虛擬機,並且如果需要的話我想啓動虛擬機。
我現在需要的是找到API調用,但我找不到在libvirt網站中啓動它們的簡單調用。有誰知道這是否可能?
我想知道是否有一個KVM API允許您使用簡單的命令從python腳本啓動KVM虛擬機。啓動虛擬機的KVM api
我的Python腳本執行一系列檢查來查看我們是否需要啓動特定的虛擬機,並且如果需要的話我想啓動虛擬機。
我現在需要的是找到API調用,但我找不到在libvirt網站中啓動它們的簡單調用。有誰知道這是否可能?
最簡單的方法,雖然可能不是最好的推薦方法是使用os.system使用python來調用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更容易。
您可以使用create()函數的libvirt的蟒蛇API綁定:
import libvirt
#connect to hypervisor running on localhost
conn = libvirt.open('qemu:///system')
dom0 = conn.lookupByName('my-vm-1')
dom0.create()
基本蟒蛇API是C API,通過libvirt.C_API_CALL減去virConnect部分或conn.C_API_CALL減去叫virDomain部分。
似乎使用libvirt或調用[qemu-] kvm命令是pythonistas的兩種選擇。可能你可以在kvmtools項目代碼中找到有趣的代碼片段:http://www.linux-kvm.org/page/Kvmtools(參見./kvmtools/kvm/build_command.py和.kvmtools/kvm/action.py中的kvm_boot_action,使用子進程模塊代替os.system)
如果您需要管理KVM,則可以使用virsh命令。 這是virsh命令列表;
列表中刪除,因爲它不是在正確的格式來
可以使用的幫助的virsh列出所有的選項,有啓動選項可以幫助你。
如果您使用python腳本來管理您的KVM,我也會建議通過以下腳本。它會爲你提供一個好主意。 http://russell.ballestrini.net/series/virt-back/
由於我目前沒有使用自己的機器,我試圖從經驗中回答...一旦我回來,會嘗試給你更詳細的insins – neorg
謝謝你的迴應。 os.system是我已經考慮過的東西,我不需要使用virsh來完成它,例如我可以這樣做:「os.system(」sudo/usr/local/kvm/bin/qemu磁盤。 img -m 1024「)」。我只是希望有一個更簡潔的方式來從python中完成它,這個模塊只允許調用KVM並啓動虛擬機。 – user1479836
稍有更正,您提到的方法不支持硬件虛擬化...如果您需要實際使用kvm,請添加--enable-kvm – neorg