目录
6.1 部署PXE远程安装服务
6.1.1 搭建PXE远程安装服务器
1. 准备CentOS 7安装源
2. 安装并启用TFTP服务
3. 准备Linux内核、初始化镜像文件
4. 准备PXE引导程序
5. 安装并启用DHCP服务
6. 配置启动菜单文件
6.1.2 验证PXE网络安装
6.2 实现Kickstart无人值守安装
6.2.1 准备安装应答文件
1. 配置安装应答参数
1. 基本配置及安装方式
2. 分区信息
3. 网络配置及防火墙配置
4. 软件包选择
5. 安装脚本
6. 其他信息
2. 保存自动应对文件
6.2.2 实现批量自动装机
1. 启动自动应答文件
2. 验证无人值守安装
6.1 部署PXE远程安装服务
在大规模的Linux应用环境中,如 Web群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢﹖传统的USB光驱、移动硬盘等安装方法显然已经难以满足需求。
本章将学习基于PXE(Preboot eXecution Environment,预启动执行环境)技术的网络装机方法,并结合Kickstart配置实现无人值守自动安装。
上述服务器的批量部署方法,具备以下三个优点:
- 规模化:同时装配多台服务器;
- 自动化:安装系统、配置各种服务;
- 远程实现:不需要光盘、U盘等安装介质。
PXE是由Intel公司开发的网络引导技术,工作在ClientlServer模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建PXE 网络体系,必须满足以下几个前提条件。
- 客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。
- 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
- 服务器通过TFTP (Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数PC都能够提供此支持,只需在BIOS设置中允许从 Network或LAN启动即可。下面将介绍PXE远程安装服务的基本部署过程。
6.1.1 搭建PXE远程安装服务器
1. 准备CentOS 7安装源
CentOS 7的网络安装源一般通过HTTP、FTP协议发布,另外也支持 NFS (NetworkFile System,网络文件系统)协议
例如,若采用FTP协议发布安装源,可以在服务器上部署一个 YUM软件仓库。
2. 安装并启用TFTP服务
TFTP服务由tftp-server 软件包提供,配置文件位于letc/xinetd.d/tftp。配置时只要将“disable = yes"改为“disable = no”,然后启动TFTP服务即可。
3. 准备Linux内核、初始化镜像文件
用于PXE网络安装的Linux 内核、初始化镜像文件可以从CentOS 7系统光盘获得,分别为vmlinuz和 initrd.img,位于文件夹images/pxeboot 下。找到这两个文件并将其复制到 tftp 服务的根目录下。
4. 准备PXE引导程序
用于PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供。安装好软件包syslinux,然后将文件pxelinux.0也复制到 tftp服务的根目录下。
5. 安装并启用DHCP服务
由于PXE客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好DHCP服务来自动分配地址并告知引导文件位置。如PXE服务器的IP地址为192.168.4.254,DHCP地址池为192.168.4.100~192.168.4.200,则可以参考以下操作来搭建DHCP服务器。
从上述过程可以看到,与一般DHCP服务不同的是,配置文件中增加了netx-server和filename这两行记录,分别用来指定TFTP服务器的地址和 PXE引导程序的文件名。
6. 配置启动菜单文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为default,应放置在tftp根目录的pxelinux.cfg子目录下,典型的启动菜单配置可参考以下操作手动建立。
上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。其中,prompt用来设置是否等待用户选择; label用来定义并分隔启动项; kernel和 append用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时只需要一个入口就够了。
6.1.2 验证PXE网络安装
搭建好PXE远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的服务器或PC裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修改BIOS 设置,将""Boot First"设为“NETWORK"或"LAN",然后重启主机;若使用VMware创建的虚拟机进行测试,虚拟机内存至少需要2GB,否则在启动安装时会报错。
在提示字串""boot:"后直接按Enter键(或执行"auto"命令),将会进入默认的图形安装入口;若执行linux text"命令,则进入文本安装入口;若执行"linux rescue"命令,则进入救援模式。
直接按Enter键确认后将自动通过网络下载安装文件,并进入图形安装程序界面,如图6.2所示。
6.2 实现Kickstart无人值守安装
6.2.1 准备安装应答文件
在 CentOS 7系统中安装system-config-kickstart工具之后,即可通过图形化向导工具来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑Centos7安装后自动创建的应答文件(Jrootanaconda-ks.cfg),根据需要适当修订后使用。
1. 配置安装应答参数
通过桌面菜单"应用程序"→“系统工具”→“Kickstart"即可打开"Kickstart配置程序"窗口。在""Kickstart 配置程序"窗口中,可以针对基本配置、安装方法、引导装载程序选项、分区信息、网络配置等各种安装设置进行指定,如图6.3所示。
1. 基本配置及安装方式
“基本配置"可参考图6.3来指定。例如,将默认语言设为“中文(简体)",时区设为“Asia/Shanghai",根口令设为“pwd123",高级配置中勾选"安装后重启”。
在"安装方法"界面中,应正确指定CentOS 7的安装方法,如图6.4所示。若有用户验证信息也需一并指定。在“引导装载程序选项"界面中,选择安装新引导装载程序。
2. 分区信息
在"分区信息"界面中,需正确规划硬盘分区方案。例如,可划分一个500MB 的/boot分区、4GB的/home 分区、2GB的swap分区,将剩余空间划分给根分区,如图 6.5所示。
3. 网络配置及防火墙配置
在"网络配置”界面中,添加一个网络设备"ens33",将网络类型设为“DHCP”。
在“防火墙配置"界面中,可以选择禁用SELinux、禁用防火墙。
4. 软件包选择
CentOS7系统开始不再提供软件包的选择,如图6.6 所示。如果需要安装软件包,可以根据需要将/rootlanaconda-ks.cfg 的软件包安装脚本复制到ks.cfg 文件中,只需要复制%packages 到%end部分即可,在%packages 到%end之间,包含以@开头的软件包列表,将不需要的软件名删除,剩下的就是系统会自动安装的软件包。例如,仅保留以下内容即为采用最小化安装。
5. 安装脚本
在“预安装脚本"界面、“安装后脚本"界面中,可以分别添加在安装前、安装后自动运行的可执行语句。此项设置使服务器的自动化配置变得更加容易。例如,可以使客户机在完成安装后自动设置YUM软件仓库,如图6.7所示。需要注意的是,应确保所编写的代码能够正确执行,以免安装失败。
6. 其他信息
若没有特殊需求,在“验证"界面、“显示配置"界面中,保持默认设置就可以了。
2. 保存自动应对文件
选择“Kickstart配置程序"窗口的“文件”→“保存"命令,指定目标文件夹、文件名,将配置好的应答参数保存为文本文件,如lrootks.cfg。以后若要修改此应答配置,可以在"Kickstart配置程序"窗口中打开进行调整,或者直接用VI等文本编辑工具进行修改。
6.2.2 实现批量自动装机
有了自动安装的应答文件之后,只要将其放置PXE安装服务器的FTP目录下,并适当修改引导菜单,就可以实现基于网络的批量自动装机了。
1. 启动自动应答文件
在PXE远程安装服务器中,将上一节建立的应答文件复制到/var/ftplcentos7目录下,使客户机能够通过ftp:l1192.168.4.254/centos7/ks.cfg访问;然后编辑引导菜单文件default,添加 ks引导参数以指定ks.cfg应答文件的URL路径
2. 验证无人值守安装
启用自动应答安装之后,当客户机每次以PXE方式引导时,将自动下载ks.cfg应答配置文件,然后根据其中的设置安装CentOS7系统,而无须手工干预,如图6.8所示,这样就可以同时为多台客户机安装系统了。
客户机安装完成以后,检查其YUM软件仓库配置,可以发现已经按照"安装后脚本"的设置自动建立了/etc/yum.repos.d/centos7.repo文件。
注意:如果是在VMware 虚拟机环境下,需要禁用VMware 的 DHCP功能;否则安装文件将无法加载。