快速部署XEN虚拟机之xen-tools工具介绍

    最近在寻找快速部署xen虚拟机方法,以为官方推荐的xen-tools工具集不错,不过发如今介绍时通常用该工具部署Para-Vritralization(半虚拟化)模式的虚拟机,暂且不论部署什么模式的xen虚拟机 ,下面简单介绍一下xen-tools工具。算法

    在debian6上安装xen-tools工具:apt-get install xen-toolsshell

    工具包中包含如下工具:bootstrap

    /usr/bin/xen-create-image缓存

    /usr/bin/xen-create-nfs网络

    /usr/bin/xen-delete-image架构

    /usr/bin/xen-list-imagesdom

    /usr/bin/xen-update-imageide

   在自动化管理xen虚拟机时都会用到以上几个命令,在建立虚拟机时主要使用xen-create-image命令,它主要调用如下几个命令:工具

    /usr/bin/xt-customize-image    建立镜像安装虚拟机oop

    /usr/bin/xt-install-image    手机hook脚本,对虚拟机进行配置

    /usr/bin/xt-create-xen-config    建立配置文件

    xen-tools主要使用到的的目录以下:

    /etc/xen-tools  包含主配置文件,分区配置文件,规则配置文件等。

    /var/log/xen-tools  包含每一个vm建立过程当中的日志。

    /usr/lib/xen-tools   包含一些hook脚本,在vm安装过程当中对vm进行定制。

   /etc/xen-tools/xen-tools.conf 这是一个用脚本生成虚拟机实例的全局配置文件,包含在xen-tools包中,在该配置文件中定义的任何值均可以用外部命令重复定义,下面简单的介绍一下xen-tools.conf文件的配置:

