第 11 章 在 Satellite 上发现裸机主机


Red Hat Satellite 6.2 附带了 Discovery 插件。Discovery 插件可在 provisioning 网络中自动发现未知主机。这些新主机已注册到卫星服务器,并且客户端上的 Puppet 代理上传 Facter 收集的系统事实,如串行 ID、网络接口、内存和磁盘信息。注册后,主机会显示在 Satellite Web UI 的 Discovered Hosts 页面中。然后,您可以使用预定义的发现规则手动启动置备(使用 Web UI、CLI 或 API)或自动启动置备。
Discovery 插件通过 Capsule 服务器进行通信,该服务器可直接访问调配网络和卫星服务器实例。可以直接从 Satellite 服务器发现主机,但红帽建议您使用以下方案:
Satellite Server (Satellite Server Discovery plug-in) <--> Satellite Capsule (Satellite Capsule Discovery plug-in) <--> Discovered Host (Satellite Discovery image)
Satellite 发现插件由三个不同的组件组成:
Satellite 服务器发现插件
这会在 Satellite 服务器上运行,并提供 API 和 UI 功能来使用发现的主机。cmdline-rubygem-foreman_discovery 软件包包含此插件。
Satellite Capsule Server Discovery 插件
这是调配网络上发现的主机与 Satellite 服务器上的通信代理。rubygem-smart_proxy_discovery 软件包包含此插件。
Satellite 发现镜像
这是基于 Red Hat Enterprise Linux 的最小操作系统,它在主机上 PXE 引导以获取初始硬件信息并签入到 Satellite 服务器。发现的主机会保持运行 Satellite 发现镜像,直到它们重启 Anaconda 中,然后启动调配过程。foreman-discovery-image 软件包包含此镜像。它必须安装在提供 TFTP 服务的 Capsule 服务器上。

11.1. 配置 Satellite 发现插件

以下小节介绍了如何配置 Satellite Discovery 插件以及如何在 Satellite 服务器上准备 PXE 引导模板。

11.1.1. 部署 Satellite 发现镜像

在卫星胶囊式服务器上安装包含卫星发现镜像的软件包,该镜像提供 TFTP 服务(而非卫星服务器本身):
# yum install foreman-discovery-image
这个软件包包含 Linux 内核和初始 RAM 磁盘镜像,作为可引导 ISO 文件,该文件用于 PXE 引导发现的主机。您可以运行以下命令来调查软件包的内容。这会生成类似如下的输出:
$ rpm -ql foreman-discovery-image
/usr/share/foreman-discovery-image
/usr/share/foreman-discovery-image/fdi-image-rhel_7-2.1.0-20150212.1.iso
安装此软件包时,它会将内核和镜像从 ISO 文件提取到 TFTP 目录中,并创建指向最新版本的镜像和内核的符号链接。使用 PXE 引导置备模板中的符号链接,确保每次升级 foreman-discovery-image 软件包时,您不需要更改模板中的版本。例如:
$ find /var/lib/tftpboot/boot
/var/lib/tftpboot/boot
/var/lib/tftpboot/boot/fdi-image-rhel_7-2.1.0-20150212.1-img
/var/lib/tftpboot/boot/fdi-image-rhel_7-2.1.0-20150212.1-vmlinuz
/var/lib/tftpboot/boot/fdi-image-rhel_7-img
/var/lib/tftpboot/boot/fdi-image-rhel_7-vmlinuz
以上输出中的最后两行包含要在 PXE 引导置备模板中使用的符号链接。更多信息请参阅 第 11.1.2 节 “配置 PXE 引导”
注意
目前,只提供了 Red Hat Enterprise Linux 7 发现镜像,即使 Red Hat Enterprise Linux 6 上的 Satellite 6 安装也是如此。如果发现主机在升级 foreman-discovery-image 软件包期间运行,请重新引导它们,以尽快加载镜像的更新版本。这可以通过 Satellite 6 Web UI、CLI 或 API 完成。

11.1.2. 配置 PXE 引导

