Kickstart+PXE定制网络批量自动安装

什么是KickStart

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

什么是PXE

PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

网络拓扑图:

 

在机房中批量上线安装服务器通常会使用如上图所示的结构批量安装,由于我们的工作电脑通常都是windows系统(office需要),所以再装个VMware虚拟机,在虚拟机中架设PXE server不失为一种好方法。

VMware workstation虚拟机的设置:安装好CentOS并且虚拟机网络连接方式为桥接(bridge)

以下所有配置都在虚拟机中的CentOS完成:

使用PXE+Kickstart就可以制作网络多机器自动安装,网络安装的方式有三种:NFS、HTTP和FTP。综合起来看,部署这样的自动安装环境需要的条件是:

1.DHCP 服务器

2.TFTP 服务器

3.KickStart所生成的ks.cfg配置文件

4.一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器

5.带有一个 PXE 支持网卡的将安装的主机

把系统安装光盘mount到主机上

#mount /dev/cdrom /mnt/cdrom

安装所需要的服务

yum -y install dhcp dhcp-devel nfs-utils nfs-utils-lib tftp tftp-server syslinux

 

配置TFTP,制定可供下载文件的目录。

  
  
  
  
  1. 1、编辑TFTP配置文件 
  2. # default: off 
  3. # description: The tftp server serves files using the trivial file transfer \ 
  4. #       protocol.  The tftp protocol is often used to boot diskless \ 
  5. #       workstations, download configuration files to network-aware printers, \ 
  6. #       and to start the installation process for some operating systems. 
  7. service tftp 
  8.         disable = no    #找到disable,修改其值为no 
  9.         socket_type             = dgram 
  10.         protocol                = udp 
  11.         wait                    = yes 
  12.         user                    = root 
  13.         server                  = /usr/sbin/in.tftpd 
  14.         server_args             = -s /tftpboot #此处为TFTP提供下载的位置 
  15.         per_source              = 11 
  16.         cps                     = 100 2 
  17.         flags                   = IPv4 
  18.  
  19. 2,TFTP目录建立与设置 
  20. #mkdir /tftpboot 
  21. #cp /usr/share/syslinux/pxelinux.0 /tftpboot/ 
  22. #mkdir /tftpboot/pxelinux.cfg 
  23. #cp /mnt/cdrom/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default 
  24. #cp /mnt/cdrom/isolinux/* /tftpboot #把光盘中isolinux里的所有文件复制到/tftpboot下 

重启动TFTP:service xinetd restart

 

DHCP服务器设置

  
  
  
  
  1. # DHCP Server Configuration file. 
  2. #   see /usr/share/doc/dhcp*/dhcpd.conf.sample 
  3. #   see 'man 5 dhcpd.conf' 
  4. ddns-update-style interim; 
  5. ignore client-updates; 
  6.  
  7. subnet 10.20.30.0 netmask 255.255.255.0 { 
  8.         option routers          10.20.30.1; 
  9.         option subnet-mask      255.255.255.0; 
  10.         option domain-name-servers 10.20.30.2; 
  11.  
  12.         range dynamic-bootp 10.20.30.2 10.20.30.100; 
  13.         default-lease-time 21600; 
  14.         max-lease-time 43200; 
  15.         next-server 10.20.30.2;  ###重要 
  16.         filename "pxelinux.0";   ###重要 
  17.  
  18. 单就网络安装来说,只要在已经安装配置好的DHCP服务器上添加指定服务器IP和指定pxelinux.0便可。 

重启动DHCP:service dhcpd restart

编辑/tftpboot/pxelinux.cfg/default

  
  
  
  
  1. default vesamenu.c32   
  2. #prompt 1 
  3. timeout 10    #超时时间 
  4.  
  5. display boot.msg 
  6.  
  7. menu background splash.jpg 
  8. menu title Welcome to CentOS 6.3! 
  9. menu color border 0 #ffffffff #00000000 
  10. menu color sel 7 #ffffffff #ff000000 
  11. menu color title 0 #ffffffff #00000000 
  12. menu color tabmsg 0 #ffffffff #00000000 
  13. menu color unsel 0 #ffffffff #00000000 
  14. menu color hotsel 0 #ff000000 #ffffffff 
  15. menu color hotkey 7 #ffffffff #ff000000 
  16. menu color scrollbar 0 #ffffffff #00000000 
  17.  
  18. label linux 
  19.   menu label ^Install or upgrade an existing system 
  20.   menu default 
  21.   kernel vmlinuz 
  22. #  append ks=ftp://10.20.30.2/pub/ks.cfg initrdinitrd=initrd.img  ## 设置重点 
  23.   append ks=nfs:10.20.30.2:/tftpboot/ks.cfg initrdinitrd=initrd.img ##设置重点 
  24. label vesa 
  25.   menu label Install system with ^basic video driver 
  26.   kernel vmlinuz 
  27.   append initrdinitrd=initrd.img xdriver=vesa nomodeset 
  28. label rescue 
  29.   menu label ^Rescue installed system 
  30.   kernel vmlinuz 
  31.   append initrdinitrd=initrd.img rescue 
  32. label local 
  33.   menu label Boot from ^local drive 
  34.   localboot 0xffff 
  35. label memtest86 
  36.   menu label ^Memory test 
  37.   kernel memtest 
  38.   append - 
  39.  
  40. ############FTP、NFS、HTTP三种安装方式的配置路径写法########## 
  41. ############主要是为了让安装引导程序找到ks.cfg配置文件######## 
  42. ############################################################## 
  43. #  append ks=ftp://10.20.30.2/pub/ks.cfg initrdinitrd=initrd.img 
  44. #  append ks=nfs:10.20.30.2:/tftpboot/ks.cfg initrdinitrd=initrd.img 
  45. #  append ks=http://10.20.30.2/linux/ks.cfg initrdinitrd=initrd.img 
  46. ############################################################## 

 

对安装光盘的定制

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

 

安装方式之一:FTP

  
  
  
  
  1. 安装vsftpd之后默认允许匿名访问FTP公共目录/var/ftp/pub,所以无需对vsftd配置文件进行修改。
  2. 只需要把ks.cfg文件和光盘中的所有文件复制到/var/ftp/pub就可以了。 
  3. #cp /root/anaconda-ks.cfg /var/ftp/pub/ks.cfg 
  4. #cp -a /mnt/cdrom/* /var/ftp/pub 
  5. #分别修改ks.cfg和/tftpboot/pxelinux.cfg/default文件对应的方式

安装方式之二:NFS

 

  
  
  
  
  1. 编辑NFS的配置文件,添加以下两句 
  2. /tftpboot *(ro,sync)  #/tftpboot 可被网络上任何主机读取 
  3. /mnt/cdrom *(ro,sync) #/mnt/cdrom 可被网络上任何主机读取
  4. 分别修改ks.cfg和/tftpboot/pxelinux.cfg/default文件对应的方式

 

 安装方式之三:HTTP

  
  
  
  
  1. 1,把ks.cfg和/mnt/cdrom里的所有文件复制到apache指定的目录下  
  2. 2,分别修改ks.cfg和/tftpboot/pxelinux.cfg/default文件对应的方式 

 

 

本文出自 “枫之歌” 博客,转载请与作者联系!

你可能感兴趣的:(自动安装,kickstart,ks)