现在提出一个假设,公司要出用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环境。
本文出自 “kikupotter” 博客,谢绝转载!