PXE高效批量网络装机

6.1 部署 PXE 远程安装服务
在大规模的 Linux 应用环境中,如 Web 群集、分布式计算等,服务器往往并不配备光
驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的 USB
光驱、移动硬盘等安装方法显然已经难以满足需求。
本章将学习基于 PXE Preboot eXecution Environment ,预启动执行环境)技术的网
络装机方法,并结合 Kickstart 配置实现无人值守自动安装。
上述服务器的批量部署方法,具备以下三个优点:
规模化:同时装配多台服务器;
自动化:安装系统、配置各种服务;
远程实现:不需要光盘、 U 盘等安装介质。
PXE 是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过
网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建 PXE 网络
体系,必须满足以下几个前提条件。
客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。
网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
服务器通过 TFTP Trivial File Transfer Protocol ,简单文件传输协议)提供引导
镜像文件的下载。
其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数 PC 都能够提供此
支持,只需在 BIOS 设置中允许从 Network LAN 启动即可。下面将介绍 PXE 远程安装服
务的基本部署过程。
6.1.1 搭建 PXE 远程安装服务器
本例的 PXE 远程安装服务器集成了 CentOS 7 安装源、 TFTP 服务、 DHCP 服务,能
够向客户机裸机发送 PXE 引导程序、 Linux 内核、启动菜单等数据,以及提供安装文件。
1 .准备 CentOS 7 安装源
CentOS 7 的网络安装源一般通过 HTTP FTP 协议发布,另外也支持 NFS Network
File System ,网络文件系统)协议,关于 NFS 的配置请参阅其他资料,这里不再赘述。
例如,若采用 FTP 协议发布安装源,可以在服务器上部署一个 YUM 软件仓库。 3 页 共 14
[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
Created
symlink
from
/etc/systemd/system/sockets.target.wants/tftp.socket
to
/usr/lib/systemd/system/tftp.socket.
3 .准备 Linux 内核、初始化镜像文件
用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS 7 系统光盘获得,
分别为 vmlinuz initrd.img ,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制
tftp 服务的根目录下。
[root@localhost ~]# cd /media/cdrom/images/pxeboot
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot 4 页 共 14
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 "bdqn.com";
option domain-name-servers 192.168.4.254,202.106.0.20;
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
Created
symlink
from
/etc/systemd/system/multi-user.target.wants/dhcpd.service
to
/usr/lib/systemd/system/dhcpd.service.
从上述过程可以看到,与一般 DHCP 服务不同的是,配置文件中增加了 netx-server
filename 这两行记录,分别用来指定 TFTP 服务器的地址和 PXE 引导程序的文件名。 5 页 共 14
6 .配置启动菜单文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认
的启动菜单文件为 default ,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单
配置可参考以下操作手动建立。
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
// 指定默认入口名称
prompt 1
//1 表示等待用户控制
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.4.254/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.4.254/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.4.254/centos7
上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。
其中, prompt 用来设置是否等待用户选择;
l
abel 用来定义并分隔启动项; kernel append
用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时
只需要一个入口就够了。
6.1.2 验证 PXE 网络安装
搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的
服务器或 PC 裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修
BIOS 设置,将 “Boot First” 设为 “NETWORK” “LAN” ,然后重启主机;若使用 VMware
创建的虚拟机进行测试,虚拟机内存至少需要 2GB ,否则在启动安装时会报错。
如果服务器配置正确,网络连接、 PXE 支持等都没有问题,则客户机重启后将自动配
IP 地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0 ,并根据引导菜单配置提示用
户指定启动入口,如图 6.1 所示。 6.1 PXE 网络安装的引导菜单
在提示字串 “boot:” 后直接按 Enter 键(或执行 “auto” 命令),将会进入默认的图形安装入
口;若执行 “linux text” 命令,则进入文本安装入口;若执行 “linux rescue” 命令,则进入救援
模式。
直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面,如图
6.2 所示。若能够成功到达这一步,说明 PXE 网络安装基本成功。后续安装步骤与使用光
盘的正常安装类似,这里不再叙述。
6.2 进入图形化安装配置程序
6 页 共 14 6.2 实现 Kickstart 无人值守安装
上一节介绍了通过 PXE 技术远程安装 CentOS 7 系统的方法,安装介质不再受限于光
盘、移动硬盘等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、
键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便。
本节将进一步学习如何实现无人值守自动安装,通过使用 Kickstart 工具配置安装应答
文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。
6.2.1 准备安装应答文件
CentOS 7 系统中安装 system-config-kickstart 工具之后,即可通过图形化向导工具
来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS
7 安装后自动创建的应答文件( /root/anaconda-ks.cfg ),根据需要适当修订后使用。
1 .配置安装应答参数
通过桌面菜单 应用程序 ”→“ 系统工具 ”→“Kickstart” 即可打开 “Kickstart 配置程序 窗口。
“Kickstart 配置程序 窗口中,可以针对基本配置、安装方法、引导装载程序选项、分区信
息、网络配置等各种安装设置进行指定,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值