PXE 引导安装
#
概述从 0.2.0
开始,Harvester 可以自动安装。本文提供使用 PXE 引导进行自动安装的示例。
我们建议使用 iPXE 进行网络启动。iPXE 比传统 PXE 引导程序功能更多,而且与现代网卡更匹配。如果你的网卡不支持 iPXE 固件,你可以先从 TFTP 服务器加载 iPXE 固件镜像。
如果需要获得 iPXE 脚本示例,请参见 Harvester iPXE 示例。
#
前提重要提示: 节点至少需要有 8 GB 的内存,来让安装程序将整个 ISO 文件加载到 tmpfs。
#
准备 HTTP 服务器需要 HTTP 服务器来提供引导文件。
假设 NGINX HTTP 服务器的 IP 是 10.100.0.10
,它提供 /usr/share/nginx/html/
目录,路径为 http://10.100.0.10/
。
#
准备引导文件从 Harvester 发布页面下载所需文件:
- ISO:
harvester-<version>-amd64.iso
- 内核:
harvester-<version>-vmlinuz-amd64
- initrd:
harvester-<version>-initrd-amd64
- rootfs squashfs 镜像:
harvester-<version>-rootfs-amd64.squashfs
- ISO:
提供文件。
将下载的文件复制或移动到适当的位置,以便通过 HTTP 服务器下载它们。例如:
#
准备 iPXE 引导脚本使用以下两种模式执行自动安装:
CREATE
:安装一个节点来构建一个初始的 Harvester 集群。JOIN
:安装一个节点来加入现有的 Harvester 集群。
#
CREATE 模式警告:
安全风险:下面的配置文件包含应保密的凭证。请不要公开配置文件。
为 CREATE
模式创建一个名为 config-create.yaml
的 Harvester 配置文件。按照需要修改值:
对于需要使用 CREATE
模式安装的节点,以下是使用上述配置启动内核的 iPXE 脚本:
以上假设 iPXE 脚本存储在 /usr/share/nginx/html/harvester/ipxe-create
中。
注意: 如果你有多个网络接口,你可以利用 dracut 的
ip=
参数来指定启动界面以及 dracut 支持的任何其他网络配置(例如,ip=eth1:dhcp
)。详情请参见man dracut.cmdline
。使用
ip=
参数仅指定启动界面,因为我们仅支持一个ip=
参数。
#
JOIN 模式警告:
安全风险:下面的配置文件包含应保密的凭证。请不要公开配置文件。
为 JOIN
模式创建一个名为 config-join.yaml
的 Harvester 配置文件。按照需要修改值:
注意 mode
是 join
并且需要提供 server_url
。
对于需要使用 JOIN
模式安装的节点,以下是使用上述配置启动内核的 iPXE 脚本:
以上假设 iPXE 脚本存储在 /usr/share/nginx/html/harvester/ipxe-join
中。
#
DHCP 服务器配置以下是如何配置 ISC DHCP 服务器以提供 iPXE 脚本的示例:
配置文件声明了一个子网和两个组。第一组用于主机使用 CREATE
模式引导,另一组用于 JOIN
模式。默认情况下会选择 iPXE 路径。但是,如果有 PXE 客户端,它会根据客户端架构提供 iPXE 镜像。请先准备这些镜像以及 TFTP 服务器。
#
Harvester 配置有关 Harvester 配置的详情,请参见 Harvester 配置。
用户也可以通过内核参数提供配置。例如,如果你需要指定 CREATE
安装模式,你可以在启动时传入 harvester.install.mode=create
内核参数。通过内核参数传入的值比在配置文件中指定的值具有更高的优先级。
#
UEFI HTTP 启动支持UEFI 固件支持从 HTTP 服务器加载启动镜像。本节演示了如何使用 UEFI 的 HTTP 启动来加载 iPXE 程序并执行自动安装。
#
提供 iPXE 程序从 http://boot.ipxe.org/ipxe.efi 下载 iPXE UEFI 程序,并确保 ipxe.efi
可以从 HTTP 服务器下载。例如:
现在,你可以从 http://10.100.0.10/harvester/ipxe.efi 本地下载文件。
#
DHCP 服务器配置如果用户计划通过先获得一个动态 IP 来使用 UEFI HTTP 启动功能,DHCP 服务器在看到这样的请求时需要提供 iPXE 程序的 URL。下面是一个更新的 ISC DHCP 服务器组的示例:
elsif substring
语句是新的,它在看到 UEFI HTTP 启动 DHCP 请求时提供 http://10.100.0.10/harvester/ipxe.efi
。在客户端获取 iPXE 程序并运行后,iPXE 程序将再次发送 DHCP 请求,并从 URL http://10.100.0.10/harvester/ipxe-create-efi
加载 iPXE 脚本。
#
用于 UEFI 启动的 iPXE 脚本在内核参数中指定 UEFI 启动的 initrd 镜像是必须的。以下示例是为 CREATE
模式更新的 iPXE 脚本:
initrd=harvester-<version>-initrd
参数是必须的。