PXE网络装机服务器

步骤:
一、构建DHCP服务
1.装包配置
yum -y install dhcp
vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.1 192.168.4.254;
option domain-name-server 8.8.8.8;
option routers 192.168.4.254;
default-lease-time 600;
max-lease-time 7200;
nex-server 192.168.4.7;(指定下一个配置,服务器IP地址)

filename "pxelinux.0";(指定网卡引导文件,文件名称)
}

(pxelinux.0网卡引导文件,安装说明书,二进制文件,
需安装一个包,才能生成pxelinux.0文件)

2.重启DHCP服务
systemctl restart dhcpd

二、搭建TFTP服务
TFTP:简单的文件传输协议,端口:UDP 69
服务端程序:tftp-server
服务名:tftp
默认共享路径:/var/lib/tftpboot

1.安装tftp-server
yum -y install tftp-server

2.启动tftp服务
systemctl start tftp

3.部署pxelinux.0文件
yum provides */pxelinux.0(查询仓库中哪一个包产生该文件)

yum -y install syslinux

rpm -ql syslinux (查询软件包,安装清单)

rpm -ql syslunux |grep pxelinux.0

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

4.部署default默认的菜单文件
mkdir /var/lib/tftpboot/pxelinux.cfg

mount /dev/cdrom /mnt

cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

ls -l /var/lib/tftpboot/pxelinux.cfg/default

chmod 644 /var/lib/tftpboot/pxelinux.cfg/default

5.部署图形的模块、启动内核与驱动程序。
ls /mnt/isolinux

cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot(图形模块)

cp /mnt/isolinux/initrd.img /var/lib/tftpboot(驱动程序)

cp /mnt/isolinux/vmlinuz /var/lib/tftpboot(启动内核)

6.修改菜单文件/var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
.....
.....
menu title ABC PXE Server!
label linux
menu label Install RHEL7
kernel vmlinuz
append intrd=initrd.img

三、TFP服务,传输RPM包
1.搭建vsftp服务,共享光盘所有内容。

2.安装vstfpd软件
yum -y install vstfpd

3.启动vstfpd服务
systemctl start vstfpd

4.共享光盘所有内容
mkdir /var/tfp/abc7
umount /mnt
mount /var/tfp/abc7
(也可以直接把光盘的所有内容cp到/var/tfp/abc7下)

四、无人值守安装,生成应答文件
1.图形生成应答文件程序:system-config-kickstart

2.在运行图形程序system-config-kickstart之前
要求yum仓库配置文件的仓库标识改为[development]

3.运行图形程序
system-config-kickstart

生成ks文件将它保存到/root下

vim /root/ks.cfg

4.将ks.cfg文件复制到/var/ftp下,生成共享应答文件。
cp /root/ks.cfg /var/tfp

五、通过菜单文件指定ks.cfg应答文件
vim /var/lib/tftpboot/pxelinux.cfg/default
......
......
append initrd =initrd.img ks=ftp://192.168.4.7/ks.cfg