PXE高效批量网络装机

部署 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 远程安装服务的基本部署过程。

搭建 PXE 远程安装服务器

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

1. 准 备 CentOS   7 安装源

CentOS   7的网络安装源一般通过HTTP 、FTP  协议发布,另外也支持 NFS(Network File   System,  网络文件系统)协议,关于NFS  的配置请参阅其他资料,这里不再赘述。例如,若采用 FTP 协议发布安装源,可以在服务器上部署一个 YUM 软件仓库。

[root@localhost ~]#mkdir /var/ftp/centos7 [root@localhost~]#cp-rf/media/cdromf/var/ftp/centos71 [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 [root@localhost~]#systemctl start tftp [root@localhost~]#systemctl enable tftp

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

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

[root@localhost~]#cd /media/cdrom/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

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

 配置启动菜单文件

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

[root@localhost ~]#mkdir var/lib/tftpboot/pxelinux.cfg [root@localhost ~]#vi/var/lib/tftpboot/pxelinux.cfg/default

定义三个引导入口,分别为图形安装(默认)、文本安装、救援模式。其中,prompt  用来设置是否等待用户选择;label 用来定义并分隔启动项;kernel  和 append  用来定义引导参数。引导入口的个数及内容根据需要自行定义。

验证PXE 网络安装

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

如果服务器配置正确,网络连接、PXE  支持等都没有问题,则客户机重启后将自动配 置 IP 地址,然后从TFTP   服务器中获取引导程序 pxelinux.0,     并根据引导菜单配置提示用

户指定启动入口。

在提示字串“boot:”后直接按 Enter键(或执行“auto”命令),将会进入默认的图形安装入 口;若执行“linux text”命令,则进入文本安装入口;若执行"linux rescue”命令,则进入救援模式。

直接按 Enter键确认后将自动通过网络下载安装文件,并进入图形安装程序界面,如图 6.2 所示。若能够成功到达这一步,说明 PXE 网络安装基本成功。后续安装步骤与使用光盘的正常安装类似。

实现 Kickstart 无人值守安装

准备安装应答文件

在 CentOS7  系统中安装 system-config-kickstart 工具之后,即可通过图形化向导工具 来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS  7安装后自动创建的应答文件(/root/anaconda-ks.cfg), 根据需要适当修订后使用。

1. 配置安装应答参数

通过桌面菜单“应用程序”→ “系统工具”→“Kickstart”即可打开“Kickstart 配置程序”窗口。 在“Kickstart 配置程序”窗口中,可以针对基本配置、安装方法、引导装载程序选项、分区信息、网络配置等各种安装设置进行指定,如图6.3所示。

(1)基本配置及安装方法

“基本配置”可参考图6.3 来指定。例如,将默认语言设为“中文(简体)”,时区设为“Asia/Shanghai”, 根口令设为“pwd123”, 高级配置中勾选“安装后重启”。

在“安装方法”界面中,应正确指定CentOS7  的安装方法。若有用户验证信息也需一并指定。在“引导装载程序选项”界面中,选择安装新引导装载程序。

(2)分区信息

在“分区信息”界面中,需正确规划硬盘分区方案。例如,可划分一个500MB的/boot  分区、4GB 的/home 分区、2 GB 的 swap 分区,将剩余空间划分给根分区。

(3)网络配置及防火墙配置

在“网络配置”界面中,添加一个网络设备“ens33”,   将网络类型设为“DHCP”。

在“防火墙配置”界面中,可以选择禁用 SELinux、禁用防火墙。

(4) 软件包选择

CentOS   7系统开始不再提供软件包的选择,如图6.6 所示。如果需要安装软件包,可 以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg 文件中,只需要复 制 %packages 到 %end 部分即可,在%packages 到 %end 之间,包含以@开头的软件包列 表,将不需要的软件名删除,剩下的就是系统会自动安装的软件包。

(5)安装脚本

在“预安装脚本”界面、“安装后脚本”界面中,可以分别添加在安装前、安装后自动运行 的可执行语句。此项设置使服务器的自动化配置变得更加容易。例如,可以使客户机在完成 安装后自动设置 YUM 软件仓库,如图6.7所示。需要注意的是,应确保所编写的代码能够正确执行,以免安装失败。

(6)其他信息

若没有特殊需求,在“验证”界面、“显示配置”界面中,保持默认设置就可以了。

2. 保 存 自 动 应 答 文 件

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

实现批量自动装机

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

1. 启 用 自 动 应 答 文 件

在 PX E 远程安装服务器中,将上一节建立的应答文件复制到/var/tp/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

2. 验证无人值守安装

启用自动应答安装之后,当客户机每次以 PXE 方式引导时,将自动下载 ks.cfg 应答配 置文件,然后根据其中的设置安装 CentOS7   系统,而无须手工干预,如图6.8 所示,这样就可以同时为多台客户机安装系统了。

注意:如果是在 VMware 虚拟机环境下,需要禁用 VMwar e  的 DHCP 功能;否则安装文件将无法加载。

  • 43
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值