使用PXE+DHCP+Apache+Kickstart无人值守安装linux

KickStart无人值守安装的原理:

1. DHCP服务器给需要安装的机器分发IP, 并指定ftp服务器地址和pxelinux.0

    next-server 192.168.163.4;  
    filename "pxelinux.0";

 
2. 客户端连接到服务器,读取启动文件 /tftpboot/pxelinux.cfg/default
3. 根据default里面指定的ks.cfg文件的位置,打开KickStart配置文件,
4. 根据ks.cfg的ftp服务器的配置, 读取/var/www/html下文件, 引导安装程序

需要执行PXE+Kickstart的设备为:
DHCP服务器
TFTP服务器
Kickstart生成的ks.cfg文件

需要先安装好DHCP,TFTP,HTTPD等软件,kickstart需要使用system-config-kickstart也需要预先安装
同时配置生成ks.cfg文件时也需要X Window,所以安装好X Window和Gnome。

# yum groupinstall -y "X Window System" "GNOME Desktop Environment"



修改/etc/inittab

# vim /etc/inittab
id:5:initdefault:

重启进入服务器:

# reboot



挂载光盘设备:

# mount /dev/cdrom /mnt



安装Apache:

# yum install -y httpd


将光盘中的文件copy到Apache网站根目录下/var/www/html

# cp /mnt/* /var/www/html/


启动Apache:

# service httpd start



安装tftp服务器,同时启动xinetd进程:

# yum install -y tftp-server


修改/etc/xinetd.d/tftp,将disable的值由yes改为no,确保tftp根目录为/tftpboot

# vim /etc/xinetd.d/tftp
service tftp
{
    socket_type        = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server            = /usr/sbin/in.tftpd
    server_args        = -s /tftpboot
    disable            = no
    per_source        = 11
    cps            = 100 2
    flags            = IPv4
}

重启xinetd进程:

# service xinetd restart


检查xinetd是否启动:

# ps -ef |grep xinetd


检查tftp服务器是否启动,观察69号端口是否监听:

# netstat -tunlp |grep 69




建立tftpboot文件夹并复制pxelinux.0到文件夹下需要先安装syslinux

# yum install -y syslinux
# mkdir /tftpboot
# cp /usr/share/syslinux/pxelinux.0 /tftpboot/

复制光盘的p_w_picpaths/pxeboot目录下的initrd.img和vmlinuz,isolinux/*.msg到/tftpboot目录下

# cp /var/www/html/p_w_picpaths/pxeboot/initrd.img /tftpboot
# cp /var/www/html/p_w_picpaths/pxeboot/vmlinuz /tftpboot
# cp /var/www/html/isolinux/*.msg /tftpboot

在/tftpboot目录下创建文件夹pxelinux.cfg:

# mkdir /tftpboot/pxelinux.cfg


复制光盘isolinux目录下的isolinux.cfg到/tftpboot/pxelinux.cfg目录下并重命名为default:

# cp /var/www/html/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default



安装dhcp服务器

# yum install -y dhcp


修改配置文件/etc/dhcp/dhcpd.conf

# vim /etc/dhcp/dhcpd
ddns-update-style interim;
ignore client-updates;
next-server 192.168.163.4;
filename "/pxelinux.0";
subnet 192.168.163.0 netmask 255.255.255.0 {
    option routers 192.168.163.2;
    pool{
        option subnet-mask 255.255.255.0;
        option nis-domain "chenxujaing.cn";
        option domain-name "chenxujaing.cn";
        option domain-name-servers 192.168.163.2;
        option time-offset -18000;
        range dynamic-bootp 192.168.163.200 192.168.163.250;
        default-lease-time 21600;
        max-lease-time 43200;
    }
}

启动dhcp服务器:

# service dhcpd start



安装kickstart:

# yum install -y system-config-kickstart



启动kickstart进行配置,使用http安装(ftp相同的道理),根目录为/,其他采用默认设定,将ks.cfg
文件保存在/var/www/html目录下

# system-config-kickstart



修改/tftpboot/pxelinux.cfg/default文件,指定读取ks.cfg的方法

# vim /tftpboot/pxelinux.cfg/default
default linux  
prompt 1  
timeout 60  
display boot.msg  
label linux  
  kernel vmlinuz  
  append initrd=initrd.img text ks=http://192.168.163.4/ks.cfg