Ubuntu12.10 server安装KVM的不同之处

因为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

注意,现在host机器仍然不能连外网,用

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

发现和12.04不同的是,default规则已经有了,但是网关的IP地址错了,应该是254.所以用下面的语句删除后再添加正确的规则:

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

现在gateway设置成了254,我们公司内部的正确网关IP地址。

不需要什么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`

这里proxy参数指定了我在公司内网创建的ubuntu apt-cacher 服务器,

内存默认指定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

这个是Ubuntu 12.10/13.10自带的vmbuilder的bug,原因是没有mount /proc目录,这里讨论了这个问题,并提供了临时解决方案:

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会报错.



你可能感兴趣的:(Ubuntu12.10 server安装KVM的不同之处)