第 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设置。支持HTTP和HTTPS方案。默认端口为 9090,用于访问 Satellite Capsule 服务器(proxy.type=proxy),80 用于直接与 Satellite 服务器(proxy.type=foreman)通信。IPAPPEND 2设置会检测连接到 provisioning 网络的接口。如果删除或修改了此选项,则镜像无法正确引导。
过程 11.1. 配置 PXE 引导:
- 在 Satellite Web UI 中,前往
。 - 编辑 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 - 通过修改
ONTIMEOUT变量将新菜单条目设置为默认设置:ONTIMEOUT discovery - 单击 Provisioning Templates 页面顶部的 。这指示 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 插件相关的全局设置。导航到 ,再打开 Discovered 选项卡。主要设置有:
discovery_organization,discovery_location- 这些变量指定放置发现的主机的位置。默认情况下,发现的主机会自动放在创建的第一个组织和位置下。
discovery_fact- 此变量指定用于确定发现主机的 MAC 地址的传入事实。默认情况下使用 PXELinux BOOTIF 内核命令行选项。
discovery_auto- 此变量根据指定的规则启用自动置备。默认设置为 false。红帽建议您在启用
discovery_auto前使用手动置备测试配置。请参阅 第 11.3 节 “置备发现的主机” 了解更多信息。 discovery_fact_column- 此变量允许您在发现的主机列表中将 Facter 报告的任何事实添加为额外列。