PXE高效批量网络装机

一:部署PXE远程安装服务

PXEPreboot eXecution Environment,预启动执行环境)是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建 PXE 网络体系,必须满足以下几个前提条件。

  • 客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。
  • 网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
  • 服务器通过 TFTPTrivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数 PC 都能够提供此支持,只需在 BIOS 设置中允许从 Network LAN 启动即可

1.1:搭建 PXE 远程安装服务器

PXE 远程安装服务器集成了 CentOS 7 安装源、 TFTP 服务、 DHCP 服务,能够向客户机裸机发送 PXE 引导程序、 Linux 内核、启动菜单等数据,以及提供安装文件
1 .准备 CentOS 7 安装源
CentOS 7 的网络安装源一般通过 HTTP FTP 协议发布,另外也支持 NFS Network File System,网络文件系统)协议
2 .安装并启用 TFTP 服务
TFTP 服务由 tftp-server 软件包提供,配置文件位于 /etc/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 服务器
[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.

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 用来设置是否等待用户选择;label 用来定义并分隔启动项; kernel append 用来定义引导参数。引导入口的个数及内容根据需要自行定义

1.2:验证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无人值守安装

2.1:准备安装应答文件

CentOS 7 系统中安装 system-config-kickstart 工具之后,即可通过图形化向导工具来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS 7 安装后自动创建的应答文件( /root/anaconda-ks.cfg ),根据需要适当修订后使用
1 .配置安装应答参数
通过桌面菜单 应用程序 ”→“ 系统工具 ”→“Kickstart” 即可打开 “Kickstart 配置程序 窗口。在“Kickstart 配置程序 窗口中,可以针对基本配置、安装方法、引导装载程序选项、分区信息、网络配置等各种安装设置进行指定
1 )基本配置及安装方法
将默认语言设为 中文(简体) ,时区设为 “Asia/Shanghai”,根口令设为 “pwd123” ,高级配置中勾选 安装后重启
安装方法 界面中,应正确指定 CentOS 7 的安装方法 。若有用户验证信息也需一并指定。在“ 引导装载程序选项 界面中,选择安装新引导装载程序
2 )分区信息
分区信息 界面中,需正确规划硬盘分区方案。例如,可划分一个 500MB /boot 分区、4GB /home 分区、 2GB swap 分区,将剩余空间划分给根分区
3 )网络配置及防火墙配置
网络配置 界面中,添加一个网络设备 “ens33” ,将网络类型设为 “DHCP”
防火墙配置 界面中,可以选择禁用 SELinux 、禁用防火墙
4 )软件包选择
CentOS 7 系统开始不再提供软件包的选择 。如果需要安装软件包,可以根据需将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg 文件中,只需要复制%packages %end 部分即可,在 %packages %end 之间,包含以 @ 开头的软件包列表,将不需要的软件名删除,剩下的就是系统会自动安装的软件包。
5 )安装脚本
预安装脚本 界面、 安装后脚本 界面中,可以分别添加在安装前、安装后自动运行的可执行语句。此项设置使服务器的自动化配置变得更加容易
6 )其他信息
若没有特殊需求,在 验证 界面、 显示配置 界面中,保持默认设置就可以了
2 .保存自动应答文件
选择 “Kickstart 配置程序 窗口的 文件 ”→“ 保存 命令,指定目标文件夹、文件名,将配置好的应答参数保存为文本文件,如/root/ks.cfg 。以后若要修改此应答配置,可以在“Kickstart 配置程序 窗口中打开进行调整,或者直接用 VI 等文本编辑工具进行修改

2.2:实现批量自动装机

有了自动安装的应答文件之后,只要将其放置 PXE 安装服务器的 FTP 目录下,并适当修改引导菜单,就可以实现基于网络的批量自动装机了
1 .启用自动应答文件
PXE 远程安装服务器中,将上一节建立的应答文件复制到 /var/ftp/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
default auto
prompt 0       //0 表示不等待用户控制
label auto
kernel vmlinuz
append     initrd=initrd.img    method=ftp://192.168.4.254/centos7
ks=ftp://192.168.4.254/ks.cfg

2.验证无人值守安装

启用自动应答安装之后,当客户机每次以 PXE 方式引导时,将自动下载 ks.cfg 应答配置文件,然后根据其中的设置安装 CentOS 7 系统,而无须手工干预 ,这样就可以同时为多台客户机安装系统了。
客户机安装完成以后,检查其 YUM 软件仓库配置,可以发现已经按照 安装后脚本 的设置自动建立了/etc/yum.repos.d/centos7.repo 文件。
[root@localhost ~]# cat /etc/yum.repos.d/centos7.repo
[base]
name=CentOS7.3
baseurl=ftp://192.168.4.254/centos7
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/ RPM-GPG-KEY-CentOS-7

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值