PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE协议可以使计算机通过网络启动。此协议分为 Client端和 Server端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS把PXE Client调入内存中执行,然后由 PXE Client将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。
机器开机后, PXE BootROM(自启动芯片)获得控制权之前先做自我测试,然后以广播形式发出一个请求FIND帧。如果服务器收到工作站所送出的要求,就会送回DHCP回应,内容包括分配的IP地址,及pxe引导程序名称,以及下载的地址。否则,服务器会忽略这个要求。
工作站收到服务器发回的响应后则会回应一个帧,以请求传送启动所需的文件。之后,将有更多的讯息在工作站与服务器之间作应答, 用以决定启动参数。
BootROM由TFTP通讯协议从服务器下载开机映像, 这个映像就是系统的映象文件。工作站使用TFTP协议接收启动文件后,将控制权转交启动引导程序,引导操作系统,完成远程启动。
1、步骤1:
在window系统下下载并安装VMware/Virtual Box,此处以VMware16.0为示例。
为使得无人值守服务器的DHCP服务起作用,将VMware平台的网络工作在仅主机(Host-only)网络的DHCP服务关闭(如图1所示)。
图1关闭仅主机(Host-only)网络的DHCP服务
2、步骤2:
安装CentOS7虚拟机服务器端,并添加双网卡(如图2所示),网卡一设为NAT模式,用于共享主机的IP地址,方便在部署过程中访问外网并下载必要的软件服务;网卡而设为Host-only模式,用于与主机共享的专用网络,方便部署待部署的虚拟机。
图2双网卡配置
3、步骤3:
准备CentOS7虚拟机待部署端,只配置一个裸机,网卡设为Host-only模式,其余不作操作。
图3待部署虚拟机的创建以及网卡设置
4、步骤4:
查看服务器端网卡信息:
[root@localhost gec]# ifconfig
图4 查看CentOS7服务器端网卡信息命令
复制网卡一配置并修改配置信息:
[root@localhost gec]# cd etc/sysconfig/network-scripts
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens37
[root@localhost network-scripts]# vim ifcfg-ens37
图5配置静态网络
5、步骤5:
重启网络服务查看网卡配置是否成功,此处网卡2已被正确配置,ens33网卡的IP地址与图5配置所示一致,即配置成功。
图6配置后的网卡信息
1、步骤1:
下载DHCP并复制配置文件:
[root@localhost gec]# yum -y install dhcp
[root@localhost gec]# cp /usr/share/doc/dhcp-4.2.5/dhcp.conf.example /etc/dhcp/dhcp.conf
cp:是否覆盖"/etc/dhcp/dhcp.conf"? yes
图7下载DHCP并复制配置文件
2、步骤2:
配置DHCP服务:
图8配置DHCP服务
1、步骤1:
安装引导程序文件和TFTP服务:
[root@localhost gec]# yum -y install syslinux
[root@localhost gec]# yum -y install tftp-server
图9安装引导程序文件和TFTP服务
2、步骤2:
复制引导程序到站点中:
[root@localhost gec]# cp /usr/share/syslinux/pxelinux.0 /var/lib.tftpboot
图10复制引导程序到站点
3、步骤3:
配置TFTP服务:
[root@localhost gec]# vim /etc/xinetd.d/tftp
图11配置TFTP服务
2.4 CentOS7服务器部署VSFTPD文件传输协议
1、步骤1:
安装VSFTPD文件传输协议:
[root@localhost gec]# yum -y install vsftpd
图12安装VSFTPD文件传输协议
2、步骤2:
将镜像文件以只读方式挂载到centos7文件夹下:
[root@localhost gec]# mount /dev/sr0 /var/ftp/centos7
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost gec]# df -hT
图13挂载镜像文件
3、步骤3:
把镜像中的系统内核和初始化文件放到站点中:
[root@localhost gec]# cd /var/ftp/centos7/images/pxeboot/
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
[root@localhost pxeboot]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 vmlinuz
图14将镜像中的系统内核和初始化文件放到站点
4、步骤4:
在站点中配置启动菜单:
[root@localhost pxeboot]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 vmlinuz
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg
[root@localhost pxelinux.cfg]# vim default
图15配置启动菜单
2.5 CentOS7服务器部署kickstart无人值守安装
1、步骤1:
安装kickstart无人值守工具:
[root@localhost pxeboot]# yum -y install system-config-kickstart
图16安装kickstart无人值守工具
2、步骤2:
打开应用程序-系统工具-Kickstart,按如下所示图片进行配置。
图17 设置Kickstart—基本配置
图18 设置Kickstart—安装方法
图19 设置Kickstart—引导装载程序选项
图20 设置Kickstart—分区信息
图21 设置Kickstart—网络配置
图22 设置Kickstart—防火墙配置
图23 设置Kickstart—安装后脚本
图24 将以上配置程序信息保存
3、步骤3:
由于在虚拟机中不能将图22的配置文档直接保存到文件系统/etc/ftp/目录下,故先将其保存在桌面上,使用终端命令将其移动。
[root@localhost ~]# cd /home/gec/Desktop/ && mv ks.cfg /var/ftp/
图25 移动文件
4、步骤4:
查看系统的配置文件模板,将部分配置加入到图23所示的kickstart配置文件中:
[root@localhost ftp]# cd
[root@localhost ~]#ls
anaconda-ks.cfg initial-setup-ks.cfg
[root@localhost ~]#cat anaconda-ks.cfg
图26 查看系统配置文件
[root@localhost ftp]# cd /var/ftp/
anaconda-ks.cfg initial-setup-ks.cfg
[root@localhost ~]# vim ks.cfg
图27 将系统配置文件信息加入Kickstart配置文件中
5、步骤5:
将ks.cfg文件地址加入引导程序:
[root@localhost ftp]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 pxelinux.cfg vmlinuz
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
图28 将配置文件地址写入引导程序
2.6 CentOS7服务器开启相关服务
关闭防火墙、增强功能,开启DHCP、TFTP、VSFTPD服务:
[root@localhost gec]# systemctl stop firewalld.service
[root@localhost gec]# setenforce 0
[root@localhost gec]# systemctl start dhcp
[root@localhost gec]# systemctl start tftp
[root@localhost gec]# systemctl start vsftpd
图29开启相关服务
2.7启动CentOS7待部署端虚拟机
将待部署启动,在Host-only网络下,该虚拟机将自动安装系统。(由于此过程是连续的,截图不能获取到整个过程,仅以部分截图进行展示)
图30成功加载配置文件
图31系统正在安装