配置PXE预启动执行环境:使用PXE装机服务器网络引导装机


文章目录

  • PXE概述
    • PXE批量部署的优点
    • 基本的部署过程
    • 搭建的前提条件
  • 搭建配置PXE装机服务器
    • 1. 准备 CentOS 7 安装源(YUM 仓库)
    • 2. 安装并启用 TFTP 服务
    • 3. 安装并启用 DHCP 服务
    • 4. 准备 Linux 内核和初始化镜像文件
    • 5. 准备 PXE 引导程序
    • 6. 安装 FTP 服务并准备 CentOS 7 安装源
    • 7. 配置启动菜单文件
    • 8. 关闭防火墙并验证 PXE 网络安装


PXE概述

PXE(Preboot Execution Environment,预启动执行环境)是由 Intel 公司开发的一种网络引导技术,采用 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载操作系统或安装文件。它在大规模服务器部署中极为有效,特别是在自动化和远程安装方面,具有以下几个优点:

PXE批量部署的优点

  1. 规模化:可以同时装配多台服务器,大幅提高效率。
  2. 自动化:安装操作系统,还可自动配置各种服务,减少人工干预。
  3. 远程实现:无需光盘、U盘等物理安装介质,通过网络即可完成安装。

基本的部署过程

  1. 准备Centos 7 安装源(YUM仓库)
  2. 安装并启用TFTP服务
  3. 提供Linux内核、PXE引导程序等
  4. 安装并启用DHCP服务
  5. 配置启动菜单

搭建的前提条件

若要搭建 PXE 网络体系,必须满足以下几个前提条件:

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

搭建配置PXE装机服务器

PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,并提供安装文件。

1. 准备 CentOS 7 安装源(YUM 仓库)

YUM 仓库是 CentOS 的软件包管理系统,用于存储和安装软件包。在 PXE 安装过程中,CentOS 7 的安装源需要通过 FTP 或 HTTP 提供给客户机。

2. 安装并启用 TFTP 服务

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一个基于 UDP 协议的轻量级文件传输协议,主要用于传输小文件。PXE 使用 TFTP 来传输引导程序和 Linux 内核。

TFTP服务默认由xinetd服务进行管理,使用UDP 端口69。

xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务。

# 安装 TFTP 服务器和 xinetd 服务管理程序
yum -y install tftp-server xinetd  

# 修改 TFTP 服务的配置文件
vim /etc/xinetd.d/tftp

# 配置文件内容如下:
protocol        = udp   
# 指定使用 UDP 协议

wait            = no  
# 设置为 no,允许多台客户机同时连接

server_args     = -s /var/lib/tftpboot  
# 指定 TFTP 根目录(存放文件的路径)

disable         = no         
# 设置为 no,开启 TFTP 服务

# 启动并设置 TFTP 和 xinetd 服务开机自启动
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd

3. 安装并启用 DHCP 服务

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用于为客户机分配 IP 地址,并指定 PXE 引导文件的位置。

# 安装 DHCP 服务
yum -y install dhcp  

# 复制示例配置文件并命名到 /etc/dhcp/dhcpd.conf
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

# 修改 DHCP 配置文件
vim /etc/dhcp/dhcpd.conf

# 配置文件内容如下:

ddns-update-style none;    
# 修改:禁用 DNS 动态更新

next-server 192.168.80.10; 
# 添加:指定 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.10;  
  # 设置默认网关为 TFTP 服务器的 IP 地址
}

# 启动并设置 DHCP 服务开机自启动
systemctl start dhcpd
systemctl enable dhcpd

4. 准备 Linux 内核和初始化镜像文件

将 Linux 内核文件和初始化镜像文件复制到 TFTP 根目录下。

cd /mnt/images/pxeboot  
# 假设光盘已挂载到 /mnt 目录

cp vmlinuz /var/lib/tftpboot/  
# 复制 Linux 内核文件到 TFTP 根目录

cp initrd.img /var/lib/tftpboot/  
# 复制初始化镜像文件(Linux 引导加载模块)到TFTP根目录

5. 准备 PXE 引导程序

PXE 引导程序由 syslinux 软件包提供。

yum -y install syslinux  # 安装 syslinux

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/  # 复制 PXE 引导程序到 TFTP 根目录

6. 安装 FTP 服务并准备 CentOS 7 安装源

FTP 服务用于提供 CentOS 7 安装源给客户机。

yum -y install vsftpd  # 安装 FTP 服务

mkdir /var/ftp/centos7  # 创建安装源目录
cp -rf /mnt/* /var/ftp/centos7/  # 将光盘内容复制到安装源目录

# 启动并设置 FTP 服务开机自启动
systemctl start vsftpd
systemctl enable vsftpd

7. 配置启动菜单文件

启动菜单文件位于 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     # 指定内核文件
append initrd=initrd.img method=ftp://192.168.80.10/centos7       # 指定初始化镜像和安装源路径

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

8. 关闭防火墙并验证 PXE 网络安装

为了避免防火墙阻碍 PXE 网络安装过程,可以临时关闭防火墙和 SELinux。

systemctl stop firewalld.service # 关闭防火墙
setenforce 0         # 临时禁用 SELinux

使用 VMware 创建的虚拟机进行测试时,确保虚拟机内存至少 2GB,否则可能在启动安装时出现错误。

启动虚拟机后,在提示字符串 boot: 后按 Enter 键(或执行 auto 命令),将会自动通过网络下载安装文件,并进入默认的图形安装入口;

若执行 linux text 命令,则进入文本安装入口;若执行 linux rescue 命令,则进入救援模式。


你可能感兴趣的:(网络,linux,服务器,云计算,运维,运维开发)