第 5 章 将 iPXE 配置为 Reduce Provisioning Times
您可以使用 Satellite 配置 PXELinux 以 BIOS 模式中链引导 iPXE,如果有以下限制阻止您使用 PXE,则使用 HTTP 协议进行引导:
- 带有非受管 DHCP 服务器的网络。
- 将网络列入黑名单或受防火墙限制的 PXE 服务。
- 由于网络低带宽网络,因此基于 UDP 的不可靠 TFTP 协议。
有关 iPXE 支持的更多信息,请参阅支持的配置构架。
iPXE 概述
iPXE 是开源网络引导固件。它提供了一个完整的 PXE 实现,它增强了额外的功能,包括从 HTTP 服务器启动。如需更多信息,请参阅 ipxe.org。
在 Red Hat Satellite 中使用 iPXE 的方法有三种:
- 使用 iPXE 作为主要固件的 hypervisor 启动虚拟机。
- 使用 PXELinux 通过 TFTP 直接在裸机主机上链式加载 iPXE.
- 通过 UNDI 使用 PXELinux,它将使用 HTTP 来传输裸机主机上的内核和初始 RAM 磁盘。
安全信息
Red Hat Enterprise Linux 中的 iPXE 二进制文件是构建而没有安全功能的。因此,您只能使用 HTTP,且无法使用 HTTPS。
不支持 Red Hat Enterprise Linux 中 iPXE 的所有与安全相关的功能。如需更多信息,请参阅 iPXE 中的 Red Hat Enterprise Linux HTTPS 支持。
前提条件
开始前,请确保满足以下条件:
- 要使用 Red Hat Satellite 上有一个主机。
- 置备接口的 MAC 地址与主机配置匹配。
- 主机的置备接口具有有效的 DHCP 保留。
- NIC 能够进行 PXE 启动。如需更多信息,请参阅 ipxe.org 上支持的硬件,以获取预期使用基于 iPXE 引导磁盘的硬件驱动程序列表。
- NIC 与 iPXE 兼容。
要准备 iPXE 环境,您必须对所有胶囊执行此步骤。
流程
启用 tftp 和 httpboot 服务:
satellite-installer --foreman-proxy-httpboot true --foreman-proxy-tftp true
# satellite-installer --foreman-proxy-httpboot true --foreman-proxy-tftp true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
ipxe-bootimgs
RPM 软件包:yum install ipxe-bootimgs
# yum install ipxe-bootimgs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Linux 内核标头将 iPXE 固件复制到 TFTP 目录中:
cp /usr/share/ipxe/ipxe.lkrn /var/lib/tftpboot/
# cp /usr/share/ipxe/ipxe.lkrn /var/lib/tftpboot/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 UNDI iPXE 固件复制到 TFTP 目录中:
cp /usr/share/ipxe/undionly.kpxe /var/lib/tftpboot/undionly-ipxe.0
# cp /usr/share/ipxe/undionly.kpxe /var/lib/tftpboot/undionly-ipxe.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
更正 SELinux 文件上下文:
restorecon -RvF /var/lib/tftpboot/
# restorecon -RvF /var/lib/tftpboot/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)配置 Foreman 发现。更多信息请参阅 第 7 章 配置发现服务。
- 在 Satellite Web UI 中,导航到 Administer > Settings,然后点 Provisioning 选项卡。
- 找到 Default PXE global template 条目 行,并在 Value 列中将值更改为 discovery。
5.1. 引导虚拟机 复制链接链接已复制到粘贴板!
有些虚拟化虚拟机监控程序使用 iPXE 作为 PXE 启动的主固件。因此,您可以在没有 TFTP 和 PXELinux 的情况下引导虚拟机。
链引导虚拟机工作流
使用虚拟化管理程序可免除对 TFTP 和 PXELinux 的需要。它具有以下工作流:
- 虚拟机启动
- iPXE 使用 DHCP 检索网络凭证
- iPXE 使用 DHCP 检索 HTTP 地址
- iPXE 从 Capsule 加载 iPXE bootstrap 模板
- iPXE 加载 iPXE 模板,其 MAC 作为来自 Capsule 的 URL 参数
- iPXE 加载安装程序的内核和初始 RAM 磁盘
确保您要使用的虚拟机监控程序支持 iPXE。以下虚拟化虚拟机监控程序支持 iPXE:
- libvirt
- Red Hat Virtualization
- RHEV
配置卫星服务器以使用 iPXE
您可以使用默认模板为主机配置 iPXE 引导。如果要更改模板中的默认值,请克隆模板并编辑克隆。
流程
-
在 Satellite Web UI 中,导航到 Hosts > Provisioning Templates,输入
Kickstart default iPXE
并点 Search。 - 可选:如果要更改模板,点 Clone,输入唯一名称,点 Submit。
- 点击您要使用的模板的名称。
- 如果克隆模板,您可以在 Template 选项卡中进行更改。
- 单击 关联 选项卡,再选择您的主机使用的操作系统。
- 单击位置选项卡,再添加主机所在的位置。
- 单击 Organizations 选项卡,再添加主机所属的组织。
- 单击 Submit 以保存更改。
- 进入 Hosts > Operating systems 并选择您的主机操作系统。
- 点 Templates 选项卡。
- 从 iPXE Template 列表中,选择您要使用的模板。
- 单击 Submit 以保存更改。
- 进入 Hosts > All Hosts。
- 在 Hosts 页面中,选择您要使用的主机。
- 选择 Operating System 选项卡。
- 将 PXE Loader 设置为 iPXE Embedded 或 None。
- 选择 Templates 选项卡。
- 从 iPXE 模板 列表中,选择 Review 以验证 Kickstart 默认 iPXE 模板是否为正确的模板。
配置
dhcpd.conf
文件,如下所示:if exists user-class and option user-class = "iPXE" { filename "http://capsule.example.com:8000/unattended/iPXE?bootstrap=1"; } # elseif existing statements if non-iPXE environment should be preserved
if exists user-class and option user-class = "iPXE" { filename "http://capsule.example.com:8000/unattended/iPXE?bootstrap=1"; } # elseif existing statements if non-iPXE environment should be preserved
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用隔离网络,请使用带 TCP 端口
8000
的胶囊服务器 URL,而不是卫星服务器的 URL。注意如果您使用
--foreman-proxy-http-port 安装程序
选项更改端口,请使用您的自定义端口。每次升级后,您必须更新/etc/dhcp/dhcpd.conf
文件。