PXE(Preboot execute environment)是一种能够让计算机通过网络启动的引导方式,只要网卡支持 PXE 协议即可使用。Kickstart 是一种无人值守的安装方式,工作原理就是预先把原本需要运维人员手工填写的参数保存成一个 ks.cfg文件,当安装过程中出现需要填写参数时则自动匹配 Kickstart 生成的文件,所以只要 Kickstart 文件包含了安装过程中所有需要人工填写的参数,那么运维人员就完全不需要干预,等待安装完毕即可。
PXE实现kickstart无人值守安装-LMLPHP
简单文本传输协议 TFTP(Trivial File Transfer Protocol)是一种基于 UDP 协议的传输协议,其与前面学习的 vsftpd服务程序的 FTP 协议有很大不同,TFTP 协议不具备 FTP 的许多功能(例如列出目录,密码认证等等),但 TFTP 协议配置非常简单,而且资源消耗更低,非常适合传输不敏感的文件。

环境介绍:
系统版本:红帽 RHEL7 IP: 192.168.4.5 DNS服务器:192.168.4.254

一 搭建DHCP 服务(分配IP地址、定位引导程序)
1 安装dhcp软件包

[root@pxe5 ~]# yum -y install dhcp

2 修改配置文件:

[root@pxe5 ~]# vim /etc/dhcp/
  subnet 192.168.4.0 netmask 255.255.255.0 {        #分配的网段
  range 192.168.4.100 192.168.4.200;                #自动分配IP地址的范围
  option domain-name-servers 192.168.4.5;           #本机为DNS服务器
  option routers 192.168.4.254;                     #网关地址
  default-lease-time 600;
  max-lease-time 7200;
  next-server 192.168.4.5;                          #指定下一个服务器地址
  filename "pxelinux.0";                            #指定网卡引导文件名称
}

3 重启服务并设置开机自启:

[root@pxe5 ~]# systemctl restart dhcpd
[root@pxe5 ~]# systemctl enable dhcpd

二 搭建TFTP服务(提供引导程序下载)
1 安装软件包tftp-server:

[root@pxe5 ~]# yum -y install tftp-server

2 重起tftp服务:

[root@pxe5 ~]# systemctl restart tftp

三 搭建HTTP服务:
1 安装软件包阿帕奇:

[root@pxe5 ~]# yum -y install httpd

2 将光盘内容放入DocumentRoot(/var/www/html):

[root@pxe5 ~]# mkdir /var/www/html/rhel7
[root@pxe5 ~]# mount /dev/cdrom /var/www/html/rhel7
[root@pxe5 ~]# ls /var/www/html/rhel7
addons            GPL       media.repo               RPM-GPG-KEY-redhat-release
EFI               images    Packages                 TRANS.TBL
EULA              isolinux  repodata
extra_files.json  LiveOS    RPM-GPG-KEY-redhat-beta

[root@pxe5 ~]# systemctl restart httpd
[root@pxe5 ~]# firefox 192.168.4.7/rhel7   #查看ISO镜像文件

四 在tftp上部署pxelinux.0 以及各种启动相关的文件(位置: /var/lib/tftpboot/)
1.部署pxelinux.0

[root@pxe5 ~]# yum provides  */pxelinux.0        #查询仓库中那个软件包会产生这个文件
源    :development
匹配来源:
文件名    :/usr/share/syslinux/pxelinux.0
syslinux-4.05-13.el7.x86_64 : Simple kernel loader which boots from a FAT

[root@pxe5 ~]# yum -y install syslinux       #下载syslinux软件包
[root@pxe5 ~]# rpm -ql syslinux  |  grep pxelinux.0     #查询pxelinux.0的安装清单
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@pxe5 ~]# cp /usr/share/syslinux/pxelinux.0   /var/lib/tftpboot/   #将引导文件放TFTP目录下
[root@pxe5 ~]# ls /var/lib/tftpboot/
pxelinux.0

2 部署相关启动文件:

