因为Ubuntu12.10 刚发布,立刻试一下。这次安装KVM的时候,有点不同。就是安装Ubuntu server的时候,选中了virtual server。
这样会导致ubuntu-virt-server和kvm-ipxe已经被在系统安装时装好。
因此,进入系统后,只需要安装:
apt-get install python-vm-builder
之后并不需要退出重新登录。这个对自动化部署很有帮助,因此还是推荐在安装Ubuntu系统的时候选中virtual server。
bridge-utils 也已经安装好了。同样不需要安装。
顺便说一下,现在使用新的命令重启网络:
service networking restart
dhclient br0 命令也不行,而且报错:RTNETLINK answers: File exists
检查route表:
ip route list default via 10.112.18.1 dev br0 10.112.18.0/24 dev br0 proto kernel scope link src 10.112.18.161 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
route del default route add default gw 10.112.18.254 br0
继续思考,为什么gateway设置成了10.112.18.1, 是不是因为从网上复制的网卡设置的信息不加修改的弄过来造成的。
果然不假,修改/etc/network/interfaces文件中br的配置:
auto br0 iface br0 inet static address 10.112.18.161 network 10.112.18.0 netmask 255.255.255.0 broadcast 10.112.18.255 gateway 10.112.18.254 dns-nameservers 8.8.8.8 8.8.4.4 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12
不需要什么route del/add操作了。
复制有害,:)
vmbuilder的详细选项只能看源代码了。通过man或者这个链接可以看到一部分参数介绍:
http://manpages.ubuntu.com/manpages/precise/man1/vmbuilder.1.html
然后可以安装了,为了简化起见,我写了一个自动化创建vm的脚本,
创建时需要传递vm_name和ip作为参数:
#!/bin/bash source ../common/tool.sh # check input parameters if [ -z $1 ] then echo "command usage: ./install.sh vm_name ip_address" exit 0 fi if [ $1 = "--help" ] then echo "command usage: ./create_vm.sh vm_name ip_address" exit 0 fi if [ -z $2 ] then echo "command usage: ./create_vm.sh vm_name ip_address" echo "the 2nd parameter is required" exit 0 fi removeFolder "/var/lib/libvirt/images/$1/" removeFile "/etc/libvirt/qemu/$1" mkdir -p "/var/lib/libvirt/images/$1/mytemplates/libvirt" cp /etc/vmbuilder/libvirt/* /var/lib/libvirt/images/$1/mytemplates/libvirt/ cp vmbuilder.partition /var/lib/libvirt/images/$1/ cd /var/lib/libvirt/images/$1/ echo `vmbuilder kvm ubuntu --suite=quantal --flavour=virtual --arch=amd64 --proxy=http://10.112.18.178:3142 -o --libvirt=qemu:///system --ip=$2 --gw=10.112.18.254 --part=vmbuil\ der.partition --templates=mytemplates --user=carrier --name=carrier --pass=123456 --addpkg=openssh-server --mem=2048 --hostname=$1 --bridge=br0 --debug --verbose` echo `virsh define /etc/libvirt/qemu/$1.xml` echo `virsh start $1`
内存默认指定2G.
运行方法就是
create_vm.sh vm1 10.112.18.191
但是会收到错误:
Selecting previously unselected package linux-image-virtual. Unpacking linux-image-virtual (from .../linux-image-virtual_3.5.0.17.19_amd64.deb) ... , stderr: grep: /proc/cpuinfo: No such file or directory
https://bugs.launchpad.net/ubuntu/+source/vm-builder/+bug/1037607
下面通过我的命令打上临时的补丁:
wget https://launchpadlibrarian.net/120169451/usr_share_pyshared_VMBuilder_plugins_ubuntu_dapper.py.diff cp /usr/share/pyshared/VMBuilder/plugins/ubuntu/dapper.py ./dapper.py_bk patch /usr/share/pyshared/VMBuilder/plugins/ubuntu/dapper.py ./usr_share_pyshared_VMBuilder_plugins_ubuntu_dapper.py.diff
create_vm.sh vm1 10.112.18.191
进入虚拟机后,需要调整时区:
dpkg-reconfigure tzdata然后选择Asia/Harbin 即可。
注意,创建好的虚拟机的/etc/apt/sources.list文件需要修改,否则安装GC4.8会报错.