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

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

 

测试环境: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. 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. initrdinitrd=initrd.img xdriver=vesa
    30. label rescue 
    31.   menu label ^Rescue installed system 
    32.   kernel vmlinuz 
    33. 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
    28. part swap --size=1024
    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 >
    54. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABDAAAAAgQDDZCIIaD6lCRhmRY4wwdhLcqfstvd0aT90Py9g0RTtZxkh7NcJuR/+zupmQ0Bet3UW2sGfiP3JSviQvi82QK9+orh0IC+cCboE0usgSH89nra0LLc0y2Iv816lhjh5Dmn9ubfT5uCkgnJMIu10qUqZbu2b/ypMwMe/5jEFBdG89 
    55. w 
    56. EOF 
    57.  
    58. %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分钟后自动安装完成!


    转载于:https://blog.51cto.com/fengzhige/1067111