#设置用来存储虚拟机本地镜像的目录,默认是注释状态,新的虚拟机实例会存储在该目录下以虚拟机hostname命名的子目录下。 # dir = /home/xen #若是你不想用loopback images,则能够设置使用LVM卷组代替, lvm = vm-xen # Installation method. #虚拟机实例安装方法,有四种安装方法 # install-method = [ debootstrap | rinse | rpmstrap | copy | tar ] install-method = debootstrap #若是使用copy或者tar方法安装虚拟机实例,则须要指定从那个源头copy文件或者获取tar文件。 # install-source = /path/to/copy # install-source = /some/path/img.tar #安装命令定义,能够本身定义copy、tar、debootstrap等安装方法的定义, # install-method = copy: # copy-cmd = /bin/cp -a $src/* $dest # install-method = debootstrap: # debootstrap-cmd = /usr/sbin/debootstrap # install-method = tar: # tar-cmd = /bin/tar --numeric-owner -xvf $src # 虚拟机磁盘大小 size = 30Gb # 虚拟机内存大小 memory = 1024Mb # 虚拟机swap大小 swap = 2048Mb # 若是不想使用swap,使用如下配置 # noswap = 1 # 设置磁盘上的文件系统类型 fs = ext4 # 虚拟机的默认安装版本,会和宿主机一致 dist = `xt-guess-suite-and-mirror --suite` # Specify sparse vs. full disk images. image = sparse # 网络设置 #若是但愿给虚拟机实例设置静态IP则能够把一下内容取消注释 gateway = 10.1.6.254 netmask = 255.255.255.0 broadcast = 10.1.6.255 #配置虚拟机实例使用dhcp dhcp = 1 #给虚拟机实例设置默认的hostname,默认是不设置的,而且Dom0's /etc/resolv.conf会被拷贝到虚拟机实例上面 nameserver = xen-vmserver #给host的vif设置桥接名称 # bridge = xendmz # Misc options #在使用debootstrap安装方法时,若是但愿取消掉安装时下载的deb包,则能够去掉注释 # cache = no #默认的缓存目录是/var/cache/apt/archives/,若是它不存在则设置为/var/cache/xen-tools/archives/ # cachedir = /var/cache/xen-tools/archives/ #若是你不想给虚拟机实例手动设置root密码,则注释掉如下内容 # genpass = 0 #设置密码的长度 # genpass_len = 8 #设置密码的加密方式,能够有md5, sha256 and sha512三种方式 # hash_method = sha256 #在安装虚拟机实例时若是但愿交互的设置root密码能够设置如下选项 passwd = 1 #把宿主机上的全部非系统账号copy到虚拟机实例上 # accounts = 1 #设置虚拟机实例默认使用的kernel和ramdisk,由于使用的是XEN的内核,因此uname -r 出来的是xen东西。 kernel = /boot/vmlinuz-`uname -r` initrd = /boot/initrd.img-`uname -r` #设置虚拟机实例的架构体系,值适用于debootstrap, rinse, or rpmstrap安装,在64位的机器上颇有用 # arch = [i386|amd64] #在使用debootstrap安装时设置默认的mirror mirror = http://mirrors.163.com/debian # Filesystem options for the different filesystems we support. ext3_options = noatime,nodiratime,errors=remount-ro ext2_options = noatime,nodiratime,errors=remount-ro xfs_options = defaults reiserfs_options = defaults btrfs_options = defaults #在建立虚拟机完毕后直接启动 boot = 1 #若是是在lenny或者以后的OS上安装XEN,须要确保使用hvc0做为虚拟机的serial device,使用xvdX代替sdX做为虚拟机的serial devices #default serial_device = hvc0 # serial_device = tty1 #default disk_device = xvda # disk_device = sda #设置xen配置文件的输出目录和配置文件的后缀,配置文件名默认是$hostname.cfg output = /etc/xen extension = .cfg #是否把dom0的/etc/hosts追加到虚拟机实例中 # 默认不创建dom0的/etc/hosts # nohosts = 0 # 默认不拷贝dom0的/etc/hosts到虚拟机实例 # copyhosts = 0 

    注:在使用xen-create-image命令时CLI的选项均可以覆盖xen-tools.conf里面的配置。

    下面简单介绍一下 xen-create-image的使用,在自动化安装xen虚拟机时主要使用该工具:
 
          
        --accounts   拷贝全部的非系统账号到虚拟机实例上

        --admins     在使用xen-shell时指定哪些管理员须要被建立

        --boot       在建立完虚拟机实例后启动它

        --cache=yes 在使用debootstrap安装完新虚拟机实例后是否缓存下载的deb包。
                       
        --cachedir=缓存的deb包保存在哪一个目录,debian系是/var/cache/apt/archives/,redhat系是/var/cache/xen-tools/archives/

        --config=file 读取非默认的全局配置文件,默认文件是/etc/xen/xen-tools.conf
                       
        --copyhosts  把宿主机的/etc/hosts文件拷贝到虚拟机实例上 

        --debootstrap-cmd=/usr/sbin/debootstrap 设置debootstrap命令的路径,也能够是cdebootstrap

        --disk_device=xvda 设置虚拟机实例的设备名称,默认是xvda

        --extension=cfg 指定生成的xen虚拟机实例配置文件的扩展名

        --force  强制重写已经存在的虚拟机实例镜像

        --fs=fs  指定虚拟机实例使用的文件系统类型,ext2 ext3 ext4 reiserfs xfs btrfs

        --genpass=1  生成一个随机的root密码,0表明关闭 

        --genpass_len=8 设置随机生成的密码的长度,只和--genpass配合使用

        --hash_method=sha256 设置密码的加密算法, md5, sha256 or sha512

        --hooks=1    是否在虚拟机实例建立完毕后运行钩子程序

        --ide      设置虚拟机实例的IDE名称,例如用hda代替默认的xvda 

        --image=full    设置生成的虚拟机镜像采用哪一种格式,有两种可选"sparse" or "full",可是若是选择LVM,则必须是full格式。

        --image-dev=/path/to/device  设置镜像设备所在路径                    

        --initrd=/path/to/initrd   设置在安装虚拟机时使用的initial ramdisk,通常使用宿主机的

        --install=1  Specify whether to install the guest system or not.

        --keep       若是安装失败不要删除镜像

        --kernel=/path/to/kernel   设置在安装虚拟机时使用的kernel ,通常使用宿主机的

        --memory=size    分配给虚拟机的内存                 

        --modules=/path/to/modules   设置在安装虚拟机时使用的 kernel modules ,通常使用宿主机的
        
        --nohosts    Don't touch /etc/hosts on the dom0.

        --noswap    在虚拟机实例上不建立交换分区

        --output=dir   设置生成的xen虚拟机实例配置文件的输出路径

        --partitions=file  设置自定义的分区划分文件,若是使用该文件,则默认的fs, size, swap and noswap参数均被忽略

        --password=xxx 给虚拟机实例设置root密码

        --passwd     在安装虚拟机实例的过程当中交互式的设置root密码 会覆盖--genpass --password         
        --pygrub     DomU should be booted using pygrub.

        --role=role  在安装实例时运行指定的role规则 
                       
        --role-args="--arg1 --arg2"
                       
        --roledir=/path/to/directory  包含规则的目录,默认是/etc/xen-tools/role.d/

        --scsi       在虚拟机实例中使用scsi设备名称代替默认的xvda,例如sda代替xvda 

        --serial_device=serialname  设置串行设备名称,默认是hvc0 
                      
        --size=size  设置虚拟机实例主镜像大小

        --swap=size 设置swap分区大小

        --swap-dev=/path/to/device  设置swap分区镜像所在路径
                      
        --vcpus=num   设置分配给虚拟机的cpu,默认1
                      

        Installation options:

        --arch=amd64   在使用debootstrap, rinse,rpmstrap方法安装虚拟机实例时能够指定架构类型,在其余安装方法中不生效 

        --dist=dist  指定那个发行版你但愿安装,如:lenny

        --install-method=debootstrap  设置虚拟机实例的安装方法
                       
        --install-source=/path/to/tarball  使用copy或者tar安装方法时设置的源路径
                      
        --mirror=url    在使用debootstrap安装时,设置一个mirror url,默认使用 /etc/apt/sources.list里面的。

        --template=tmpl    这个模版文件是用来生成xen虚拟机实例的配置文件的

        Networking options:

        --bridge=brname  在宿主机上有多个网桥时能够给新建的虚拟机指定一个网桥
                       
        --broadcast=123.456.789.ABC  设置虚拟机的广播地址
                      
        --dhcp   虚拟机实例经过dhcp获取ip

        --gateway=gw   虚拟机实例的网关

        --ip=xx  设置虚拟机ip地址,能够设置多个ip,在多ip中第一个ip为系统ip,其他ip是aliases

        --mac=AA:BB:CC:DD:EE:FF  设置虚拟机的MAC地址

        --netmask=123.456.789.ABC  设置虚拟机的掩码

        --nameserver=xxx  设置虚拟机的dns,多个ip用空格分开,若是没有设置则采用Dom0's /etc/resolv.conf的配置

        --vifname=vifname   给实例指定vif名称
                       

        Mandatory options:

        --dir=/path/to/directory   loopback images的存储目录

        --evms=lvm2/container

        --hostname=host.example.org  设置虚拟机实例的主机名

        --lvm=vg   指定在那个LVM卷组中建立虚拟机实例的镜像
相关文章
相关标签/搜索