根据业务定制自动安装CentOS 过几天机房要上架29台服务器,需要装系统。机器太多,想自动化安装,由于没测试机,实验都在虚拟机实现,为了能快点部署完,想了几套方案,毕竟早点
根据业务定制自动安装CentOS
过几天机房要上架29台服务器,需要装系统。机器太多,想自动化安装,由于没测试机,实验都在虚拟机实现,为了能快点部署完,想了几套方案,毕竟早点部署完, 就可以回宿舍,不用去公司了。
大体操作是:找一个DVD,安装方式根据业务需要来(如:分区 安装包 语言等),这样在安装完,系统会创建一个自动安装系统cfg模版文件,在/root目录下。同时root目录下有一个install.log日志文件,里面记录了这个系统安装了什么包,等下就根据这个文件记录,从DVD光盘提取需要的包,重新封装成新镜像,然后把root目录下的自动安装文件复制到新镜像目录下,再做点小修改就可以了。 第一步:先挂载DVD镜像; [root@localhost ~]# mount /dev/cdrom /mnt ###我把镜像挂载到了/mnt目录下 第二步:创建一个目录 ,用来保存需要业务包 和封装新镜像的文件; [root@localhost ~]# mkdir -p iso/CentOS [root@localhost CentOS]# pwd /root/iso/CentOS 第三步:提取业务需要的包,上面提到系统安装包名都记录在root目录install.log文件里; [root@localhost ~]# awk '/Installing/{print $2}' install.log | sed 's/^[0-9]*://g' >package.txt package.txt 文件里保存的就是当前系统里安装的所有包; 第四步:根据package 内容,从DVD镜像提取需要的包,放到/root/iso/CentOS目录; [root@localhost ~]# cat cp.sh #!/bin/bash DVD='/mnt/CentOS' #DVD镜像存放包路径 PACKDIR='/root/package.txt' #记录的是现在系统里安装的所有包名 NEW_DVD='/root/iso/CentOS/' # 新镜像需要包的存放路径 while read LINE do cp ${DVD}/${LINE}*.rpm /${NEW_DVD} || echo "$LINE don't cp......." done < package.txt 第五步:把镜像需要的其他文件也拷贝到iso目录下,这样就和挂载的DVD镜像没区别了,除了缺少某些包以外。 [root@localhost CentOS]# rsync -a --exclude=CentOS /mnt/ /root/iso #这条命令作用是 把/mnt目录下,除CentOS目录,其他文件都复制到/root/iso目录下 第六步: 就是把anaconda-ks.cfg 复制到/root/iso目录下 [root@localhost ~]# cat anaconda-ks.cfg | grep -v "^#" install cdrom lang en_US.UTF-8 keyboard us network --device eth0 --bootproto static --ip 192.168.0.45 --netmask 255.255.255.0 --gateway 192.168.0.1 rootpw --iscrypted $1$cT7w.PYF$autqNIf5WqO0P.3CW5nru. firewall --enabled --port=22:tcp authconfig --enableshadow --enablemd5 selinux --enforcing timezone --utc Asia/Shanghai bootloader --location=mbr --driveorder=sda clearpart --linux part /boot --fstype ext3 --size=100 part swap --size=2000 part / --fstype ext3 --size=100 --grow %packages @base @core @dialup @editors @text-internet keyutils trousers fipscheck device-mapper-multipath [root@localhost ~]# cp anaconda-ks.cfg /root/iso #大家可以根据需求 再添加写脚本到这文件里 第七步:修改/root/iso/isolinux/isolinux.cfg [root@localhost ~]# vim /root/iso/isolinux/isolinux.cfg Default linux 修改成default linux ks=cdrom:/anaconda-ks.cfg 保存就可以了 第八步:生成comps.xml文件 [root@localhost ~]# cd /root/iso/ [root@localhost iso]# createrepo -g repodata/*comps.xml /root/iso/ 457/457 - CentOS/fbset-2.1-22.x86_64.rpm Saving Primary metadata Saving file lists metadata Saving other metadata [root@localhost iso]# 第九步:制作新镜像 [root@localhost ~]# mkisofs -o MyCentOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /root/iso/ 第十步:生成MD5验证码 [root@localhost ~]# /usr/lib/anaconda-runtime/implantisomd5 MyCentOS.iso Inserting md5sum into iso p_w_picpath... md5 = 82cc70b16908bea468a2ce1c263dee9a Inserting fragment md5sums into iso p_w_picpath... fragmd5 = bdf4b332ccf4a6fafe883a4cff54527df985ac2ee71be3c6c66d51e3421c frags = 20 Setting supported flag to 0 [root@localhost ~]# 如果提示没这个命令,yum –y install anaconda-runtime 安装 以上内容参考http://liusy23.blog.51cto.com/1306558/280831 在给RHEL5.x版本定制系统时候需要注意: centos 软包目录为CentOS;RHEL为Server 第八步需要修改为: [root@pptv iso]# createrepo -g Cluster/repodata/comps-rhel5-cluster.xml /root/iso/