mykvm是一个类似于vagrant的工具,用于创建多个kvm实例
mykvm的Python项目详细描述
mykvm
==
*mykvm是一个小的python脚本,用于从yaml配置文件创建多个kvm实例。
*mykvm正在使用一些很好的工具,如virt install、vmbuilder、qemu img和ansible。
ansible将用于初始化kvm实例。
$sudo apt get update
$sudo apt get install kvm libvirt bin virtinst python vm builder python dev python pip
*如果没有任何ssh密钥,则生成新的ssh密钥。这个密钥将用于ssh到kvm实例。
$ssh keygen-t rsa
*install mykvm with pip
$sudo pip install mykvm
*现在,mykvm已经准备好了
$mykvm
用法:mykvm command[<;args>;]
available子命令:
init
up[<;vm>;]
halt
destroy
status
usage
----
*创建新目录
$cd grizzly
*运行init命令。如果没有底片,vmbuilder将创建precise64.qcow2基映像。
$mykvm init
初始化mykvm
*创建mykvm.yml
*复制vmbuilder脚本
*复制可翻译文件
*生成基映像/home/cirros/.mykvm/base/precise64.qcow2
+rm-rf ubuntu-kvm
+sudoers\u-tmpl=/etc/vmbuilder/ubuntu/sudoers.tmpl
+grep-q-e ubuntu/etc/vmbuilder/ubuntu/sudoers.tmpl
+sudo sed-i'$a ubuntu all=(all)nopasswd:all\n includedir/etc/sudoers.d'/etc/vmbuilder/ubuntu/sudoers.tmpl
+sudo vmbuilder kvmm ubuntu--suite precise--arch amd64--flavor virtual ssh user key/home/cirros/.ssh/id椆rsa.pub…
…
*up命令将启动网络和配置为mykvm.yml的kvm实例。
$mykvm up
*检查kvm实例的状态。
$mykvm status
--------
1控制器运行
2 netnode运行
3 compute1运行
4 compute2 running
*您可以使用virsh来控制kvm实例。
$sudo virsh list
id name state
=-
1 controller running
2 netnode running
3 compute1 running
4compute2运行
*您可以用ssh连接到带有主机名的kvm实例。/etc/resolv.conf更新为使用mykvm.yml中第一个网络的dnsmasq作为名称服务器。
*destroy命令将停止网络并销毁kvm实例。
$mykvm destroy
configuration
--
*mykvm.yml配置文件如下所示。
*您可以使用多个网络接口定义多个网络和虚拟机实例。
*您可以使用“kvm_nested”选项创建嵌套的kvm实例。
$cat mykvm.yml
--
-网络:
-名称:mgmt
外部:true
自动启动:true
IP:10.0.10.1
-名称:int
IP:10.0.20.1
-名称:ext
外部:true
IP:192.168.101.1
-vms:
-名称:controller
vcpus:1
ram:2048
模板:precise64.qcow2
netdevs:
-网络:mgmt
ip:10.0.10
-网络:ext
ip:192.168.101.10
-名称:netnode
vcpus:2
ram:1024
模板:precise64.qcow2
netdevs:
-网络:管理
ip:10.0.10.11
-网络:int
ip:10.0.20.11
-网络:ext
ip:192.168.101.11
-名称:compute1
vcpus:2
kvm_nested:true
ram:2048
模板:precise64.qcow2
网络开发:
-网络:管理
ip:10.0.10.12
-网络:int
ip:10.0.20.12
*嵌套的kvm管理程序支持
$echo“选项kvm intel nested=1”;sudo tee/etc/modprobe.d/kvm intel.conf
$sudo reboot
$cat/sys/module/kvm_intel/parameters/nested
y
问题
====
*仅在带有Intel CPU的Ubuntu12.04机器上测试。
*有时vmbuilder生成的基本映像无法启动。在这种情况下,删除ubuntu kvm目录和~/.mykvm/base下的基本映像,然后再次运行init命令重新创建一个基本映像。
==
*mykvm是一个小的python脚本,用于从yaml配置文件创建多个kvm实例。
*mykvm正在使用一些很好的工具,如virt install、vmbuilder、qemu img和ansible。
ansible将用于初始化kvm实例。
$sudo apt get update
$sudo apt get install kvm libvirt bin virtinst python vm builder python dev python pip
*如果没有任何ssh密钥,则生成新的ssh密钥。这个密钥将用于ssh到kvm实例。
$ssh keygen-t rsa
*install mykvm with pip
$sudo pip install mykvm
*现在,mykvm已经准备好了
$mykvm
用法:mykvm command[<;args>;]
available子命令:
init
up[<;vm>;]
halt
destroy
status
usage
----
*创建新目录
*运行init命令。如果没有底片,vmbuilder将创建precise64.qcow2基映像。
$mykvm init
初始化mykvm
*创建mykvm.yml
*复制vmbuilder脚本
*复制可翻译文件
*生成基映像/home/cirros/.mykvm/base/precise64.qcow2
+rm-rf ubuntu-kvm
+sudoers\u-tmpl=/etc/vmbuilder/ubuntu/sudoers.tmpl
+grep-q-e ubuntu/etc/vmbuilder/ubuntu/sudoers.tmpl
+sudo sed-i'$a ubuntu all=(all)nopasswd:all\n includedir/etc/sudoers.d'/etc/vmbuilder/ubuntu/sudoers.tmpl
+sudo vmbuilder kvmm ubuntu--suite precise--arch amd64--flavor virtual ssh user key/home/cirros/.ssh/id椆rsa.pub…
…
*up命令将启动网络和配置为mykvm.yml的kvm实例。
$mykvm up
*检查kvm实例的状态。
$mykvm status
1控制器运行
2 netnode运行
3 compute1运行
4 compute2 running
*您可以使用virsh来控制kvm实例。
$sudo virsh list
id name state
=-
1 controller running
2 netnode running
3 compute1 running
4compute2运行
*您可以用ssh连接到带有主机名的kvm实例。/etc/resolv.conf更新为使用mykvm.yml中第一个网络的dnsmasq作为名称服务器。
*destroy命令将停止网络并销毁kvm实例。
$mykvm destroy
configuration
--
*mykvm.yml配置文件如下所示。
*您可以使用多个网络接口定义多个网络和虚拟机实例。
*您可以使用“kvm_nested”选项创建嵌套的kvm实例。
$cat mykvm.yml
--
-网络:
-名称:mgmt
外部:true
自动启动:true
IP:10.0.10.1
-名称:int
IP:10.0.20.1
-名称:ext
外部:true
IP:192.168.101.1
-vms:
-名称:controller
vcpus:1
ram:2048
模板:precise64.qcow2
netdevs:
-网络:mgmt
ip:10.0.10
-网络:ext
ip:192.168.101.10
-名称:netnode
vcpus:2
ram:1024
模板:precise64.qcow2
netdevs:
-网络:管理
ip:10.0.10.11
-网络:int
ip:10.0.20.11
-网络:ext
ip:192.168.101.11
-名称:compute1
vcpus:2
kvm_nested:true
ram:2048
模板:precise64.qcow2
网络开发:
-网络:管理
ip:10.0.10.12
-网络:int
ip:10.0.20.12
*嵌套的kvm管理程序支持
$echo“选项kvm intel nested=1”;sudo tee/etc/modprobe.d/kvm intel.conf
$sudo reboot
$cat/sys/module/kvm_intel/parameters/nested
y
问题
====
*仅在带有Intel CPU的Ubuntu12.04机器上测试。
*有时vmbuilder生成的基本映像无法启动。在这种情况下,删除ubuntu kvm目录和~/.mykvm/base下的基本映像,然后再次运行init命令重新创建一个基本映像。