公司准备上线一批业务服务器,为不到时候不会把自己累坏了,先自己提高功力把各种可能会用到的应用技术掌握好,以应万变。
批量上线的服务器首先涉及的就是批量安装部署,先把光盘定制好以省去到时候的很多敲键盘的功夫。
测试环境:VMware® Workstation 9.0.0 build-812388
准备光盘镜像:CentOS-6.3-i386-minimal
大概的思路是:先按照应用需求安装好一个CentOS服务器,然后把CentOS中定制自动安装光盘
由于使用的是CentOS 6.3最小化安装,定制过程比网上很多使用DVD安装定制软件包的教程简单很多。
需要使用的软件:mkisofs
- #yum install mkisofs
建立定制所需要的环境目录
- #mkdir /mnt/cdrom
- #mount /dev/cdrom /mnt/cdrom
- #mkdir /data/os
- #rsync -a /mnt/cdrom/ /data/os/ #实际上是把光盘里的文件复制到此
定制isolinux.cfg文件
即选择安装项的配置文件
- #cd /data/os
- #cd isolinux
- #vim isolinux.cfg
- default vesamenu.c32
- #prompt 1
- timeout 10 #超时时间
- display boot.msg
- menu background splash.jpg
- menu title Welcome to CentOS 6.3!
- menu color border 0 #ffffffff #00000000
- menu color sel 7 #ffffffff #ff000000
- menu color title 0 #ffffffff #00000000
- menu color tabmsg 0 #ffffffff #00000000
- menu color unsel 0 #ffffffff #00000000
- menu color hotsel 0 #ff000000 #ffffffff
- menu color hotkey 7 #ffffffff #ff000000
- menu color scrollbar 0 #ffffffff #00000000
- label linux
- menu label ^Install or upgrade an existing system
- menu default
- kernel vmlinuz
- append ks=cdrom:/isolinux/ks.cfg initrdinitrd=initrd.img ##增加了一句 ks=cdrom:/isolinux/ks.cfg
- label vesa
- menu label Install system with ^basic video driver
- kernel vmlinuz
- append initrdinitrd=initrd.img xdriver=vesa nomodeset
- label rescue
- menu label ^Rescue installed system
- kernel vmlinuz
- append initrdinitrd=initrd.img rescue
- label local
- menu label Boot from ^local drive
- localboot 0xffff
- label memtest86
- menu label ^Memory test
- kernel memtest
- append -
定制ks.cfg文件,这里涉及到一个内容
什么是KickStart | KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。 |
- #cd /data/os
- #cp /root/anaconda-ks.cfg ./isolinux/ks.cfg 把安装系统时由anaconda自动生成的ks.cfg文件复制到/data/os/isolinux下。并编辑
- #vi ks.cfg
- # Kickstart file automatically generated by anaconda.
- #version=DEVEL
- install
- cdrom
- lang en_US.UTF-8
- keyboard us
- network --onboot yes --device eth0 --bootproto dhcp --noipv6 #这里我把它设置为开机DHCP自动获取IP,默认为--onboot no。
- rootpw --iscrypted $6$FLLlvfqZKzvs/9bu$oflTVbcg8ZDgfCvBCDeyIBrgswymV7.W6ZoKc0Ona0GT/SCmBvMokbD2Ty86GH.qMOzXKlh6fTUQJRq4C50FC1
- firewall --service=ssh
- authconfig --enableshadow --passalgo=sha512
- selinux --enforcing
- timezone --utc Asia/Shanghai
- bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
- # The following is the partition information you requested
- # Note that any partitions you deleted are not expressed
- # here so unless you clear all partitions first, this is
- # not guaranteed to work
- zerombr #注意此处,清空MBR
- clearpart --all --initlabel #重新初始化硬盘分区
- part /boot --fstype=ext4 --size=200 #/boot分区,200M
- part swap --size=1024 #swap 分区,1024M
- part / --fstype=ext4 --grow --size=1 #根分区/,意为剩下所有的空闲空间都留给/
- #repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100 #暂未明白这是什么意思,先注释掉
- reboot #安装完成后自动重启
- %packages --nobase #这里定义需要安装的包
- @core #最小化安装只有一个core就够了。
- %post #%post后面可以接一些命令、脚本。如/bin/touch /root/test.cfg,安装完成后会在/root目录下看到test.cfg文件
- /bin/touch /root/test.cfg
- #######################################################
- #下面是我创建SSH 公钥的脚本
- #######################################################
- if [ ! -d /root/.ssh ]; then
- mkdir /root/.ssh/
- fi
- if [ ! -f /root/.ssh/authorized_keys ]; then
- touch /root/.ssh/authorized_keys
- fi
- cat <<EOF > /root/.ssh/authorized_keys
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABDAAAAAgQDDZCIIaD6lCRhmRY4wwdhLcqfstvd0aT90Py9g0RTtZxkh7NcJuR/+zupmQ0Bet3UW2sGfiP3JSviQvi82QK9+orh0IC+cCboE0usgSH89nra0LLc0y2Iv816lhjh5Dmn9ubfT5uCkgnJMIu10qUqZbu2b/ypMwMe/5jEFBdG89
- w
- EOF
- %end #必须的结束标志
最后生成光盘镜像:
- #mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o /data/CentOS-6.3-i386.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /data/OS
把光盘镜像down回本地来安装,6到8分钟后自动安装完成!