現在提出一個假設,公司要出用xenserver出800個桌面。要安裝50臺xenserver服務器,安裝時要採用F2高級安裝,定製一些dom0與根分區大小,如果是xenserver最新版本的話還要設置一個GPT_SUPPORT選項。如何一臺設備安裝給你20分鐘的話,50臺就是1000分鐘,需要16個小時,一個人至少要2天的時間安裝完畢。如果是100臺呢?一週或者是更長的時間。
我是受不了這種折磨,那天經理叫我裝12臺我就受不鳥了。所以我就琢磨着怎麼進行網絡安裝,然後定製安裝,無須人工干預。
配置使用pxe安裝xenserver,pxe的環境在這篇文章有詳細的說明:http://kikupotter.blog.51cto.com/3781406/1039820
搭建好PXE環境之後,配置default文件如下:
default local prompt 1 timeout 60 label local localboot 0 label install-xenserver kernel mboot.c32 append xenserver/xen.gz dom0_max_vcpus=2 dom0_mem=752M com1=115200,8n1 console=com1,vga --- xenserver/vmlinuz xencons=hvc console=hvc0 console=tty0 answerfile=ftp://192.168.0.5pub/xenserver6.1/answerfile install --- xenserver/install.img
進行網絡引導之後,我們要編寫交互定製文件:
<?xml version="1.0"?> <installation> <primary-disk gueststorage="no">sda</primary-disk> <guest-disk>sdb</guest-disk> <keymap>us</keymap> <root-password>root.123</root-password> <source type="url">ftp://192.168.0.55/pub/xenserver6.1</source> <post-install-script type=”url”> ftp://192.168.0.55/post-install.sh </post-install-script> <admin-interface name="eth0" proto="static"> <ip>192.168.0.68</ip> <subnet-mask>255.255.255.0</subnet-mask> <gateway>192.168.0.55</gateway> </admin-interface> <nameserver>218.89.157.99</nameserver> <hostname>xenserver001</hostname> <timezone>Asia/Shanghai</timezone> </installation>
採用網絡引導後就可以安裝了。
但是上面的問題還沒有解決,就是我要的是高級安裝,定製文件裏面沒有分區的地方,默認安裝完仍然是4G的根分區,和752M的DOM0,GPT_SUPPORT也未更改。無法滿足設計要求。
經過數次的嘗試終於找到了解決方法,就是直接修改光盤鏡像裏面的install.img裏面的constant.py文件,但是做的時候一定要注意格式的轉換,不然重新打包的install.img可能就無正常使用,這裏將定製過程演示一遍:
掛在xenserver6.1光盤:到/media
[root@station01media]# ls AUTORUN.INF EULA packages.main Read_Me_First.html boot install.img packages.transfer-vm XS-REPOSITORY-LIST client_install LICENSES packages.xenserver
拷貝install.img:
[root@station01media]# cp install.img /tmp/ [root@station01tmp]# mkdir tmp/ [root@station01tmp]# mv install.img tmp/install.img.gz [root@station01tmp]# cd tmp/ [root@station01tmp]# ls install.img.gz [root@station01tmp]# pwd /tmp/tmp
開始解壓制作:記住這個塊大小141577,打包完成之後也要是這大小。
[root@station01tmp]# gunzip install.img.gz [root@station01tmp]# cpio -i --make-directories < install.img 141577 blocks
解壓完成後:
[root@station01tmp]# ls bin etc init lib proc sbin share tmp var dev home install.img opt root sdk.answerfile sys usr
修改配置:
[root@station01installer]# vim constants.py [root@station01installer]# cat constants.py | grep False GPT_SUPPORT =False [root@station01installer]# cat constants.py | grep 12288 root_size = 12288 [root@station01installer]# cat constants.py | grep 2940 DOM0_MEM=2940 #MB
打包:
[root@station01tmp]# ls bin etc init lib proc sbin share tmp var dev home install.img opt root sdk.answerfile sys usr
覆蓋原來的install.img
[root@station01tmp]# pwd /tmp/tmp [root@station01tmp]# rm install.img rm: removeregular file `install.img'? y [root@station01tmp]# pwd /tmp/tmp [root@station01tmp]# find . | cpio -c -o > ../install.img #這條命令很重要。 141577 blocks [root@station01tmp]# cd .. [root@station01tmp]# pwd /tmp [root@station01tmp]# ls install.img install.img [root@station01tmp]# gzip install.img [root@station01tmp]# mv install.img.gz install.img
這樣將製作好的install.img替代掉原來的install.img進行網絡安裝即可,隨時修改定製打包,自定義你的xenserver環境。