您现在的位置是:首页 >技术教程 >【linux网络】PXE高效批量网络装机网站首页技术教程
【linux网络】PXE高效批量网络装机
文章目录
1.PXE
1.1 PXE概述
PXE(预启动执行环境)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
PXE具备的优点:
-
规模化:同时装配多台服务器;
-
自动化:安装系统、配置各种服务;
-
远程实现:不需要光盘、U 盘等安装介质。

若要搭建 PXE 网络体系,必须满足以下几个前提条件:
客户端:
(1)客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从Network或LAN启动即可。
服务端:
(2)网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
(3)服务器要通过TFTP服务(简单文件传输协议)来提供引导镜像文件的下载。

1.2 TFTP简单文件传输协议
TFTP(简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP 的69号端口。
xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务。
2. 部署PXE远程安装服务
2.1 搭建PXE远程安装服务器
PXE远程安装服务器集成了CentOS 7安装源、TFTP服务、DHCP服务,能够向客户机裸机发送PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件。
搭建PXE远程安装服务器的准备工作:

修改/etc/sysconfig/selinux配置文件中的SELINUX参数,实现永久关闭防火墙;

(1)安装并启用 TFTP 服务
安装xinetd和tftp-server服务;

###修改TFTP服务的配置文件
vim /etc/xinetd.d/tftp
protocol = udp #TFTP使用UDP协议
wait = no #no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接
server_args = -s /var/lib/tftpboot #指定TFTP根目录(文件存储路径)
disable = no #no表示开启TFTP服务
修改/etc/xinetd.d/tftp配置文件;


###开启tftp和xinetd服务,并设置为开机自启动
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd
(2)安装并启用 DHCP 服务

###修改DHCP服务的配置文件
vim /etc/dhcp/dhcpd.conf
ddns-update-style none; #禁用 DNS 动态更新
next-server 192.168.80.50; #指定 TFTP 服务器的地址
filename "pxelinux.0"; #指定 PXE 引导程序的文件名
subnet 192.168.80.0 netmask 255.255.255.0 { #声明要分配的网段地址
range 192.168.80.100 192.168.80.200; #设置地址池
option routers 192.168.80.50; #默认网关地址指向TFTP服务器的IP地址
}
systemctl start dhcpd #开启dhcp服务,并设置为开机自启动
systemctl enable dhcpd


(3)准备 Linux 内核、初始化镜像文件

cd /mnt/images/pxeboot #已事先把光盘挂载到/mnt目录中
cp vmlinuz /var/lib/tftpboot/ #复制 Linux系统的内核文件 到TFTP根目录下
cp initrd.img /var/lib/tftpboot/ #复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下
(4)准备 PXE 引导程序
安装syslinux软件;

yum -y install syslinux #PXE引导程序由软件包 syslinux 提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制 PXE引导程序 到TFTP根目录下

将pxelinux.0文件复制到tftp的根目录/var/lib/tftpboot/中;

(5)安装FTP服务,准备CentOS 7 安装源

yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7/
systemctl start vsftpd
systemctl enable vsftpd


(6)配置启动菜单文件

默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto #指定默认入口名称
prompt 1 #设置是否等待用户选择,“1”表示等待用户控制
label auto #图形安装(默认)引导入口,label用来定义启动项,指定入口类型
kernel vmlinuz #kernel 和 append用来定义引导参数,kernel指定内核文件
append initrd=initrd.img method=ftp://192.168.80.10/centos7
#append用于指定系统的引导文件,initrd用于设置系统引导参数,method用于指定安装源的软件包
label linux text #文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.80.10/centos7
label linux rescue #救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.80.10/centos7

2.2 验证PXE网络安装
开启客户端验证PXE服务器的安装配置是否生效;
选择编辑——>虚拟网络编辑器——>关闭本机自动开启的DHCP服务功能;

创建虚拟机;

没有截图展示部分,一路下一步即可,选择稍后进行安装;

客户机操作系统选择linux;

更换安装位置;

设置处理器个数;

设置虚拟机内存大小;

修改磁盘容量大小;

移除不需要的硬件设备;

直接开启新安装的虚拟机;



静默等待一段时间的系统自动安装;







为root用户设置密码;


等待一段时间的静默安装;

自此虚拟机安装已完成!
3.实现Kickstart无人值守安装
3.1 准备安装应答文件
在PXE服务器的桌面环境中(虚拟机中)system-config-kickstart 工具;
(1)安装system-config-kickstart 工具

yum install -y system-config-kickstart
可以查看到桌面环境中,应用程序——>系统工具——>Kickstart;


应答文件中基本配置选项如下:

应答文件中安装方法选项如下:

应答文件中引导装载程序选项如下:

应答文件中分区信息选项如下:

分配/boot分区;

分配swap分区;

分配根目录;

分配后的内存信息;

应答文件中网络配置选项如下:

应答文件中验证选项保持默认配置,不做任何操作;
应答文件中显示配置选项如下:

应答文件中显示配置保持默认操作,此处不做配置;
应答文件中软件包选择选项如下:

应答文件中预安装家脚本保持默认操作,此处不做配置;
应答文件中安装后脚本选项如下:

保存配置文件;


配置图形化脚本文件;



将生成的自动应答文件ks.cfg文件复制到ftp的根目录中;

添加自动应答文件ks.cfg的位置;

3.2 实现批量自动装机
再次创建虚拟机,验证PXE的自动应答功能知否生效;
新建虚拟机的安装与上面相同,省略雷同步骤;只是此时会自动创建系统,无需用户输入指令,实现免交互的自动创建。

一键实现自动安装,无需任何操作。
4. 总结
4.1PXE操作总结
安装4个服务:
-
tftp:(根目录:/var/lib/tftpboot/ 用于传输vmlinuz、initrd.img、pxelinux.0、pxelinux.cfg/default文件)
-
xinetd:管理tftp服务的
-
dhcp:用于给客户端自动分配IP地址,并指定pxelinux.0文件所在位置
-
vsftpd:用于给客户端传输安装源软件包
准备4个文件:
vmlinuz (内核文件)、initrd.img(系统镜像引导文件):光盘挂载目录/mnt/images/pxeboot/提供上面两个文件。
pxelinux.0( PXE程序引导文件):syslinux程序提供
pxelinux.cfg/default (PXE启动菜单文件):自建
注意:关闭防火墙并关闭vmware的dhcp功能,客户都拿要求内存2Gb以上。
4.2 自动应答总结
-
安装system-config-kickstart,生成自动应答文件ks.cfg ,放到ftp目录中/var/ftp/ks.cfg.
-
修改pxelinux.cfg/default文件,在append行后面添加 ks=ftp://…指定ks.cfg文件路径.






U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结