公司准备上线一批业务服务器,为不到时候不会把自己累坏了,先自己提高功力把各种可能会用到的应用技术掌握好,以应万变。

批量上线的服务器首先涉及的就是批量安装部署,先把光盘定制好以省去到时候的很多敲键盘的功夫。

 

测试环境:VMware® Workstation 9.0.0 build-812388

准备光盘镜像:CentOS-6.3-i386-minimal

 

大概的思路是:先按照应用需求安装好一个CentOS服务器,然后把CentOS中定制自动安装光盘

 

由于使用的是CentOS 6.3最小化安装,定制过程比网上很多使用DVD安装定制软件包的教程简单很多。

需要使用的软件:mkisofs

  1. #yum install mkisofs 

建立定制所需要的环境目录

  1. #mkdir /mnt/cdrom 
  2. #mount /dev/cdrom /mnt/cdrom 
  3. #mkdir /data/os 
  4. #rsync -a /mnt/cdrom/ /data/os/ #实际上是把光盘里的文件复制到此 

 

定制isolinux.cfg文件

即选择安装项的配置文件

  1. #cd /data/os 
  2. #cd isolinux 
  3. #vim isolinux.cfg 
  4. default vesamenu.c32 
  5. #prompt 1 
  6. timeout 10  #超时时间 
  7.  
  8. display boot.msg 
  9.  
  10. menu background splash.jpg 
  11. menu title Welcome to CentOS 6.3! 
  12. menu color border 0 #ffffffff #00000000 
  13. menu color sel 7 #ffffffff #ff000000 
  14. menu color title 0 #ffffffff #00000000 
  15. menu color tabmsg 0 #ffffffff #00000000 
  16. menu color unsel 0 #ffffffff #00000000 
  17. menu color hotsel 0 #ff000000 #ffffffff 
  18. menu color hotkey 7 #ffffffff #ff000000 
  19. menu color scrollbar 0 #ffffffff #00000000 
  20.  
  21. label linux 
  22.   menu label ^Install or upgrade an existing system 
  23.   menu default 
  24.   kernel vmlinuz 
  25.   append ks=cdrom:/isolinux/ks.cfg initrdinitrd=initrd.img ##增加了一句 ks=cdrom:/isolinux/ks.cfg 
  26. label vesa 
  27.   menu label Install system with ^basic video driver 
  28.   kernel vmlinuz 
  29.   append initrdinitrd=initrd.img xdriver=vesa nomodeset 
  30. label rescue 
  31.   menu label ^Rescue installed system 
  32.   kernel vmlinuz 
  33.   append initrdinitrd=initrd.img rescue 
  34. label local 
  35.   menu label Boot from ^local drive 
  36.   localboot 0xffff 
  37. label memtest86 
  38.   menu label ^Memory test 
  39.   kernel memtest 
  40.   append - 

 

定制ks.cfg文件,这里涉及到一个内容

 

  什么是KickStart KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

 

 

  1. #cd /data/os 
  2. #cp /root/anaconda-ks.cfg ./isolinux/ks.cfg  把安装系统时由anaconda自动生成的ks.cfg文件复制到/data/os/isolinux下。并编辑 
  3. #vi ks.cfg 
  4.   
  5.  
  6. # Kickstart file automatically generated by anaconda. 
  7.  
  8. #version=DEVEL 
  9. install 
  10. cdrom 
  11. lang en_US.UTF-8 
  12. keyboard us 
  13. network --onboot yes --device eth0 --bootproto dhcp --noipv6  #这里我把它设置为开机DHCP自动获取IP,默认为--onboot no。 
  14. rootpw  --iscrypted $6$FLLlvfqZKzvs/9bu$oflTVbcg8ZDgfCvBCDeyIBrgswymV7.W6ZoKc0Ona0GT/SCmBvMokbD2Ty86GH.qMOzXKlh6fTUQJRq4C50FC1 
  15. firewall --service=ssh 
  16. authconfig --enableshadow --passalgo=sha512 
  17. selinux --enforcing 
  18. timezone --utc Asia/Shanghai 
  19. bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" 
  20. # The following is the partition information you requested 
  21. # Note that any partitions you deleted are not expressed 
  22. # here so unless you clear all partitions first, this is 
  23. # not guaranteed to work 
  24. zerombr  #注意此处,清空MBR 
  25. clearpart --all --initlabel #重新初始化硬盘分区 
  26.  
  27. part /boot --fstype=ext4 --size=200  #/boot分区,200M 
  28. part swap --size=1024                #swap 分区,1024M 
  29. part / --fstype=ext4 --grow --size=1 #根分区/,意为剩下所有的空闲空间都留给/ 
  30.  
  31. #repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100  #暂未明白这是什么意思,先注释掉 
  32.  
  33. reboot  #安装完成后自动重启 
  34.  
  35. %packages --nobase   #这里定义需要安装的包 
  36. @core                #最小化安装只有一个core就够了。 
  37.  
  38.  
  39. %post                #%post后面可以接一些命令、脚本。如/bin/touch /root/test.cfg,安装完成后会在/root目录下看到test.cfg文件 
  40. /bin/touch /root/test.cfg 
  41.  
  42. ####################################################### 
  43. #下面是我创建SSH 公钥的脚本 
  44. ####################################################### 
  45. if [ ! -d /root/.ssh ]; then 
  46.         mkdir /root/.ssh/ 
  47. fi 
  48.  
  49. if [ ! -f /root/.ssh/authorized_keys ]; then 
  50.         touch /root/.ssh/authorized_keys 
  51. fi 
  52.  
  53. cat <<EOF > /root/.ssh/authorized_keys 
  54. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABDAAAAAgQDDZCIIaD6lCRhmRY4wwdhLcqfstvd0aT90Py9g0RTtZxkh7NcJuR/+zupmQ0Bet3UW2sGfiP3JSviQvi82QK9+orh0IC+cCboE0usgSH89nra0LLc0y2Iv816lhjh5Dmn9ubfT5uCkgnJMIu10qUqZbu2b/ypMwMe/5jEFBdG89 
  55. EOF 
  56.  
  57. %end  #必须的结束标志 

 

 

最后生成光盘镜像:

 

  1. #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分钟后自动安装完成!