[root@pxe5 ~]# cd /var/www/html/rhel7
[root@pxe5 rhel7]# ls
addons            GPL       media.repo               RPM-GPG-KEY-redhat-release
EFI               images    Packages                 TRANS.TBL
EULA              isolinux  repodata
extra_files.json  LiveOS    RPM-GPG-KEY-redhat-beta

[root@pxe5 rhel7]# cd isolinux/
[root@pxe5 isolinux]# ls
boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL    vesamenu.c32
boot.msg  initrd.img  isolinux.cfg  splash.png  upgrade.img  vmlinuz

[root@pxe5 isolinux]# cp vesamenu.c32 vmlinuz splash.png initrd.img  /var/lib/tftpboot/
[root@pxe5 isolinux]# ls /var/lib/tftpboot/
initrd.img  pxelinux.0  splash.png  vesamenu.c32  vmlinuz
# 图形的模块:vesamenu.c32  背景图片:splash.png
# 启动内核:vmlinuz    驱动程序:initrd.img      引导文件:pxelinux.0

3 部署菜单文件:

[root@pxe5 isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@pxe5 isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default   #将菜单文件放入
[root@pxe5 isolinux]# chmod u+w /var/lib/tftpboot/pxelinux.cfg/default       #为菜单文件设置写权限
[root@pxe5 isolinux]# vim  /var/lib/tftpboot/pxelinux.cfg/default                   #配置菜单文件
   #开启行号
  1 default vesamenu.c32  #默认加载图形的模块
  2 timeout 600           #读秒时间  1/10
  10 menu background splash.png       #指定背景图片
  11 menu  PXE Server ! #菜单显示的标题(自定义)
  61 label linux
  62 menu label Install RHEL7   #选项内容
  63 menu default                 #读秒结束后默认选择
  64 kernel vmlinuz               #加载内核
  65 append initrd=initrd.img     #加载驱动

五 实现无人值守安装,生成应答文件
安装一个图形的工具(system-config-kickstart)进行生成

[root@pxe5 isolinux]# cd
[root@pxe5 ~]# yum -y install system-config-kickstart
[root@pxe5 ~]# system-config-kickstart     # 运行图形工具

1 根据需要确认默认语言、时区,设置根口令、磁盘分区规划等基本信息
PXE实现kickstart无人值守安装-LMLPHP

2 在安装方法部分,选择“执行新安装”,并正确设置HTTP安装源的访问地址信息
PXE实现kickstart无人值守安装-LMLPHP
3 在分区信息部分,选择清除主引导记录、删除所有现存分区、初始化磁盘标签,并手动添加/boot 200MB、SWAP分区 2000MB、/分区 所有剩余空间
PXE实现kickstart无人值守安装-LMLPHP
4 在网络配置部分,确认已添加第一块网卡eth0,设为DHCP自动获取
PXE实现kickstart无人值守安装-LMLPHP
5 在防火墙配置部分,禁用SELinux、禁用防火墙
PXE实现kickstart无人值守安装-LMLPHP
6 在软件包选择部分,根据客户机的实际需要定制。比如若要使用图形桌面环境,建议将GNOME相关的包勾选上,系统选择基本。
PXE实现kickstart无人值守安装-LMLPHP
7 在安装后脚本部分,添加经验证的可执行语句,可自由选择需要添加的功能。
PXE实现kickstart无人值守安装-LMLPHP
8 设置完成后将此应答文件ks.cfg 保存到/root目录下。

六 共享ks应答文件:
1 将ks.cdg 文件复制到Documentroot 下

[root@pxe5 ~]# cp /root/ks.cfg /var/www/html/
[root@pxe5 ~]# ls /var/www/html/
ks.cfg  rhel7
[root@pxe5 ~]# firefox 192.168.4.5/ks.cfg   #测试

2 通过菜单文件进行指定

[root@pxe5 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
  menu label Install RHEL7
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.4.5/ks.cfg

至此配置工作全部完成。

10-07 12:42