PXE 高效批量网络装机与无人值守

部署 PXE 远程安装服务

PXE是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建 PXE 网络体系,必须满足以下几个前提条件。

  • 客户机的网卡支持 PXE 协议(集成 BOOT ROM 芯片),且主板支持网络引导。
  • 网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
  • 服务器通过 TFTP Trivial File Transfer Protocol ,简单文件传输协议)提供引导镜像文件的下载。

其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数PC 都能够提供此支持,只需在 BIOS 设置中允许从 Network 或 LAN 启动即可。下面将介绍 PXE 远程安装服务
的基本部署过程。

搭建 PXE 远程安装服务器

1.准备 CentOS 7 安装源

CentOS 7的网络安装源一般通过 HTTP 、 FTP 协议发布,另外也支持 NFS Network FileSystem ,网络文件系统)协议。

例如,若采用FTP 协议发布安装源,可以在服务器上部署一个 YUM 软件仓库。

[root@localhost ~]#mkdir /var/ftp/ centos7
[root@localhost ~]# cp rf /media/cdrom/* /var/ftp/ centos7
[root@localhost ~]#systemctl start vsftpd

2.安装并启用 TFTP 服务

TFTP服务由 tftp server 软件包提供,配置文件于/etc/xinetd.d/tftp 。配置时只要将“ disable = yes ”改为 disable = no ”,然后启动 TFTP 服务即可。

[root@localhost ~]#yum y install tftp server
[root@localhost ~]#vi /etc/xinetd.d/tftp
service tftp
{
省略部分信息
protocol = udp //TFTP 采用 UDP 传输协议
server = /usr/sbin/in.tftpd
server_args = s /var/lib/tftpboot 指定 TFTP 根目录
disable = no
省略部分信息
}
[root@localhost ~]#systemctl start tftp
[root@localhost ~]#systemctl enable tftp

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

用于PXE 网络安装的 Linux 内核、初始化镜像文件可以从CentOS 7 系统光盘获得,分别为 vmlinuz 和 initrd.img ,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制到 tftp 服务的根目录下。

[root@localhost ~]#cd /m edia /cd rom /images/pxeboot
[root@localhost pxeboot]#cp vmlinuz initrd.img /var/lib/tftpboot

4.准备 PXE 引导程序

用于PXE 网络安装的引导程序为 pxelinux.0 ,由软件包 syslinux 提供。安装好软件包syslinux ,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下。

[root@localhost ~]#yum y install syslinux
[root@localhost ~]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

5.安装并启用 DHCP 服务

由于PXE 客户机通常是尚未装系统的裸机,因此为了与服 务器取得联系并正确下载相关引导文件,需要预先配置好 DHCP 服务来自动分配地址并告知引导文件位置。如 PXE 服务器的 IP 地址为 192.168.4.254 DHCP 地址池为 192.168.4.100 192.168.4.200 ,则可以参考以下操作来搭建 DHCP 服务器。

[root@localhost ~]#yum y install dhcp
[root@localhost ~]#vi /etc/dhcp/dhcpd.conf
……
省略部分信息
subnet
192.168.4.0 netmask 255.255.255.0 {
option routers 192.168.4.254;
option subnet mask 255.255.255.0;
option domain name " 114";
option domain name servers 114.114.114.114;
default lease time 21600;
max lease time 43200
range 192.168.4.100 192.168.4.200;
next server 192.168.4.254;  指定 TFTP 服务器的地址
filename "pxelinux.0";      指定 PXE 引导程序的文件名

[root@localhost ~]#systemctl start dhcpd
[root@localhost ~]#systemctl enable dhcpd

从上述过程可以看到,与一般DHCP 服务不同的是,配置文件中增加了 netx server 和filename 这两行记录,分别用来指定 TFTP 服务器的地址和 PXE 引导程序的文件名。

6.配置启动菜单文件

启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为 default ,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作手动建立。

[root@localhost ~]#vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
指定默认入口名称
prompt 1
//1 表示等待用户控制
label auto
kernel vmlinuz
append initrd=initrd.img repo=ftp://192.168.4.254 /centos7

验证 PXE 网络安装

搭建好PXE 远程安装服务器以后,就可以使用客户机进行安装测试了 。对于新购买的服务器或 PC 裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修改BIOS 设置,将“ Boot First ”设为 NETWORK ”或 LAN ”,然后重启主机;若使用 VMware创建的虚拟机进行测试,虚拟机内存至少需要 2GB ,否则在启动安装时会报错。

如果服务器配置正确,网络连接、PXE 支持等都没有问题,则客户机重启后将自动配置 IP 地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0 ,并根据引导菜单配置提示用户指定启动入口
PXE 高效批量网络装机与无人值守_第1张图片
直接按Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面
PXE 高效批量网络装机与无人值守_第2张图片

实现 K ickstart 无人值守安装

通过PXE 技术远程安装 CentOS 7 系统的方法,安装介质不再受限于光盘、移动硬盘等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便,对此我们可以通过使用K ickstart 工具配置安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。

准备安装应答文件

在CentOS 7 系统中安装 system config kickstart 工具之后,即可通过图形化向导工
具来配置安装应答文件。

1.配置安装应答参数

执行命令system-config-kickstart或通过桌面菜单“应用程序”→“系统工具”→“K ickstart ”即可打开 K ickstart 配置程序”窗口。在“ K ickstart 配置程序”窗口中,可以针对基本配置、安装方法、引导装载程序选项、分区信息、网络配置等各种安装设置进行指定
PXE 高效批量网络装机与无人值守_第3张图片
1)基本配置及安装方法
“基本配置”可参考上图来指定。例如,将默认语言设为“中文(简体)”,时区设为Asia/Shanghai ”,根口令设为 pwd123 ”,高级配置中勾选“安装后重启”。

