PXE介绍

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。

使用PXE可以实现批量安装系统。

系统预安装环境的介绍

预安装环境是指系统安装之前的界面。本篇文章中在VMWare Workstation中模拟系统的自动安装过程。

新建虚拟机

Linux keepalived 启动_服务器端


Linux keepalived 启动_服务器端_02


Linux keepalived 启动_Linux keepalived 启动_03


Linux keepalived 启动_linux_04


Linux keepalived 启动_服务器_05


Linux keepalived 启动_服务器端_06


Linux keepalived 启动_Linux keepalived 启动_07


Linux keepalived 启动_服务器端_08


Linux keepalived 启动_服务器_09


Linux keepalived 启动_linux_10


Linux keepalived 启动_Linux keepalived 启动_11


Linux keepalived 启动_服务器端_12


Linux keepalived 启动_服务器_13

配置虚拟机

  • 选择新建虚拟机的开启方式为“打开电源时进入固件”
  • Linux keepalived 启动_Linux keepalived 启动_14

  • 选择"Boot"->“Hard Drive”(shift和+键将Hard Drive移动至首行)->F10保存
  • Linux keepalived 启动_Linux keepalived 启动_15

  • 保存后,系统进入以下界面,选择首行,按Tab键,即可进入系统的预安装界面:
  • Linux keepalived 启动_Linux keepalived 启动_16

  • 这时,系统会启动几个文件
  • Linux keepalived 启动_linux_17

  • 在服务器的镜像中查看这些文件的位置
  • Linux keepalived 启动_linux_18

  • 由此可以看出,执行系统的预安装环境需加载镜像的isolinux目录。但是我们并没有为这个新建系统安装镜像,因此此时这个新建虚拟机无法启动,将其关闭。

若要批量安装新系统而不用所有主机都安装镜像,仅需下载服务器端的isolinux目录即可。

配置ks.cfg

在开始部署PXE工作之前,需要做以下工作:

  1. 在服务器端配置部署FTP服务
  2. 在服务器端部署DHCP服务(可查看软件管理中关于DHCP的部分);
  3. 在服务器端生成ks.cfg文件,(采用Linux8部署PXE,ks.cfg文件可在Linux7系统中配置好,再传送到Linux8系统中);
  4. 确保服务器端拥有安装系统所需的资源(比如:在服务器端的ftp目录挂载镜像)。

注意:上述服务部署后要检查其状态,保证所有服务处于开启状态。

其中,1、2、4工作都可通过链接文章的介绍直接完成,而生成ks.cfg时有部分内容需要改变,因此,本文单独介绍配置ks.cfg文件。

在Linux7系统中配置ks.cfg文件

ks.cfg文件在Linux7系统中部署。完成后通过ftp传送到Linux8服务器中。

关于ks.cfg文件的配置,链接文章中资源的来源是CD-ROM,若要令资源来源于网络,则需修改Installation Method中的Installation source

查看服务器端(Linux8系统)的ip:

Linux keepalived 启动_linux_19

在Linux7系统中配置ks.cfg信息
配置source源

Linux keepalived 启动_服务器端_20

设置网络连接方式及设备名称

Linux keepalived 启动_服务器_21

配置yum源

Linux keepalived 启动_服务器_22


其余设置与链接中的设置相同。

设置好之后保存文件,并将该文件复制至本机的ftp目录。(注意:ks.cfg仅在该系统中配置一下,实际的使用是在另外一个服务器中)

服务器端将配置好的ks.cfg文件放在自己的ftp目录中

Linux keepalived 启动_Linux keepalived 启动_23


Linux keepalived 启动_服务器_24

部署PXE环境

1. 下载pxelinux.0文件

Linux keepalived 启动_服务器_25


Linux keepalived 启动_linux_26

2. 下载tftp软件

命令:
yum install tftp-server.x86_64 -ysystemctl start tftp

3. 共享pxelinux.0

Linux keepalived 启动_服务器端_27


命令:cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

4. 共享安装环境时所要读取的文件

命令:

cp /var/ftp/rhel8_source/isolinux/* /var/lib/tftpboot/

Linux keepalived 启动_服务器_28

5. 生成pxelinux.0默认读取文件

命令:
mkdir /var/lib/tftpboot/pxelinux.cfg/cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

6. dhcpd服务配置分发pxelinux.0
1. 编辑DHCP配置文件

配置文件地址:/etc/dhcp/dhcpd.conf

增加next-serverfilenamenext-server后添加tftp服务器地址;filename后添加文件pxelinux.0在tftpboot目录中的地址。

Linux keepalived 启动_Linux keepalived 启动_29

2. 重启dhcp服务

命令:systemctl restart dhcpd

测试自动安装系统

1. 打开虚拟机

Linux keepalived 启动_服务器端_30

2. DHCP方式获取ip,进入预安装界面

Linux keepalived 启动_服务器端_31


Linux keepalived 启动_linux_32


Linux keepalived 启动_Linux keepalived 启动_33


此时虽然可以进入预安装界面,但实际上是无法进行安装的,因为isolinux.cfg文件中默认的寻找路径还是镜像。

Linux keepalived 启动_服务器端_34

3. 配置pxelinux.cfg/default

配置文件位置:/var/lib/tftpboot/pxelinux.cfg/default

Linux keepalived 启动_Linux keepalived 启动_35


Linux keepalived 启动_服务器_36


重启系统,资源来源发生改变

Linux keepalived 启动_Linux keepalived 启动_37


此配置方式下,系统在没有镜像的情况下能够自动执行至kickstart文件设置前。若仅需实现PXE,到这里就结束了。

注意:到这里只完成了安装系统的预处理,后面的安装操作还是需要人工执行。而我们的目标是自动安装系统,因此需要在配置文件中增加kickstart的配置文件,使用PXE+kicistart实现全自动安装新系统。

4. 再次配置pxelinux.cfg/default

添加ks.cfg文件的地址,使系统能够自动执行系统安装过程中问题的回答。

Linux keepalived 启动_服务器端_38

5. 安装系统

Linux keepalived 启动_服务器_39


此时,便在没有镜像的情况下,完成了PXE和kickstart,并实现了text模式的系统安装。

Linux keepalived 启动_Linux keepalived 启动_40


登陆后查看,系统已自动下载好lftp软件。