2024-06-09 14:10:22 发布
网友
我想知道是否有一个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_调用减去virConnect部分或conn.C_API_调用减去virDomain部分调用。
见the libvirt API create call和here。
最简单的方法是使用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。
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操作,使用子进程模块而不是os.system)
可以使用libvirt的python API绑定中的create()函数:
基本上,python API是C API,由libvirt.C_API_调用减去virConnect部分或conn.C_API_调用减去virDomain部分调用。
见the libvirt API create call和here。
最简单的方法是使用python的os.system来调用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操作,使用子进程模块而不是os.system)
相关问题 更多 >
编程相关推荐