在“安装方法”界面中,应正确指定CentOS 7 的安装方法,如图所示。若有用户验证信息也需一并指定。在“引导装载程序选项”界面中,选择安装新引导装载程序。
PXE 高效批量网络装机与无人值守_第4张图片
2)分区信息
在“分区信息”界面中,需正确规划硬盘分区方案。例如,可划分一个500MB 的 /boot分区、 4GB 的 /home 分区、 2GB 的 swap 分区,将剩余空间划分给根分区
PXE 高效批量网络装机与无人值守_第5张图片
3)网络配置及防火墙配置
在“网络配置”界面中,添加一个网络设备“ens33 ”,将网络类型设为 DHCP ”。在“防火墙配置”界面中,可以选择禁用SELinux 、禁用防火墙。

4)软件包选择
centos7 系统开始,软件包选择界面默认会如下图提示错误
PXE 高效批量网络装机与无人值守_第6张图片
这是yum仓库文件的源标识无法被system-config-kickstart识别,只需进行如下操作

# vim /etc/yum.repos.d/CentOS-Base.repo

在这里插入图片描述
将这里的源标识[base]改为[development]
清空yum缓存

#yum clean all

重新加载yum仓库源

#yum repolist

即可。
PXE 高效批量网络装机与无人值守_第7张图片
可根据需求选择安装的软件包,也可最小化安装,之后再自行安装软件
PXE 高效批量网络装机与无人值守_第8张图片
5)其他信息
若没有特殊需求,在“验证”界面、“显示配置”界面中,保持默认设置就可以了。

2.保存自动应答文件

选择“Kickstart 配置程序”窗口的“文件”→“保存”命令,指定目标文件夹、文件
名,将配置好的应答参数保存为文本文件,如 /root/ks.cfg。以后若要修改此应答配置,可
以在“ Kickstart 配置程序”窗口中打开进行调整,或者直接用 VI 等文本编辑工具进行修
改。

实现批量自动装机

有了自动安装的应答文件之后,只要将其放置PXE 安装服务器的 FTP 目录下,并适当修改引导菜单,就可以实现基于网络的批量自动装机了。

1.启用自动应答文件

在PXE 远程安装服务器中,将上一节建立的应答文件复制到/var/ftp/centos7目录下,使客户机能够通过 ftp://192.168.4.254/centos7/ks.cfg 访问;然后编辑引导菜单文件default ,添加 ks 引导参数以指定ks.cfg应答文件的 URL 路径。

[root@localhost ~]#cp /root/ks.cfg /var/ftp ks.cfg
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
//0 表示不等待用户控制
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.4.254/centos7 ks=ftp://192.168.4.254/ks.cfg

2.验证无人值守安装

启用自动应答安装之后,当客户机每次以 PXE 方式引导时,将自动下载 ks.cfg 应答配置文件,然后根据其中的设置安装 CentOS 7 系统,而无须手工干预
PXE 高效批量网络装机与无人值守_第9张图片
注意:如果是在VMware 虚拟机环境下,需要禁用 VMware 的 DHCP 功能,否则安装文件将无法加载。

你可能感兴趣的:(LINUX网络服务)