您现在的位置是:首页 >技术教程 >【linux网络】PXE高效批量网络装机网站首页技术教程

【linux网络】PXE高效批量网络装机

陌上花开,静待绽放! 2023-06-11 12:00:02
简介【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文件路径.

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。