kickstart+vsftp+pxe+dhcp实现centos5.3自动安装 

 
 
摘要:本文是基于实际生产环境需要实现无人值守的自动化安装CentOS系统,当然本文是使用FTP提供镜像,亦可以使用NFS和HTTP网站提供,原理是一样的。
     环境:CentOS 5.3(32位)
     0.首先配置好自己的YUM源,本地的或网络的都可以。本文创建本地YUM源。
         mkdir -pv  /media/cdrom
         mount /de/cdrom  /medi/cdrom    # 挂载安装镜像
        cd /etc/yum.repos.d/
        touch  local.repo
        vim local.repo   #写入以下内容
       [cdrom] 
       name=cdrom
       baseurl=file:///media/cdrom/
       enabled=1
       gpgcheck=0
          可以测试一下有没有创建成功,
               yum  list all 
1.配置FTP服务。
  yum  install -y vsftpd 
启动服务并设置为自动加载。
   service vsftpd start && chkconfig  vsftpd on
若开启了SELINUX服务,请务必设置vsftpd可以通行。
 setsebool  -P  ftp_home_dir=1
 setsebool  -P  allow_ftpd_anon_write=1
 复制关盘内容到ftp共享目录
  mkdir /var/ftp/pub/CentOS5.3
  cp -rv /media/cdrom/*  /var/ftp/pub/CentOS5.3
 重建一下依赖关系及分组文件。
  rpm -ivh /media/cdrom/CentOS/createrepo-0.4.11-3.el5.noarch.rpm 
  createrepo  -g /var/ftp/pub/CentOS5.3/repodata/comps.xml /var/ftp/pub/CentOS5.3/
    可以测试一下用浏览器登陆ftp本地地址。
 2.配置DHCP服务。
        安装DHCP
   yum install -y dhcp
   复制DHCP服务配置文件模板
   cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample  /etc/dhcpd.conf
   修改/etc/dhcp.conf文件,内容如下。自己可以根据自己的情况修改。
             ddns-update-style interim;
ignore client-updates;
 
subnet 192.168.159.0 netmask 255.255.255.0 {   #此处改为自己网络
 
# --- default gateway
option subnet-mask 255.255.255.0;
option time-offset -18000; # Eastern Standard Time
        filename  "/pxelinux.0";
        next-server 192.168.159.3;# tftp server 地址
        range  dynamic-bootp  192.168.159.20  192.168.159.30;
  
# option ntp-servers 192.168.159.1;
# option netbios-name-servers 192.168.159.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
 
# range dynamic-bootp 192.168.0.128 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
 
# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
  #配置文件每行末尾都应加上分号(;),否则语法错误,dhcp server无法启动。
   此时建议将自己的网卡设置为static模式,作为DHCP服务器不要随意更换。
  启动服务并设置为自动加载。
    service dhcpd start &&  chkconfig  dhcpd on
3.安装TFTP网络安装
     yum install -y  tftp  tftp-server  xinetd  system-config-kickstart*
     修改/etc/xinetd.d/tftp文件将tftp服务设置为运行状态,内容如下:
      # default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol.  The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no #将yes改为no
per_source = 11
cps = 100 2
flags = IPv4
}
重启xinetd服务并设为自动加载
service xinetd  start  && chkconfig xinetd on
配置PXE启动所需要的配置文件。(linux内核 根文件系统)
   将/usr/lib/syslinux/下的启动镜像文件pxelinux.0拷到TFTP服务器/tftpboot/ 下
   #cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
   将/isolinux/下的所有文件都复制到TFTP服务/tftpboot/(当然不必,这里只为方便)
   cp /media/cdrom/isolinux/  /tftp/
   配置pxelinux.cfg目录和default文件
   mkdir  /tftpboot/pxelinux.cfg
   touch /tftpboot/pxelinux.cfg/default
   vim default:如下
      default linux
      prompt 0
      timeout 600
      label linux
      kernel vmlinuz
      append ks=ftp://192.168.159.3/pub/ks.cfg(这里就是ftp地址,亦可以是nfs和http) initrd=initrd.img 
      chmod u+w /tftp/pxelinux.cfg/default 
4.生成kickstart无人值守文件,自己选择模式。之后保存到/var/ftp/pub/下即可。
   system-config-kickstart(自己选择)
   chown 777 /var/ftp/pub/ks.cfg(无人值守文件)
   这里贴上自己以供参考。
    #platform=x86, AMD64, or Intel EM64T
# System authorization information
auth  --useshadow  --enablemd5 
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all --initlabel 
# Use graphical install
graphical
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --disable
# Use interactive kickstart installation method
interactive
# System keyboard
keyboard us
# System language
lang en_US
# Installation logging level
logging --level=info
# Use network installation
url --url=ftp://192.168.159.3/pub/CentOS
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
# Reboot after installation
reboot
#Root password
rootpw --iscrypted $1$3fEGOOLf$yqTKOgftdFXluLT7DeKs/0
 
# SELinux configuration
selinux --disabled
# System timezone
timezone  America/New_York
# Install OS instead of upgrade
install
# X Window System configuration information
xconfig  --defaultdesktop=GNOME --depth=8 --resolution=640x480
    好了,可是使用了。其他机器调成PXE启动即可。呵呵