PXE高效批量网络装机
在IT运维领域,批量装机一直是一个重要且繁琐的任务。随着技术的不断发展,Preboot Execution Environment (PXE)技术为我们提供了一种高效、便捷的解决方案。本文将介绍PXE技术的基本原理、配置步骤以及在实际应用中的优势。
一、PXE概述
PXE是一种基于客户端/服务器模式的网络启动技术。它允许计算机通过网络从服务器启动操作系统安装程序,而无需传统的光盘或U盘介质。PXE技术结合了DHCP、TFTP和HTTP等多种协议,实现了从网络启动、加载引导程序到安装操作系统的全过程。
PXE批量部署的优点
- 规模化:同时装配多台服务器
- 自动化:安装系统、配置各种服务
- 远程实现:不需要光盘、U盘等安装介质
- 高效性:PXE技术可以实现同时为多台计算机批量装机,大大提高了工作效率。
- 便捷性:无需使用光盘或U盘等物理介质,只需通过网络即可实现操作系统的安装。
- 灵活性:可以根据需要自定义启动文件和安装程序,实现不同版本的操作系统或特定软件的安装。
- 可扩展性:PXE技术可以与自动化工具(如Ansible、Puppet等)结合使用,实现更高级别的自动化管理。
二、部署 PXE 远程安装服务
搭建PXE 远程安装服务器
准备 CentOS 7 安装源
# 安装 vsftpd
[root@bogon ~]# yum -y install vsftpd
# 在 /var/ftp/ 下创建 centos7
[root@bogon ~]# mkdir /var/ftp/centos7
# 把 /media/cdrom/* 所有东西 复制到 /var/ftp/centos7/
[root@bogon ~]# cp -r /media/cdrom/* /var/ftp/centos7/
# 查看
[root@bogon ~]# ls /var/ftp/centos7/
# 配置好以后启动并设置开机自启动
[root@bogon ~]# systemctl start vsftpd
[root@bogon ~]# systemctl enable vsftpd
安装并启用 TFTP 服务
# 安装 tftp-server 服务
[root@bogon ~]# yum -y install tftp-server
# 安装好以后打开 /etc/xinetd.d/tftp 配置文件
[root@bogon ~]# vi /etc/xinetd.d/tftp
# 只需要把 disable = yes 修改为 disable = no 即可
disable = no
# 启动服务并设置开机自启动
[root@bogon ~]# systemctl start tftp
[root@bogon ~]# systemctl enable tftp
准备 Linux 内核、初始化镜像文件
# cd 切换到 /media/cdrom/
[root@bogon ~]# cd /media/cdrom/images/pxeboot/
[root@bogon pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
# 将 initrd.img 和 vmlinuz 复制到 /var/lib/tftpboot/
[root@bogon pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
# Linux 内核、初始化镜像
准备 PXE 引导程序
# 准备 PXE 引导程序
[root@bogon ~]# yum -y install syslinux
# 把引导程序复制到 /var/lib/tftpboot/
[root@bogon ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
安装并启用 DHCP 服务
# 安装 dhcp 服务
[root@bogon ~]# yum -y install dhcp
# 复制
[root@bogon ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
# 输入 y 覆盖
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
# vi 进入 /etc/dhcp/dhcpd.conf
[root@bogon ~]# vi /etc/dhcp/dhcpd.conf
# 在25行下面添加
subnet 192.168.72.0 netmask 255.255.255.0 {
range 192.168.72.20 192.168.72.30;
option routers 192.168.72.2;
next-server 192.168.72.155; # 指定 TFTP 服务器的地址
filename "pxelinux.0"; # 指定 PXE 引导程序的文件名
}
# 修改好配置文件之后 启动服务并设置开机自启动
[root@bogon ~]# systemctl start dhcpd
[root@bogon ~]# systemctl enable dhcpd
配置启动菜单文件
# 在 /var/lib/tftpboot/ 下创建 pxelinux.cfg
[root@bogon ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
# vi 进入 /var/lib/tftpboot/pxelinux.cfg/default
[root@bogon ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
[root@bogon ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
# prompt 用来设置是否等待用户选择;label 用来定义并分隔启动项;kernel 和 append 用来定义引导参数
default auto # 指定默认入口名称
prompt 1 # 1 表示等待用户控制
label auto # 图形安装(默认)
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.72.155/centos7
label linux text # 文本安装
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.72.155/centos7
label linux rescue # 救援模式
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.72.155/centos7
- 上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。
- 其中,prompt 用来设置是否等待用户选择;
- label 用来定义并分隔启动项;
- kernel 和 append 用来定义引导参数。
- 引导入口的个数及内容根据需要自行定义
验证PXE 网络安装
1.创建虚拟机,配置2C4G
2.打开虚拟网络编辑器按以下操作执行
3.在提示字串“boot:”后直接按 Enter 键(或执行“auto”命令),将会进入默认的图形安装入口;
若执行“linux text”命令,则进入文本安装入口;若执行“linux rescue”命令,则进入救援模式
4.直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面,
若能够成功到达这一步,说明 PXE 网络安装基本成功
三、实现 Kickstart 无人值守安装
注意:如果是在 VMware 虚拟机环境下,需要禁用 VMware 的 DHCP 功能;否则安装文件将无法加载
准备安装应答文件
配置安装应答参数
1.基本配置及安装方法
2.引导装载程序选项
3.分区信息
4.网络配置及防火墙配置
5.软件包选择
6.安装脚本
脚本
echo 'test' > /tmp/test.txt
rm -f /etc/yum.repos.d/*
echo '[kgc]
name=kgc
baseurl=ftp://192.168.72.155/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/kgc.repo
7.保存
实现批量自动装机
启用自动应答文件
# vi 进入应答文件
[root@bogon ~]# vi ks.cfg
# 在文件最下面添加以下信息
%packages
@^minimal
%end
# 复制 ks.cfg 到 /var/ftp/
[root@bogon ~]# cp ks.cfg /var/ftp/
# vi 进入 /var/lib/tftpboot/pxelinux.cfg/default 修改引导文件
[root@bogon ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
[root@bogon ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
default auto # 指定默认入口名称
prompt 0 # 0 表示不等待用户控制
label auto # 图形安装(默认)
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.72.155/centos7 ks=ftp://192.168.72.155/ks.cfg
# 镜像 IP
验证无人值守安装
-
启用自动应答安装之后,当客户机每次以 PXE 方式引导时,将自动下载 ks.cfg 应答配置文件,然后根据其中的设置安装 CentOS 7 系统,而无须手工干预
-
客户机安装完成以后,检查其 YUM 软件仓库配置,可以发现已经按照“安装后脚本”的设置自动建立了/etc/yum.repos.d/kgc.repo文件
# 查看 /etc/yum.repos.d/kgc.repo 文件
[root@localhost ~]# cat /etc/yum.repos.d/kgc.repo
gpgcheck=0p://192.168.72.155/centos7
四、总结
PXE技术为批量网络装机提供了一种高效、便捷的解决方案。通过合理配置服务器和客户端,我们可以轻松实现多台计算机的批量装机任务。在实际应用中,PXE技术不仅可以提高工作效率,还可以降低运维成本,是IT运维领域不可或缺的一项技术。