PXE安装CentOS7主要分成以下几个部分

  1. 配置DHCP

  2. 配置tftp

  3. 配置kickstart文件

  4. 配置http或ftp做安装文件仓库和ks文件存储

  5. 配置default系统启动文件执行ks文件


配置DHCP

[root@localhost ~]# yum install -y dhcp
安装DHCP
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd
启动并且配置开机启动dhcpd服务

配置dhcp配置文件/etc/dhcp/dhcpd.conf如下

option domain-name "Robbie.com"; #全局搜索域
option domain-name-servers 8.8.8.8, 61.88.88.88;#全局dns 

default-lease-time 600;# 默认的租赁时间
max-lease-time 7200;#最大可租赁时间
#上面两个值可以设一样

subnet 192.168.16.0 netmask 255.255.255.0 {
  range 192.168.16.66 192.168.16.77;
  option routers 192.168.16.2;
  next-server 192.168.16.130; #tftp server的ip
  filename "pxelinux.0"; #pxe boot需要的启动文件名, 相当于bootloader
}

重启dhcp服务

[root@localhost ~]# systemctl restart dhcpd


配置tftp

[root@localhost ~]# yum install -y tftp*
安装tftp的server和client包
[root@localhost ~]# yum install -y xinetd
安装xinetd守护进程, 因为tftp依赖于xinetd
[root@localhost ~]# systemctl start xinetd
[root@localhost ~]# systemctl enable xinetd
启动并配置开机自动启动xinetd进程

修改tftp配置文件,启动tftp服务

/etc/xinetd.d/tftp

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

启动tftp服务

systemctl start tftp

配置pxe启动

[root@localhost ~]# yum install -y syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#pxelinux.0文件名要和dhcp配置文件内的一致
[root@localhost pxeboot]# cp /mnt/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
#copy光盘目录中的vmlinuz和initrd.img, 这两个文件相当于系统启动时/boot目录下的启动文件, 但这个用来引导anacoda而不是根
[root@localhost pxeboot]# cp /mnt/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.png} /var/lib/tftpboot/
#copy pxe引导所需要的配置文件, splash.png:背景图. boot.msg启动标语, vesamenu.c32: 显示同行界面用的程序.
[root@localhost pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost pxeboot]# cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#pxe启动时显示配置文件信息, 和光盘启动类似.


配置kickstart文件

系统安装时候, 会有一份当前系统配置的ks文件是/root/anaconda-ks.cfg. 可以直接把这个文件放在http或tftp服务器下.

唯一要修改的是去掉命令cdrom, 改成url --url http://192.168.16.130/centos7,修改成自己相应的文件目录.


配置http做安装文件仓库和ks文件存储

[root@localhost ~]# mount /dev/cdrom /var/www/html/centos7/
#直接用关盘的package当做安装仓库
[root@localhost ~]# cp /root/ks.cfg /var/www/html/
#ks文件所在目录为http://192.168.16.130/ks.cfg


配置default系统启动文件执行ks文件

修改/var/lib/tftpboot/pxelinux.cfg/default

timeout =1

label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  menu default
  append initrd=initrd.img inst.ks=http://192.168.16.130/ks.cfg quiet
#timeout改成1, liunx启动当成默认启动, 并指定ks文件目录

找一台虚拟机, 在同一个局域网内 用网卡启动就可以了