当在 provisioning 网络中引导未知主机时,Satellite 服务器提供了一个 PXELinux 引导菜单,其中包含一个选项;从本地硬盘引导。以下流程描述了如何更改此行为,以便启用硬件发现。这要求更改 PXE Linux 全局默认模板中的多个变量。这些变量如下所述:
  • 模板中的 KERNEL 和 APPEND 行使用符号链接,在安装 foreman-discovery-image 软件包时创建(请参阅 第 11.1.1 节 “部署 Satellite 发现镜像”)。URL 相对于 /var/lib/tftpboot/ 目录。确定在一行中指定 APPEND 参数。
  • proxy.type 变量可以设置为 代理 (推荐)或 foreman。当变量 设为 代理 时,所有通信都会通过 Capsule 服务器。当变量设置为 foreman 时,通信直接发送到 Satellite 服务器。本章中的示例假定 proxy.type 设置为 proxy
  • proxy.url 变量指定 Satellite Capsule 服务器或 Satellite 服务器的 URL,具体取决于 proxy.type 设置。支持 HTTPHTTPS 方案。默认端口为 9090,用于访问 Satellite Capsule 服务器(proxy.type=proxy),80 用于直接与 Satellite 服务器(proxy.type=foreman)通信。
  • IPAPPEND 2 设置会检测连接到 provisioning 网络的接口。如果删除或修改了此选项,则镜像无法正确引导。

过程 11.1. 配置 PXE 引导:

  1. 在 Satellite Web UI 中,前往 Hosts Provisioning Templates
  2. 编辑 PXELinux 全局默认模板。在模板中添加以下菜单条目:
    LABEL discovery
    MENU LABEL Foreman Discovery
    MENU DEFAULT
    KERNEL boot/fdi-image-rhel_7-vmlinuz
    APPEND initrd=boot/fdi-image-rhel_7-img rootflags=loop root=live:/fdi.iso rootfstype=auto ro rd.live.image acpi=force rd.luks=0 rd.md=0 rd.dm=0 rd.lvm=0 rd.bootif=0 rd.neednet=0 nomodeset proxy.url=https://SATELLITE_CAPSULE_URL:9090 proxy.type=proxy
    IPAPPEND 2
  3. 通过修改 ONTIMEOUT 变量将新菜单条目设置为默认设置:
    ONTIMEOUT discovery
  4. 单击 Provisioning Templates 页面顶部的 Build PXE Default。这指示 TFTP 代理重写 pxelinux.cfg/default 文件。每次对默认模板进行更改时,请重复这一步,以确保更改部署在 TFTP 胶囊式服务器上。
作为上述流程的替代选择,您可以从 PXE 引导模板中省略 proxy.url 变量。在这种情况下,发现镜像搜索 DNS 配置文件以获取名为 x-foreman.tcp 的 SRV 记录。在这种情况下,必须将 proxy.url 变量设置为 proxy。还必须配置 DNS 服务器。例如,以下配置语句指定要与 HTTPS 搭配使用的 Capsule 服务器:
_x-foreman._tcp SRV 0 5 9090 capsule
此处,Capsule 是 DNS 配置中包含的胶囊服务器的名称。
注意
Satellite 6.2 只能允许您为可以发现主机的所有子网指定一个胶囊服务器 URL。由于模板不能为每个子网使用,因此请在所有网络上使用 DNS 别名名称。或者,使用 SRV 记录。
重要
DHCP 设置中的 DNS 服务器只考虑通过 BOOTIF 变量指定的接口。BOOTIF 由 PXE 模板中的 IPAPPEND 变量自动设置。这意味着,当系统有多个 NIC 时,DNS 仅适用于从其从中引导的接口。

11.1.3. 查看全局发现设置

您可以在 Satellite Web UI 中查看与 Discovery 插件相关的全局设置。导航到 Administer Settings,再打开 Discovered 选项卡。主要设置有:
discovery_organization, discovery_location
这些变量指定放置发现的主机的位置。默认情况下,发现的主机会自动放在创建的第一个组织和位置下。
discovery_fact
此变量指定用于确定发现主机的 MAC 地址的传入事实。默认情况下使用 PXELinux BOOTIF 内核命令行选项。
discovery_auto
此变量根据指定的规则启用自动置备。默认设置为 false。红帽建议您在启用 discovery_auto 前使用手动置备测试配置。请参阅 第 11.3 节 “置备发现的主机” 了解更多信息。
discovery_fact_column
此变量允许您在发现的主机列表中将 Facter 报告的任何事实添加为额外列。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部