快速部署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卷組中建立虛擬機實例的鏡像
相關文章
相關標籤/搜索