1.配置DHCP服务
#安装dhcpd软件包
yum install dhcpd -y
#编辑dhcpd服务配置文件,配置问
#vim /etc/dhcpd.conf
  1. ddns-update-style interim; 
  2. ignore client-updates; 
  3.   
  4. subnet 192.168.20.0 netmask 255.255.255.0 { 
  5.      
  6.     option routers          192.168.20.254; 
  7.     option subnet-mask      255.255.255.0; 
  8.      
  9.     option time-offset      28800; 
  10.      
  11.     range dynamic-bootp     192.168.20.10 192.68.20.200; 
  12.     default-lease-time      21600; 
  13.     max-lease-time          43200; 
  14.      
  15.     next-server 192.168.20.254; 
  16.     filename "pxelinux.0"
#重启dhcpd服务
/etc/init.d/dhcpd restart
#将dhcpd服务设置为开机启动
chkconfig dhcpd on
2.配置TFTP服务(TFTP使用69端口)
#安装TFTP软件包
yum install tftp tftp-server -y
#编辑tftp的配置文件,修改下面内容
#vim /etc/xinetd.d/tftp
  1. #设定tftp的根目录位置
  2. server_args = -s /tftpboot/ 
  3. #启用tftp服务
  4. disable = no 
#启动tftp服务,因为tftp是由xinetd进程管理的,所以只要重启xinetd服务即可
/etc/init.d/xinetd restart
#chkconfig xinetd on  //如果是RHEL6,或许使用此条命令时xinetd服务开机启动
#挂载RHEL安装光盘并拷贝需要的文件到tftp根目录下
mount /dev/cdrom /media
mkdir -pv /tftpboot/pxelinux.cfg
cp /media/isolinux/vmlinuz /tftpboot/
cp /media/isolinux/initrd.img /tftpboot/
#yum install syslinux  //需要在系统中安装syslinux软件包,才能够在系统中找到pxelinux.0文件
#查找pxelinux.0文件的位置,因为RHEL的版本不同,pxelinux.0文件的位置也不相同
find / -name pxelinux.0
cp /XXX/XXX/pxelinux.0 /tftpboot/
cp /XXX/XXX/menu.c32 /tftpboot/    //菜单的背景文件,可不复制
#制作安装引导菜单
#cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default //可以使用光盘下的isolinux.cfg文件作为模板制作启动菜单,也可自己编写,下面是我写好的菜单,大家可以用来作为参考。
#vim /tftpboot/pxelinux.cfg/default
  1. #设置菜单的背景文件
  2. default menu.c32
  3. #超时时间,超时后将使用默认启动项启动系统 
  4. timeout 600 
  5. #安装引导菜单的标题名称
  6. MENU TITLE welcome to MyKsServer 
  7.   
  8. #定义第一个启动选项
  9. MENU SEPARATOR 
  10. #选项的描述
  11. label linux
  12. #选项显示的名称
  13.   menu label ^Install system from ksServer
  14. #启动安装系统时使用的内核文件已及ks.cfg文件的位置,安装过程中,安装程序将从vsftp获得ks.cfg文件。
  15.   kernel vmlinuz 
  16.   append initrd=initrd.img ks=ftp://192.168.20.254/pub/ks.cfg 
  17.    
  18. MENU SEPARATOR 
  19. label local 
  20.   menu label Boot from ^local drive
  21. #设置该选项为默认启动选项 
  22.   menu default 
  23.   localboot 1 
3.安装并配置vsftp服务
#因为该vsftp服务只为自动安装提供文件,故而在这不做过多配置
#安转vsftpd软件包
yum install vsftpd -y
#配置vsftp,这些选项都不是必须的,vsftp的默认配置就足以满足我们的需求了
#vim /etc/vsftpd/vsftpd.conf
  1. #允许匿名访问
  2. anonymous_enable=YES 
  3. #禁止写入
  4. write_enable=yes
  5. #修改匿名用户的更目录位置,默认匿名用户的根目录为/var/ftp/,可写目录为/var/ftp/pub
  6. #anon_root=/var/ftp/
#启动vsftpd服务
/etc/init.d/vsftpd restart
chkconfig vsftpd on
 
4.安装kickstart软件包,用来生成自应答文件ks.cfgyum install system-config-kickstart -y
#启动该软件
system-config-kickstart
#这是一个图形界面下的软件,很容易配置,下面是我生成的一个自应答文件。
  1. #platform=x86, AMD64, or Intel EM64T 
  2. # System authorization information 
  3. auth  --useshadow  --enablemd5  
  4. # System bootloader configuration 
  5. bootloader --location=mbr 
  6. # Partition clearing information 
  7. clearpart --all --initlabel  
  8. # Use text mode install 
  9. text 
  10. # Firewall configuration 
  11. firewall --disabled 
  12. # Run the Setup Agent on first boot 
  13. firstboot --disable 
  14. # System keyboard 
  15. keyboard us 
  16. # System language 
  17. lang zh_CN 
  18. # Installation logging level 
  19. logging --level=info 
  20. key --skip 跳过输入key的步骤,不然中间会需要输入key,无法实现全自动安装
  21. key --skip 
  22. # Use network installation 安装所需要的软件包位置
  23. url --url=ftp://192.168.10.51/pub/redhat5 
  24. # Network information 
  25. network --bootproto=dhcp --device=eth0 --onboot=on 
  26. # Reboot after installation 安装完成后是否重启计算机。如果该项为reboot,你的默认第一引导为network,
  27. # 安装菜单的默认项为使用ks安装系统,那么,如果你不注意,很可能会再次安装系统哦~
  28. reboot 
  29. #Root password 
  30. rootpw --iscrypted $1$mzDhXT4m$A/PbfevPVgQBWpySAZ652/ 
  31.  
  32. # SELinux configuration 
  33. selinux --permissive 
  34. # System timezone 
  35. timezone  Asia/Shanghai 
  36. # Install OS instead of upgrade 
  37. install 
  38. # X Window System configuration information 
  39. xconfig  --defaultdesktop=GNOME --depth=32 --resolution=800x600 
  40. # Disk partitioning information 
  41. part /boot --bytes-per-inode=4096 --fstype="ext3" --size=256 
  42. part swap --bytes-per-inode=4096 --fstype="swap" --size=2048 
  43. part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1 
  44.  
  45. #选择需要安装的软件包
  46. %packages 
  47. @base 
  48. @gnome-desktop 
  49. @base-x 
  50. @graphical-internet 
  51. @system-tools 
  52. @chinese-support 
  53. @editors 
  54. @engineering-and-scientific 
#将生成的ks.cfg文件拷贝到相应的位置
cp ks.cfg /var/ftp/pub/
#将RHEL的安装光盘挂载到相应的位置。当然,你也可以拷贝安装所需的软件包到这个目录下,不过,笔者没有这么大的硬盘,就不进行拷贝了~
mkdir -pv /var/ftp/pub/redhat5
umount /dev/cdrom
mount /dev/cdrom /var/ftp/pub/redhat5
    好了,到这里,我们的无人值守安装服务器就配置完成了,不过,为了保证该服务器能够正常运行,还是建议大家检查下iptables和selinux的状态,如果你不知的如何去调整这两个服务的话,可以执行下面这几条命令。
iptables -F
iptables -X
setenforce 0
    这几条命令都是一次生效的命令,重启计算机就会失效。现在,你可以使用客户机去测试你的无人值守服务器了,只需要在客户机上配置开机的第一引导为网卡即可。
    不过,如果在网络中,还有其他的DHCP服务器存在,一般也会影响到该服务器的工作。
    如果无法通过DHCP自动安装的网络中,好比所您需要安装系统的服务器和您的这台ks服务器不在同一个网段中(如需要安装系统的服务器在IDC机房),那么,您只需要从该文档的第3部开始配置ks服务器即可,客户机可以使用光盘启动,并在启动菜单编辑默认的安装菜单如下即可:
RHEL5.X/CentOS5.x
DHCP+TFTP+VSFTP+pxelinux+kickstart实现RedHat的自动安装_TFTP
RHEL6.x/CentOS6.x中,在默认菜单上按tab键即可编辑选项内容
DHCP+TFTP+VSFTP+pxelinux+kickstart实现RedHat的自动安装_VSFTP_02