PXE(Preboot eXcution Environment)
预启动执行环境,在操作系统之前运行
可用于远程安装,构建无盘工作站
服务端
运行DHCP服务,用来分配地址,定位引导程序
运行TFTP服务器,提供引导程序下载
客户端
网卡支持PXE协议
主板支持网络启动
PXE批量部署的优点
规模化:同时装配多台服务器
自动化:安装系统,配置各种服务
远程实现:不需要光盘,U盘等安装介质
CentOS 7的网络安装源一般通过HTTP、FTP、NFS等协议发布。
采用FTP协议发布安装源,可以在服务器上部署一个YUM软件仓库(部署开局环境,通网,内核防护和防火墙关闭,挂载并部署本地YUM仓库)
安装tftp-server软件包,配置文件位于/etc/xinetd.d/tftp.配置时只有将“disable=yes”改为“disable=no”,然后启用tftp服务
用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS 7 系统光盘获得,分
别为 vmlinuz 和 initrd.img,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制
到 tftp 服务的根目录下。
用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供。安装好软件包
syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下。
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认
的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动
菜单配置可参考以下操作手动建立。
上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。
其中, prompt 用来设置是否等待用户选择; label 用来定义并分隔启动项; kernel 和 append
用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时
只需要一个入口就够了。
由于 PXE 客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关
引导文件,需要预先配置好 DHCP 服务来自动分配地址并告知引导文件位置。如 PXE 服务器
的 IP 地址为 20.0.0.25, DHCP 地址池为 20.0.0.100~20.0.0.200,则可以参考
以下操作来搭建 DHCP 服务器。
从上述过程可以看到,与一般 DHCP 服务不同的是,配置文件中增加了 netx-server 和
filename 这两行记录,分别用来指定 TFTP 服务器的地址和 PXE 引导程序的文件名。
搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的服
务器或 PC 裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修改
BIOS 设置,将“Boot First”设为“NETWORK”或“LAN”,然后重启主机;若使用 VMware
创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时会报错。
如果服务器配置正确,网络连接、 PXE 支持等都没有问题,则客户机重启后将自动配
置 IP 地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0,并根据引导菜单配置提示用
户指定启动入口,
在提示字串“boot:”后直接按 Enter 键(或执行“auto”命令),将会进入默认的图形
安装入口;若执行“linux text”命令,则进入文本安装入口;若执行“linux rescue”命
令,则进入救援模式。
直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面,若能够成功到达这一步,说明 PXE 网络安装基本成功。后续安装步骤与使用光盘
的正常安装类似,这里不再叙述。
kickstart无人值守技术
创建应答文件,预先定义好各种安装设置
免去交互设置过程,从而实现全自动化安装
在 CentOS 7 系统中安装 system-config-kickstart 工具之后,即可通过图形化向导工
具来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS
7 安装后自动创建的应答文件(/root/anaconda-ks.cfg),根据需要适当修订后使用。
通过桌面菜单“应用程序”→“系统工具”→“Kickstart”即可打开“Kickstart 配
置程序”窗口。在“Kickstart 配置程序”窗口中,可以针对基本配置、安装方法、引导装
载程序选项、分区信息、网络配置等各种安装设置进行指定
(1)基本配置及安装方法
(2)引导装载程序选项
(3)分区信息
(4)网络配置及防火墙配置
在“网络配置”界面中,添加一个网络设备“ens33”,将网络类型设为“DHCP”。
在“防火墙配置”界面中,可以选择禁用 SELinux、禁用防火墙。
(5)软件包选择
CentOS 7 系统开始不再提供软件包的选择,如图所示。如果需要安装软件包,可
以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg 文件中,只需要复
制%packages 到%end 部分即可,在%packages 到%end 之间,包含以@开头的软件包列表,将
不需要的软件名删除,剩下的就是系统会自动安装的软件包。例如,仅保留以下内容即为采
用最小化安装
%packages
@^minimal
%end
(6)安装脚本
在“预安装脚本”界面、“安装后脚本”界面中,可以分别添加在安装前、安装后自动
运行的可执行语句。此项设置使服务器的自动化配置变得更加容易。例如,可以使客户机在
完成安装后自动设置 YUM 软件仓库,如图所示。需要注意的是,应确保所编写的代码能
够正确执行,以免安装失败。
(7)其他信息
若没有特殊需求,在“验证”界面、“显示配置”界面中,保持默认设置就可以了
选择“Kickstart 配置程序”窗口的“文件”→“保存”命令,指定目标文件夹、文件
名,将配置好的应答参数保存为文本文件,如/root/ks.cfg。以后若要修改此应答配置,可
以在“Kickstart 配置程序”窗口中打开进行调整,或者直接用 VI 等文本编辑工具进行修改
有了自动安装的应答文件之后,只要将其放置 PXE 安装服务器的 FTP 目录下,并适当修
改引导菜单,就可以实现基于网络的批量自动装机了。
在 PXE 远程安装服务器中,将上面建立的应答文件复制到/var/ftp/centos7 目录下,
使客户机能够通过 ftp://20.0.0.25/centos7/ks.cfg 访问;然后编辑引导菜单文件
default,添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径。
启用自动应答安装之后,当客户机每次以 PXE 方式引导时,将自动下载 ks.cfg 应答配
置文件,然后根据其中的设置安装 CentOS 7 系统,而无须手工干预,如图所示,这样
就可以同时为多台客户机安装系统了。
客户机安装完成以后,检查其 YUM 软件仓库配置,可以发现已经按照“安装后脚本”的
设置自动建立了/etc/yum.repos.d/centos7.repo 文件。