我想知道是否有一个KVM API允许您使用python脚本中的简单命令启动KVM虚拟机 .
我的Python脚本执行一系列检查以查看是否需要启动特定的VM,如果需要,我想启动VM .
我现在需要的只是找到API调用,但我找不到一个简单的调用来在libvirt网站中启动它们 . 有人知道这是否可行?
您可以使用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部分 .
见the libvirt API create call和here .
最简单的方法,虽然可能不是最好的推荐方法是使用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 . 使用此方法,管理VM要容易得多 .
virsh start MyNewVM
似乎使用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命令列表;
list deleted because it was not coming in proper format
您可以使用virsh的帮助列出所有选项,启动选项可能对您有所帮助 .
如果您使用python脚本来管理KVM,我建议您也浏览以下脚本 . 它会为你提供一个好主意 . http://russell.ballestrini.net/series/virt-back/
4 回答
您可以使用libvirt的python API绑定中的create()函数:
基本上python API是C API,由libvirt.C_API_CALL调用减去virConnect部分或conn.C_API_CALL减去virDomain部分 .
见the libvirt API create call和here .
最简单的方法,虽然可能不是最好的推荐方法是使用os.system使用python来调用qemu-kvm . 此方法的缺点是您必须手动管理VM .
使用libvirt,首先必须通过调用virt-install来定义域 .
我直接从http://wiki.libvirt.org/page/VM_lifecycle选择了这个
创建域后,可以使用
virsh start MyNewVM
启动VM . 使用此方法,管理VM要容易得多 .似乎使用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命令列表;
list deleted because it was not coming in proper format
您可以使用virsh的帮助列出所有选项,启动选项可能对您有所帮助 .
如果您使用python脚本来管理KVM,我建议您也浏览以下脚本 . 它会为你提供一个好主意 . http://russell.ballestrini.net/series/virt-back/