置备主机
在 Red Hat Satellite 服务器上置备物理和虚拟主机的指南。
Red Hat Satellite Documentation Team
satellite-doc-list@redhat.com
摘要
对红帽文档提供反馈
我们感谢您对文档提供反馈信息。请让我们了解如何改进文档。
关于特定内容的简单评论:
确保您以 Multi-page HTML 格式查看文档。
另外,确定 Feedback 按钮出现在文档页的右上方。
- 用鼠标指针高亮显示您想评论的文本部分。
- 点在高亮文本上弹出的 Add Feedback。
- 按照显示的步骤操作。
要通过 Bugzilla 提交反馈,请创建一个新的 ticket:
- 进入 Bugzilla 网站。
- 在 Component 中选择 Documentation。
- 在 Description 中输入您要提供的信息。包括文档相关部分的链接。
- 点 Submit Bug。
第 1 章 置备简介
1.1. 置备概述
调配是以裸机或虚拟机开头的进程,最后是完全配置的、随时可用的操作系统。使用 Red Hat Satellite,您可以为大量主机定义和自动化精细的配置。
有很多置备方法。例如,您可以使用卫星服务器的集成胶囊或外部胶囊服务器,使用基于 PXE 和非基于 PXE 的方法置备裸机主机。您也可以通过 API 从特定提供程序调配云实例。这些配置方法是 Red Hat Satellite 应用程序生命周期的一部分,用于创建、管理和更新主机。
Red Hat Satellite 有不同的置备主机方法:
- 裸机置备
- 卫星主要通过 PXE 引导和 MAC 地址识别来置备裸机主机。您可以创建主机条目,并指定要置备的物理主机的 MAC 地址。您还可以引导空白主机以使用 Satellite 的发现服务,这将创建一个可随时置备主机池。
- 云供应商
- 卫星连接到私有和公有云提供商,从存储于云环境的镜像调配主机实例。这还包括选择要使用的硬件配置集或类别。
- 虚拟化基础架构
- Satellite 连接到虚拟化基础架构服务,如 Red Hat Virtualization 和 VMware,以便从虚拟机镜像模板置备虚拟机,或使用与裸机提供程序相同的基于 PXE 的引导方法。
1.2. Network Boot Provisioning 工作流
对于物理或虚拟 BIOS 主机:
- 使用网络将第一个引导设备设置为引导配置。
- 将第二个引导设备设置为从硬盘引导。卫星管理 TFTP 引导配置文件,因此只需通过重新引导即可轻松调配主机。
对于物理或虚拟 EFI 主机:
- 使用网络将第一个引导设备设置为引导配置。
- 根据 EFI 固件类型和配置,OS 安装程序通常会将 OS 引导装载程序配置为第一个条目。
-
要再次重启到安装程序,请使用
efibootmgr
实用程序切回到从网络引导。
置备过程遵循基本的 PXE 工作流:
- 您可以创建一个主机并选择域和子网。卫星从 DHCP 胶囊服务器请求与卫星中与子网或 PostgreSQL 数据库关联的可用 IP 地址。卫星将此 IP 地址加载到 Create Host 窗口中的 IP 地址字段中。完成新主机的所有选项后,提交新主机请求。
根据主机及其域和子网的配置规格,Satellite 会创建以下设置:
- 与子网关联的胶囊服务器上的 DHCP 记录。
- 与域关联的胶囊服务器上的转发 DNS 记录。
- 与子网关联的 DNS 胶囊服务器上的反向 DNS 记录。
- 与子网关联的 TFTP 胶囊服务器中的 host,Frub2、Grub2 和 iPXE 配置文件。
- 关联的 Puppet 服务器上的 Puppet 证书。
- 关联的身份服务器上的域。
- 主机配置为从网络引导为第一个设备,HDD 作为第二个设备。
- 新主机从 DHCP 服务器请求 DHCP 保留。
-
DHCP 服务器响应保留请求,并返回 TFTP
下一个服务器
和文件名选项。 - 主机根据 PXELoader 设置从 TFTP 服务器请求引导装载程序和菜单。
- 通过 TFTP 返回引导装载程序。
- 引导装载程序通过其置备接口 MAC 地址获取主机的配置。
- 引导装载程序获取操作系统安装程序内核、init RAM 磁盘和引导参数。
- 安装程序从 Satellite 请求自定义模板。
- 卫星呈现 provision 模板并将结果返回到主机。
安装程序执行操作系统的安装。
- 安装程序使用 Subscription Manager 将主机注册到 Satellite。
-
安装程序安装管理工具,如
katello-agent
和puppet
。 -
安装程序
会在安装后脚本中通知 Satellite 成功构建
。
- PXE 配置文件恢复到本地引导模板。
- 主机重启。
- 新主机从 DHCP 服务器请求 DHCP 保留。
-
DHCP 服务器响应保留请求,并返回 TFTP
下一个服务器
和文件名选项。 - 主机根据 PXELoader 设置从 TFTP 服务器请求引导加载器和菜单。
- 通过 TFTP 返回引导装载程序。
- 引导装载程序通过其置备接口 MAC 地址获取主机的配置。
- 引导装载程序从本地驱动器启动引导。
- 如果将主机配置为使用任何 Puppet 类,则主机将使用模块来配置其自身。
完全置备的主机执行以下工作流:
- 主机配置为从网络引导为第一个设备,HDD 作为第二个设备。
- 新主机从 DHCP 服务器请求 DHCP 保留。
-
DHCP 服务器响应保留请求,并返回 TFTP
下一个服务器
和文件名选项。 - 主机根据 PXELoader 设置从 TFTP 服务器请求引导装载程序和菜单。
- 通过 TFTP 返回引导装载程序。
- 引导装载程序通过其置备接口 MAC 地址获取主机的配置设置。
对于 BIOS 主机:
- 引导装载程序返回不可引导的设备,因此 BIOS 会跳至下一个设备(从 HDD 引导)。
对于 EFI 主机:
- 引导装载程序在 ESP 分区中找到 Grub2 并链接引导它。
- 如果主机 Satellite 未知,则会提供默认引导装载程序配置。当启用 Discovery 服务时,它会引导至发现,否则它将从 HDD 引导。
这个工作流根据自定义选项的不同。例如:
- Discovery(发现)
- 如果您使用发现服务,Satellite 会自动检测新主机的 MAC 地址,并在提交请求后重启主机。请注意,TCP 端口 8443 必须可以被附加到主机的胶囊访问,以便 Satellite 重新启动主机。
- 无 PXE 调配
- 提交新主机请求后,您必须使用从 Satellite 下载并使用主机的 USB 端口来引导特定的主机。
- 计算资源
卫星创建虚拟机并检索 MAC 地址并在 Satellite 中存储 MAC 地址。如果您使用基于镜像的置备,则主机不会遵循标准的 PXE 引导和操作系统安装。计算资源创建供主机使用的镜像副本。根据 Satellite 中的镜像设置,可以在 中传递数据进行初始配置,例如使用
cloud-init
。卫星可以利用 SSH 连接到主机并执行模板来完成自定义。注意默认情况下,从 Satellite 中删除置备的配置集主机不会破坏外部计算资源上的实际虚拟机。要在删除 Satellite 上的主机条目时销毁虚拟机,请导航到 Administer > Settings > Provisioning 并使用 destroy_vm_on_host_delete 设置来配置此行为。如果您没有销毁关联的虚拟机,并试图在以后使用相同的资源名称创建新虚拟机,则会失败,因为虚拟机名称已存在于外部计算资源中。您仍然可以使用标准主机注册工作流将现有虚拟机注册到 Satellite,以用于任何已调配的主机。
第 2 章 配置置备资源
2.1. 置备上下文
调配上下文是您为 Satellite 组件指定的组织和位置的组合。组件所属机构和位置,为该组件设置所有权和访问权限。
组织根据所有权、目的、内容、安全级别和其他部门将红帽卫星组件划分为逻辑组。您可以通过 Red Hat Satellite 创建和管理多个机构,并为每个单独的机构分配组件。这样可保证卫星服务器在特定机构中置备主机,且只使用分配给该机构的组件。如需有关组织的更多信息,请参阅管理 红帽卫星中的组织。
位置功能与组织类似。差别在于,位置基于物理或地理设置。用户可以将位置嵌套在层次结构中。有关位置的更多信息,请参阅 管理红帽卫星 中的位置。
2.2. 设置置备上下文
设置调配上下文时,您要定义要用于调配主机的组织和位置。
组织和位置菜单位于卫星 Web UI 左上方的菜单栏中。如果您尚未选择要使用的组织和位置,则将显示菜单: 任何 组织和任何位置 。
流程
- 单击 Any Organization 并选择 组织。
- 单击 Any Location,再选择要使用的位置。
每个用户都可以在帐户设置中设置其默认置备上下文。单击卫星 Web UI 右上角的用户名,再选择 My account 来编辑用户帐户设置。
CLI 过程
在使用 CLI 时,请将
--organization
或--organization-label
和--location
或--location-id
包含在内。例如:# hammer host list --organization "My_Organization" --location "My_Location"
此命令输出分配给
My_Organization
和My_Location
的主机。
2.3. 创建操作系统
操作系统是资源的集合,用于定义卫星服务器如何在主机上安装基础操作系统。操作系统条目组合之前定义的资源,如安装介质、分区表、自定义模板等。
从红帽的 CDN 导入操作系统会在 Hosts > Operating Systems 页面中创建新的条目。
您还可以按照以下流程添加自定义操作系统。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入 Hosts > Operating systems 并点 New Operating system。
- 在 Name 字段中输入一个代表操作系统条目的名称。
- 在 Major 字段中输入与操作系统主要版本对应的数字。
- 在 Minor 字段中输入与操作系统的次版本对应的数字。
- 在 Description 字段中输入操作系统的描述。
- 从 Family 列表中,选择操作系统系列。
- 从 Root 密码散列 列表中,为 root 密码选择编码方法。
- 从 架构 列表中,选择操作系统使用的架构。
- 点 Partition table 选项卡,然后选择适用于此操作系统的可能分区表。
- 可选:如果您使用非红帽内容,点安装介质标签并选择适用于这个操作系统的安装介质。如需更多信息,请参阅在 Satellite 中添加安装介质。
- 单击 Templates 选项卡,再选择 PXELinux 模板、Provisioning 模板,以及供您的操作系统使用的 Finish 模板。如果计划使用 iPXE 进行调配,则可以选择其他模板,如 iPXE 模板。
- 单击 Submit 以保存您的置备模板。
CLI 过程
使用
hammer os create
命令创建操作系统:# hammer os create \ --architectures "x86_64" \ --description "My_Custom_Operating_System" \ --family "Redhat" \ --major 7 \ --media "Red_Hat" \ --minor 3 \ --name "My_Operating_System" \ --partition-tables "My_Partition" \ --provisioning-templates "My_Provisioning_Template"
2.4. 更新多个操作系统的详情
使用此流程更新多个操作系统的详情。本例演示了如何为每个操作系统分配一个名为 Kickstart default
的分区表、名为 Kickstart default PXELinux
的配置模板,以及名为 Kickstart Default
的自定义模板。
流程
在卫星服务器上,运行以下 Bash 脚本:
PARTID=$(hammer --csv partition-table list | grep "Kickstart default," | cut -d, -f1) PXEID=$(hammer --csv template list --per-page=1000 | grep "Kickstart default PXELinux" | cut -d, -f1) SATID=$(hammer --csv template list --per-page=1000 | grep "provision" | grep ",Kickstart default" | cut -d, -f1) for i in $(hammer --no-headers --csv os list | awk -F, {'print $1'}) do hammer partition-table add-operatingsystem --id="${PARTID}" --operatingsystem-id="${i}" hammer template add-operatingsystem --id="${PXEID}" --operatingsystem-id="${i}" hammer os set-default-template --id="${i}" --config-template-id=${PXEID} hammer os add-config-template --id="${i}" --config-template-id=${SATID} hammer os set-default-template --id="${i}" --config-template-id=${SATID} done
显示更新的操作系统的信息,以验证操作系统是否已正确更新:
# hammer os info --id 1
2.5. 创建架构
卫星中的架构代表主机和操作系统的逻辑分组。当主机签入到 Puppet 时,卫星会自动创建架构。已在 Satellite 中预设置 i386 和 x86_64 架构。
使用此流程在 Satellite 中创建架构。
支持的构架
只支持 Intel x86_64 架构,使用 PXE、Discovery 和引导磁盘进行置备。如需更多信息,请参阅 Satellite 6 中的红帽知识库解决方案支持的架构和置备场景。
流程
- 在 Satellite Web UI 中,进入 Hosts > Architectures 并点 Create Architecture。
- 在 Name 字段中输入构架的名称。
- 从 Operating Systems 列表中,选择一个操作系统。如果没有可用,您可以在 Hosts > Operating Systems 下创建并分配它们。
- 点 Submit。
CLI 过程
输入
hammer architecture create
命令以创建构架。指定包括此架构的名称和操作系统:# hammer architecture create \ --name "My_Architecture" \ --operatingsystems "My_Operating_System"
2.6. 创建硬件模型
使用这个流程在 Satellite 中创建硬件模型,以便您可以指定主机使用的硬件模型。
流程
- 在 Satellite Web UI 中,进入 Hosts > Hardware Models 并点 Create Model。
- 在 Name 字段中输入硬件模型的名称。
- (可选)在 Hardware Model 和 Vendor Class 字段中,您可以为您的系统输入对应的信息。
- 在 Info 字段中,输入硬件模型的描述。
- 点 Submit 保存您的硬件模型。
CLI 过程
使用
hammer 模型 create 命令创建硬件模型
。唯一必需的参数是--name
。(可选)使用--hardware-model
选项输入硬件模型、带有--vendor-class
选项的供应商类,以及一个带有--info
选项的描述:# hammer model create \ --hardware-model "My_Hardware_Model" \ --info "My_Description" \ --name "My_Hardware_Model_Name" \ --vendor-class "My_Vendor_Class"
2.7. 为主机操作系统使用同步的 Kickstart 存储库
Satellite 包含一组同步的 kickstart 存储库,用于安装调配的主机操作系统。有关添加存储库的更多信息,请参阅管理内容 中的 同步存储库。
使用这个流程设置 kickstart 存储库。
先决条件
在置备前,您必须同时启用 BaseOS 和 Appstream Kickstart。
流程
添加您要用于现有内容视图的同步 kickstart 存储库,或创建新内容视图并添加 kickstart 存储库。
对于 Red Hat Enterprise Linux 8,请确保同时添加了 Red Hat Enterprise Linux 8 for x86_64 - AppStream Kickstart x86_64 8 和 Red Hat Enterprise Linux 8 for x86_64 - BaseOS Kickstart x86_64 8 软件仓库。
如果您使用断开连接的环境,则需要从 Red Hat Enterprise Linux 二进制 DVD 中导入 Kickstart 软件仓库。如需更多信息,请参阅管理 内容中的导入 Kickstart 存储库 。
- 发布添加 kickstart 存储库的内容视图的新版本,并将其提升到所需的生命周期环境。如需更多信息,请参阅管理内容 中的 管理内容视图 。
- 当您创建主机时,在 Operating System 选项卡中,选择 Media Selection,选择 Synced Content 复选框。
要查看 kickstart 树,请输入以下命令:
# hammer medium list --organization "My_Organization"
2.8. 将安装介质添加到 Satellite
安装介质是卫星服务器用于从外部存储库在机器上安装基础操作系统的软件包源。您可以使用此参数安装第三方内容。红帽内容通过存储库同步方式交付。
安装介质必须采用操作系统安装树的格式,且必须通过 HTTP URL 托管安装程序的计算机进行访问。您可以通过导航到 Hosts > Installation Media 菜单来查看安装介质。
默认情况下,Satellite 包含一些官方 Linux 发行版的安装介质。请注意,有些安装介质适用于操作系统的特定版本。例如,CentOS mirror(7.x) 必须用于 CentOS 7 或更早版本,而 CentOS 8 或更高版本必须使用 CentOS(8.x)镜像 (8.x)。
如果您想在使用安装介质在多个主机上安装操作系统时提高下载性能,您必须修改 安装介质的路径以指向最接近的镜像或本地副本。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Installation Media 并点 Create Medium。
- 在 Name 字段中输入代表安装介质条目的名称。
在 Path 中输入包含安装树的 URL 或 NFS 共享。您可以在路径中使用以下变量来代表多个不同的系统架构和版本:
-
$arch
- 系统架构。 -
$version
- 操作系统版本。 -
$major
- 操作系统主要版本。 $minor
- 操作系统次版本。HTTP 路径示例:
http://download.example.com/centos/$version/Server/$arch/os/
NFS 路径示例:
nfs://download.example.com:/centos/$version/Server/$arch/os/
胶囊服务器上同步的内容始终使用 HTTP 路径。胶囊服务器受管内容不支持 NFS 路径。
-
-
从 Operating System family 列表中,选择安装介质的分布或系列。例如,CentOS 和 Fedora 位于
Red Hat
系列中。 - 单击 Organizations 和 Locations 选项卡,以更改调配上下文。Satellite 服务器将安装介质添加到组置备上下文中。
- 点 Submit 保存您的安装介质。
CLI 过程
使用
hammer medium create
命令创建安装介质:# hammer medium create \ --locations "My_Location" \ --name "My_OS" \ --organizations "My_Organization" \ --os-family "Redhat" \ --path "http://download.example.com/centos/$version/Server/$arch/os/"
2.9. 创建分区表
分区表是模板类型,用于定义卫星服务器配置新主机上可用磁盘的方式。分区表使用与置备模板相同的 ERB 语法。Red Hat Satellite 包含一组要使用的默认分区表,包括 Kickstart 默认
。您还可以编辑分区表条目来配置首选的分区方案,或创建一个分区表条目并将其添加到操作系统条目中。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入 Hosts > Partition Tables 并点 Create Partition Table。
- 在 Name 字段中输入分区表的名称。
- 如果要设置模板以自动与新机构或位置关联,请选择 Default 复选框。
- 如果您想将模板标识为其他分区表的可重用片断,请选择 Snippet 复选框。
- 从 Operating System Family 列表中,选择分区布局的分布或系列。例如,Red Hat Enterprise Linux、CentOS 和 Fedora 均位于 Red Hat 系列中。
在 Template 编辑器 字段中,输入磁盘分区的布局。例如:
zerombr clearpart --all --initlabel autopart
您还可以使用 Template 文件浏览器上传模板文件。
布局的格式必须与预期的操作系统匹配。例如,Red Hat Enterprise Linux 需要与 kickstart 文件匹配的布局。
- 在 Audit Comment 字段中,为分区布局添加更改摘要。
- 单击 Organizations 和 Locations 选项卡,以添加您要与分区表关联的任何其他置备上下文。卫星将分区表添加到当前的置备上下文中。
- 点 Submit 保存您的分区表。
CLI 过程
-
在使用 CLI 创建分区表前,创建一个包含分区布局的纯文本文件。这个示例使用
~/my-partition
文件。 使用
hammer partition-table create
命令创建安装介质:# hammer partition-table create \ --file "path/to/my_partition_table" \ --locations "My_Location" \ --name "My Partition Table" \ --organizations "My_Organization" \ --os-family "My_OS_Family" \ --snippet false
2.10. 动态分区示例
使用 Anaconda kickstart 模板时,以下部分指示 Anaconda 清除整个磁盘,自动分区,增大一个分区的最大大小,然后继续执行置备过程中的下一个事件序列:
zerombr clearpart --all --initlabel autopart <%= host_param('autopart_options') %>
动态分区由安装程序执行。因此,您可以自行编写规则,以指定根据节点运行时信息对磁盘进行分区,例如:磁盘大小、驱动器、厂商或制造商。
如果要置备服务器并使用动态分区,请将以下示例添加为模板。当包含 #Dynamic
条目时,模板的内容将加载到 %pre
shell scriplet 中,并创建包含在 Kickstart 分区部分中的 /tmp/diskpart.cfg
。
#Dynamic (do not remove this line) MEMORY=$((`grep MemTotal: /proc/meminfo | sed 's/^MemTotal: *//'|sed 's/ .*//'` / 1024)) if [ "$MEMORY" -lt 2048 ]; then SWAP_MEMORY=$(($MEMORY * 2)) elif [ "$MEMORY" -lt 8192 ]; then SWAP_MEMORY=$MEMORY elif [ "$MEMORY" -lt 65536 ]; then SWAP_MEMORY=$(($MEMORY / 2)) else SWAP_MEMORY=32768 fi cat <<EOF > /tmp/diskpart.cfg zerombr yes clearpart --all --initlabel part /boot --fstype ext4 --size 200 --asprimary part swap --size "$SWAP_MEMORY" part / --fstype ext4 --size 1024 --grow EOF
2.11. 自定义模板
虚拟机模板定义了卫星服务器在主机上安装操作系统的方式。
红帽卫星包括许多模板示例。在 Satellite Web UI 中,导航到 Hosts > Provisioning templates 来查看它们。您可以创建模板或克隆模板并编辑克隆。如需与模板相关的帮助,请进入 Hosts > Provisioning templates > Create Template > Help。
红帽支持的模板由红帽图标表示。
要隐藏不支持的模板,在 Satellite Web UI 中导航到 Administer > Settings。在 Provisioning 选项卡中,将 Show unsupported provisioning templates 的值设置为 false
,然后单击 Submit。您还可以通过创建以下查询 "supported = true" 来过滤支持的模板。
如果克隆受支持的模板,则克隆的模板将不被支持。
模板接受嵌入式 Ruby(ERB)语法。有关更多信息,请参阅管理 主机 中的模板编写 参考 。
您可以下载自定义模板。在下载模板前,您必须创建 debug 证书。如需更多信息,请参阅在 管理 Red Hat Satellite 中创建机构 Debug 证书。
您可以在卫星服务器和 Git 存储库或本地目录间同步模板。有关更多信息,请参阅管理主机 中的 同步模板存储库 。
要查看应用于模板的更改历史记录,请导航到 Hosts > Provisioning templates,选择其中一个模板,然后单击 History。点 Revert 使用之前的版本覆盖内容。您还可以恢复到更早的更改。点击 Show Diff 查看有关特定更改的信息:
- Template Diff 选项卡显示置备模板的正文更改。
- Details 标签显示模板描述中的更改。
- History 标签页显示更改更改的用户。
2.12. 调配模板的类型
有多种置备模板类型:
- provision
- 置备过程的主要模板。例如,一个 kickstart 模板。有关 kickstart 模板语法的详情,请查看 Red Hat Enterprise Linux 7 安装指南中的 Kickstart 语法参考。
- PXELinux, PXEGrub, PXEGrub2
- 基于 PXE 的模板部署到与子网关联的模板胶囊,以确保主机使用正确的内核选项安装程序。对于 BIOS 置备,请选择 PXELinux template。对于 UEFI 置备,请选择 PXEGrub2。
- finish
当主置备过程完成后,配置后脚本以使用 SSH 连接执行。您只能在不支持 user_data 的虚拟或云环境中使用 Finishing 模板进行基于镜像的置备。请勿将镜像与 foreman 发现 ISO(有时也称为 Foreman 发现镜像)混淆。此上下文中的镜像是虚拟环境中的安装镜像,便于轻松部署。
当完成脚本使用返回代码
0
时成功退出时,Red Hat Satellite 会将代码视为成功,主机会退出构建模式。请注意,有些完成脚本带有构建模式,它们使用 调用后 HTTP 调用。这些脚本不用于基于镜像的调配,而是用于后续的操作系统安装配置,如 Debian、Ubuntu 和 BSD。- user_data
接受自定义数据的供应商的配置后脚本(也称为 seed 数据)。您只能使用 user_data 模板在云或虚拟化环境中置备虚拟机。此模板不需要卫星能够访问主机;云或虚拟化平台负责向镜像传输数据。
确保您要置备的镜像具有读取安装数据并设置为在启动过程中启动的软件。例如,
cloud-init
需要 YAML 输入或ignition
,它预期 JSON 输入。- cloud_init
有些环境(如 VMWare)不支持自定义数据,或者有自己的数据格式来限制自定义过程中可以执行的操作。在这种情况下,您可以使用
foreman
插件配置 cloud-init 客户端,它会尝试直接通过 HTTP 或 HTTPS 从 Satellite 下载模板。这种技术可在任何环境中(最好虚拟化)中使用。确保您满足以下条件来使用
cloud_init
模板:- 确保您要置备的镜像具有读取安装数据并设置为在启动过程中启动的软件。
调配的主机可以从 IP 地址访问卫星,该地址与主机的调配接口 IP 匹配。
请注意,cloud-init 无法在 NAT 后面工作。
- Bootdisk
- 用于无 PXE 的引导方法模板。
- 内核执行(kexec)
用于无 PXE 的引导方法的内核执行模板。
注意内核执行技术预览功能。Red Hat Subscription 服务等级协议(SLA)可能无法正常工作,且不适用于生产环境。但是,这些功能可以提前访问最新的产品创新,使客户能够在开发过程中测试功能并提供反馈意见。
- 脚本
- 默认不使用的任意脚本,但可用于自定义任务。
- ZTP
- 零接触配置模板.
- POAP
- PowerOn 自动配置模板。
- iPXE
-
要使用的
iPXE
或gPXE
环境模板。
2.13. 创建自定义模板
虚拟机模板定义了卫星服务器在主机上安装操作系统的方式。使用此流程创建新置备模板。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Provisioning Templates,再点击 Create Template。
- 在 Name 字段中输入置备模板的名称。
- 根据需要填写其余字段。Help 选项卡提供有关模板语法的信息,并详细说明了在模板中不同类型的对象上可用的功能、变量和方法。
CLI 过程
-
在使用 CLI 创建模板之前,先创建一个包含模板的纯文本文件。这个示例使用
~/my-template
文件。 使用
hammer template create
命令创建模板,并使用--type
选项指定类型:# hammer template create \ --file ~/my-template \ --locations "My_Location" \ --name "My_Provisioning_Template" \ --organizations "My_Organization" \ --type provision
2.14. 克隆置备模板
虚拟机模板定义了卫星服务器在主机上安装操作系统的方式。使用这个流程克隆模板,并在克隆中添加更新。
流程
- 在 Satellite web UI 中,进入 Hosts > Provisioning Templates 并搜索要使用的模板。
- 点 Clone 复制模板。
- 在 Name 字段中输入置备模板的名称。
- 选择 Default 复选框,将模板设置为自动与新组织或位置关联。
- 在 Template 编辑器 字段中,输入自定义模板的正文。您还可以使用 Template 文件浏览器上传模板文件。
- 在 Audit Comment 字段中,输入对置备模板的更改摘要,以便进行审核。
- 点 Type 选项卡,如果模板是一个代码片段,请选择 Snippet 复选框。片段不是独立自定义模板,但可插入到其他调配模板的自定义模板的一部分。
- 从 Type 列表,选择模板的类型。例如,置备模板。
- 点 Association 选项卡和 Applicable Operating Systems 列表中,选择您要与置备模板关联的操作系统名称。
- (可选)单击 Add combination,然后从 Host Group 列表中选择一个主机组,或者从 Environment 列表中选择一个环境,以将置备模板与主机组和环境关联。
- 单击 Organizations 和 Locations 选项卡,将任何其他上下文添加到模板。
- 单击 Submit 以保存您的置备模板。
2.15. 创建自定义置备片断
自定义置备片断允许您在主机置备过程中执行自定义代码。您可以在置备过程之前和/或之后运行代码。
前提条件
- 根据您的置备模板,存在多个自定义片断 hook,您可以使用它来包含自定义置备片断。确保您首先检查置备模板,以验证您可以使用的自定义片断。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Provisioning Templates,再点击 Create Template。
在 Name 字段中输入自定义置备片断的名称。名称必须以置备模板的名称开头,该模板支持包括自定义置备片断:
- 将 ' custom pre' 附加到置备模板的名称中,以便在置备主机前运行代码。
- 将 ' custom post' 附加到置备模板的名称中,以便在置备主机后运行代码。
- 在 Type 选项卡中,选择 Snippet。
- 单击 Submit 以创建您的自定义置备片断。
CLI 过程
- 在使用 CLI 创建模板之前,先创建一个包含自定义代码片段的纯文本文件。
使用
hammer
创建模板:# hammer template create \ --file "/path/to/My_Snippet" \ --locations "My_Location" \ --name "My_Template_Name_custom_pre" \ --organizations "_My_Organization" \ --type snippet
2.16. Red Hat Enterprise Linux 的自定义配置片段示例
在置备主机后,您可以使用自定义 Post
片段直接从置备模板内部调用外部 API。
Kickstart 默认完成 Red Hat Enterprise Linux 的自定义后
示例
echo "Calling API to report successful host deployment" yum install -y curl ca-certificates curl -X POST \ -H "Content-Type: application/json" \ -d '{"name": "<%= @host.name %>", "operating_system": "<%= @host.operatingsystem.name %>", "status": "provisioned",}' \ "https://api.example.com/"
2.17. 创建计算配置集
您可以使用计算配置集来预定义虚拟机硬件详情,如 CPU、内存和存储。Red Hat Satellite 的默认安装包含三个预定义的配置集:
-
1-Small
-
2-medium
-
3-Large
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Profiles,再点击 Create Compute Profile。
- 在 Name 字段中输入配置集的名称。
- 点 Submit。此时会打开一个新窗口,其中包含计算配置文件的名称。
- 在新窗口中,单击每个计算资源的名称,再编辑您要为此计算配置文件设置的属性。
2.18. 为主机设置默认加密根密码
如果您不想为您置备的主机设置纯文本默认 root 密码,您可以使用默认加密密码。
默认的 root 密码可以被主机组继承,并可由该组中的主机匹配。
如果您更改密码并重新置备了继承密码的组中的主机,则主机上的密码会被覆盖。
流程
生成加密的密码:
# python -c 'import crypt,getpass;pw=getpass.getpass(); print(crypt.crypt(pw)) if (pw==getpass.getpass("Confirm: ")) else exit()'
- 复制密码以供以后使用。
- 在 Satellite Web UI 中,导航到 Administer > Settings。
- 在 Settings 页面中,选择 Provisioning 选项卡。
- 在 Name 列中,导航到 Root 密码,然后单击 单击以编辑。
- 粘贴加密的密码,然后单击保存。
2.19. 使用 noVNC 访问虚拟机
您可以使用浏览器访问由 Satellite 创建的虚拟机的 VNC 控制台。
Satellite 在以下虚拟化平台中支持使用 noVNC:
- VMware
- libvirt
- Red Hat Virtualization
先决条件
- 您必须有由 Satellite 创建的虚拟机。
- 对于现有虚拟机,请确保 Compute Resource settings 中的 Display 类型是 VNC。
- 您必须将 Katello root CA 证书导入到卫星服务器中。在浏览器中添加安全异常不足以用 noVNC。如需更多信息,请参阅在 管理 Red Hat Satellite 中安装 Katello Root CA 证书。
流程
- 在 VM 主机系统中,将防火墙配置为允许端口 5900 到 5930 的 VNC 服务:
# iptables -A INPUT -p tcp --dport 5900:5930 -j ACCEPT # service iptables save
+
+
# firewall-cmd --add-port=5900-5930/tcp # firewall-cmd --add-port=5900-5930/tcp --permanent
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources 并选择计算资源的名称。
- 在 Virtual Machines 选项卡中,选择虚拟机名称。确保机器已开启,然后选择 Console。
第 3 章 配置网络
每种置备类型需要一些网络配置。使用本章在卫星服务器上配置集成胶囊中的网络服务。
新主机必须有权访问您的胶囊服务器。胶囊服务器可以是您在卫星服务器上的集成胶囊,也可以是外部胶囊服务器。当主机位于隔离的网络上且无法直接连接到卫星服务器,或者内容与胶囊服务器同步时,您可能希望从外部胶囊服务器调配主机。使用外部胶囊服务器进行调配可以在网络带宽上保存。
配置胶囊服务器需要两个基本要求:
配置网络服务.这包括:
- 内容交付服务
- 网络服务(DHCP、DNS 和 TFTP)
- Puppet 配置
- 在卫星服务器中定义网络资源数据,以帮助在新主机上配置网络接口。
以下说明有类似的应用程序配置单机胶囊来管理特定网络。要将卫星配置为使用外部 DHCP、DNS 和 TFTP 服务,请参阅在 连接的网络环境中安装卫星服务器 中配置 外部服务。
3.1. 事实和 NIC 过滤
事实描述了主机报告的总内存、操作系统版本或架构等方面。您可以在 Monitor > Facts 和搜索主机中查找事实,或通过事实或在模板中使用事实。
Satellite 从多个源收集事实:
-
订阅管理器
-
ansible
-
puppet
Satellite 是主机和网络接口的清单系统。对于虚拟机监控程序或容器主机,为每个主机添加数千个接口,每几分钟添加数千接口,每分钟即可更新清单。对于报告的每个单独 NIC,Satellite 都会创建一个 NIC 条目,这些条目永远不会从数据库中删除。解析所有事实和比较数据库中的所有记录会导致卫星非常慢且不可用。要优化各种操作的性能,最重要的是导入,您可以使用 Administer > Settings 下的 Facts 选项卡上提供的选项。
3.2. 通过从数据库中删除 NIC 来优化性能
使用 Satellite 中存储的事实的 Exclude 模式和
带有匹配标识符选项的 Ignore 接口过滤和
排除连接。默认情况下,这些选项设置为最常见的虚拟机监控程序。如果您以不同的方式命名虚拟接口,您可以根据自己的要求更新此过滤器以使用它。
流程
- 在 Satellite Web UI 中,导航到 Administer > Settings 并选择 Facts 选项卡。
-
要过滤以特定名称开头的所有接口,例如
blu
*,将blu*
添加到具有匹配标识符选项的 Ignore 接口
。 要防止数据库存储以特定名称开头的与接口相关的事实,如
blu
,将blu*
添加到Satellite 选项中存储的事实
。默认情况下,它包含
与具有匹配标识符选项的 Ignore 接口
相同的列表。您可以根据您的要求覆盖它。这会在不存储它们的情况下完全过滤出事实。要从数据库中删除事实,请输入以下命令:
# foreman-rake facts:clean
此命令移除在 Administer > Settings > Facts > The
Exclude pattern of stored in Satellite
选项中存储的过滤器的所有事实。要从数据库中删除接口,请输入以下命令:
# foreman-rake interfaces:clean
此命令删除所有与在 Administer > Settings > Facts > 中添加的过滤器匹配的接口,该
Ignore 接口带有匹配的标识符
选项。
3.3. 网络资源
Satellite 包含必须设置并配置的网络资源来创建主机。它包括以下网络资源:
- 域
-
您必须将由 Satellite 管理的每个主机分配到某个域。卫星可以使用域来管理 A、AAAA 和 PTR 记录。即使您不希望 Satellite 管理 DNS 服务器,仍必须至少创建并关联一个域。域包含在命名规则中,例如,
example.com
域中的名称为test123
的主机具有完全限定域名test123。
- 子网
您必须将由 Satellite 管理的每个主机分配给子网。利用子网,卫星便可管理 IPv4 保留。如果没有保留集成,您仍必须创建并关联至少一个子网。当您在 Satellite 中管理子网时,您无法为 Satellite 之外的该子网创建 DHCP 记录。在 Satellite 中,您可以使用 IP 地址管理(IPAM)通过以下选项之一管理 IP 地址:
DHCP :DHCP Capsule 通过查找从范围的第一个地址开始并跳过保留的所有地址开始的下一个可用 IP 地址来管理 IP 地址分配。在分配 IP 地址之前,Capsule 会发送 ICMP 和 TCP ping 来检查 IP 地址是否在使用。请注意,如果主机已关闭,或者将防火墙配置为禁用连接,卫星会误认为 IP 地址可用。此检查不适用于关闭的主机,因此 DHCP 选项只能与 Satellite 控制和没有外部创建的任何主机的子网一起使用。
Capsule DHCP 模块在短时间内保留提供的 IP 地址,以防止并发访问期间发生冲突,因此 IP 范围内的一些 IP 地址可能会临时保持未使用。
- 内部 DB :卫星通过按顺序从 Satellite 数据库排除所有 IP 地址,从而从子网范围中找到下一个可用 IP 地址。数据的主要来源是数据库,而不是 DHCP 保留。当有多个主机被并行创建时,这个 IPAM 并不安全 ; 在这种情况下,使用 DHCP 或 Random DB IPAM。
- 随机 DB :卫星通过随机排除卫星数据库中的所有 IP 地址,从子网范围中找到下一个可用 IP 地址。数据的主要来源是数据库,而不是 DHCP 保留。这个 IPAM 可以安全地与并发主机创建一起使用,因为 IP 地址会随机返回,从而尽量减小冲突的机会。
- EUI-64: 根据 RFC2373 生成 64 位 IPv6 地址的扩展唯一标识符(EUI)通过 48 位 MAC 地址获得。
- 外部 IPAM :通过胶囊功能,将 IPAM 委派给外部系统。Satellite 目前不提供任何外部 IPAM 实施,但几个插件正在开发中。
none :必须手动输入每个主机的 IP 地址。
选项 DHCP、内部 DB 和 Random DB 可能会导致 DHCP 与外部创建的记录冲突。这些子网必须受独占卫星控制。
有关添加子网的更多信息,请参阅 第 3.9 节 “将子网添加到卫星服务器”。
- DHCP 范围
- 您可以为发现和配置的系统在卫星服务器中定义相同的 DHCP 范围,但在同一子网中每个服务都使用单独的范围。
3.4. Satellite 和 DHCP 选项
卫星通过 DHCP 胶囊管理 DHCP 预留。卫星还设置 next-server
和 文件名
DHCP 选项。
next-server 选项
next-server
选项提供 TFTP 服务器的 IP 地址以便从中引导。默认情况下不设置这个选项,且必须为每个 TFTP 胶囊设置。您可以使用带有 --foreman-proxy-tftp-servername
选项的 satellite-installer
命令,在 /etc/foreman-proxy/settings.d/tftp.yml
文件中设置 TFTP 服务器:
# satellite-installer --foreman-proxy-tftp-servername 1.2.3.4
然后,每个 TFTP 胶囊都会通过 API 报告此设置,并在创建 DHCP 记录时检索配置信息。
当 PXE 装载程序设置为 none
时,卫星不会将 next-server
选项填充 DHCP 记录。
如果 next-server
选项没有定义,Satellite 将使用反向 DNS 搜索来查找要分配的 TFTP 服务器地址,但您可能会遇到以下问题:
- 置备过程中 DNS 超时
- 查询不正确的 DNS 服务器。例如,权威而不是缓存
-
有关 TFTP 服务器错误 IP 地址的错误。例如:
PTR 记录无效
如果您遇到这些问题,请检查 Satellite 和 Capsule 上的 DNS 设置,特别是 PTR 记录解析。
文件名选项
filename
选项包含文件在置备过程中下载和执行的完整路径。为主机或主机组选择的 PXE 加载程序定义了要使用的 文件名
选项。当 PXE 装载程序设置为 none
时,卫星不会将 filename
选项填充到 DHCP 记录中。根据 PXE loader 选项,文件名
更改如下:
PXE loader 选项 | 文件名条目 | 备注 |
---|---|---|
PXELinux BIOS |
| |
PXELinux UEFI |
| |
iPXE 链 BIOS |
| |
PXEGrub2 UEFI |
| x64 可能会根据构架的不同 |
iPXE UEFI HTTP |
|
需要 |
Grub2 UEFI HTTP |
|
需要 |
3.5. 对 Satellite 中的 DHCP 问题进行故障排除
卫星可以在内部或外部 DHCP 胶囊上管理 ISC DHCP 服务器。Satellite 可以列出、创建和删除 DHCP 保留和租期。但是,您可能会遇到很多问题。
没有同步 DHCP 记录
在 DHCP 编排过程中发生错误时,卫星数据库中 DHCP 记录和 DHCP 服务器可能无法匹配。要解决这个问题,您必须将 Satellite 数据库中缺少的 DHCP 记录添加到 DHCP 服务器,然后按照以下步骤从 DHCP 服务器中删除不需要的记录:
流程
要预览要添加到 DHCP 服务器中的 DHCP 记录,请输入以下命令:
# foreman-rake orchestration:dhcp:add_missing subnet_name=NAME
如果您对上一步的预览更改满意,请使用
perform=1
参数输入上述命令来应用它们:# foreman-rake orchestration:dhcp:add_missing subnet_name=NAME perform=1
要在 Satellite 中保留 DHCP 记录并同步的 DHCP 服务器,您可以从 DHCP 服务器中删除不需要的 DHCP 记录。请注意,Satellite 假定所有受管 DHCP 服务器不包含第三方记录,因此,此步骤可能会删除这些意外记录。要预览要从 DHCP 服务器中删除哪些记录,请输入以下命令:
# foreman-rake orchestration:dhcp:remove_offending subnet_name=NAME
如果您对上一步的预览更改满意,请使用
perform=1
参数输入上述命令来应用它们:# foreman-rake orchestration:dhcp:remove_offending subnet_name=NAME perform=1
PXE loader 选项更改
当为现有主机更改 PXE loader 选项时,这会导致 DHCP 冲突。唯一的临时解决方案是覆盖 DHCP 条目。
DHCP 文件的权限不正确
操作系统更新可以更新 dhcpd
软件包。这会导致重要目录和文件的权限重置,以便 DHCP 胶囊无法读取所需的信息。
更改 DHCP Capsule 条目
Satellite 仅对分配给设置了 DHCP 胶囊的子网的主机管理 DHCP 记录。如果您创建主机,然后清除或更改 DHCP 胶囊,当您尝试删除主机时,操作会失败。
如果您在不设置 DHCP 胶囊的情况下创建主机,然后尝试设置 DHCP 胶囊,这会导致 DHCP 冲突。
删除 dhcpd.leases 文件中的主机条目
对 DHCP 租期的任何更改都会被附加到 dhcpd.leases
文件的末尾。由于条目被附加到 文件中,因此同一租期的两个条目可能同时存在于 dhcpd.leases
文件中。当同一租期有两个或者多个条目时,文件中的最后一个条目会优先。租期文件中的组、子组和主机声明会以相同的方式处理。如果删除了租期,{ deleted; }
会附加到声明中。
3.6. 基于镜像置备的先决条件
后引导配置方法
使用 完成
启动后配置脚本的镜像需要托管的 DHCP 服务器,如卫星的集成胶囊或外部胶囊。主机必须与 DHCP 胶囊关联的子网创建,主机 IP 地址必须是 DHCP 范围内的有效 IP 地址。
可以使用外部 DHCP 服务,但必须手动输入 IP 地址。必须在 Satellite 中配置与镜像中与配置对应的 SSH 凭据,以启用进行的启动后配置。
在对虚拟机从依赖于后配置脚本的镜像引导时,检查以下项:
- 主机在卫星服务器中分配有子网。
- 该子网具有在卫星服务器中分配的 DHCP 胶囊。
- 主机具有在卫星服务器中分配的有效 IP 地址。
- 使用 DHCP 的虚拟机获取的 IP 地址与卫星服务器中配置的地址匹配。
- 从镜像创建的虚拟机响应 SSH 请求。
- 从镜像创建的虚拟机通过 SSH 授权用户和密码,后者与所部署的镜像相关联。
- Satellite 服务器可通过 SSH 密钥访问虚拟机。这需要虚拟机从卫星服务器接收安装后脚本。
预引导配置方法
使用 cloud-init
脚本的镜像需要 DHCP 服务器,以避免在镜像中包含 IP 地址。首选管理的 DHCP 胶囊。镜像必须配置有 cloud-init
服务,以便在系统引导时启动并获取要在完成配置中使用的脚本或配置数据。
在对虚拟机从依赖于镜像中包含的初始化脚本的镜像引导时,检查以下项:
- 子网中有一个 DHCP 服务器。
-
虚拟机安装并启用
cloud-init
服务。
有关在虚拟机镜像中完成和 cloud-init
脚本的不同支持级别的信息,请参阅红帽客户门户网站上 完成和 cloud-init 脚本支持计算资源的 红帽知识库解决方案。
3.7. 配置网络服务
些调配方法使用胶囊服务器服务。例如,网络可能需要胶囊服务器来充当 DHCP 服务器。网络也可以使用 PXE 引导服务在新主机上安装操作系统。这需要将胶囊服务器配置为使用主 PXE 引导服务:DHCP、DNS 和 TFTP。
使用 satellite-installer
命令以及选项在卫星服务器上配置这些服务。
要在外部胶囊服务器上配置这些服务,请运行 satellite-installer --scenario 胶囊
。
Satellite 服务器使用 eth0
进行外部通信,如连接到红帽的 CDN。
流程
输入
satellite-installer
命令来配置所需的网络服务:# satellite-installer --foreman-proxy-dhcp true \ --foreman-proxy-dhcp-gateway "192.168.140.1" \ --foreman-proxy-dhcp-interface "eth1" \ --foreman-proxy-dhcp-managed true \ --foreman-proxy-dhcp-nameservers "192.168.140.2" \ --foreman-proxy-dhcp-range "192.168.140.10 192.168.140.110" \ --foreman-proxy-dhcp-server "192.168.140.2" \ --foreman-proxy-dns true \ --foreman-proxy-dns-forwarders "8.8.8.8; 8.8.4.4" \ --foreman-proxy-dns-interface "eth1" \ --foreman-proxy-dns-managed true \ --foreman-proxy-dns-reverse "140.168.192.in-addr.arpa" \ --foreman-proxy-dns-server "127.0.0.1" \ --foreman-proxy-dns-zone "example.com" \ --foreman-proxy-tftp true \ --foreman-proxy-tftp-managed true
查找您配置的胶囊服务器:
# hammer capsule list
刷新 Capsule Server 的功能以查看更改:
# hammer capsule refresh-features --name "satellite.example.com"
验证在 Capsule Server 上配置的服务:
# hammer capsule info --name "satellite.example.com"
3.7.1. 使用安装程序的多个子网或域
satellite-installer
选项只允许单个 DHCP 子网或 DNS 域。定义多个子网的一种方法是使用自定义配置文件。
对于每个额外子网或域,在 /etc/foreman-installer/custom-hiera.yaml
文件中创建一个条目:
dhcp::pools: isolated.lan: network: 192.168.99.0 mask: 255.255.255.0 gateway: 192.168.99.1 range: 192.168.99.5 192.168.99.49 dns::zones: # creates @ SOA $::fqdn root.example.com. # creates $::fqdn A $::ipaddress example.com: {} # creates @ SOA test.example.net. hostmaster.example.com. # creates test.example.net A 192.0.2.100 example.net: soa: test.example.net soaip: 192.0.2.100 contact: hostmaster.example.com. # creates @ SOA $::fqdn root.example.org. # does NOT create an A record example.org: reverse: true # creates @ SOA $::fqdn hostmaster.example.com. 2.0.192.in-addr.arpa: reverse: true contact: hostmaster.example.com.
执行 satellite-installer
以进行更改并验证 /etc/dhcp/dhcpd.conf
是否包含相应的条目。然后必须在 Satellite 数据库中定义子网。
3.7.2. 网络配置的 DHCP 选项
- --foreman-proxy-dhcp
-
启用 DHCP 服务。您可以将这个选项设置为
true
或false
。 - --foreman-proxy-dhcp-managed
-
启用 Foreman 管理 DHCP 服务。您可以将这个选项设置为
true
或false
。 - --foreman-proxy-dhcp-gateway
- DHCP 池网关。把它设置为您专用网络上主机的外部网关地址。
- --foreman-proxy-dhcp-interface
-
为 DHCP 服务设置接口以侦听请求。将其设置为
eth1
。 - --foreman-proxy-dhcp-nameservers
-
设置通过 DHCP 向客户端提供的名称服务器的地址。把它设置为
eth1
上卫星服务器的地址。 - --foreman-proxy-dhcp-range
- 用于 Discovered 和 Unmanaged 服务的空格分隔的 DHCP 池范围。
- --foreman-proxy-dhcp-server
- 设置要管理的 DHCP 服务器的地址。
运行 satellite-installer --help
查看更多与 DHCP 和其他胶囊服务相关的选项。
3.7.3. 网络配置的 DNS 选项
- --foreman-proxy-dns
-
启用 DNS 功能。您可以将这个选项设置为
true
或false
。 - --foreman-proxy-dns-provider
- 选择要使用的供应商。
- --foreman-proxy-dns-managed
-
让安装程序管理 ISC BIND。仅在使用
nsupdate
和nsupdate_gss
供应商时相关。您可以将这个选项设置为true
或false
。 - --foreman-proxy-dns-forwarders
- 设置 DNS 转发器。只有在 ISC BIND 由安装程序管理时才会使用。把它设置为您的 DNS 递归。
- --foreman-proxy-dns-interface
-
将接口设置为侦听 DNS 请求。只有在 ISC BIND 由安装程序管理时才会使用。将其设置为
eth1
。 - --foreman-proxy-dns-reverse
- DNS 反向区名称。只有在 ISC BIND 由安装程序管理时才会使用。
- --foreman-proxy-dns-server
-
设置 DNS 服务器的地址。仅限
nsupdate
、nsupdate_gss
和infoblox
供应商使用。 - --foreman-proxy-dns-zone
- 设置 DNS 区名称。只有在 ISC BIND 由安装程序管理时才会使用。
运行 satellite-installer --help
查看更多与 DNS 和其他胶囊服务相关的选项。
3.7.4. 网络配置的 TFTP 选项
- --foreman-proxy-tftp
-
启用 TFTP 服务。您可以将这个选项设置为
true
或false
。 - --foreman-proxy-tftp-managed
-
启用 Foreman 管理 TFTP 服务。您可以将这个选项设置为
true
或false
。 - --foreman-proxy-tftp-servername
- 设置要使用的 TFTP 服务器。确保您使用 Capsule 的 IP 地址。
运行 satellite-installer --help
查看与 TFTP 和其他胶囊服务相关的更多选项。
3.7.5. 通过 NAT 使用 TFTP 服务
您可以通过 NAT 使用卫星 TFTP 服务。为此,在所有 NAT 路由器或防火墙上,您必须在 UDP 端口 69 上启用 TFTP 服务,并启用 TFTP 状态跟踪功能。如需更多信息,请参阅您的 NAT 设备文档。
在 Red Hat Enterprise Linux 7 上使用 NAT:
使用以下命令来允许 UDP 端口 69 上的 TFTP 服务,加载内核 TFTP 状态跟踪模块,并永久保留更改:
# firewall-cmd --add-service=tftp && firewall-cmd --runtime-to-permanent
在 Red Hat Enterprise Linux 6 中使用 NAT:
配置防火墙以允许 69 端口 上的 TFTP 服务 UDP:
# iptables \ --sport 69 \ --state ESTABLISHED \ -A OUTPUT \ -i eth0 \ -j ACCEPT \ -m state \ -p udp # service iptables save
加载
ip_conntrack_tftp
内核 TFTP 状态模块。在/etc/sysconfig/iptables-config
文件中,找到IPTABLES_MODULES
并添加ip_conntrack_tftp
,如下所示:IPTABLES_MODULES="ip_conntrack_tftp"
3.8. 将域添加到卫星服务器
卫星服务器定义了网络上每个主机的域名。卫星服务器必须具有关于域和胶囊服务器的信息,负责域名分配。
检查现有域
卫星服务器可能已经具有作为卫星服务器安装一部分创建的相关域。将上下文切换到 Any Organization
和 Any Location
,然后检查域列表以查看它是否存在。
DNS 服务器配置注意事项
在创建 DNS 记录时,Satellite 会执行冲突 DNS 查找,以验证主机名不在活跃使用中。这个检查针对以下 DNS 服务器之一运行:
- 如果 Administer > Settings > Query local nameserver 设置为 true,则系统范围的解析器。
- 在与主机关联的子网中定义的名称服务器。
- 从 SOA 查询与主机关联的域名中的权威 NS-Records。
如果您在 DNS 冲突解决过程中遇到超时,请检查以下设置:
- 子网名称服务器必须能从卫星服务器访问。
- 域名必须具有从卫星服务器提供的授权(SOA)记录。
-
/etc/resolv.conf
文件中的系统解析器必须具有有效且正常工作的配置。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入 Infrastructure > Domains 并点 Create Domain。
- 在 DNS Domain 字段中,输入完整的 DNS 域名。
- 在 Fullname 字段中,输入域的纯文本名称。
- 单击 Parameters 选项卡,并配置任何域级别的参数,以应用到附加到这个域的主机。例如,要在模板中定义的布尔值或字符串参数。
- 点 Add Parameter,并填写 Name 和 Value 字段。
- 单击位置选项卡,再添加域所在的位置。
- 单击 Organizations 选项卡,再添加域所属的组织。
- 点 Submit 保存更改。
CLI 过程
使用
hammer domain create
命令创建域:# hammer domain create \ --description "My_Domain" \ --dns-id My_DNS_ID \ --locations "My_Location" \ --name "my-domain.tld" \ --organizations "My_Organization"
在本例中,--dns-id
选项使用 1
,这是卫星服务器上集成胶囊的 ID。
3.9. 将子网添加到卫星服务器
您必须为每个子网添加信息到卫星服务器,因为卫星将为新主机配置接口。要配置接口,卫星服务器必须具有连接这些接口的网络的所有信息。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Subnets,然后在 Subnets 窗口中点击 Create Subnet。
- 在 Name 字段中输入子网的名称。
- 在 Description 字段中输入子网的描述。
- 在 Network address 字段中,输入子网的网络地址。
- 在 Network prefix 字段中,输入子网的网络前缀。
- 在 Network mask 字段中,输入子网的网络掩码。
- 在 Gateway 地址字段中,输入子网的外部网关。
- 在主 DNS 服务器 字段中,为子网输入主 DNS。
- 在第二个 DNS 服务器 中,为子网输入二级 DNS。
- 从 IPAM 列表中,选择您要用于 IP 地址管理(IPAM)的方法。有关 IPAM 的详情,请参考 第 3 章 配置网络。
- 输入您选择的 IPAM 方法的信息。单击 Remote Execution 选项卡,再选择控制远程执行的胶囊。
- 单击 Domains 选项卡,再选择应用到此子网的域。
- 单击 Capsules 选项卡,再选择应用到子网中每个服务的胶囊,包括 DHCP、TFTP 和反向 DNS 服务。
- 单击 Parameters 选项卡,再配置任何子网级别的参数,以应用到附加到这个子网的主机。例如,要在模板中定义的布尔值或字符串参数。
- 单击位置选项卡,再选择使用此胶囊的位置。
- 单击 Organizations 选项卡,再选择使用此胶囊的组织。
- 单击 Submit 以保存子网信息。
CLI 过程
使用以下命令创建子网:
# hammer subnet create \ --boot-mode "DHCP" \ --description "My_Description" \ --dhcp-id My_DHCP_ID \ --dns-id My_DNS_ID \ --dns-primary "192.168.140.2" \ --dns-secondary "8.8.8.8" \ --domains "my-domain.tld" \ --from "192.168.140.111" \ --gateway "192.168.140.1" \ --ipam "DHCP" \ --locations "_My_Location" \ --mask "255.255.255.0" \ --name "My_Network" \ --network "192.168.140.0" \ --organizations "My_Organization" --tftp-id My_TFTP_ID \ --to "192.168.140.250" \
在本例中,--dhcp-id
、--dns-id
和 --tftp-id
选项使用 1,这是卫星服务器中集成胶囊的 ID。
第 4 章 使用 Infoblox 作为 DHCP 和 DNS Providers
您可以使用 Capsule Server 连接到您的 Infoblox 应用程序来创建和管理 DHCP 和 DNS 记录,并保留 IP 地址。
支持的 Infoblox 版本为 NIOS 8.0 或更高版本,或 Satellite 6.12 或更高版本。
4.1. Infoblox 限制
所有 DHCP 和 DNS 记录都只能在单个网络或 DNS 视图中进行管理。在 Capsule 上安装 Infoblox 模块并使用 satellite-installer
命令设置视图后,您无法编辑视图。
胶囊服务器使用标准 HTTPS Web API 与单个 Infoblox 节点通信。如果要配置集群和高可用性,请在 Infoblox 中进行配置。
不支持使用 Infoblox 的 TFTP 功能托管与 PXE 相关的文件。您必须使用 Capsule 作为 TFTP 服务器进行 PXE 置备。更多信息请参阅 第 3 章 配置网络。
Satellite IPAM 功能不能与 Infoblox 集成。
4.2. Infoblox 先决条件
- 您必须具有 Infoblox 帐户凭证来管理 Satellite 中的 DHCP 和 DNS 条目。
-
确定您有 Infoblox 管理角色及名称:
DHCP Admin
和DNS Admin
。 - 管理角色必须具有权限,或属于允许帐户通过 Infoblox API 执行任务的 admin 组。
4.3. 在胶囊服务器上安装 Infoblox CA 证书
您必须在基础系统上安装 Infoblox HTTPS CA 证书,用于您要与 Infoblox 应用程序集成的所有胶囊。
您可以从 Infoblox Web UI 下载证书,或者您可以使用以下 OpenSSL 命令下载证书:
# update-ca-trust enable
# openssl s_client -showcerts -connect infoblox.example.com:443 </dev/null | \
openssl x509 -text >/etc/pki/ca-trust/source/anchors/infoblox.crt
# update-ca-trust extract
-
infoblox.example.com
条目必须与 X509 证书中的 Infoblox 应用程序的主机名匹配。
要测试 CA 证书,请使用 CURL 查询:
# curl -u admin:password https://infoblox.example.com/wapi/v2.0/network
正响应示例:
[
{
"_ref": "network/ZG5zLm5ldHdvcmskMTkyLjE2OC4yMDIuMC8yNC8w:infoblox.example.com/24/default",
"network": "192.168.202.0/24",
"network_view": "default"
}
]
4.4. 安装 DHCP Infoblox 模块
使用这个步骤在 Capsule 上安装 DHCP Infoblox 模块。请注意,您无法在单独的视图中管理记录。
您还可以通过合并此流程和 第 4.5 节 “安装 DNS Infoblox 模块” 来同时安装 DHCP 和 DNS Infoblox 模块。
DHCP Infoblox Record Type 注意事项
仅使用 --foreman-proxy-plugin-dhcp-infoblox-record-type fixedaddress
选项来配置 DHCP 和 DNS 模块。
使用主机记录类型设置配置 DHCP 和 DNS Infoblox 模块会导致 DNS 冲突,且不被支持。如果您使用
--foreman-proxy-plugin-dhcp-infoblox-record-type
选项在 Capsule Server 上安装 Infoblox 模块,则必须取消设置 DNS Capsule 和 Reverse DNS Capsule 选项,因为 Infoblox 执行 DNS 管理本身。您不能使用
主机
选项而不创建冲突,例如无法在 Satellite 中重命名主机。
流程
在 Capsule 上,输入以下命令:
# satellite-installer --enable-foreman-proxy-plugin-dhcp-infoblox \ --foreman-proxy-dhcp true \ --foreman-proxy-dhcp-managed false \ --foreman-proxy-dhcp-provider infoblox \ --foreman-proxy-dhcp-server infoblox.example.com \ --foreman-proxy-plugin-dhcp-infoblox-dns-view default \ --foreman-proxy-plugin-dhcp-infoblox-network-view default \ --foreman-proxy-plugin-dhcp-infoblox-password infoblox \ --foreman-proxy-plugin-dhcp-infoblox-record-type fixedaddress \ --foreman-proxy-plugin-dhcp-infoblox-username admin
- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules,然后使用 Infoblox DHCP 模块选择 Capsule,然后单击 Refresh。
- 确保列出了 dhcp 功能。
- 对于通过 Infoblox 管理的所有域,请确保为该域设置 DNS Capsule。要验证,在 Satellite Web UI 中,导航到 Infrastructure > Domains,并检查每个域的设置。
- 对于通过 Infoblox 管理的所有子网,请确保设置了 DHCP Capsule 和 Reverse DNS Capsule。要验证,在 Satellite Web UI 中,导航到 Infrastructure > Subnets,并检查每个子网的设置。
4.5. 安装 DNS Infoblox 模块
使用这个步骤在 Capsule 上安装 DNS Infoblox 模块。您还可以通过合并此流程和 第 4.4 节 “安装 DHCP Infoblox 模块” 来同时安装 DHCP 和 DNS Infoblox 模块。
DNS 记录仅在默认 DNS 视图中管理,无法指定要使用的 DNS 视图。
流程
在 Capsule 上,输入以下命令来配置 Infoblox 模块:
# satellite-installer --enable-foreman-proxy-plugin-dns-infoblox \ --foreman-proxy-dns true \ --foreman-proxy-dns-provider infoblox \ --foreman-proxy-plugin-dns-infoblox-dns-server infoblox.example.com \ --foreman-proxy-plugin-dns-infoblox-dns-view default \ --foreman-proxy-plugin-dns-infoblox-password infoblox \ --foreman-proxy-plugin-dns-infoblox-username admin
另外,您还可以更改
--foreman-proxy-plugin-dns-infoblox-dns-view
选项的值,以指定默认视图以外的 DNS Infoblox 视图。- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules,然后使用 Infoblox DNS 模块选择 Capsule,然后单击 Refresh。
- 确保列出了 dns 功能。
第 5 章 将 iPXE 配置为 Reduce Provisioning Times
如果您有以下限制,您可以使用 Satellite 在 BIOS 模式中将 PXELinux 配置为链引导 iPXE,如果您有以下限制,您可以使用 HTTP 协议引导,从而防止您使用 PXE:
- 具有非受管 DHCP 服务器的网络。
- 您的网络或受防火墙限制的 PXE 服务。
- 可靠的基于 TFTP UDP 的协议,例如,由于低带宽网络。
有关 iPXE 支持的更多信息,请参阅置备文档支持的构架。
iPXE 概述
iPXE 是一个开源网络引导固件。它增强了完整的 PXE 实施,添加了额外的功能,包括从 HTTP 服务器引导。如需更多信息,请参阅 ipxe.org。
在 Red Hat Satellite 中使用 iPXE 的方法有三种:
- 使用 iPXE 作为主固件的虚拟机监控程序启动虚拟机。
- 使用PXE 到 TFTP,直接在裸机主机上链加载 iPXE。
- 使用 PXELinux 到 UNDI,它使用 HTTP 传输裸机主机上的内核和初始 RAM 磁盘。
安全信息
Red Hat Enterprise Linux 中的 iPXE 二进制文件是构建没有一些安全功能的。因此,您只能使用 HTTP,无法使用 HTTPS。不支持 Red Hat Enterprise Linux 中 iPXE 的所有与安全性相关的功能。如需更多信息,请参阅 iPXE 中的 Red Hat Enterprise Linux HTTPS 支持。
先决条件
- 红帽卫星上已存在一个主机可供使用。
- 置备接口的 MAC 地址与主机配置匹配。
- 主机的置备接口具有有效的 DHCP 保留。
- NIC 能够 PXE 引导。如需更多信息,请参阅 ipxe.org 上支持的硬件,以获得预期使用基于 iPXE 的引导磁盘的硬件驱动程序列表。
- NIC 与 iPXE 兼容。
要准备 iPXE 环境,必须在所有胶囊上执行此步骤。
流程
启用 tftp 和 httpboot 服务:
# satellite-installer --foreman-proxy-httpboot true --foreman-proxy-tftp true
安装
ipxe-bootimgs
软件包:# dnf install ipxe-bootimgs
修正 SELinux 文件上下文:
# restorecon -RvF /var/lib/tftpboot/
使用 Linux 内核标头将 iPXE 固件复制到 TFTP 目录中:
# cp /usr/share/ipxe/ipxe.lkrn /var/lib/tftpboot/
将 UNDI iPXE 固件复制到 TFTP 目录中:
# cp /usr/share/ipxe/undionly.kpxe /var/lib/tftpboot/undionly-ipxe.0
(可选)配置 Foreman 发现。更多信息请参阅 第 7 章 配置发现服务。
- 在 Satellite Web UI 中,导航到 Administer > Settings,然后点 Provisioning 选项卡。
- 找到 Default PXE global template 条目 行,在 Value 列中,将值更改为 discovery。
5.1. 引导虚拟机
有些虚拟化虚拟机监控程序使用 iPXE 作为 PXE 启动的主要固件。因此,您可以在没有 TFTP 和 PXELinux 的情况下引导虚拟机。
链虚拟机工作流
使用虚拟化管理程序可消除对 TFTP 和 PXELinux 的需求。它具有以下工作流:
- 虚拟机启动
- iPXE 使用 DHCP 检索网络凭据,包括 HTTP URL
- iPXE 从 Satellite 服务器或 Capsule 加载 iPXE bootstrap 模板
- iPXE 从 Satellite 服务器或 Capsule 加载 MAC 的 iPXE 模板作为 URL 参数
- iPXE 载入安装程序的内核和初始 RAM 磁盘
先决条件
确保您要使用的虚拟机监控程序支持 iPXE。以下虚拟化虚拟机监控程序支持 iPXE:
- libvirt
- Red Hat Virtualization
- RHEV (已弃用)
- 如果要使用 Capsule 服务器而不是 Satellite 服务器,请确保已相应地配置了 Capsule 服务器。如需更多信息,请参阅安装 Capsule 服务器 中的 为主机注册和置备配置 Capsule。
将卫星服务器配置为使用 iPXE
您可以使用默认模板为主机配置 iPXE 启动。如果要更改模板中的默认值,请克隆模板并编辑克隆。
流程
-
在 Satellite Web UI 中,导航到 Hosts > Provisioning Templates,输入
Kickstart default iPXE
并点 Search。 - 可选:如果要更改模板,请点击 Clone,输入唯一名称,然后点 Submit。
- 点要使用的模板名称。
- 如果克隆模板,可以在 Template 标签页中进行更改。
- 单击关联 选项卡,然后选择主机使用的操作系统。
- 单击位置选项卡,再添加主机所在的位置。
- 单击 Organizations 选项卡,再添加主机所属的组织。
- 点 Submit 保存更改。
- 在 Satellite Web UI 中,导航到 Hosts > Operating systems 并选择您的主机的操作系统。
- 点 Templates 选项卡。
- 从 iPXE Template 列表中,选择要使用的模板。
- 点 Submit 保存更改。
- 在 Satellite Web UI 中,导航到 Hosts > All Hosts。
- 在 Hosts 页面中,选择要使用的主机。
- 选择 Operating System 选项卡。
- 将 PXE Loader 设置为 iPXE 嵌入式。
- 选择 Templates 选项卡。
- 从 iPXE 模板 列表中,选择 Review 来验证 Kickstart default iPXE 模板是否为正确的模板。
设置 HTTP URL。
如果要使用 Satellite 服务器引导,请在 Satellite 服务器上运行以下命令:
# satellite-installer \ --foreman-proxy-dhcp-ipxefilename "http://satellite.example.com/unattended/iPXE?bootstrap=1"
如果要使用 Capsule 进行引导,在 Capsule 上运行以下命令:
# satellite-installer --foreman-proxy-dhcp-ipxe-bootstrap true
5.2. 从PXE 链启动 iPXE
使用此流程将 iPXE 设置为使用内置驱动程序进行网络通信或 UNDI 接口。要将 HTTP 与 iPXE 搭配使用,请使用带有内置驱动程序的 iPXE 构建(ipxe.lkrn
)。Universal Network Device Interface(UNDI)是一个实现 TFTP 客户端的一个最小的 UDP/IP 堆栈,但无法支持 HTTP 等其他协议(纯纯ipxe.0
)。您可以根据网络硬件功能和 iPXE 驱动程序可用性,选择加载 ipxe.lkrn
或 undionly-ipxe.0
文件。
直接链启动 iPXE 或 UNDI 工作流
- 主机开机
- PXE 驱动程序使用 DHCP 检索网络凭据
-
PXE 驱动程序使用 TFTP 检索
pxelinux.0
。 - PXELinux 搜索 TFTP 服务器上的配置文件
-
PXE chainloads iPXE
ipxe.lkrn
或undionly-ipxe.0
- iPXE 再次使用 DHCP 检索网络凭证,包括 HTTP URL
- iPXE 链从模板胶囊加载 iPXE 模板
- iPXE 载入安装程序的内核和初始 RAM 磁盘
前提条件
- 如果要使用 Capsule 服务器而不是 Satellite 服务器,请确保已相应地配置了 Capsule 服务器。如需更多信息,请参阅安装 Capsule 服务器 中的 为主机注册和置备配置 Capsule。
将卫星服务器配置为使用 iPXE
您可以使用默认模板为主机配置 iPXE 启动。如果要更改模板中的默认值,请克隆模板并编辑克隆。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Provisioning Templates。
-
输入
iPXE 链 iPXE
以将ipxe.lkrn
或 BIOS 系统使用PXE链 iPXE UNDI
,使用undionly-ipxe.0
,然后单击 Search。 - 可选:如果要更改模板,请点击 Clone,输入唯一名称,然后点 Submit。
- 点要使用的模板名称。
- 如果克隆模板,可以在 Template 标签页中进行更改。
- 单击关联 选项卡,然后选择主机使用的操作系统。
- 单击位置选项卡,再添加主机所在的位置。
- 单击 Organizations 选项卡,再添加主机所属的组织。
- 点 Submit 保存更改。
-
在 Provisioning Templates 页面中,在搜索字段中输入
Kickstart default iPXE
,然后单击 Search。 - 可选:如果要更改模板,请点击 Clone,输入唯一名称,然后点 Submit。
- 点要使用的模板名称。
- 如果克隆模板,可以在 Template 标签页中进行更改。
- 单击关联 选项卡,然后将模板与主机使用的操作系统相关联。
- 单击位置选项卡,再添加主机所在的位置。
- 单击 Organizations 选项卡,再添加主机所属的组织。
- 点 Submit 保存更改。
- 在 Satellite Web UI 中,导航到 Hosts > Operating systems 并选择您的主机的操作系统。
- 点 Templates 选项卡。
- 从 PXELinux template 列表中,选择要使用的模板。
- 从 iPXE 模板 列表中,选择要使用的模板。
- 点 Submit 保存更改。
- 在 Satellite Web UI 中,导航到 Configure > Host Groups,然后选择您要配置的主机组。
- 选择 Operating System 选项卡。
- 选择 Architecture 和 Operating system。
-
将 PXE Loader 设置为 bootupd BIOS,或设置为 iPXE Chain BIOS 以直接加载
undionly-ipxe.0
。 设置 HTTP URL。
如果要使用 Satellite 服务器引导,请在 Satellite 服务器上运行以下命令:
# satellite-installer \ --foreman-proxy-dhcp-ipxefilename "http://satellite.example.com/unattended/iPXE?bootstrap=1"
如果要使用 Capsule 进行引导,在 Capsule 上运行以下命令:
# satellite-installer --foreman-proxy-dhcp-ipxe-bootstrap true
第 6 章 使用 PXE 来置备主机
您可以使用以下方法之一使用 Satellite 置备裸机实例:
- 无人值守置备
- 新主机通过 MAC 地址标识,卫星服务器使用 PXE 引导过程置备主机。
- 使用 Discovery 进行无人值守置备
- 新主机使用 PXE 引导来加载 Satellite 发现服务。此服务识别主机的硬件信息,并将其列为要置备的可用主机。更多信息请参阅 第 7 章 配置发现服务。
- 无 PXE 调配
- 新主机通过卫星服务器生成的引导磁盘镜像进行调配。
BIOS 和 UEFI 支持
使用 Red Hat Satellite,您可以同时执行 BIOS 和基于 UEFI 的 PXE 置备。BIOS 和 UEFI 接口作为计算机操作系统和固件之间的解释器,在引导时初始化硬件组件和启动操作系统。
有关支持的工作流的详情,请参考 支持的架构和置备场景。
在卫星调配中,PXE loader 选项定义要在调配期间使用的 DHCP 文件名
选项。对于 BIOS 系统,使用 PXELinux BIOS 选项启用调配的节点,以通过 TFTP 下载 pxelinux.0
文件。对于 UEFI 系统,使用 PXEGrub2 UEFI 选项使 TFTP 客户端能够下载 grub2/grubx64.efi
文件,或者使用 PXEGrub2 UEFI HTTP 选项启用 UEFI HTTP 客户端,以使用 HTTP 引导功能从 Capsule 下载 grubx64.efi
。
对于 BIOS 置备,您必须将 PXELinux 模板与操作系统关联。对于 UEFI 置备,您必须将 PXEGrub2 模板与操作系统关联。如果您同时关联 PXELinux 和 PXEGrub2 模板,卫星可以在 TFTP 服务器上为它们部署配置文件,以便您轻松地在 PXE 加载器间切换。
6.1. Bare Metal Provisioning 的先决条件
裸机置备的要求包括:
胶囊服务器,管理裸机主机的网络。对于无人进行基于发现的调配和基于发现的调配,卫星服务器需要 PXE 服务器设置。
有关网络要求的详情请参考 第 3 章 配置网络。
有关 Discovery 服务 第 7 章 配置发现服务 的更多信息。
- 裸机主机或空白虚拟机。
- 您可以对 Red Hat Enterprise Linux 使用同步的内容存储库。如需更多信息,请参阅管理内容 中的 同步存储库。
- 为主机注册提供激活密钥。如需更多信息,请参阅在 管理内容 中创建 激活码。
有关无人值守和无 PXE 的置备安全令牌的详情,请参考 第 6.2 节 “配置安全令牌有效期持续时间”。
6.2. 配置安全令牌有效期持续时间
在执行任何类型的调配时,作为安全措施,卫星会自动生成一个唯一的令牌,并在 PXE 配置文件(PXE Linux, Grub2)中的 kickstart URL 中添加此令牌。默认情况下,令牌在 360 分钟内有效。置备主机时,请确保在这个时间范围内重新引导主机。如果令牌过期,它不再有效,您会收到 404 错误,操作系统安装程序会下载失败。
流程
- 在 Satellite Web UI 中,导航到 Administer > Settings,然后点 Provisioning 选项卡。
-
找到 Token 持续时间 选项,点编辑图标并编辑持续时间,或者输入
0
来禁用令牌生成。如果禁用了令牌生成,攻击者可以欺骗客户端 IP 地址并从卫星服务器下载 kickstart,包括加密的 root 密码。
6.3. 使用 Unattended Provisioning 创建主机
无人值守的调配是最简单的主机调配形式。您在卫星服务器上输入主机详情并引导您的主机。卫星服务器自动管理 PXE 配置,组织网络服务,并为主机提供操作系统和配置。
这种调配主机方法在过程中使用最少的交互。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Create Host。
- 在 Name 字段中输入主机的名称。
- 单击 Organization and Location 选项卡,并更改上下文以符合您的要求。
- 在 Host Group 列表中,选择要用来填充表单的主机组。
- 单击 Interface 选项卡,再单击主机的接口上,单击 Edit。
验证字段是否填充了值。特别是:
- Host 选项卡中的 Name 将变为 DNS 名称。
- 卫星服务器会自动为新主机分配一个 IP 地址。
- 在 MAC 地址字段中,输入主机的 MAC 地址。这样可确保在 PXE 引导过程中识别主机。
- 确保卫星服务器自动为主机上的第一个接口自动选择 Managed、primary 和 Provision 选项。如果没有,请选择它们。
- 在 MAC 地址字段中,输入主机的置备接口的 MAC 地址。这样可确保在 PXE 引导过程中识别主机。
- 点 OK 保存。要添加另一个接口,请点击 添加接口。您只能选择一个用于 Provision 和 Primary 的接口。
- 单击 Operating System 选项卡,然后验证所有字段都包含值。确认操作系统的各个方面。
可选:点 Provisioning 模板中的 Resolve 来检查新主机可以识别要使用的正确置备模板。
有关关联置备模板的详情,请参考 第 2.11 节 “自定义模板”。
- 单击 Parameters 选项卡,并确保存在一个提供激活密钥的参数。如果没有,请添加激活码。
单击 Submit,以保存主机详情。
有关网络接口的更多信息,请参阅添加 网络接口。
这将创建主机条目和相关置备设置。这包括为 PXE 引导裸机主机创建必要的目录和文件。如果您启动物理主机并将其引导模式设置为 PXE,主机检测到卫星服务器的集成胶囊的 DHCP 服务,接收 Kickstart 树的 HTTP 端点并安装操作系统。
安装完成后,主机还使用激活密钥注册到卫星服务器,并从卫星客户端 6 存储库安装必要的配置和管理工具。
CLI 过程
使用
hammer host create
命令创建主机:# hammer host create --name "My_Unattended_Host" --organization "My_Organization" \ --location "My_Location" --hostgroup "My_Host_Group" --mac "aa:aa:aa:aa:aa:aa" \ --build true --enabled true --managed true
确保使用
hammer 主机接口更新
命令设置网络接口选项:# hammer host interface update --host "test1" --managed true \ --primary true --provision true
6.4. 使用无 PXE 的置备来创建主机
有些硬件不提供 PXE 引导接口。在 Satellite 中,您可以在不进行 PXE 引导的情况下置备主机。这也被称为 PXE 的置备,它涉及生成主机可以使用的引导 ISO。使用此 ISO 时,主机可以连接到卫星服务器,引导安装介质,以及安装操作系统。
卫星还提供无 PXE 的发现服务,可在不使用基于 PXE 的服务的情况下运行,如 DHCP 和 TFTP。更多信息请参阅 第 7.7 节 “实施无 PXE 的发现功能”。
引导 ISO 类型
有以下类型的引导 ISO:
- 完整主机镜像
- 包含特定主机的内核和初始 RAM 磁盘镜像的引导 ISO。如果主机无法正确链加载,此镜像很有用。自定义模板仍然从卫星服务器下载。
- 子网镜像
- 与特定主机没有关联的引导 ISO。ISO 将主机的 MAC 地址发送到 Capsule 服务器,该服务器与主机条目匹配。该镜像不存储 IP 地址详情,需要访问网络上的 DHCP 服务器进行 bootstrap。此镜像对于在同一子网上具有 provisioning NIC 的所有主机都是通用的。镜像基于 iPXE 引导固件,只支持有限的网卡。
完整主机镜像 基于 SYSLINUX 和 Grub,并可处理大多数网卡。使用 子网镜像时,请参阅 ipxe.org 上支持的硬件,以了解预期与基于 iPXE 的引导磁盘一起使用的网卡驱动程序列表。
完整主机镜像包含 置备令牌,因此生成的镜像具有有限的生命周期。有关配置安全令牌的详情,请参考 第 6.2 节 “配置安全令牌有效期持续时间”。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Create Host。
- 在 Name 字段中输入您要成为置备的系统主机名的名称。
- 单击 Organization and Location 选项卡,并更改上下文以符合您的要求。
- 在 Host Group 列表中,选择要用来填充表单的主机组。
- 单击 Interface 选项卡,再单击主机的接口上,单击 Edit。
验证字段是否填充了值。特别是:
- Host 选项卡中的 Name 将变为 DNS 名称。
- 卫星服务器会自动为新主机分配一个 IP 地址。
- 在 MAC 地址字段中,输入主机的 MAC 地址。
- 确保卫星服务器自动为主机上的第一个接口自动选择 Managed、primary 和 Provision 选项。如果没有,请选择它们。
- 单击 Operating System 选项卡,然后验证所有字段都包含值。确认操作系统的各个方面。
在 Provisioning Templates 中点 Resolve,以检查新主机可以识别要使用的正确置备模板。
有关关联置备模板的详情,请参考 第 2.11 节 “自定义模板”。
- 单击 Parameters 选项卡,并确保存在一个提供激活密钥的参数。如果没有,请添加激活码。
- 单击 Submit,以保存主机详情。这会创建一个主机条目,并显示主机详情页面。
从 Satellite 服务器下载引导磁盘。
- 对于 Full host image,在主机详情页面中,点垂直 ellipsis 并选择 Full host 'My_Host_Name' image。
- 对于 子网镜像,导航到 Infrastructure > Subnets,点所需子网的 Actions 列中的下拉菜单,然后选择 Subnet generic image。
-
如果需要,使用
dd
实用程序或livecd-tools
将 ISO 写入 USB 存储设备。 当您启动主机并从 ISO 或 USB 存储设备引导时,主机连接到 Satellite 服务器并从其 kickstart 树开始安装操作系统。
安装完成后,主机还使用激活密钥注册到卫星服务器,并从 卫星客户端 6 存储库安装必要的配置和管理工具。
CLI 过程
使用
hammer host create
命令创建主机。# hammer host create --name "My_Host_Name" --organization "My_Organization" \ --location "My_Location" --hostgroup "My_Host_Group" --mac "aa:aa:aa:aa:aa:aa" \ --build true --enabled true --managed true
确定使用
hammer 主机更新命令设置了网络接口
选项。# hammer host interface update --host "My_Host_Name" --managed true \ --primary true --provision true
使用
hammer bootdisk
命令从 Satellite 服务器下载引导磁盘:对于 完整主机镜像 :
# hammer bootdisk host --host My_Host_Name.example.com --full true
对于 子网镜像 :
# hammer bootdisk subnet --subnet My_Subnet_Name
这会为您的主机创建一个引导 ISO。
-
如果需要,使用
dd
实用程序或livecd-tools
将 ISO 写入 USB 存储设备。 当您启动物理主机并从 ISO 或 USB 存储设备引导时,主机将连接到卫星服务器,并从其 kickstart 树开始安装操作系统。
安装完成后,主机还使用激活密钥注册到卫星服务器,并从 卫星客户端 6 存储库安装必要的配置和管理工具。
6.5. 使用 UEFI HTTP 引导置备创建主机
您可以使用 UEFI HTTP 引导从 Satellite 置备主机。这是您可以在 IPv6 网络中置备主机的唯一方法。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
先决条件
- 确保您满足 HTTP 引导的要求。如需更多信息,请参阅 卫星概述、概念和部署注意事项 中的 HTTP 引导要求。
流程
在您要置备的 Capsule 上,将
grub2-efi
软件包更新为最新版本:# satellite-maintain packages update grub2-efi
启用
foreman-proxy-http
、foreman-proxy-httpboot
和foreman-proxy-tftp
功能。# satellite-installer --scenario satellite \ --foreman-proxy-http true \ --foreman-proxy-httpboot true \ --foreman-proxy-tftp true
- 确保胶囊已识别 TFTP 和 HTTPBoot 功能。在 Satellite Web UI 中,导航到 Infrastructure > Capsules,然后单击 Capsule 以查看可识别的功能列表。如果缺少任何功能,请单击 Refresh Features。
- 确保 Capsule 与 provisioning 子网关联。在 Satellite web UI 中,导航到 Infrastructure > Subnets > Edit Subnet > Capsules,并为 TFTP 和 HTTPBoot 选项选择 Capsule。
- 点 OK 保存。
- 在 Satellite Web UI 中,导航到 Hosts > Create Host。
- 在 Name 字段中输入主机的名称。
- 单击 Organization and Location 选项卡,并更改上下文以符合您的要求。
- 在 Host Group 列表中,选择要用来填充表单的主机组。
- 单击 Interface 选项卡,再单击主机的接口上,单击 Edit。
验证字段是否填充了值。特别是:
- Host 选项卡中的 Name 将变为 DNS 名称。
- 卫星服务器会自动为新主机分配一个 IP 地址。
- 在 MAC 地址字段中,输入主机的置备接口的 MAC 地址。这样可确保在 PXE 引导过程中识别主机。
- 确保卫星服务器自动为主机上的第一个接口自动选择 Managed、primary 和 Provision 选项。如果没有,请选择它们。
- 点 OK 保存。要添加另一个接口,请点击 添加接口。您只能选择一个用于 Provision 和 Primary 的接口。
- 单击 Operating System 选项卡,然后验证所有字段都包含值。确认操作系统的各个方面。
- 从 PXE Loader 列表中,选择 Grub2 UEFI HTTP。
可选:点 Provisioning 模板中的 Resolve 来检查新主机可以识别要使用的正确置备模板。
有关关联置备模板的详情,请参考 第 2.13 节 “创建自定义模板”。
- 单击 Parameters 选项卡,并确保存在一个提供激活密钥的参数。如果没有,请添加激活码。
单击 Submit,以保存主机详情。
有关网络接口的更多信息,请参阅添加 网络接口。
- 将主机设置为在网络的 UEFI 模式中引导。
- 启动主机。
- 从引导菜单中,选择 Kickstart 默认 PXEGrub2。
这将创建主机条目和相关置备设置。这包括为 UEFI 引导裸机主机创建必要的目录和文件。当您启动物理主机并将其引导模式设置为 UEFI HTTP 时,主机检测到定义的 DHCP 服务,接收使用 Kickstart 树的 Capsule 的 HTTP 端点并安装操作系统。
安装完成后,主机还使用激活密钥注册到卫星服务器,并从卫星客户端 6 存储库安装必要的配置和管理工具。
CLI 过程
在您要置备的 Capsule 上,将
grub2-efi
软件包更新为最新版本:# satellite-maintain packages update grub2-efi
启用
foreman-proxy-http
、foreman-proxy-httpboot
和foreman-proxy-tftp true
功能:# satellite-installer --scenario satellite \ --foreman-proxy-http true \ --foreman-proxy-httpboot true \ --foreman-proxy-tftp true
使用
hammer host create
命令创建主机。# hammer host create --name "My_Host" \ --build true \ --enabled true \ --hostgroup "My_Host_Group" \ --location "My_Location" \ --mac "aa:aa:aa:aa:aa:aa" \ --managed true \ --organization "My_Organization" \ --pxe-loader "Grub2 UEFI HTTP"
确保使用
hammer 主机接口更新
命令设置网络接口选项:# hammer host interface update \ --host "My_Host" \ --managed true \ --primary true \ --provision true
- 将主机设置为在网络的 UEFI 模式中引导。
- 启动主机。
- 从引导菜单中,选择 Kickstart 默认 PXEGrub2。
这将创建主机条目和相关置备设置。这包括为 UEFI 引导裸机主机创建必要的目录和文件。当您启动物理主机并将其引导模式设置为 UEFI HTTP 时,主机检测到定义的 DHCP 服务,接收使用 Kickstart 树的 Capsule 的 HTTP 端点并安装操作系统。
安装完成后,主机还使用激活密钥注册到卫星服务器,并从卫星客户端 6 存储库安装必要的配置和管理工具。
6.6. 在置备过程中部署 SSH 密钥
使用这个步骤部署在置备过程中添加到用户的 SSH 密钥。有关向用户添加 SSH 密钥的详情,请参阅在 管理 Red Hat Satellite 中的用户管理 SSH 密钥。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Provisioning Templates。
- 创建自定义模板,或克隆和编辑现有模板。更多信息请参阅 第 2.13 节 “创建自定义模板”。
- 在模板中,点 Template 选项卡。
在 Template 编辑器 字段中,将
create_users
片断添加到%post
部分:<%= snippet('create_users') %>
- 选择 默认 复选框。
- 单击关联 选项卡。
- 从 Application Operating Systems 列表中选择一个操作系统。
- 单击 Submit 以保存置备模板。
创建与自定义模板关联的主机,或使用与修改模板关联的操作系统重建主机。如需更多信息 ,请参阅管理主机 中的主机 。
当在置备过程中执行
create_users
片断时,用户 Owned 的 SSH 密钥会自动添加。您可以将 Owned 设置为单独的用户或用户组。如果您将 Owned 设置为用户组,则会自动添加该用户组中所有用户的 SSH 密钥。
第 7 章 配置发现服务
Red Hat Satellite 可以检测网络上没有 Satellite 清单中的主机。这些主机引导执行硬件检测的发现镜像,并将此信息转发回卫星服务器。此方法在卫星服务器中创建可立即置备主机的列表,而无需输入每个主机的 MAC 地址。
当您引导空白裸机主机时,引导菜单有两个选项: local
和 discovery
。如果您选择 发现
来引导发现镜像,在几分钟后,发现镜像完成引导,并显示状态屏幕。
卫星服务器上默认启用 Discovery 服务。但是,全局模板的默认设置是从本地硬盘引导的。要更改 Satellite Web UI 中的默认设置,请导航到 Administer > Settings,然后单击 Provisioning 选项卡。找到 Default PXE global template 条目 行,然后在 Value 列中,输入 discovery。

确保您计划用于发现的所有子网的 DHCP 范围不会与为受管 DHCP 服务配置的 DHCP 租期池交互。DHCP 范围在卫星 Web UI 中设置,而租期池范围是使用 satellite-installer
命令设置的。例如,在一个 10.1.0.0/16 网络范围 10.1.0.0 到 10.1.127.255 中,可以为 leases 分配 10.1.128.0 到 10.1.255.254,可以为保留分配。
因为网络接口名称不应在 Red Hat Enterprise Linux 的主版本之间 始终相同,所以可以使用不正确的网络配置创建主机或虚拟机。在 Dell 服务器上,可以通过 biosdevname=1
内核命令行选项来禁用新的命名方案,对于其他硬件或虚拟机,新命名方案可以通过 net.ifnames=1
完全关闭。
流程
在 Satellite 服务器上安装 Discovery:
foreman-discovery-image
软件包会将 Discovery ISO 安装到/usr/share/foreman-discovery-image/
目录。您可以使用livecd-iso-to-pxeboot
工具从该 ISO 构建 PXE 引导镜像。该工具将这个 PXE 引导镜像保存在/var/lib/tftpboot/boot
目录中。# satellite-installer \ --enable-foreman-plugin-discovery \ --enable-foreman-proxy-plugin-discovery
安装
foreman-discovery-image
:# satellite-maintain packages install foreman-discovery-image
安装完成后,您可以通过导航到 Hosts > Discovered Hosts 来查看新的菜单选项。
7.1. 安装 Discovery 服务
完成以下步骤,在胶囊服务器上启用发现服务。
流程
在胶囊服务器上输入以下命令:
# satellite-installer \ --enable-foreman-proxy-plugin-discovery
安装
foreman-discovery-image
:# satellite-maintain packages install foreman-discovery-image
子网
所有具有可发现主机的子网都需要选择一个适当的胶囊服务器来提供发现服务。
在 Satellite Web UI 中,导航到 Infrastructure > Subnets,选择一个子网,单击 Capsules 选项卡,然后选择要使用的 Discovery Proxy。对每个要使用的子网执行此操作。
7.2. Provisioning Template PXELinux Discovery Snippet
对于 BIOS 置备,Host > Provisioning Templates 窗口中的 PXELinux
全局默认模板包含代码片段 pxelinux_discovery
。片断有以下行:
LABEL discovery MENU LABEL Foreman Discovery Image KERNEL boot/fdi-image/vmlinuz0 APPEND initrd=boot/fdi-image/initrd0.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=<%= foreman_server_url %> proxy.type=foreman IPAPPEND 2
KERNEL
和 APPEND
选项引导 Discovery 镜像和 ramdisk。APPEND
选项包含一个 proxy.url
参数,其中的 foreman_server_url
宏作为其参数。此宏解析为 Satellite 服务器的完整 URL。
对于 UEFI 置备,Host > ; Provisioning Templates 窗口中的 PXEgrub2
全局默认模板包含代码片段 pxegrub2_discovery
:
menuentry 'Foreman Discovery Image' --id discovery { linuxefi boot/fdi-image/vmlinuz0 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=<%= foreman_server_url %> proxy.type=foreman BOOTIF=01-$mac initrdefi boot/fdi-image/initrd0.img }
要使用 Capsule 来代理发现步骤,请编辑 /var/lib/tftpboot/pxelinux.cfg/default
或 /var/lib/tftpboot/grub2/grub.cfg
,并将 URL 更改为要使用的胶囊服务器 FQDN。
全局模板在卫星服务器上可用,且所有启用了 TFTP 功能的胶囊。
7.3. 已发现主机的自动上下文
Satellite 根据以下规则序列为发现的主机分配一个机构和位置:
- 如果发现的主机使用卫星中定义的子网,主机将使用与子网关联的第一个组织和位置。
-
如果设置了
discovery_organization
或discovery_location
事实值,则发现的主机将这些事实值用作组织和位置。要设置这些事实值,请导航到 Administer > Settings > Discovered,并将这些事实添加到 Default organization 和 Default location 字段中。确保发现的主机的子网也属于由事实设置的组织和位置,否则,由于安全原因,卫星将拒绝设置它。 - 如果前一个条件都不存在,Satellite 会分配第一个按名称排序的机构和位置。
您可以使用 Discovered hosts 页面的批量操作菜单更改机构或位置。选择发现的主机进行修改,然后从 Select Action 菜单中选择 Assign Organization 或 Assign Location。
请注意,foreman_organization
和 foreman_location
事实不再是为发现的主机分配上下文的有效值。您仍然可以使用这些事实来配置要运行 Puppet 的主机。为此,请导航到 Administer > Settings > Puppet 部分,并将 foreman_organization
和 foreman_location
事实添加到 Default 组织和 Default 位置 字段。
7.4. 发现模板和片段设置
要使用 Discovery 服务,您必须配置置备设置,将 Discovery 设置为默认服务,并设置要使用的模板。
将 Discovery Service 设置为默认值
对于 BIOS 和 UEFI,要将 Discovery 服务设置为在当前 Satellite 清单中没有的主机的默认服务,请完成以下步骤:
- 在 Satellite Web UI 中,导航到 Administer > Settings,再点击 Provisioning 选项卡。
-
对于 Default PXE global template 条目,在 Value 列中输入
discovery
。
要使用 Satellite Web UI 中的模板,请导航到 Administer > Settings,再点击 Provisioning 选项卡并设置要使用的模板。
自定义模板和片断
模板和片断被锁定,以防止更改。如果要编辑模板或片断,请克隆它,使用唯一名称保存它,然后编辑克隆。
当您更改模板或包含的代码片段时,更改必须传播到卫星服务器的默认 PXE 模板。
在 Satellite Web UI 中,导航到 Hosts > Provisioning Templates,再点击 Build PXE Default。
这会刷新卫星服务器上的默认 PXE 模板。
额外设置
- proxy.url 参数
-
在 Satellite 安装过程中,如果使用默认选项
--enable-foreman-plugin-discovery
,您可以编辑模板中的proxy.url
参数,以设置提供发现服务的胶囊服务器的 URL。您可以将proxy.url
参数更改为要使用的其他 provisioning Capsule 的 IP 地址或 FQDN,但请确保附加端口号,例如9090
。如果您在 Satellite 安装过程中使用带有--foreman-proxy-ssl-port
选项的替代端口号,您必须添加该端口号。您还可以编辑proxy.url
参数以使用 Satellite IP 地址或 FQDN,以便发现的主机直接与卫星服务器通信。 - proxy.type 参数
如果您将 Capsule Server FQDN 用于
proxy.url
参数,请确保将proxy.type
参数设置为proxy
。如果使用 Satellite FQDN,请将proxy.type
参数更新为foreman
。proxy.url=https://capsule.example.com:9090 proxy.type=proxy
渲染胶囊的主机名
卫星将相同的模板部署到所有 TFTP 胶囊,没有可用于呈现胶囊的主机名的变量或宏。硬编码的 proxy.url
无法用于两个或更多 TFTP 胶囊。作为临时解决方案,每次点击 Build PXE Defaults 时,使用 SSH 编辑 TFTP 目录中的配置文件,或使用适当的子网的 DNS 别名。
标记的 VLAN Provisioning
如果要使用标记的 VLAN 置备,并且希望发现服务发送发现请求,请在发现模板中将以下信息添加到 KERNEL
选项:
fdi.vlan.primary=example_VLAN_ID
7.5. 从发现的主机创建主机
调配发现的主机遵循与 PXE 调配类似的调配流程。主要区别在于,您不需要手动输入主机的 MAC 地址,您可以从发现的主机列表中选择要置备的主机。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
先决条件
- 在卫星上配置域和子网。有关网络要求的详情请参考 第 3 章 配置网络。
- 在卫星上配置发现服务。更多信息请参阅 第 7.1 节 “安装 Discovery 服务”。
- 裸机主机或空白虚拟机。
- 您可以对 Red Hat Enterprise Linux 使用同步的内容存储库。如需更多信息,请参阅管理内容 中的 同步存储库。
- 为主机注册提供激活密钥。如需更多信息,请参阅在 管理内容 中创建 激活码。
有关安全令牌的详情,请参考 第 6.2 节 “配置安全令牌有效期持续时间”。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Discovered host。选择要使用的主机,然后单击列表右侧的 Provision。
从以下选项之一中选择:
- 要从主机组中置备主机,请选择主机组、组织和位置,然后单击 Create Host。
- 要通过进一步自定义来置备主机,请单击 Customize Host 并输入您要为新主机指定的附加详情。
验证字段是否填充了值。特别是:
- Host 选项卡中的 Name 将变为 DNS 名称。
- 卫星服务器会自动为新主机分配一个 IP 地址。
- Satellite 服务器会自动从发现结果中填充 MAC 地址。
- 确保卫星服务器自动为主机上的第一个接口自动选择 Managed、primary 和 Provision 选项。如果没有,请选择它们。
- 单击 Operating System 选项卡,然后验证所有字段都包含值。确认操作系统的各个方面。
单击 Provisioning 模板中的 Resolve,以检查新主机可以识别要使用的正确置备模板。主机必须解析到以下置备模板:
-
kexec 模板
:
发现红帽 kexec Provision Template:
Satellite Kickstart Default
有关关联置备模板的详情,请参考 第 2.11 节 “自定义模板”。
-
kexec 模板
- 单击 Submit,以保存主机详情。
当主机置备完成后,发现的主机将变为内容主机。要查看主机,请导航到 Hosts > Content Hosts。
CLI 过程
确定用于置备的发现主机:
# hammer discovery list
选择主机并使用主机组进行调配。使用
--new-name
选项设置新主机名:# hammer discovery provision \ --build true \ --enabled true \ --hostgroup "My_Host_Group" \ --location "My_Location" \ --managed true \ --name "My_Host_Name" \ --new-name "My_New_Host_Name" \ --organization "My_Organization"
这会从发现的主机列表中删除主机,并使用置备设置创建主机条目。发现镜像会自动重置主机,以便它可以引导到 PXE。主机检测卫星服务器的集成胶囊上的 DHCP 服务,并开始安装操作系统。其余过程与 第 6.3 节 “使用 Unattended Provisioning 创建主机” 中描述的正常 PXE 工作流相同。
7.6. 创建发现规则
作为为发现的主机自动执行调配流程的方法,卫星提供了创建发现规则的功能。这些规则定义发现的主机根据所分配的主机组自动调配自身的方式。例如,您可以自动将具有高 CPU 数量的主机置备为虚拟机监控程序。同样,您可以将具有大型硬盘的主机置备为存储服务器。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
NIC 注意事项
自动配置目前不允许配置 NIC,所有系统都使用发现过程中检测到的 NIC 配置置备。但是,您可以使用脚本在 kickstart
scriplet 中设置 NIC,或者稍后使用配置管理。
流程
- 在 Satellite Web UI 中,导航到 Configure > Discovery rules,然后选择 Create Rule。
- 在 Name 字段中输入规则的名称。
-
在 Search 字段中输入规则,以确定是否置备主机。此字段提供您输入的值的建议,并允许操作员获取多个规则。例如:
cpu_count > 8
。 - 在 Host Group 列表中,选择要用作此主机的模板的主机组。
在 Hostname 字段中,输入确定多个主机的主机名的模式。这将使用与置备模板所用的同一 ERB 语法。主机名可以将
@host
属性用于特定于主机的值,并使用 rund
宏作为随机数字,或者sequence_hostgroup_param_next
宏递增值。有关置备模板的更多信息,请参阅 第 2.11 节 “自定义模板” 和 API 文档。-
myhost-<%= sequence_hostgroup_param_next("EL7/MyHostgroup", 10, "discovery_host") %>
-
myhost-<%= rand(99999) %>
-
abc-<%= @host.facts['bios_vendor'] %>-<%= rand(99999) %>
-
xyz-<%= @host.hostgroup.name %>
-
srv-<%= @host.discovery_rule.name %>
server-<%= @host.ip.gsub('.','-') + '-' + @host.hostgroup.subnet.name %>
在创建主机名模式时,请确保生成的主机名是唯一的,不以数字开头,不包含下划线或点。好方法是使用 Facter 提供的唯一信息,如 MAC 地址、BIOS 或串行 ID。
-
-
在 Hosts limit 字段中,输入您可以使用该规则置备的最大主机数。在无限时输入
0。
- 在 Priority 字段中,输入数字来设置优先级高于规则的优先级。低值的规则具有更高的优先级。
- 在 Enabled 列表中,选择是否要启用该规则。
- 要为规则设置不同的调配上下文,请单击 Organizations 和 Locations 选项卡,再选择要使用的上下文。
- 点 Submit 保存您的规则。
在 Satellite web UI 中,进入 Hosts > Discovered Host 并选择以下两个选项之一:
- 从右侧的发现主机列表中,选择 Auto-Provision 以自动置备单个主机。
- 在窗口的右上角,单击 Auto-Provision All 以自动置备所有主机。
CLI 过程
使用
hammer discovery-rule create
命令创建规则:# hammer discovery-rule create \ --enabled true \ --hostgroup "My_Host_Group" \ --hostname "hypervisor-<%= rand(99999) %>" \ --hosts-limit 5 \ --name "My_Hypervisor" \ --priority 5 \ --search "cpu_count > 8"
使用
hammer discovery auto-provision
命令自动配置主机:# hammer discovery auto-provision --name "macabcdef123456"
7.7. 实施无 PXE 的发现功能
Satellite 提供了一个无 PXE 的发现服务,可以在不需要基于 PXE 的服务(DHCP 和 TFTP)的情况下运行。您使用卫星服务器的发现镜像完成此操作。计划安装发现的节点后,它使用 kexec
命令,在不重启节点的情况下使用 OS 安装程序重新载入 Linux 内核。
Discovery kexec
只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/。
已知问题
控制台可能会在过程中冻结。在一些硬件中,您可能会遇到图形硬件问题。

Discovery 服务的 ISO 驻留在 /usr/share/foreman-discovery-image/
,使用 foreman-discovery-image
软件包进行安装。
已参加的使用
将此介质复制到 CD、DVD 或者 USB 盘点。例如,要复制到位于
/dev/sdb
的 USB 记忆棒:# dd bs=4M \ if=/usr/share/foreman-discovery-image/foreman-discovery-image-3.4.4-5.iso \ of=/dev/sdb
将发现引导介质插入到裸机主机中,启动主机并从介质引导。发现镜像显示一个 使用 DHCP 的 手动网络设置 或发现 选项:
如果选择 Manual 网络设置,发现镜像会请求一组网络选项。这包括连接到卫星服务器的主要网络接口。此发现镜像还要求提供网络接口配置选项,如 IPv4 地址、IPv4 网关和 IPv4 DNS 服务器。
- 输入这些详情后,选择 下一步。
- 如果您选择 Discovery with DHCP,发现镜像仅请求连接到卫星服务器的主网络接口。它尝试使用 DHCP 服务器自动配置网络接口,如胶囊服务器提供的接口。
在主接口配置后,发现镜像会请求 Server URL,这是提供 Discovery 服务的卫星服务器或胶囊服务器的 URL。例如,要在 Satellite 服务器上使用集成胶囊,请使用以下 URL:
https://satellite.example.com:9090
-
将 连接类型设置为
Proxy
,然后选择 Next。 - 可选:发现镜像还提供一组字段,用于输入通讯工具的 Custom facts,以转发回卫星服务器。它们以 name-value 格式输入。提供您需要的任何自定义事实,然后选择 Confirm 以继续。
卫星报告了与卫星服务器的发现服务成功通信。在 Satellite Web UI 中,进入 Hosts > Discovered Hosts 并查看新发现的主机。
有关置备发现的主机的更多信息,请参阅 第 7.5 节 “从发现的主机创建主机”。
7.8. 无人值守使用、自定义和镜像更新
您可以创建自定义 Discovery ISO,以便在引导后自动执行镜像配置过程。发现镜像使用 Linux 内核作为操作系统,通过内核参数来配置发现服务。这些内核参数包括以下条目:
- proxy.url
- 提供发现服务的 Capsule Server 或 Satellite 服务器的 URL。
- proxy.type
-
代理类型。这通常设置为
proxy
以连接到胶囊服务器。此参数还支持传统的foreman
选项,其中通信会直接进入卫星服务器,而非胶囊服务器。 - fdi.pxmac
-
主接口的 MAC 地址,格式为
AA:BB:CC:DD:EE:FF
。这是您要用来与胶囊服务器通信的接口。在自动模式中,使用带有链接的第一个 NIC(按字母顺序使用网络标识符)。在半自动化模式下,会出现一个屏幕,提示您选择正确接口。 - fdi.pxip, fdi.pxgw, fdi.pxdns
-
为主网络接口手动配置 IP 地址(
fdi.pxip
)、网关(fdi.pxgw
)和 DNS(fdi.pxdns
)。如果省略这些参数,则镜像使用 DHCP 来配置网络接口。 - fdi.pxfactname1, fdi.pxfactname2 … fdi.pxfactnameN
- 使用 指定自定义事实名称。
- fdi.pxfactvalue1, fdi.pxfactvalue2 … fdi.pxfactvalueN
-
每个自定义事实的值。每个值对应一个事实名称。例如,
fdi.pxfactvalue1
使用fdi.pxfactname1
来设置名为 的事实的值。 - fdi.pxauto
- 设置自动或半自动模式。如果设置为 0,则镜像使用半自动模式,它允许您通过一组对话框选项确认您的选择。如果设置为 1,则镜像使用自动模式,并在不确认的情况下继续。
- fdi.initnet
-
默认情况下,镜像初始化所有网络接口(值
所有
)。当此设置设置为bootif
时,只有从网络引导的网络接口才会初始化。 - fdi.rootpw
-
默认情况下,
root
帐户被锁定。使用这个选项设置 root 密码。您可以同时输入明文。 - fdi.ssh
-
默认情况下禁用 SSH 服务。将其设置为
1
或true
以启用 SSH 访问。 - fdi.ipv4.method
-
默认情况下,NetworkManager IPv4 方法设置被设置为
auto
。这个选项覆盖,将其设置为忽略
以禁用 IPv4 堆栈。这个选项只在 DHCP 模式中有效。 - fdi.ipv6.method
-
默认情况下,NetworkManager IPv6 方法设置被设置为
auto
。这个选项覆盖,将其设置为忽略
以禁用 IPv6 堆栈。这个选项只在 DHCP 模式中有效。 - fdi.zips
- 带有要在引导期间下载和启动的扩展的文件名。如需更多信息,请参阅 第 7.9 节 “扩展发现镜像”。
- fdi.zipserver
- TFTP 服务器用于从下载扩展。如需更多信息,请参阅 第 7.9 节 “扩展发现镜像”。
- fdi.countdown
-
在初始发现尝试后,等待的秒数,直到文本接口被刷新。这个值默认为 45 秒。如果状态页面将 IP 地址报告为
N/A
,则会增加这个值。 - fdi.dhcp_timeout
- NetworkManager DHCP 超时。默认值为 300 秒。
- fdi.vlan.primary
- 要为主接口设置的 VLAN 标记 ID。
使用 discovery-remaster
工具为操作系统镜像注册
卫星服务器在 foreman-discovery-image
软件包中提供 discovery-remaster
工具。此工具可保护镜像以包括这些内核参数。要重新保存镜像,请运行 discovery-remaster
工具。例如:
# discovery-remaster ~/iso/foreman-discovery-image-3.4.4-5.iso \ "fdi.pxip=192.168.140.20/24 fdi.pxgw=192.168.140.1 \ fdi.pxdns=192.168.140.2 proxy.url=https://satellite.example.com:9090 \ proxy.type=proxy fdi.pxfactname1=customhostname fdi.pxfactvalue1=myhost fdi.pxmac=52:54:00:be:8e:8c fdi.pxauto=1"
将此介质复制到 CD、DVD 或者 USB 盘点。例如,要复制到位于 /dev/sdb
的 USB 记忆棒:
# dd bs=4M \ if=/usr/share/foreman-discovery-image/foreman-discovery-image-3.4.4-5.iso \ of=/dev/sdb
将发现引导介质插入到裸机主机中,启动主机并从介质引导。
有关置备发现的主机的更多信息,请参阅 第 7.5 节 “从发现的主机创建主机”。
7.9. 扩展发现镜像
您可以使用自定义事实、软件或设备驱动程序扩展卫星发现镜像。您还可以提供一个压缩存档文件,其中包含供镜像使用的额外代码。
流程
创建以下目录结构:
. ├── autostart.d │ └── 01_zip.sh ├── bin │ └── ntpdate ├── facts │ └── test.rb └── lib ├── libcrypto.so.1.0.0 └── ruby └── test.rb
-
autostart.d
目录包含镜像启动时由 POSIX 顺序执行的脚本,但在主机注册到卫星之前。 -
bin
目录添加到$PATH
变量;您可以在这个目录中放置二进制文件,并将它们用于autostart
脚本。 -
事实
目录添加到FACTERLIB
变量中,以便配置并发送到 Satellite。 -
lib
目录添加到LD_LIBRARY_PATH
变量中,将lib/ruby
添加到RUBYLIB
变量中,以便可以正确执行/bin
中的二进制文件。
-
创建目录结构后,使用以下命令创建一个
.zip
文件存档:# zip -r my_extension.zip .
要告知发现镜像,必须使用 Discovery 镜像在 TFTP 服务器上放置 zip 文件,然后使用指向 TFTP root 的
fdi.zips
选项更新 PXELinux 模板的APPEND
行。例如,如果您在$ TFTP/zip1.zip
和$ TFTP/boot/zip2.zip
这两个存档,请使用以下语法:fdi.zips=zip1.zip,boot/zip2.zip
您可以在现有环境变量(PATH
、LD_LIBRARY_PATH
、RUBYLIB
和 FACTERLIB
中)添加新指令和选项。如果要在您的脚本中明确指定路径,.zip
文件内容会提取到镜像上的 /opt/extension
目录中。
您可以创建多个 .zip
文件,但注意它们会提取到 Discovery 镜像上的同一位置。从以后的 .zip
文件中提取的文件如果文件具有相同的文件名,则覆盖更早的版本。
7.10. Discovery 故障排除
如果在 Hosts > Discovered Hosts 中的 Satellite web UI 中没有列出机器,请检查以下配置区域以帮助隔离错误:
- 在卫星 Web UI 中,导航到 Hosts > Provisioning Templates,然后使用 Build PXE Default 按钮重新部署 default PXELinux 模板。
-
验证 TFTP 胶囊上的
pxelinux.cfg/default
配置文件。 - 确保主机、胶囊服务器和卫星服务器之间的足够的网络连接。
-
检查正在使用的 PXELinux 模板,并确定其包括的 PXE 发现片断。代码段命名为如下所示:
pxelinux_discovery
、pxegrub_discovery
或pxegrub2_discovery
。验证 PXE 发现代码段中的proxy.url
和proxy.type
选项。 -
确保 DNS 在发现的节点中正常工作,或使用您正在使用的PXE 发现片段中的
proxy.url
选项中的 IP 地址。 - 确保 DHCP 服务器正确向引导的镜像提供 IP 地址。
- 确保发现的主机或虚拟机至少有 1200 MB 内存。较少的内存可能会导致各种随机内核 panic 错误,因为镜像被提取到内存中。
若要收集重要的系统事实,请使用 discovery-debug
命令。它打印系统日志、网络配置、事实列表以及标准输出的其他信息。典型的用例是重定向此输出并使用 scp
命令复制该输出以便进一步调查。
已发现主机上的第一个虚拟控制台被保留用于 systemd 日志。特别有用的系统日志标记为如下:
-
discover-host
- 初始事实上传 -
Foreman-discovery
- 事实刷新,重新启动远程命令 -
nm-prepare
- 预配置 NetworkManager 的引导脚本 -
NetworkManager
- 网络信息
使用 TTY2 或更高版本登录发现的主机。默认情况下,root 帐户和 SSH 访问是禁用的,但您可以在 APPEND 行中使用 Default PXELinux 模板中的以下内核命令行选项启用 SSH 并设置 root 密码:
fdi.ssh=1 fdi.rootpw=My_Password
第 8 章 使用 Red Hat Image Builder 镜像置备
在 Satellite 中,您可以与 RHEL web 控制台集成,以执行操作并监控主机。使用 RHEL web 控制台,您可以访问 Red Hat Image Builder 和构建镜像,然后您可以上传到 HTTP 服务器,并使用此镜像来置备主机。当您配置 Satellite 进行镜像置备时,Anaconda 安装程序分区磁盘会下载并挂载镜像并将文件复制到主机。首选镜像类型是 TAR。
有关将 RHEL web 控制台与 Satellite 集成的更多信息,请参阅 管理主机 中的 使用 RHEL web 控制台进行主机管理和监控。
先决条件
- 通过 Red Hat Image Builder 创建的现有 TAR 镜像。
流程
- 在卫星上,创建自定义产品,添加自定义文件存储库到此产品,并将镜像上传到存储库。有关更多信息,请参阅管理 内容中的导入单个 ISO 镜像和 文件。
- 在 Satellite Web UI 中,进入 Configure > Host Groups,然后选择要使用的主机组。
- 单击 Parameters 选项卡,然后单击 Add Parameter。
-
在 Name 字段中输入
kickstart_liveimg
。 - 从 Type 列表,选择 字符串。
-
在 Value 字段中输入绝对路径或相对路径,格式为
custom/product/repository/image_name
,指向存储镜像的确切位置。 - 点 Submit 保存您的更改。
您可以使用计算资源将此镜像用于裸机置备和置备。有关裸机置备的详情,请参考 第 6 章 使用 PXE 来置备主机。有关使用不同计算资源配置的更多信息,请参见您要使用的计算资源的相关章节。
第 9 章 在 KVM 上置备虚拟机(libvirt)
基于内核的虚拟机(KVM)使用在 Red Hat Enterprise Linux 上运行的开源虚拟化守护进程和名为 libvirt
的 API。Red Hat Satellite 可以连接到 KVM 服务器上的 libvirt
API,在虚拟机监控程序上配置主机并控制某些虚拟化功能。
只有通过 Satellite 创建的虚拟机才能管理。不支持目录存储池类型以外的虚拟机。
您可以使用 KVM 置备通过网络连接或从现有镜像创建主机。
先决条件
- 您可以对 Red Hat Enterprise Linux 使用同步的内容存储库。如需更多信息,请参阅管理内容 中的 同步存储库。
- 为主机注册提供激活密钥。如需更多信息,请参阅在 管理内容 中创建 激活码。
- 在 KVM 服务器上管理网络的胶囊服务器。确保在这个网络中没有运行其他 DHCP 服务以避免与胶囊服务器冲突。有关胶囊服务器的网络服务配置的更多信息,请参阅配置主机中的 网络 。
- 运行 KVM 虚拟化工具(libvirt 守护进程)的 Red Hat Enterprise Linux 服务器。如需更多信息,请参阅 Red Hat Enterprise Linux 8 配置和管理虚拟化。
-
如果要使用基于镜像的置备,则现有虚拟机镜像。确保此镜像存在于 KVM 主机上的存储池中。
默认
存储池通常位于/var/lib/libvirt/images
中。只有目录池存储类型可以通过 Satellite 管理。 可选:这些流程中的示例使用 KVM 的 root 用户。如果要在 KVM 服务器中使用非 root 用户,则必须将用户添加到 KVM 服务器上的
libvirt
组中:useradd -a -G libvirt non_root_user
具有以下角色的 Satellite 用户帐户:
- 编辑主机
查看主机
有关更多信息,请参阅在 管理 Red Hat Satellite 中 将角色分配到用户。
在 Satellite 中具有以下权限的自定义角色:
9.1. 为 KVM 连接配置 Satellite 服务器
在添加 KVM 连接前,为 foreman
用户创建 SSH 密钥对,以确保卫星服务器和 KVM 之间的安全连接。
流程
在 Satellite 服务器中,切换到
foreman
用户:# su foreman -s /bin/bash
生成密钥对:
$ ssh-keygen
将公钥复制到 KVM 服务器中:
$ ssh-copy-id root@kvm.example.com
退出
foreman
用户的 bash shell:$ exit
安装
libvirt-client
软件包:# satellite-maintain packages install libvirt-client
使用以下命令测试到 KVM 服务器的连接:
# su foreman -s /bin/bash -c 'virsh -c qemu+ssh://root@kvm.example.com/system list'
9.2. 将 KVM 连接添加到卫星服务器
使用这个步骤将 KVM 添加为 Satellite 中的计算资源。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources,再点击 Create Compute Resource。
- 在 Name 字段中输入新计算资源的名称。
- 从 Provider 列表中,选择 Libvirt。
- 在 Description 字段中输入计算资源的描述。
在 URL 字段中输入到 KVM 服务器的连接 URL。例如:
qemu+ssh://root@kvm.example.com/system
- 在 Display type 列表中,选择 VNC 或 Spice。
可选: 要使用随机生成的密码保护新主机的安全控制台访问,请选择 显示连接框中随机生成的密码。您可以检索 VNC 控制台的密码,从 KVM 服务器上执行的命令输出访问客户机虚拟机控制台:
# virsh edit your_VM_name <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' passwd='your_randomly_generated_password'>
每次打开虚拟机的控制台时,会随机生成密码,例如使用 virt-manager。
- 单击 Test Connection,以确保卫星服务器在没有故障的情况下连接到 KVM 服务器。
- 验证 位置和组织 选项卡是否已自动设置为您的当前上下文。如果需要,在这些标签页中添加其他上下文。
- 点 Submit 保存 KVM 连接。
CLI 过程
要创建计算资源,请输入
hammer compute-resource create
命令:# hammer compute-resource create --name "My_KVM_Server" \ --provider "Libvirt" --description "KVM server at kvm.example.com" \ --url "qemu+ssh://root@kvm.example.com/system" --locations "New York" \ --organizations "My_Organization"
9.3. 在 Satellite 服务器中添加 KVM 镜像
要使用基于镜像的调配来创建主机,您必须将镜像的信息(如访问详情和镜像位置)添加到 Satellite 服务器中。
请注意,您只能通过 Satellite 管理目录池存储类型。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入 Infrastructure > Compute Resources 并点 KVM 连接的名称。
- 点 Create Image。
- 在 Name 字段中输入镜像的名称。
- 从 Operating System 列表中,选择镜像的基本操作系统。
- 从 架构 列表中,选择操作系统架构。
-
在 Username 字段中输入 SSH 用户名以进行镜像访问。这通常是
root
用户。 - 在 Password 字段中输入用于镜像访问的 SSH 密码。
在 Image path 字段中,输入指向 KVM 服务器上的镜像的完整路径。例如:
/var/lib/libvirt/images/TestImage.qcow2
-
可选:如果镜像 支持用户 数据输入,请选择用户数据复选框,如
cloud-init
数据。 - 单击 Submit 以保存镜像详情。
CLI 过程
使用
hammer compute-resource image create
命令创建镜像。使用--uuid
字段在 KVM 服务器上存储镜像位置的完整路径。# hammer compute-resource image create \ --name "KVM Image" \ --compute-resource "My_KVM_Server" --operatingsystem "RedHat version" \ --architecture "x86_64" \ --username root \ --user-data false \ --uuid "/var/lib/libvirt/images/KVMimage.qcow2" \
9.4. 在计算配置集中添加 KVM 详情
使用这个步骤在计算配置集中添加 KVM 硬件设置。当使用此计算配置文件在 KVM 上创建主机时,会自动填充这些设置。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Profiles。
- 在 Compute Profiles 窗口中,单击现有计算配置文件的名称,或者单击 Create Compute Profile,输入 Name,然后单击 Submit。
- 单击 KVM 计算资源的名称。
- 在 CPU 字段中输入要分配给新主机的 CPU 数量。
- 在 Memory 字段中输入要分配给新主机的内存量。
- 从 Image 列表中,选择执行基于镜像的调配时要使用的镜像。
- 从 Network Interfaces 列表中,选择主机网络接口的网络参数。您可以创建多个网络接口。但是,至少有一个接口必须指向 Capsule-managed 网络。
- 在 Storage 区域,输入主机的存储参数。您可以为主机创建多个卷。
- 单击 Submit,将设置保存到计算配置文件中。
CLI 过程
运行以下命令来创建计算配置集:
# hammer compute-profile create --name "Libvirt CP"
要为计算配置集添加值,请输入以下命令:
# hammer compute-profile values create --compute-profile "Libvirt CP" \ --compute-resource "My_KVM_Server" \ --interface "compute_type=network,compute_model=virtio,compute_network=examplenetwork" \ --volume "pool_name=default,capacity=20G,format_type=qcow2" \ --compute-attributes "cpus=1,memory=1073741824"
9.5. 在 KVM 上创建主机
在 Satellite 中,您可以使用 KVM 置备通过网络连接或从现有镜像创建主机:
- 如果要通过网络连接创建主机,新主机必须能够访问卫星服务器的集成胶囊或 KVM 虚拟网络上的外部胶囊服务器,以便主机能够访问 PXE 调配服务。这个新主机条目会触发 KVM 服务器来创建和启动虚拟机。如果虚拟机通过虚拟网络检测到定义的胶囊服务器,则虚拟机将启动到 PXE,并开始安装所选操作系统。
- 如果要使用现有镜像创建主机,新主机条目会触发 KVM 服务器创建虚拟机,以使用预先存在的镜像作为新卷的基础。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
DHCP 冲突
对于基于网络的调配,如果您使用 KVM 服务器上的虚拟网络进行调配,请选择不提供 DHCP 分配的网络。这会导致在引导新主机时 DHCP 与卫星服务器冲突。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Create Host。
- 在 Name 字段中输入主机的名称。
- 单击 Organization 和 Location 选项卡,以确保调配上下文自动设置为当前上下文。
- 在 Host Group 列表中,选择您要用来填充表单的主机组。
- 从 Deploy on 列表中,选择 KVM 连接。
- 从 Compute Profile 列表,选择要用于自动填充虚拟机设置的配置集。
- 单击 Interface 选项卡,再单击主机的接口上的 Edit。
验证字段是否自动填充,特别是以下项:
- Host 选项卡中的 Name 将变为 DNS 名称。
- 卫星服务器会自动为新主机分配一个 IP 地址。
- MAC 地址 字段为空。KVM 服务器为主机分配 MAC 地址。
- 对于主机上的第一个接口 , 会自动选择 受管、主要 和调配选项。如果没有,请选择它们。
- 特定于 KVM 的字段会填充您的计算配置集中的设置。如果需要,修改这些设置。
- 单击 Operating System 选项卡,并确认所有字段都自动包含值。
选择要使用的 Provisioning 方法 :
- 对于基于网络的调配,请单击 基于 Networkbased。
- 对于基于镜像的调配,请单击基于 Imagebased。
- 单击 Provisioning 模板中的 Resolve,以检查新主机可以识别要使用的正确置备模板。
- 单击 Virtual Machine 选项卡,并确认这些设置填充了来自主机组和计算配置集的详细信息。根据您的需要修改这些设置。
- 单击 Parameters 选项卡,并确保存在一个提供激活密钥的参数。如果没有,请添加激活码。
- 单击 Submit 以保存主机条目。
CLI 过程
要使用基于网络的配置,请使用
hammer host create
命令创建主机,并包含--provision-method 构建
。将以下示例中的值替换为您的环境的适当值。# hammer host create \ --name "kvm-host1" \ --organization "My_Organization" \ --location "New York" \ --hostgroup "Base" \ --compute-resource "My_KVM_Server" \ --provision-method build \ --build true \ --enabled true \ --managed true \ --interface "managed=true,primary=true,provision=true,compute_type=network,compute_network=examplenetwork" \ --compute-attributes="cpus=1,memory=1073741824" \ --volume="pool_name=default,capacity=20G,format_type=qcow2" \ --root-password "password"
要使用基于镜像的调配,请使用
hammer
主机创建主机,并包含--provision-method 镜像
。将以下示例中的值替换为您的环境的适当值。# hammer host create \ --name "kvm-host2" \ --organization "My_Organization" \ --location "New York" \ --hostgroup "Base" \ --compute-resource "My_KVM_Server" \ --provision-method image \ --image "KVM Image" \ --enabled true \ --managed true \ --interface "managed=true,primary=true,provision=true,compute_type=network,compute_network=examplenetwork" \ --compute-attributes="cpus=1,memory=1073741824" \ --volume="pool_name=default,capacity=20G,format_type=qcow2"
有关此计算资源的其他主机创建参数的更多信息,请输入 hammer host create --help
命令。
第 10 章 在 Red Hat Virtualization 上置备虚拟机
Red Hat Virtualization 是一个企业级服务器和桌面虚拟化平台。在 Red Hat Satellite 中,您可以通过 Red Hat Virtualization 的 REST API 管理虚拟化功能。这包括创建虚拟机并控制其电源状态。
您可以使用 Red Hat Virtualization 置备通过网络连接或现有镜像创建虚拟机。
您可以使用 cloud-init
来配置您置备的虚拟机。使用 cloud-init
避免网络上任何特殊配置,如受管 DHCP 和 TFTP,以完成虚拟机的安装。此方法不需要卫星通过 SSH 连接到置备的虚拟机,以运行完成脚本。
先决条件
- 您可以对 Red Hat Enterprise Linux 使用同步的内容存储库。如需更多信息,请参阅管理内容 中的 同步存储库。
- 为主机注册提供激活密钥。如需更多信息,请参阅在 管理内容 中创建 激活码。
- 在 Red Hat Virtualization 环境中管理逻辑网络的胶囊服务器。确保在这个网络中没有运行其他 DHCP 服务以避免与胶囊服务器冲突。如需更多信息,请参阅配置主机中的 网络连接 。
-
如果要使用基于镜像的置备,除空白模板以外的现有模板。
有关为虚拟机创建模板的更多信息,请参阅 Red Hat Virtualization 虚拟机管理指南中的 模板。
Red Hat Virtualization 上的类似管理的用户,用于与卫星服务器通信。不要将
admin@internal
用户用于此通信。反之,创建一个具有以下权限的新 Red Hat Virtualization 用户:- system > Configure System > Login Permissions
- network > Configure vNIC Profile > Create
- network > Configure vNIC Profile > Edit Properties
- network > Configure vNIC Profile > Delete
- network > Configure vNIC Profile > Assign vNIC Profile to VM
- network > Configure vNIC Profile > Assign vNIC Profile to Template
- template > Provisioning Operations > Import/Export
- VM > Provisioning Operations > Create
- VM > Provisioning Operations > Delete
- VM > Provisioning Operations > Import/Export
- VM > Provisioning Operations > Edit Storage
- Disk > Provisioning Operations > Create
Disk > Disk Profile > Attach Disk Profile
有关如何创建用户并在 Red Hat Virtualization 中添加权限的更多信息,请参阅 《Red Hat Virtualization 管理指南 》中的管理用户 任务。
10.1. 将 Red Hat Virtualization 连接添加到卫星服务器
使用这个步骤将 Red Hat Virtualization 添加为 Satellite 中的计算资源。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources,再点击 Create Compute Resource。
- 在 Name 字段中输入新计算资源的名称。
- 从 Provider 列表中,选择 RHV。
- 在 Description 字段中输入计算资源的描述。
-
在 URL 字段中输入 Red Hat Virtualization Manager API 的连接 URL,格式为
:
- 在 User 字段中,输入有权访问 Red Hat Virtualization Manager 资源的用户名称。
- 在 Password 字段中,输入用户的密码。
- 点击 Load Datacenters 为 Datacenter 列表填充 Red Hat Virtualization 环境中的数据中心。
- 从 Datacenter 列表中,选择一个数据中心。
- 从 Quota ID 列表中,选择配额来限制 Satellite 可用资源。
- 在 X509 Certification Authorities 字段中,输入 SSL/TLS 访问的证书颁发机构。或者,如果您将字段留空,则在服务器的第一个 API 请求中生成自签名证书。
- 单击位置选项卡,再选择要使用的位置。
- 单击 Organizations 选项卡,再选择要使用的组织。
- 单击 Submit 以保存计算资源。
CLI 过程
为
--provider
输入带有Ovirt
的hammer compute-resource create
命令,以及要用于--datacenter
的数据中心的名称。# hammer compute-resource create \ --name "My_RHV" --provider "Ovirt" \ --description "RHV server at rhv.example.com" \ --url "https://rhv.example.com/ovirt-engine/api" \ --user "Satellite_User" --password "My_Password" \ --locations "New York" --organizations "My_Organization" \ --datacenter "My_Datacenter"
10.2. 在 Red Hat Virtualization 中准备 Cloud-init 镜像
要在置备过程中使用 cloud-init
,必须准备在 Red Hat Virtualization 中安装 cloud-init
的镜像,然后将镜像导入到 Satellite 以供调配。
流程
- 在 Red Hat Virtualization 中,创建虚拟机以在 Satellite 中用于基于镜像的配置。
在虚拟机上安装
cloud-init
:dnf install cloud-init
在
/etc/cloud/cloud.cfg
文件中添加以下信息:datasource_list: ["NoCloud", "ConfigDrive"]
- 在 Red Hat Virtualization 中,从此虚拟机创建镜像。
将此镜像添加到 Satellite 时,请确保选中 User Data 复选框。
10.3. 在 Satellite 服务器中添加 Red Hat Virtualization 镜像
要使用基于镜像的调配来创建主机,您必须将镜像的信息(如访问详情和镜像位置)添加到 Satellite 服务器中。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入 Infrastructure > Compute Resources 并点 Red Hat Virtualization 连接的名称。
- 点 Create Image。
- 在 Name 字段中输入镜像的名称。
- 从 Operating System 列表中,选择镜像的基本操作系统。
- 从 架构 列表中,选择操作系统架构。
-
在 Username 字段中输入 SSH 用户名以进行镜像访问。这通常是
root
用户。 - 在 Password 字段中输入用于镜像访问的 SSH 密码。
- 从 Image 列表中,从 Red Hat Virtualization 计算资源选择镜像。
-
可选:如果镜像 支持用户 数据输入,请选择用户数据复选框,如
cloud-init
数据。 - 单击 Submit 以保存镜像详情。
CLI 过程
使用
hammer compute-resource image create
命令创建镜像。使用--uuid
选项将模板 UUID 存储到 Red Hat Virtualization 服务器上。# hammer compute-resource image create \ --name "RHV_Image" \ --compute-resource "My_RHV" --operatingsystem "RedHat version" \ --architecture "x86_64" \ --username root \ --uuid "9788910c-4030-4ae0-bad7-603375dd72b1" \
10.4. 准备 Cloud-init 模板
流程
- 在 Satellite Web UI 中,导航到 Hosts > Provisioning Templates,再点击 Create Template。
- 在 Name 字段中输入模板的名称。
在 Editor 字段中输入以下模板详情:
<%# kind: user_data name: Cloud-init -%> #cloud-config hostname: <%= @host.shortname %> <%# Allow user to specify additional SSH key as host parameter -%> <% if @host.params['sshkey'].present? || @host.params['remote_execution_ssh_keys'].present? -%> ssh_authorized_keys: <% if @host.params['sshkey'].present? -%> - <%= @host.params['sshkey'] %> <% end -%> <% if @host.params['remote_execution_ssh_keys'].present? -%> <% @host.params['remote_execution_ssh_keys'].each do |key| -%> - <%= key %> <% end -%> <% end -%> <% end -%> runcmd: - | #!/bin/bash <%= indent 4 do snippet 'subscription_manager_registration' end %> <% if @host.info['parameters']['realm'] && @host.realm && @host.realm.realm_type == 'Red Hat Identity Management' -%> <%= indent 4 do snippet 'freeipa_register' end %> <% end -%> <% unless @host.operatingsystem.atomic? -%> # update all the base packages from the updates repository yum -t -y -e 0 update <% end -%> <% # safemode renderer does not support unary negation non_atomic = @host.operatingsystem.atomic? ? false : true pm_set = @host.puppetmaster.empty? ? false : true puppet_enabled = non_atomic && (pm_set || @host.params['force-puppet']) %> <% if puppet_enabled %> yum install -y puppet cat > /etc/puppet/puppet.conf << EOF <%= indent 4 do snippet 'puppet.conf' end %> EOF # Setup puppet to run on system reboot /sbin/chkconfig --level 345 puppet on /usr/bin/puppet agent --config /etc/puppet/puppet.conf --onetime --tags no_such_tag <%= @host.puppetmaster.blank? ? '' : "--server #{@host.puppetmaster}" %> --no-daemonize /sbin/service puppet start <% end -%> phone_home: url: <%= foreman_url('built') %> post: [] tries: 10pp
- 点 Type 选项卡,从 Type 列表中选择 User data template。
- 点 Association 选项卡,从 Applicable Operating Systems 列表中选择您要与模板关联的操作系统。
- 单击位置选项卡,然后从 位置 列表中选择您要与模板关联的位置。
- 单击 Organizations 选项卡,再从 Organization 列表中选择您要与模板关联的机构。
- 点 Submit。
- 在 Satellite Web UI 中,导航到 Hosts > Operating Systems,然后选择您要与模板关联的操作系统。
- 单击 Templates 选项卡,然后从 User data template 列表中选择新模板的名称。
- 点 Submit。
10.5. 将 Red Hat Virtualization Details 添加到计算配置集
使用这个流程在计算配置集中添加 Red Hat Virtualization 硬件设置。当使用此计算配置文件在 KVM 上创建主机时,会自动填充这些设置。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Profiles。
- 在 Compute Profiles 窗口中,单击现有计算配置文件的名称,或者单击 Create Compute Profile,输入 Name,然后单击 Submit。
- 点 Red Hat Virtualization 计算资源的名称。
- 在 Cluster 列表中,选择 Red Hat Virtualization 环境中的目标主机集群。
- 从 Template 列表中,选择要用于 Cores 和 Memory 设置的 RHV 模板。
- 在 Cores 字段中,输入要分配给新主机的 CPU 内核数。
- 在 Memory 字段中输入要分配给新主机的内存量。
- 从 Image 列表中,选择要用于基于镜像的调配的镜像。
在 Network Interfaces 区域中,输入主机网络接口的网络参数。您可以创建多个网络接口。但是,至少有一个接口必须指向 Capsule-managed 网络。对于每个网络接口,请输入以下详情:
- 在 Name 字段中输入网络接口的名称。
- 在 Network 列表中选择要使用的逻辑网络。
在 Storage 区域,输入主机的存储参数。您可以为主机创建多个卷。对于每个卷,请输入以下详情:
- 在 Size(GB) 为新卷输入大小(以 GB 为单位)。
- 在 Storage domain 列表中,为卷选择存储域。
- 在 Preallocate 磁盘中,选择全磁盘的精简配置或预分配。
- 在 Bootable 列表中选择您是否需要可引导卷。
- 单击 Submit 以保存该计算配置文件。
CLI 过程
运行以下命令来创建计算配置集:
# hammer compute-profile create --name "Red Hat Virtualization CP"
要为计算配置集设置值,请输入以下命令:
# hammer compute-profile values create --compute-profile "Red Hat Virtualization CP" \ --compute-resource "My_RHV" \ --interface "compute_interface=Interface_Type,compute_name=eth0,compute_network=satnetwork" \ --volume "size_gb=20G,storage_domain=Data,bootable=true" \ --compute-attributes "cluster=Default,cores=1,memory=1073741824,start=true""
10.6. 在 Red Hat Virtualization 上创建主机
在 Satellite 中,您可以使用 Red Hat Virtualization 置备通过网络连接或从现有镜像创建主机:
- 如果要通过网络连接创建主机,新主机必须能够访问 Red Hat Virtualization 虚拟网络上的卫星服务器的集成胶囊或外部胶囊服务器,以便主机能够访问 PXE 调配服务。这个新主机条目会触发 Red Hat Virtualization 服务器创建和启动虚拟机。如果虚拟机通过虚拟网络检测到定义的胶囊服务器,则虚拟机将启动到 PXE,并开始安装所选操作系统。
- 如果要使用现有镜像创建主机,新主机条目会触发 Red Hat Virtualization 服务器创建虚拟机,以使用预先存在的镜像作为新卷的基础。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
DHCP 冲突
对于基于网络的调配,如果您在 Red Hat Virtualization 服务器上使用虚拟网络进行调配,请选择不提供 DHCP 分配的网络。这会导致在引导新主机时 DHCP 与卫星服务器冲突。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Create Host。
- 在 Name 字段中输入主机的名称。
- 单击 Organization 和 Location 选项卡,以确保调配上下文自动设置为当前上下文。
- 在 Host Group 列表中,选择您要用来填充表单的主机组。
- 在 Deploy on 列表中,选择 Red Hat Virtualization 连接。
- 从 Compute Profile 列表,选择要用于自动填充虚拟机设置的配置集。
- 单击 Interface 选项卡,再单击主机的接口上的 Edit。
验证字段是否自动填充,特别是以下项:
- Host 选项卡中的 Name 将变为 DNS 名称。
- 卫星服务器会自动为新主机分配一个 IP 地址。
- MAC 地址 字段为空。Red Hat Virtualization 服务器为主机分配 MAC 地址。
- 对于主机上的第一个接口 , 会自动选择 受管、主要 和调配选项。如果没有,请选择它们。
- Red Hat Virtualization 特定字段会填充您的计算配置集中的设置。如果需要,修改这些设置。
- 单击 Operating System 选项卡,并确认所有字段都自动包含值。
选择要使用的 Provisioning 方法 :
- 对于基于网络的调配,请单击 基于 Networkbased。
- 对于基于镜像的调配,请单击基于 Imagebased。
- 单击 Provisioning 模板中的 Resolve,以检查新主机可以识别要使用的正确置备模板。
- 单击 Virtual Machine 选项卡,并确认这些设置填充了来自主机组和计算配置集的详细信息。根据您的需要修改这些设置。
- 单击 Parameters 选项卡,并确保存在一个提供激活密钥的参数。如果没有,请添加激活码。
- 单击 Submit 以保存主机条目。
CLI 过程
要使用基于网络的配置,请使用
hammer host create
命令创建主机,并包含--provision-method 构建
。将以下示例中的值替换为您的环境的适当值。# hammer host create \ --name "RHV-vm1" \ --organization "My_Organization" \ --location "New York" \ --hostgroup "Base" \ --compute-resource "My_RHV" \ --provision-method build \ --build true \ --enabled true \ --managed true \ --interface "managed=true,primary=true,provision=true,compute_name=eth0,compute_network=satnetwork" \ --compute-attributes="cluster=Default,cores=1,memory=1073741824,start=true" \ --volume="size_gb=20G,storage_domain=Data,bootable=true"
要使用基于镜像的调配,请使用
hammer
主机创建主机,并包含--provision-method 镜像
。将以下示例中的值替换为您的环境的适当值。# hammer host create \ --name "RHV-vm2" \ --organization "My_Organization" \ --location "New York" \ --hostgroup "Base" \ --compute-resource "My_RHV" \ --provision-method image \ --image "RHV_Image" \ --enabled true \ --managed true \ --interface "managed=true,primary=true,provision=true,compute_name=eth0,compute_network=satnetwork" \ --compute-attributes="cluster=Default,cores=1,memory=1073741824,start=true" \ --volume="size_gb=20G,storage_domain=Data,bootable=true"
有关此计算资源的其他主机创建参数的更多信息,请输入 hammer host create --help
命令。
第 11 章 在 VMware vSphere 中置备虚拟机
VMware vSphere 是 VMware 的企业级虚拟化平台。红帽卫星可以与 vSphere 平台交互,包括创建新虚拟机并控制其电源管理状态。
11.1. 安装 VMware 插件
安装 VMware 插件,以将 VMware 计算资源提供商附加到 Satellite。这样,您可以管理主机并将其部署到 VMware。
流程
在卫星服务器上安装 VMware 计算资源供应商:
# satellite-installer --enable-foreman-compute-vmware
- 可选:在 Satellite web UI 中,导航到 Administer > About 并选择 compute resources 选项卡来验证 VMware 插件的安装。
11.2. VMware 置备先决条件
VMware vSphere 置备的要求包括:
- 在 vSphere 环境中管理网络的胶囊服务器。确保在这个网络中没有运行其他 DHCP 服务以避免与胶囊服务器冲突。更多信息请参阅 第 3 章 配置网络。
- 如果要使用基于镜像的置备,则现有 VMware 模板。
- 您可以对 Red Hat Enterprise Linux 使用同步的内容存储库。如需更多信息,请参阅管理内容 中的 同步存储库。
- 为主机注册提供激活密钥。如需更多信息,请参阅在 管理内容 中创建 激活码。
11.3. 创建 VMware 用户
VMware vSphere 服务器需要类似管理的用户才能进行卫星服务器通信。为安全起见,请不要使用 管理员用户
进行此类通信。反之,创建一个具有以下权限的用户:
对于 VMware vCenter Server 版本 6.7,请设置以下权限:
- All Privileges → Datastore → Allocate Space, Browse datastore, Update Virtual Machine files, Low level file operations
- All Privileges → Network → Assign Network
- All Privileges → Resource → Assign virtual machine to resource pool
- All Privileges → Virtual Machine → Change Config(All)
- All Privileges → Virtual Machine → Interaction(All)
- All Privileges → Virtual Machine → Edit Inventory(All)
- All Privileges → Virtual Machine → Provisioning(All)
请注意,相同的步骤也适用于 VMware vCenter Server 版本 7.0。
对于 VMware vCenter Server 版本 6.5,请设置以下权限:
- All Privileges → Datastore → Allocate Space, Browse datastore, Update Virtual Machine files, Low level file operations
- All Privileges → Network → Assign Network
- All Privileges → Resource → Assign virtual machine to resource pool
- All Privileges → Virtual Machine → Configuration(All)
- All Privileges → Virtual Machine → Interaction(All)
- All Privileges → Virtual Machine → Inventory(All)
- All Privileges → Virtual Machine → Provisioning(All)
11.4. 将 VMware 连接添加到卫星服务器
使用这个步骤在 Satellite 服务器的计算资源中添加 VMware vSphere 连接。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
先决条件
- 确保主机和基于网络的防火墙配置为允许从卫星服务器到 TCP 端口 443 上的 vCenter。
- 验证 Satellite 服务器和 vCenter 是否可以解析其他主机名。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources,然后在 Compute Resources 窗口中点击 Create Compute Resource。
- 在 Name 字段中输入资源的名称。
- 从 Provider 列表中,选择 VMware。
- 在 Description 字段中输入资源的描述。
- 在 VCenter/Server 字段中输入 vCenter 服务器的 IP 地址或主机名。
- 在 User 字段中,输入具有访问 vCenter 资源的权限的用户名。
- 在 Password 字段中,输入用户的密码。
- 点击 Load Datacenters 从 VMware vSphere 环境中填充数据中心列表。
- 从 Datacenter 列表中,选择要从此列表中管理的特定数据中心。
- 在 Fingerprint 字段中,确保此字段填充了数据中心的指纹。
- 在 Display Type 列表中,选择控制台类型,如 VNC 或 VMRC。请注意,VMware ESXi 6.5 及之后的版本不支持 VNC 控制台。
可选:在 VNC Console Passwords 字段中,选择 在显示连接框中设置随机生成的密码,以使用随机生成的密码保护新主机的控制台访问。您可以检索 VNC 控制台的密码,从以下命令输出中的
libvirtd
主机访问客户端虚拟机控制台:# virsh edit your_VM_name <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' passwd='your_randomly_generated_password'>
每次打开虚拟机的控制台时,密码会随机生成,例如使用 virt-manager。
- 从 Enable caching 列表中,您可以选择是否启用计算资源缓存。更多信息请参阅 第 11.11 节 “计算资源的缓存”。
- 单击 位置和组织 选项卡,并验证这些值已自动设置为您的当前上下文。您还可以添加额外的上下文。
- 点 Submit 保存连接。
CLI 过程
使用
hammer compute-resource create
命令创建连接。选择Vmware
作为--provider
,将数据中心的实例 UUID 设置为--uuid
:# hammer compute-resource create \ --datacenter "My_Datacenter" \ --description "vSphere server at vsphere.example.com" \ --locations "My_Location" \ --name "My_vSphere" \ --organizations "My_Organization" \ --password "My_Password" \ --provider "Vmware" \ --server "vsphere.example.com" \ --user "My_User"
11.5. 在 Satellite 服务器中添加 VMware 镜像
VMware vSphere 使用模板作为创建新虚拟机的镜像。如果使用基于镜像的调配来创建新主机,则需要将 VMware 模板详细信息添加到卫星服务器。这包括访问详情和模板名称。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources。
- 选择您的 Vmware 计算资源。
- 点 Create Image。
- 在 Name 字段中输入镜像的名称。
- 从 Operating System 列表中,选择镜像的基本操作系统。
- 从 架构 列表中,选择操作系统架构。
-
在 Username 字段中输入 SSH 用户名以进行镜像访问。默认情况下,这设置为
root
。 -
在 User data 列表中,选择是否希望镜像支持用户数据输入,如
cloud-init
数据。 - 在 Password 字段中输入用于镜像访问的 SSH 密码。
- 在 Image 字段中输入 vSphere 环境中模板的相对路径和名称。不要将数据中心包含在相对路径中。
- 单击 Submit 以保存镜像详情。
CLI 过程
使用
hammer compute-resource image create
命令创建镜像。使用--uuid
字段在 vSphere 环境中存储相对模板路径:# hammer compute-resource image create \ --architecture "My_Architecture" \ --compute-resource "My_VMware" --name "My_Image" \ --operatingsystem "My_Operating_System" \ --username root \ --uuid "My_UUID"
11.6. 将 VMware Details 添加到计算配置集
您可以预定义 VMware vSphere 上的虚拟机的特定硬件设置。您可以通过将这些硬件设置添加到计算配置集来实现。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Profiles。
- 选择一个计算配置文件。
- 选择 Vmware 计算资源。
- 在 CPU 字段中,输入要分配给主机的 CPU 数量。
- 在 Cores per socket 字段中输入要分配给每个 CPU 的内核数。
- 在 Memory 字段中输入要分配给主机的内存量。
- 在 固件 复选框中,选择 BIOS 或 UEFI 作为主机的固件。默认情况下,这设置为自动 。
- 在 Cluster 列表中,选择 VMware 环境中的目标主机集群名称。
- 从 Resource pool 列表中,为主机选择一个可用资源分配。
- 在 Folder 列表中,选择要组织主机的文件夹。
- 从 Guest OS 列表中,选择要在 VMware vSphere 中使用的操作系统。
- 从 Virtual H/W 版本 列表中,选择用于虚拟机的底层 VMware 硬件抽象。
- 如果要在虚拟机开启时添加更多内存,请选择" 内存热添加 "复选框。
- 如果要在虚拟机开启的同时添加更多 CPU,请选择 CPU 热添加 复选框。
- 如果要添加 CD-ROM 驱动器,请选择 CD-ROM 驱动器 复选框。
- 从 引导顺序列表中,定义虚拟机尝试引导的顺序。
- 可选:在 Annotation notes 字段中输入一个任意描述。
- 如果使用基于镜像的置备,请从 Image 列表中选择镜像。
- 从 SCSI 控制器 列表中,为主机选择磁盘访问方法。
- 如果要使用 eager zero thick 置备,请选择 Eager zero 复选框。默认情况下,磁盘使用 lazy zero thick 置备。
- 从 Network Interfaces 列表中,选择主机网络接口的网络参数。至少一个接口必须指向 Capsule-managed 网络。
- 可选:点 Add Interface 创建另一个网络接口。
- 单击 Submit 以保存该计算配置文件。
CLI 过程
创建计算配置集:
# hammer compute-profile create --name "My_Compute_Profile"
将 VMware 详情设置为计算配置集:
# hammer compute-profile values create \ --compute-attributes "cpus=1,corespersocket=2,memory_mb=1024,cluster=MyCluster,path=MyVMs,start=true" \ --compute-profile "My_Compute_Profile" \ --compute-resource "My_VMware" \ --interface "compute_type=VirtualE1000,compute_network=mynetwork \ --volume "size_gb=20G,datastore=Data,name=myharddisk,thin=true"
11.7. 在 VMware 上创建主机
VMware vSphere 置备过程提供了通过网络连接或使用现有镜像创建主机的选项。
对于基于网络的调配,您必须创建一个主机来访问卫星服务器的集成胶囊或 VMware vSphere 虚拟网络上的外部胶囊服务器,以便主机能够访问 PXE 调配服务。新主机条目会触发 VMware vSphere 服务器创建虚拟机。如果虚拟机通过虚拟网络检测到定义的胶囊服务器,则虚拟机将启动到 PXE,并开始安装所选操作系统。
DHCP 冲突
如果您在 VMware vSphere 服务器上使用虚拟网络进行置备,请确保选择一个不提供 DHCP 分配的虚拟网络。这会导致在引导新主机时 DHCP 与卫星服务器冲突。
对于基于镜像的调配,请使用预先存在的镜像作为新卷的基础。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Create Host。
- 在 Name 字段中输入主机名。
- 单击 Organization 和 Location 选项卡,以确保调配上下文自动设置为当前上下文。
- 在 Host Group 列表中,选择您要用来填充表单的主机组。
- 从 Deploy on 列表中,选择 VMware vSphere 连接。
- 在 Compute Profile 列表中选择一个配置集,用于自动填充基于虚拟机的设置。
- 单击 Interface 选项卡,再单击主机的接口上的 Edit。
验证字段是否自动填充了值。特别是:
- Host 选项卡中的 Name 将变为 DNS 名称。
- 卫星服务器会自动为新主机分配一个 IP 地址。
- 确保 MAC 地址 字段为空。VMware vSphere 服务器为主机分配一个。
- 验证是否为主机上的第一个接口自动选中 受管、主要 和 Provision 选项。如果没有,请选择它们。
- 在接口窗口中,查看使用计算配置集中的设置填充的 VMware vSphere 特定字段。根据您的需要修改这些设置。
- 单击 Operating System 选项卡,并确认所有字段都自动包含值。
选择您想要的 Provisioning 方法:
- 对于基于网络的调配,请单击 基于 Networkbased。
- 对于基于镜像的调配,请单击基于 Imagebased。
- 对于引导磁盘置备,请点击 基于引导磁盘的。
- 单击 Provisioning 模板中的 Resolve,以检查新主机可以识别要使用的正确置备模板。
- 单击 Virtual Machine 选项卡,并确认这些设置填充了来自主机组和计算配置集的详细信息。根据您的要求修改这些设置。
- 单击 Parameters 选项卡,并确保存在一个提供激活密钥的参数。如果参数不存在,请单击 + 添加参数。在 Name 字段中,输入 kt_activation_keys。在 Value 字段中,输入用于注册 Content Hosts 的激活码的名称。
- 点 Submit 在 VMware 上置备您的主机。
CLI 过程
使用
hammer host create
命令从网络创建主机,并包含--provision-method 构建
以使用基于网络的调配:# hammer host create \ --build true \ --compute-attributes="cpus=1,corespersocket=2,memory_mb=1024,cluster=MyCluster,path=MyVMs,start=true" \ --compute-resource "My_VMware" \ --enabled true \ --hostgroup "My_Host_Group" \ --interface "managed=true,primary=true,provision=true,compute_type=VirtualE1000,compute_network=mynetwork" \ --location "My_Location" \ --managed true \ --name "My_Host" \ --organization "My_Organization" \ --provision-method build \ --volume="size_gb=20G,datastore=Data,name=myharddisk,thin=true"
使用
hammer host create
命令从镜像创建主机,并包含--provision-method 镜像
以使用基于镜像的置备:# hammer host create \ --compute-attributes="cpus=1,corespersocket=2,memory_mb=1024,cluster=MyCluster,path=MyVMs,start=true" \ --compute-resource "My_VMware" \ --enabled true \ --hostgroup "My_Host_Group" \ --image "Test VMware Image" \ --interface "managed=true,primary=true,provision=true,compute_type=VirtualE1000,compute_network=mynetwork" \ --location "My_Location" \ --managed true \ --name "My_Host" \ --organization "My_Organization" \ --provision-method image \ --volume="size_gb=20G,datastore=Data,name=myharddisk,thin=true"
有关此计算资源的其他主机创建参数的更多信息,请输入 hammer host create --help
命令。
11.8. 为置备使用 VMware Cloud-init 和 Userdata 模板
您可以将 VMware 与 Cloud-init
和 Userdata
模板结合使用,将用户数据插入到新虚拟机中,以进行进一步 VMware 自定义,并启用 VMware 托管的虚拟机来回调用 Satellite。
您可以使用相同的步骤在 Satellite 中设置 VMware 计算资源,对工作流进行一些修改。
图 11.1. VMware cloud-init 置备概述

当您在 Satellite 中为 VMware 置备设置计算资源和镜像时,会发生以下置备事件序列:
- 用户使用 Satellite Web UI、API 或 hammer 置备一个或多个虚拟机
- Satellite 调用 VMware vCenter 以克隆虚拟机模板
-
Satellite
userdata
置备模板添加自定义身份信息 -
在置备完成后,
Cloud-init
自定义模板指示虚拟机在cloud-init
运行时重新调用 Capsule - VMware vCenter 将模板克隆到虚拟机
- VMware vCenter 对虚拟机的身份应用自定义,包括主机名、IP 和 DNS
-
虚拟机构建
cloud-init
被调用,并在端口80
上调用 Satellite,然后重定向到443
端口和防火墙要求
由于 cloud-init
服务,即使将虚拟机注册到 Capsule,虚拟机也始终调用回 Satellite。确保配置端口和防火墙设置,以打开任何必要的连接。
有关端口和防火墙要求的更多信息,请参阅安装 胶囊服务器中的卫星服务器中的端口和 防火墙要求,以及安装 胶囊服务器 中的端口和防火墙要求。
将 userdata
和 Cloud-init
模板与操作系统关联
- 在 Satellite Web UI 中,导航到 Hosts > Operating Systems,然后选择您要用于置备的操作系统。
- 点 Template 选项卡。
- 从 Cloud-init 模板 列表中,选择 Cloudinit default。
- 从 User data template 列表中,选择 UserData open-vm-tools。
- 点 Submit 保存更改。
准备镜像以使用 cloud-init 模板
要准备镜像,您必须首先配置虚拟机所需的设置,然后保存为在 Satellite 中使用的镜像。
要使用
模板进行调配,您必须配置虚拟机,以便安装、启用并配置为调用 Satellite 服务器。
cloud-init
为了安全起见,您必须安装 CA 证书才能使用 HTTP 进行所有通信。此流程包含清理虚拟机的步骤,以便不必要信息传输到您用于置备的镜像。
如果您有带有 cloud-init
的镜像,仍必须遵循此流程,使 cloud-init
能够与 Satellite 通信,因为 cloud-init
默认为禁用。
流程
在用于创建镜像的虚拟机上,安装
cloud-init
、open-vm-tools
和perl
:# dnf install cloud-init open-vm-tools perl
通过
cloud-init
禁用网络配置:# cat << EOM > /etc/cloud/cloud.cfg.d/01_network.cfg network: config: disabled EOM
配置
cloud-init
从 Satellite 获取数据:# cat << EOM > /etc/cloud/cloud.cfg.d/10_datasource.cfg datasource_list: [NoCloud] datasource: NoCloud: seedfrom: https://satellite.example.com/userdata/ EOM
配置要在
cloud-init
中使用的模块:# cat << EOM > /etc/cloud/cloud.cfg cloud_init_modules: - bootcmd cloud_config_modules: - runcmd cloud_final_modules: - scripts-per-once - scripts-per-boot - scripts-per-instance - scripts-user - phone-home system_info: distro: rhel paths: cloud_dir: /var/lib/cloud templates_dir: /etc/cloud/templates ssh_svcname: sshd EOM
为镜像启用 CA 证书:
# update-ca-trust enable
从 Satellite 服务器下载
katello-server-ca.crt
文件:# wget -O /etc/pki/ca-trust/source/anchors/cloud-init-ca.crt http://satellite.example.com/pub/katello-server-ca.crt
要更新证书记录,请输入以下命令:
# update-ca-trust extract
使用以下命令清理镜像:
# systemctl stop rsyslog # systemctl stop auditd # package-cleanup --oldkernels --count=1 # yum clean all
使用以下命令减少日志空间、删除旧日志和截断日志:
# logrotate -f /etc/logrotate.conf # rm -f /var/log/*-???????? /var/log/*.gz # rm -f /var/log/dmesg.old # rm -rf /var/log/anaconda # cat /dev/null > /var/log/audit/audit.log # cat /dev/null > /var/log/wtmp # cat /dev/null > /var/log/lastlog # cat /dev/null > /var/log/grubby
删除
udev
硬件规则:# rm -f /etc/udev/rules.d/70*
删除与现有网络配置相关的
ifcfg
脚本:# rm -f /etc/sysconfig/network-scripts/ifcfg-ens* # rm -f /etc/sysconfig/network-scripts/ifcfg-eth*
删除 SSH 主机密钥:
# rm -f /etc/ssh/SSH_keys
删除 root 用户的 SSH 历史记录:
# rm -rf ~root/.ssh/known_hosts
删除 root 用户的 shell 历史记录:
# rm -f ~root/.bash_history # unset HISTFILE
现在,您可以从此虚拟机创建镜像。您可以使用 第 11.5 节 “在 Satellite 服务器中添加 VMware 镜像” 部分将镜像添加到 Satellite。
配置胶囊以转发用户数据模板
- 如果要使用 Capsule 服务器而不是 Satellite 服务器,请确保已相应地配置了 Capsule 服务器。如需更多信息,请参阅安装 Capsule 服务器 中的 为主机注册和置备配置 Capsule。
11.9. 删除 VMware 上的虚拟机
您可以从 Satellite 中删除在 VMware 上运行的虚拟机。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources。
- 选择 VMware 供应商。
- 在 Virtual Machines 选项卡中点 Actions 菜单中的 Delete。这会从 VMware 计算资源中删除虚拟机,同时保留 Satellite 中任何关联的主机。如果要删除孤立主机,请导航到 Hosts > All Hosts 并删除主机。
11.10. 从 VMware 导入虚拟机到 Satellite
您可以将运行在 VMware 上的现有虚拟机导入到 Satellite 中。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources。
- 选择 VMware 计算资源。
- 在 Virtual Machines 选项卡中,从 Actions 菜单中选择 Import as managed Host or Import as unmanaged Host。以下页面与创建已经选中的计算资源的主机相同。有关更多信息 ,请参阅管理主机 中的在卫星中创建 主机。
- 单击 Submit 以将虚拟机导入到 Satellite 中。
11.11. 计算资源的缓存
计算资源的缓存加速 VMware 信息渲染。
11.11.1. 启用计算资源的缓存
启用或禁用计算资源的缓存:
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources。
- 点您要更新的 VMware 服务器右侧的 编辑按钮。
- 选择 启用缓存 复选框。
11.11.2. 刷新 Compute Resources Cache
刷新计算资源缓存以更新计算资源信息。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources。
- 选择您要刷新计算资源缓存的 VMware 服务器,再单击 Refresh Cache 按钮。
CLI 过程
使用此 API 调用来刷新计算资源缓存:
# curl -H "Accept:application/json" \ -H "Content-Type:application/json" -X PUT \ -u username:password -k \ https://satellite.example.com/api/compute_resources/compute_resource_id/refresh_cache
使用
hammer compute-resource list
确定您要刷新计算资源缓存的 VMware 服务器的 ID。
第 12 章 在容器原生虚拟化中置备虚拟机
容器原生虚拟化解决了采用或希望采用 Kubernetes 但现有虚拟机(VM)的工作负载(无法轻松容器化)的开发团队的需求。这个技术提供了一个统一的开发平台,开发人员可以在共享环境中构建、修改和部署驻留在应用程序容器和虚拟机中的应用程序。这些功能支持跨开放混合云的快速应用程序现代化。
通过 Red Hat Satellite,您可以为 Container-native Virtualization 创建计算资源,以便使用 Satellite 来置备和管理 Kubernetes 虚拟机。
请注意,这个版本不支持模板置备。
容器原生虚拟化计算资源只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/。
先决条件
- 您可以对 Red Hat Enterprise Linux 使用同步的内容存储库。如需更多信息,请参阅管理内容 中的 同步存储库。
- 为主机注册提供激活密钥。如需更多信息,请参阅在 管理内容 中创建 激活码。
-
具有 Openshift Container Platform 虚拟集群的
cluster-admin
权限的 Container-native Virtualization 用户。如需更多信息,请参阅 Openshift Container Platform 文档中的 身份验证 指南中的使用 RBAC 定义和应用权限。 - 在 Container-native Virtualization 服务器上管理网络的胶囊服务器。确保在这个网络中没有运行其他 DHCP 服务以避免与胶囊服务器冲突。有关胶囊服务器的网络服务配置的更多信息,请参阅配置主机中的 网络 。
具有以下角色的 Satellite 用户帐户:
- 编辑主机
查看主机
有关更多信息,请参阅在 管理 Red Hat Satellite 中 将角色分配到用户。
在 Satellite 中具有以下权限的自定义角色:
12.1. 将容器原生虚拟化连接添加到卫星服务器
使用这个步骤将 Container-native Virtualization 添加为 Satellite 中的计算资源。
流程
输入以下
satellite-installer
命令,为 Satellite 启用 Container-native Virtualization 插件:# satellite-installer --enable-foreman-plugin-kubevirt
生成用于 HTTP 和 HTTP 验证的 bearer 令牌。在 Container-native Virtualization 服务器上列出包含令牌的 secret:
# kubectl get secrets
列出您的 secret 的令牌:
# kubectl get secrets YOUR_SECRET -o jsonpath='{.data.token}' | base64 -d | xargs
记录此令牌以便在此流程稍后使用。
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources,然后点 Create Compute Resource。
- 在 Name 字段中输入新计算资源的名称。
- 从 Provider 列表中,选择 Container-native Virtualization。
- 在 Description 字段中输入计算资源的描述。
- 在 Hostname 字段中输入您要使用的 Container-native Virtualization 服务器地址。
- 在 API Port 字段中,输入您要用于从 Satellite 向 Container-native Virtualization 置备请求的端口号。
- 在 Namespace 字段中输入要使用的 Container-native Virtualization 虚拟集群的用户名。
- 在 Token 字段中,为 HTTP 和 HTTPs 身份验证输入 bearer 令牌。
- 可选:在 X509 Certification Authorities 字段中,输入证书来启用 API 服务器调用的客户端证书身份验证。
第 13 章 Provisioning Cloud Instances on Red Hat OpenStack Platform
Red Hat OpenStack Platform 提供了构建私有或公共基础架构即服务(IaaS)云的基础。它提供了一个可大规模扩展的、容错的平台,用于开发启用云的工作负载。在 Red Hat Satellite 中,您可以与 Red Hat OpenStack Platform REST API 交互来创建云实例并控制其电源管理状态。
先决条件
- 您可以对 Red Hat Enterprise Linux 使用同步的内容存储库。如需更多信息,请参阅管理内容 中的 同步存储库。
- 为主机注册提供激活密钥。如需更多信息,请参阅在 管理内容 中创建 激活码。
- 在 OpenStack 环境中管理网络的胶囊服务器。如需更多信息,请参阅配置主机中的 网络连接 。
- 添加至 OpenStack Image Storage(glance)服务的镜像,用于基于镜像的调配。有关更多信息,请参阅 Red Hat OpenStack Platform 实例和镜像指南。
13.1. 将 Red Hat OpenStack Platform 连接添加到卫星服务器
使用这个步骤将 Red Hat OpenStack Platform 添加为 Satellite 中的计算资源。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources,再点击 Create Compute Resource。
- 在 Name 字段中输入新计算资源的名称。
- 从 Provider 列表中,选择 RHEL OpenStack Platform。
- 在 Description 字段中输入计算资源的描述。
-
在 URL 字段中,在
tokens
资源中输入 OpenStack Authentication keystone 服务的 API 的 URL。使用以下命令:http://openstack.example.com:5000/v3.0/tokens
。 - 在 User and Password 字段中输入 Satellite 的身份验证用户和密码,以访问环境。
- 在 Domain 字段中,输入 V3 身份验证的域。
- 从 Tenant 列表中,选择要管理的租户或项目,以供卫星服务器使用。
- 要将外部网络用作主机的主要网络,可选择 Allow外部网络作为主要网络 复选框。
- 单击 位置和组织 选项卡,并验证您要使用的位置和组织是否已设置为您的当前上下文。将您想要添加到这些标签页的任何其他上下文。
- 点 Submit 保存 Red Hat OpenStack Platform 连接。
CLI 过程
要创建计算资源,请输入
hammer compute-resource create
命令:# hammer compute-resource create --name "My_OpenStack" \ --provider "OpenStack" \ --description "My OpenStack environment at openstack.example.com" \ --url "http://openstack.example.com:5000/v3.0/tokens" --user "My_Username" \ --password "My_Password" --tenant "openstack" --locations "New York" \ --organizations "My_Organization"
13.2. 将 Red Hat OpenStack Platform 镜像添加到 Satellite Server
要使用基于镜像的调配来创建主机,您必须将镜像的信息(如访问详情和镜像位置)添加到 Satellite 服务器中。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入 Infrastructure > Compute Resources 并点 Red Hat OpenStack Platform 连接的名称。
- 点 Create Image。
- 在 Name 字段中输入镜像的名称。
- 从 Operating System 列表中,选择镜像的基本操作系统。
- 从 架构 列表中,选择操作系统架构。
-
在 Username 字段中输入 SSH 用户名以进行镜像访问。这通常是
root
用户。 - 在 Password 字段中输入用于镜像访问的 SSH 密码。
- 从 Image 列表中,从 Red Hat OpenStack Platform 计算资源选择镜像。
-
可选:如果镜像 支持用户 数据输入,请选择用户数据复选框,如
cloud-init
数据。 - 单击 Submit 以保存镜像详情。
CLI 过程
使用
hammer compute-resource image create
命令创建镜像。使用--uuid
字段在 Red Hat OpenStack Platform 服务器上存储镜像位置的完整路径。# hammer compute-resource image create \ --name "OpenStack Image" \ --compute-resource "My_OpenStack_Platform" --operatingsystem "RedHat version" \ --architecture "x86_64" \ --username root \ --user-data true \ --uuid "/path/to/OpenstackImage.qcow2"
13.3. 将 Red Hat OpenStack Platform Details 添加到计算配置集
使用这个步骤将 Red Hat OpenStack Platform 硬件设置添加到计算配置集。当使用此计算配置集在 Red Hat OpenStack Platform 上创建主机时,会自动填充这些设置。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Profiles。
- 在 Compute Profiles 窗口中,单击现有计算配置文件的名称,或者单击 Create Compute Profile,输入 Name,然后单击 Submit。
- 单击 Red Hat OpenStack Platform 计算资源的名称。
- 从 Flavor 列表中,选择 Red Hat OpenStack Platform 上的硬件配置集以用于主机。
- 从 Availability zone 列表中,选择要在 Red Hat OpenStack Platform 环境中使用的目标集群。
- 从 Image 列表中,选择要用于基于镜像的调配的镜像。
- 从 Tenant 列表中,为 Red Hat OpenStack Platform 实例选择租户或项目。
- 从 Security Group 列表中,为端口和 IP 地址选择基于云的访问规则。
- 从 Internal network,选择要加入主机的专用网络。
- 从 浮动 IP 网络,选择要加入和分配浮动 IP 地址的外部网络。
- 从卷引导中,选择是否从镜像创建卷。如果没有选择,实例会直接引导镜像。
- 在 New boot volume size(GB) 字段中,为新引导卷输入大小(以 GB 为单位)。
- 单击 Submit 以保存该计算配置文件。
CLI 过程
计算配置集CLI命令还没有在 Red Hat Satellite 中实施。或者,您可以在主机创建过程中直接包含相同的设置。
13.4. Creating Image-based Hosts on Red Hat OpenStack Platform
在 Satellite 中,您可以使用 Red Hat OpenStack Platform 置备从现有镜像创建主机。新主机条目会触发 Red Hat OpenStack Platform 服务器来创建使用预先存在的镜像作为新卷基础的实例。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Create Host。
- 在 Name 字段中输入主机的名称。
- 单击 Organization 和 Location 选项卡,以确保调配上下文自动设置为当前上下文。
- 在 Host Group 列表中,选择您要用来填充表单的主机组。
- 在 Deploy on 列表中,选择 Red Hat OpenStack Platform 连接。
- 从 Compute Profile 列表,选择要用于自动填充虚拟机设置的配置集。
- 从 Lifecycle Environment 列表中,选择环境。
- 单击 Interfaces 选项卡,再单击主机的接口上的 Edit。
验证字段是否自动填充,特别是以下项:
- Host 选项卡中的 Name 将变为 DNS 名称。
- MAC 地址 字段为空。Red Hat OpenStack Platform 在置备过程中为主机分配一个 MAC 地址。
- 卫星服务器会自动为新主机分配一个 IP 地址。
- 对于主机上的第一个接口 , 会自动选择 受管、主要 和调配选项。如果没有,请选择它们。
- 单击 Operating System 选项卡,并确认所有字段都自动包含值。
- 如果要更改从计算配置集填充自动的镜像的镜像,从 Images 列表中选择不同的镜像来为新主机的根卷进行基础。
- 单击 Provisioning 模板中的 Resolve,以检查新主机可以识别要使用的正确置备模板。
- 单击 Virtual Machine 选项卡,并确认这些设置填充了来自主机组和计算配置集的详细信息。根据您的需要修改这些设置。
- 单击 Parameters 选项卡,并确保存在一个提供激活密钥的参数。如果没有,请添加激活码。
- 单击 Submit 以保存主机条目。
CLI 过程
使用
hammer host create
命令创建主机,并包含--provision-method 镜像
。将以下示例中的值替换为您的环境的适当值。# hammer host create \ --compute-attributes="flavor_ref=m1.small,tenant_id=openstack,security_groups=default,network=mynetwork" \ --compute-resource "My_OpenStack_Platform" \ --enabled true \ --hostgroup "Base" \ --image "OpenStack Image" \ --interface "managed=true,primary=true,provision=true" \ --location "New York" \ --managed true \ --name "openstack-host1" \ --organization "My_Organization" \ --provision-method image
有关此计算资源的其他主机创建参数的更多信息,请输入 hammer host create --help
命令。
第 14 章 在 Amazon EC2 中置备云实例
Amazon Elastic Compute Cloud(Amazon EC2)是一个提供公有云计算资源的 Web 服务。使用 Satellite,您可以与 Amazon EC2 的公共 API 交互,以创建云实例并控制其电源管理状态。使用本章中的步骤添加与 Amazon EC2 帐户的连接并置备云实例。
14.1. Amazon EC2 置备先决条件
Amazon EC2 置备的要求包括:
- 在 EC2 环境中管理网络的胶囊服务器。使用虚拟私有云(VPC)来确保主机和胶囊服务器之间的安全网络。
- 用于基于镜像的部署的 Amazon Machine Image(AMI)。
- 您可以对 Red Hat Enterprise Linux 使用同步的内容存储库。如需更多信息,请参阅管理内容 中的 同步存储库。
- 为主机注册提供激活密钥。如需更多信息,请参阅在 管理内容 中创建 激活码。
14.2. 安装 Amazon EC2 插件
安装 Amazon EC2 插件,以将 EC2 计算资源提供商附加到卫星。这样,您可以将主机管理和部署到 EC2。
流程
在 Satellite 服务器上安装 EC2 计算资源供应商:
# satellite-installer --enable-foreman-compute-ec2
- 可选:在 Satellite Web UI 中,进入 Administer > About 并选择 compute resources 选项卡,以验证 Amazon EC2 插件的安装。
14.3. 将 Amazon EC2 连接添加到卫星服务器
使用这个步骤在卫星服务器的计算资源中添加 Amazon EC2 连接。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
时间设置和 Amazon Web Services
Amazon Web Services 使用时间设置作为身份验证过程的一部分。确保正确同步卫星服务器的时间。确保 NTP 服务(如 ntpd
或 chronyd
)已在卫星服务器上正确运行。无法为 Amazon Web Services 提供正确的时间可能会导致身份验证失败。
有关在卫星中同步时间的更多信息 ,请参阅在 连接的网络环境中安装卫星服务器中的同步时间。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources and the Compute Resources 窗口中,点 Create Compute Resource。
- 在 Name 字段中输入名称来标识 Amazon EC2 计算资源。
- 从 Provider 列表中,选择 EC2。
- 在 Description 字段中输入有助于区分资源供以后使用的信息。
- 可选:从 HTTP 代理 列表中,选择一个连接到外部 API 服务的 HTTP 代理。您必须将 HTTP 代理添加到 Satellite,然后才能从这个列表中选择代理。更多信息请参阅 第 14.4 节 “使用具有 Compute 资源的 HTTP 代理”。
- 在 Access Key 和 Secret Key 字段中输入 Amazon EC2 帐户的访问密钥。如需更多信息,请参阅 Amazon 文档网站上为您的 AWS 帐户管理访问密钥。
- 可选:点击 Load Regions 按钮来填充 Regions 列表。
- 从 Region 列表中,选择要使用的 Amazon EC2 区域或数据中心。
- 单击位置选项卡,确保选择要使用的位置,或添加其他位置。
- 单击 Organizations 选项卡,并确保选择要使用的组织,或添加其他组织。
- 点 Submit 保存 Amazon EC2 连接。
- 选择新的计算资源,然后单击 SSH 密钥 选项卡,再单击 Download 以保存要用于 SSH 验证的 SSH 密钥副本。在 BZ1793138 解决之前,只能在创建 Amazon EC2 计算资源后立即下载 SSH 密钥的副本。如果您需要在以后的阶段进行 SSH 密钥,请按照 第 14.9 节 “使用 SSH 连接到 Amazon EC2 实例” 中的步骤操作。
CLI 过程
使用
hammer compute-resource create
命令创建连接。使用--user
和--password
选项分别添加 access key 和 secret key。# hammer compute-resource create \ --description "Amazon EC2 Public Cloud` \ --locations "My_Location" \ --name "My_EC2_Compute_Resource" \ --organizations "My_Organization" \ --password "My_Secret_Key" \ --provider "EC2" \ --region "My_Region" \ --user "My_User_Name"
14.4. 使用具有 Compute 资源的 HTTP 代理
在某些情况下,您使用的 EC2 计算资源可能需要特定的 HTTP 代理与 Satellite 通信。在 Satellite 中,您可以创建一个 HTTP 代理,然后将 HTTP 代理分配给 EC2 计算资源。
但是,如果您在 Administer > Settings 中为 Satellite 配置 HTTP 代理,然后为您的计算资源添加另一个 HTTP 代理,则您在 Administer > Settings 中定义的 HTTP 代理具有优先权。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > ; HTTP Proxies,然后选择 New HTTP Proxy。
- 在 Name 字段中输入 HTTP 代理的名称。
- 在 URL 字段中输入 HTTP 代理的 URL,包括端口号。
- 可选:如果您的 HTTP 代理需要身份验证,请输入用户名和密码以向 HTTP 代理进行身份验证。
- 单击 Test Connection,以确保您可以从 Satellite 连接到 HTTP 代理。
- 单击位置选项卡,再添加一个位置。
- 单击组织选项卡并添加组织。
- 点 Submit。
14.5. 为 Amazon EC2 创建镜像
您可以从 Satellite 内为 Amazon EC2 创建镜像。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources。
- 选择 Amazon EC2 供应商。
点 Create Image。
- 在 Name 字段中输入 EC2 镜像的有意义的名称。
- 从 Operating System 列表中,选择要与镜像关联的操作系统。
- 从 架构 列表中,选择要与镜像关联的架构。
- 在 Username 字段中,输入 SSH 到机器所需的用户名。
- 在 Image ID 字段中,输入由 Amazon 或操作系统厂商提供的镜像 ID。
- 可选: 选择 User Data 复选框来启用对用户数据输入的支持。
- 可选:创建此镜像时,为 Fog 设置 Iam 角色。
- 单击 Submit,将您的更改保存到 Satellite。
14.6. 在卫星服务器中添加 Amazon EC2 镜像
Amazon EC2 使用基于镜像的调配来创建主机。您必须在 Satellite 服务器中添加镜像详情。这包括访问详情和镜像位置。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources 并选择 Amazon EC2 连接。
- 单击 Images 选项卡,然后单击 New Image。
- 在 Name 字段中输入名称来标识镜像以备将来使用。
- 在 Operating System 列表中,选择与您要添加的镜像对应的操作系统。
- 从 架构 列表中,选择操作系统的架构。
-
在 Username 字段中输入 SSH 用户名以进行镜像访问。这通常是
root
用户。 - 在 Password 字段中输入用于镜像访问的 SSH 密码。
-
在 Image ID 字段中,输入镜像的 Amazon Machine Image(AMI)ID。这通常采用以下格式:
ami-xxxxxxxx
。 -
可选:如果镜像 支持用户 数据输入,请选择用户数据复选框,如
cloud-init
数据。如果启用用户数据,则"完成"脚本将自动禁用。这同样适用于反向:如果您启用 Finish 脚本,则禁用用户数据。 - 可选:在 IAM 角色 字段中,输入用于创建镜像的 Amazon 安全角色。
- 单击 Submit 以保存镜像详情。
CLI 过程
使用
hammer compute-resource image create
命令创建镜像。使用--uuid
字段将镜像位置的完整路径存储在 Amazon EC2 服务器上。# hammer compute-resource image create \ --architecture "My_Architecture" \ --compute-resource "My_EC2_Compute_Resource" \ --name "My_Amazon_EC2_Image" \ --operatingsystem "My_Operating_System" \ --user-data true \ --username root \ --uuid "ami-My_AMI_ID"
14.7. 将 Amazon EC2 Details 添加到计算配置集
您可以将 Amazon EC2 上实例的硬件设置添加到计算配置集。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Profiles,再点击您的配置集的名称,然后点击 EC2 连接。
- 从 Flavor 列表中,选择 EC2 上用于主机的硬件配置文件。
- 从 Image 列表中,选择要用于基于镜像的调配的镜像。
- 从 Availability zone 列表中,选择要在所选 EC2 区域中使用的目标集群。
- 从 Subnet 列表,为 EC2 实例添加子网。如果您有一个 VPC 来置备新主机,请使用其子网。
- 从 Security Groups 列表中,为要应用到主机的端口和 IP 地址选择基于云的访问规则。
-
从 Managed IP 列表中,选择
Public
IP 或Private
IP。 - 单击 Submit 以保存该计算配置文件。
CLI 过程
计算配置集CLI命令还没有在 Red Hat Satellite 中实施。或者,您可以在主机创建过程中直接包含相同的设置。
14.8. 在 Amazon EC2 上创建基于镜像的主机
Amazon EC2 置备过程从 Amazon EC2 服务器上的现有镜像创建主机。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Create Host。
- 在 Name 字段中输入主机的名称。
- 在 Host Group 列表中,您可以选择一个主机组以填充大多数新主机的字段。
- 从 Deploy on 列表中,选择 EC2 连接。
- 在 Compute Profile 列表中选择一个配置集,用于自动填充基于虚拟机的设置。
- 单击 Interface 选项卡,然后单击主机的接口上的 Edit,然后验证这些字段是否填充了值。将 Mac Address 字段留空。卫星服务器会自动为主机上的第一个接口自动选择和 IP 地址以及 Managed、primary 和 Provision 选项。
- 单击 Operating System 选项卡,并确认所有字段都填充了值。
- 点 Virtual Machine 选项卡,并确认所有字段都填充了值。
- 单击 Parameters 选项卡,并确保存在一个提供激活密钥的参数。如果没有,请添加激活码。
- 点 Submit 保存您的更改。
此新主机条目会触发 Amazon EC2 服务器来创建实例,使用预先存在的镜像作为新卷的基础。
CLI 过程
使用
hammer host create
命令创建主机,并包含--provision-method 镜像
,以使用基于镜像的调配。# hammer host create \ --compute-attributes="flavor_id=m1.small,image_id=TestImage,availability_zones=us-east-1a,security_group_ids=Default,managed_ip=Public" \ --compute-resource "My_EC2_Compute_Resource" \ --enabled true \ --hostgroup "My_Host_Group" \ --image "My_Amazon_EC2_Image" \ --interface "managed=true,primary=true,provision=true,subnet_id=EC2" \ --location "My_Location" \ --managed true \ --name "My_Amazon_EC2_Host_" \ --organization "My_Organization" \ --provision-method image
有关此计算资源的其他主机创建参数的更多信息,请输入 hammer host create --help
命令。
14.9. 使用 SSH 连接到 Amazon EC2 实例
您可以使用 SSH 从卫星服务器远程连接到 Amazon EC2 实例。但是,若要连接到通过 Red Hat Satellite 置备的任何 Amazon Web Services EC2 实例,您必须首先访问与 Foreman 数据库中计算资源关联的私钥,并使用此密钥进行身份验证。
流程
要找到计算资源列表,在 Satellite 服务器基本系统中输入以下命令,并记下您要使用的计算资源的 ID:
# hammer compute-resource list
将用户切换到
postgres
用户:# su - postgres
启动
postgres
shell:$ psql
以用户
postgres
身份连接到 Foreman 数据库:# postgres=# \c foreman
从
compute_resource_id = 3
的key_pairs
中选择 secret:# select secret from key_pairs where compute_resource_id = 3; secret
-
从
-----BEGIN RSA PRIVATE KEY-----
后复制密钥,直到-----END RSA PRIVATE KEY-----
。 创建一个
.pem
文件,并将您的密钥粘贴到文件中:# vim Keyname.pem
确保限制对
.pem
文件的访问:# chmod 600 Keyname.pem
要连接到 Amazon EC2 实例,请输入以下命令:
ssh -i Keyname.pem ec2-user@example.aws.com
14.10. 为 Amazon Web Service EC2 环境配置完成模板
您可以在 Amazon EC2 环境中置备 Red Hat Enterprise Linux 实例的过程中使用 Red Hat Satellite 完成模板。
如果要将 Finish 模板与 SSH 一起使用,卫星必须位于 EC2 环境中,且正确的安全组中。卫星目前直接执行 SSH 完成调配,不使用胶囊服务器。如果卫星服务器不在 EC2 中,EC2 虚拟机会报告内部 IP,而不是访问它所需的外部 IP。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Provisioning Templates。
-
在 Provisioning Templates 页面中,在搜索字段中输入
Kickstart default finish
,然后单击 Search。 - 在 Kickstart 默认完成 模板中,选择 Clone。
- 在 Name 字段中输入模板的唯一名称。
在模板中,为需要
sudo
的 root 权限添加每个命令(对于subscription-manager register
和yum
命令除外),或添加以下行以 sudo 用户身份运行整个模板:sudo -s << EOS _Template_ _Body_ EOS
- 点 Association 选项卡,将模板与您要使用的 Red Hat Enterprise Linux 操作系统相关联。
- 单击位置选项卡,再添加主机所在的位置。
- 单击 Organizations 选项卡,再添加主机所属的组织。
- 进行任何您需要的额外自定义或更改,然后点 Submit 保存您的模板。
- 在 Satellite Web UI 中,进入 Hosts > Operating systems 并选择您需要的主机的操作系统。
- 点 Templates 选项卡,从 Finish Template 列表中选择您的完成模板。
- 在 Satellite Web UI 中,进入 Hosts > Create Host 并输入您要创建的主机的信息。
- 单击 Parameters 选项卡,并导航到 主机参数。
在 Host 参数中,单击 Add Parameter 按钮三次,以添加三个新参数字段。添加以下三个参数:
-
在 Name 字段中输入
remote_execution_ssh_keys
。在对应的 Value 字段中,输入cat /usr/share/foreman-proxy/.ssh/id_rsa_foreman_proxy.pub
的输出。 -
在 Name 字段中输入
remote_execution_ssh_user
。在对应的 Value 字段中,输入ec2-user
。 -
在 Name 字段中输入
activation_keys
。在对应的 Value 字段中,输入您的激活码。
-
在 Name 字段中输入
- 点 Submit 保存更改。
14.11. 删除 Amazon EC2 上的虚拟机
您可以从 Satellite 中删除在 Amazon EC2 上运行的虚拟机。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources。
- 选择 Amazon EC2 供应商。
- 在 Virtual Machines 选项卡中点 Actions 菜单中的 Delete。这会在 Amazon EC2 计算资源中删除虚拟机,同时保留卫星中任何关联的主机。如果要删除孤立的主机,请导航到 Hosts > All Hosts 并删除主机。
14.12. 卸载 Amazon EC2 插件
如果您之前已安装了 Amazon EC2 插件,但不再使用它管理和部署主机到 EC2,您可以从 Satellite 服务器卸载它。
流程
从 Satellite 服务器卸载 EC2 计算资源供应商:
# satellite-maintain packages remove foreman-ec2 # satellite-installer --no-enable-foreman-compute-ec2
- 可选:在 Satellite Web UI 中,导航到 Administer > About 并选择 Available Providers 选项卡,以验证删除 Amazon EC2 插件。
14.13. 关于 Amazon Web Services 和 Satellite 的更多信息
有关如何在 Amazon Web Services EC2 上找到 Red Hat Gold 镜像的信息,请参阅如何在 AWS EC2 上查找 Red Hat Cloud Access Gold 镜像。
有关如何在 Linux 上安装和使用 Amazon Web Service 客户端的详情,请参考 Amazon Web Services 文档中的 在 Linux 上安装 AWS 命令行界面。
有关在 Amazon Web Services 中导入和导出虚拟机的详情,请参考 Amazon Web Services 文档中的 VM Import/Export。
第 15 章 在 Google Compute Engine 上置备 Cloud Instances
Red Hat Satellite 可以与 Google Compute Engine(GCE)交互,包括创建新虚拟机并控制其电源管理状态。您只能将 Red Hat 支持的金级镜像用于 Satellite 创建 GCE 主机。
先决条件
- 您可以对 Red Hat Enterprise Linux 使用同步的内容存储库。如需更多信息,请参阅管理内容 中的 同步存储库。
- 为主机注册提供激活密钥。如需更多信息,请参阅在 管理内容 中创建 激活码。
- 在 GCE 项目中,使用必要的 IAM Compute 角色配置服务帐户。如需更多信息,请参阅 GCE 文档中的 Compute Engine IAM 角色。
-
在 GCE 项目中,将
enable-oslogin
设置为FALSE
。如需更多信息,请参阅 GCE 文档中的启用或禁用操作系统登录。 -
可选:如果要将 Puppet 与 GCE 主机搭配使用,请导航至 Administer > Settings > Puppet,并启用
Use UUID for
certificate 设置,将 Puppet 配置为使用一致的 Puppet 证书 ID。 -
根据您的需要,将
finish
或user_data
置备模板与您要使用的操作系统相关联。如需有关调配模板的更多信息,请参阅 Provisioning Hosts 中的 置备模板。
15.1. 安装 Google GCE 插件
安装 Google GCE 插件,将 GCE 计算资源提供程序附加到 Satellite。这样,您可以管理主机并将其部署到 GCE。
流程
在 Satellite 服务器上安装 Google GCE 计算资源供应商:
# satellite-installer --enable-foreman-compute-gce
- 可选:在 Satellite Web UI 中,导航到 Administer > About 并选择 Compute Resources 选项卡,以验证 Google GCE 插件的安装。
15.2. 将 Google GCE 连接添加到卫星服务器
使用这个步骤将 Google Compute Engine(GCE)添加为 Satellite 中的计算资源。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Google GCE 中,以 JSON 格式生成服务帐户密钥。
将该文件从本地机器复制到 Satellite 服务器:
# scp gce_key.json root@satellite.example.com:/usr/share/foreman/gce_key.json
在卫星服务器上,将服务帐户密钥的所有者更改为
foreman
用户:# chown foreman /usr/share/foreman/gce_key.json
在 Satellite 服务器中,为您的服务帐户密钥配置权限,以确保该文件可读:
# chmod 0600 /usr/share/foreman/gce_key.json
在 Satellite 服务器中,为您的服务帐户密钥恢复 SELinux 上下文:
# restorecon -vv /usr/share/foreman/gce_key.json
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources,再点击 Create Compute Resource。
- 在 Name 字段中输入计算资源的名称。
- 从 Provider 列表中,选择 Google。
- 可选:在 Description 字段中输入资源的描述。
- 在 Google Project ID 字段中,输入项目 ID。
- 在 Client Email 字段中,输入客户端电子邮件。
-
在 Certificate Path 字段中输入服务帐户密钥的路径。例如,
/usr/share/foreman/gce_key.json
。 - 点 Load Zones 从 GCE 环境中填充区列表。
- 从 Zone 列表中,选择要使用的 GCE 区域。
- 点 Submit。
CLI 过程
- 在 Google GCE 中,以 JSON 格式生成服务帐户密钥。
将该文件从本地机器复制到 Satellite 服务器:
# scp gce_key.json root@satellite.example.com:/usr/share/foreman/gce_key.json
在卫星服务器上,将服务帐户密钥的所有者更改为
foreman
用户:# chown foreman /usr/share/foreman/gce_key.json
在 Satellite 服务器中,为您的服务帐户密钥配置权限,以确保该文件可读:
# chmod 0600 /usr/share/foreman/gce_key.json
在 Satellite 服务器中,为您的服务帐户密钥恢复 SELinux 上下文:
# restorecon -vv /usr/share/foreman/gce_key.json
使用
hammer compute-resource create
命令,将 GCE 计算资源添加到 Satellite:# hammer compute-resource create \ --email "My_GCE_Email" \ --key-path "Path_To_My_GCE_Key.json" \ --name "My_GCE_Compute_Resource" \ --project "My_GCE_Project_ID" \ --provider "gce" \ --zone "My_Zone"
15.3. 在卫星服务器中添加 Google Compute Engine 镜像
要使用基于镜像的调配来创建主机,您必须将镜像的信息(如访问详情和镜像位置)添加到 Satellite 服务器中。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入 Infrastructure > Compute Resources 并点 Google Compute Engine 连接的名称。
- 点 Create Image。
- 在 Name 字段中输入镜像的名称。
- 从 Operating System 列表中,选择镜像的基本操作系统。
- 从 架构 列表中,选择操作系统架构。
-
在 Username 字段中输入 SSH 用户名以进行镜像访问。指定
root
以外的用户,因为root
用户无法使用 SSH 密钥连接到 GCE 实例。用户名必须以字母开头,且由小写字母和数字组成。 - 从 Image 列表中,从 Google Compute Engine 计算资源选择一个镜像。
-
可选:如果镜像 支持用户 数据输入,请选择用户数据复选框,如
cloud-init
数据。 - 单击 Submit 以保存镜像详情。
CLI 过程
使用
hammer compute-resource image create
命令创建镜像。使用--username
选项指定root
以外的用户,因为root
用户无法使用 SSH 密钥连接到 GCE 实例。用户名必须以字母开头,且由小写字母和数字组成。# hammer compute-resource image create \ --name 'gce_image_name' \ --compute-resource 'gce_cr' \ --operatingsystem-id 1 \ --architecture-id 1 \ --uuid '3780108136525169178' \ --username 'admin'
15.4. 将 Google GCE Details 添加到计算配置集
使用这个步骤将 Google GCE 硬件设置添加到计算配置集。当使用此计算配置集在 Google GCE 上创建主机时,这些设置会被自动填充。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Profiles。
- 在 Compute Profiles 窗口中,单击现有计算配置文件的名称,或者单击 Create Compute Profile,输入 Name,然后单击 Submit。
- 点 GCE 计算资源的名称。
- 在 Machine Type 列表中,选择要用于置备的机器类型。
- 从 Image 列表中,选择要用于调配的镜像。
- 在 Network 列表中选择要用于置备的 Google GCE 网络。
- 可选:选择 关联临时外部 IP 复选框,来分配卫星与主机通信的动态临时 IP 地址。重新引导主机时此公共 IP 地址更改。如果您需要永久 IP 地址,请在 Google GCE 上保留静态公共 IP 地址并将其附加到主机。
- 在 Size(GB) 字段中,输入要在主机上创建的存储大小。
- 单击 Submit 以保存该计算配置文件。
CLI 过程
创建要用于 Google GCE 计算资源的计算配置集:
# hammer compute-profile create --name My_GCE_Compute_Profile
在计算配置集中添加 GCE 详情:
# hammer compute-profile values create \ --compute-attributes "machine_type=f1-micro,associate_external_ip=true,network=default" \ --compute-profile "My_GCE_Compute_Profile" \ --compute-resource "My_GCE_Compute_Resource" \ --volume "size_gb=20"
15.5. 在 Google Compute Engine 上创建基于镜像的主机
在 Satellite 中,您可以使用 Google Compute Engine 置备来从现有镜像创建主机。新主机条目会触发 Google Compute Engine 服务器使用预先存在的镜像作为新卷的基础来创建实例。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Create Host。
- 在 Name 字段中输入主机的名称。
- 单击 Organization 和 Location 选项卡,以确保调配上下文自动设置为当前上下文。
- 在 Host Group 列表中,选择您要用来填充表单的主机组。
- 在 Deploy on 列表中,选择 Google Compute Engine 连接。
- 从 Compute Profile 列表,选择要用于自动填充虚拟机设置的配置集。
- 从 Lifecycle Environment 列表中,选择环境。
- 单击 Interfaces 选项卡,再单击主机的接口上的 Edit。
验证字段是否自动填充,特别是以下项:
- Host 选项卡中的 Name 将变为 DNS 名称。
- MAC 地址 字段为空。Google Compute Engine 在置备过程中为主机分配一个 MAC 地址。
- 卫星服务器会自动为新主机分配一个 IP 地址。
- Domain 字段填充了所需的域。
- 对于主机上的第一个接口 , 会自动选择 受管、主要 和调配选项。如果没有,请选择它们。
- 单击 Operating System 选项卡,并确认所有字段都自动包含值。
- 单击 Provisioning 模板中的 Resolve,以检查新主机可以识别要使用的正确置备模板。
- 单击 Virtual Machine 选项卡,并确认这些设置填充了来自主机组和计算配置集的详细信息。根据您的需要修改这些设置。
- 单击 Parameters 选项卡,并确保存在一个提供激活密钥的参数。如果没有,请添加激活码。
- 单击 Submit 以保存主机条目。
CLI 过程
使用
hammer host create
命令创建主机,并包含--provision-method 镜像
。将以下示例中的值替换为您的环境的适当值。# hammer host create \ --architecture x86_64 \ --compute-profile "gce_profile_name" \ --compute-resource "My_GCE_Compute_Resource" \ --image "My_GCE_Image" \ --interface "type=interface,domain_id=1,managed=true,primary=true,provision=true" \ --location "My_Location" \ --name "GCE_VM" \ --operatingsystem "My_Operating_System" \ --organization "My_Organization" \ --provision-method 'image' \ --puppet-ca-proxy-id 1 \ --puppet-environment-id 1 \ --puppet-proxy-id 1 \ --root-password "My_Root_Password"
有关此计算资源的其他主机创建参数的更多信息,请输入 hammer host create --help
命令。
15.6. 删除 Google GCE 上的虚拟机
您可以删除在 Satellite 服务器上的 Google GCE 上运行的虚拟机。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources。
- 选择 Google GCE 供应商。
- 在 Virtual Machines 选项卡中点 Actions 菜单中的 Delete。这会从 Google GCE 计算资源删除虚拟机,同时保留 Satellite 中任何关联的主机。如果要删除孤立主机,请导航到 Hosts > All Hosts 并删除主机。
15.7. 卸载 Google GCE 插件
如果您之前已安装了 Google GCE 插件,但不再使用它向 GCE 管理和部署主机,您可以从 Satellite 服务器中卸载它。
流程
从 Satellite 服务器卸载 GCE 计算资源供应商:
# satellite-maintain packages remove foreman-gce # satellite-installer --no-enable-foreman-compute-gce
- 可选:在 Satellite Web UI 中,导航到 Administer > About 并选择 Available Providers 选项卡,以验证 Google GCE 插件的移除。
第 16 章 在 Microsoft Azure Resource Manager 上置备云实例
Red Hat Satellite 可以与 Microsoft Azure 资源管理器交互,包括创建新虚拟机并控制其电源管理状态。仅支持创建 Azure 主机的基于镜像的置备。这包括使用 Marketplace 镜像、自定义镜像和共享镜像 gallery 置备。
如需有关 Azure Resource Manager 概念的更多信息,请参阅 Azure Resource Manager 文档。
先决条件
- 您可以对 Red Hat Enterprise Linux 使用同步的内容存储库。如需更多信息,请参阅管理内容 中的 同步存储库。
- 为主机注册提供激活密钥。如需更多信息,请参阅在 管理内容 中创建 激活码。
- 确保具有创建 Azure Active Directory 应用程序的正确权限。如需更多信息,请参阅 Microsoft 身份平台(针对开发人员的Azure Active Directory)文档中的 检查 Azure AD 权限。
- 您必须创建和配置 Azure Active Directory 应用程序和服务原则,以获取应用程序或 客户端 ID、目录 或租户 ID 以及客户端 Secret。如需更多信息,请参阅使用 门户创建可以访问 Microsoft 身份平台(开发人员Azure Active Directory)文档中的资源的 Azure AD 应用程序和服务主体。
-
可选:如果要将 Puppet 与 Azure 主机搭配使用,请导航到 Administer > Settings > Puppet,并启用
Use UUID for
certificate 设置,将 Puppet 配置为使用一致的 Puppet 证书 ID。 -
根据您的需要,将
finish
或user_data
置备模板与您要使用的操作系统相关联。如需有关调配模板的更多信息,请参阅 调配模板。 - 可选:如果希望虚拟机使用静态专用 IP 地址,请在 Satellite 中创建一个与 Azure 子网地址匹配的 Network Address 字段的子网。
- 在创建 RHEL BYOS 镜像前,您必须接受 Azure CLI 或门户中的镜像术语,以便镜像可用于为您的订阅创建和管理虚拟机。
16.1. 将 Microsoft Azure 资源管理器连接添加到卫星服务器
使用这个步骤将 Microsoft Azure 添加为 Satellite 中的计算资源。请注意,您必须为每个要使用的 Microsoft Azure 区域添加单独的计算资源。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources,再点击 Create Compute Resource。
- 在 Name 字段中输入计算资源的名称。
- 在 Provider 列表中,选择 Azure Resource Manager。
- 可选:在 Description 字段中输入资源的描述。
默认情况下,云 被设置为 Public/Standard。Azure Government Cloud 支持以下区域:
- 美国政府
- 中国
- 德国
- 在 Client ID 字段中输入您的应用程序或 客户端 ID。
- 在 Client Secret 字段中输入您的客户端 secret。
- 在 Subscription ID 字段中输入您的订阅 ID。
- 在 Tenant ID 字段中,输入您的目录或 租户 ID。
- 点 Load Regions。这会测试您的与 Azure Resource Manager 的连接是否成功,并加载您的订阅中的区域。
- 从 Azure Region 列表中,选择要使用的 Azure 区域。
- 点 Submit。
CLI 过程
使用
hammer compute-resource create
将 Azure 计算资源添加到 Satellite。# hammer compute-resource create \ --app-ident My_Client_ID \ --name My_Compute_Resource_Name \ --provider azurerm \ --region "My_Region" \ --secret-key My_Client_Secret \ --sub-id My_Subscription_ID \ --tenant My_Tenant_ID
请注意,-
-region
选项的值必须采用小写且不能包含特殊字符。
如果使用 Azure Government Cloud,则必须传递 --cloud
参数。cloud
参数的值是:
Azure 政府云的名称 | hammer --cloud 的值 |
---|---|
美国政府 | azureusgovernment |
中国 | azurechina |
德国 | azuregermancloud |
16.2. 在卫星服务器中添加 Microsoft Azure Resource Manager 镜像
要使用基于镜像的调配来创建主机,您必须将镜像的信息(如访问详情和镜像位置)添加到 Satellite 服务器中。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入 Infrastructure > Compute Resources 并点 Microsoft Azure Resource Manager 连接的名称。
- 点 Create Image。
- 在 Name 字段中输入镜像的名称。
- 从 Operating System 列表中,选择镜像的基本操作系统。
- 从 架构 列表中,选择操作系统架构。
-
在 Username 字段中输入 SSH 用户名以进行镜像访问。您不能使用
root
用户。 - 可选:在 Password 字段中输入密码以进行身份验证。
在 Azure Image Name 字段中输入镜像名称,格式为
prefix://UUID
。-
对于自定义镜像,请使用
自定义
前缀。例如, custom://image-name. -
对于共享 gallery 镜像,请使用前缀
gallery
。例如: gallery://image-name。 对于公共和 RHEL Bring Your Own Subscription(BYOS)镜像,请使用前缀
marketplace
。例如,marketplace://OpenLogicCentOS:7.5:latest。如需更多信息,请参阅使用 Azure CLI 在 Azure Marketplace 中查找 Linux 虚拟机镜像。
-
对于自定义镜像,请使用
-
可选:如果镜像 支持用户 数据输入,请选择用户数据复选框,如
cloud-init
数据。 - 单击 Submit 以保存镜像详情。
CLI 过程
使用
hammer compute-resource image create
命令创建镜像。请注意,您为镜像输入的用户名必须与使用此镜像创建主机时使用的相同。在创建镜像时,--password
选项是可选的。您不能使用root
用户。# hammer compute-resource image create \ --name Azure_image_name \ --compute-resource azure_cr_name \ --uuid 'marketplace://RedHat:RHEL:7-RAW:latest' \ --username 'azure_username' \ --user-data no
16.3. 将 Microsoft Azure 资源管理器详情添加到计算配置集
使用这个步骤将 Microsoft Azure 硬件设置添加到计算配置集中。当使用此计算配置集在 Microsoft Azure 上创建主机时,这些设置会被自动填充。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Profiles。
- 在 Compute Profiles 窗口中,单击现有计算配置文件的名称,或者单击 Create Compute Profile,输入 Name,然后单击 Submit。
- 点 Azure 计算资源的名称。
- 从 Resource group 列表中,选择要置备的资源组。
- 在 VM Size 列表中,选择要置备的虚拟机的大小。
- 从 Platform 列表中,选择 Linux。
- 在 Username 字段中输入要进行身份验证的用户名。请注意,您为计算配置文件输入的用户名必须与创建镜像时使用的相同。
要验证用户身份,请使用以下选项之一:
- 要使用密码进行身份验证,请在 Password 字段中输入密码。
- 要使用 SSH 密钥进行身份验证,请在 SSH Key 字段中输入 SSH 密钥。
- 可选:如果您希望虚拟机使用高级虚拟机磁盘,请选择 Premium OS Disk 复选框。
- 从 OS Disk 缓存 列表中,选择磁盘缓存设置。
- 可选:在 Custom Script Command 字段中输入在虚拟机置备时在虚拟机上要执行的命令。
-
可选: 如果要在置备完成后运行自定义脚本,在 Comma separated file URIs 字段中输入要使用的脚本以逗号分隔的文件 URI。脚本必须在开始时包含
sudo
,因为红帽卫星将文件下载到主机和脚本上的/var/lib/waagent/custom-script/download/0/
目录需要执行 sudo。 可选:您可以通过选择 NVIDIA 驱动程序 / CUDA 复选框来添加 NVIDIA 驱动程序。如需更多信息,请参阅以下 Microsoft Azure 文档:
可选: 如果要在虚拟机上创建额外卷,点 添加卷 按钮,以 GB 为单位输入 大小 并选择 数据磁盘缓存 方法。
- 请注意,这些磁盘的最大数量取决于所选 VM Size 数量。如需有关 Microsoft Azure VM 存储要求的更多信息,请参阅 Microsoft Azure 文档。
点 添加接口。
重要接口的最大数量取决于所选 VM Size。如需更多信息,请参阅上面的 Microsoft Azure 文档链接。
- 从 Azure Subnet 列表,选择要置备的 Azure 子网。
- 从 Public IP 列表中,选择公共 IP 设置。
- 可选:如果您希望虚拟机使用静态专用 IP,请选择 静态专用 IP 复选框。
- 点 Submit。
CLI 过程
创建一个计算配置集,用于 Azure Resource Manager 计算资源:
# hammer compute-profile create --name compute_profile_name
在计算配置集中添加 Azure 详情。
使用用户名
设置,为镜像访问输入 SSH 用户名。请注意,您为计算配置文件输入的用户名必须与创建镜像时使用的相同。# hammer compute-profile values create \ --compute-attributes="resource_group=resource_group,vm_size=Standard_B1s,username=azure_user,password=azure_password,platform=Linux,script_command=touch /var/tmp/text.txt" \ --compute-profile "compute_profile_name" \ --compute-resource azure_cr_name \ --interface="compute_public_ip=Dynamic,compute_network=mysubnetID,compute_private_ip=false" \ --volume="disk_size_gb=5,data_disk_caching=None"
可选:如果要在置备后在虚拟机上运行脚本,请指定以下设置:
-
要直接输入脚本,使用
script_command
设置,输入要在调配的虚拟机上执行的命令。 -
要使用
script_uris
设置从 URI 运行脚本,请输入要使用的以逗号分隔的脚本文件 URI。脚本必须在开始时包含sudo
,因为 Red Hat Satellite 将文件下载到主机上的/var/lib/waagent/custom-script/download/0/
目录,因此脚本需要执行 sudo 权限。
-
要直接输入脚本,使用
16.4. 在 Microsoft Azure Resource Manager 上创建基于镜像的主机
在 Satellite 中,您可以使用 Microsoft Azure Resource Manager 置备来从现有镜像创建主机。新主机条目会触发 Microsoft Azure Resource Manager 服务器,使用预先存在的镜像作为新卷的基础来创建实例。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Create Host。
- 在 Name 字段中输入主机的名称。
- 单击 Organization 和 Location 选项卡,以确保调配上下文自动设置为当前上下文。
- 在 Host Group 列表中,选择您要用来填充表单的主机组。
- 在 Deploy on 列表中,选择 Microsoft Azure Resource Manager 连接。
- 从 Compute Profile 列表,选择要用于自动填充虚拟机设置的配置集。
- 从 Lifecycle Environment 列表中,选择环境。
- 单击 Interfaces 选项卡,再单击主机的接口上的 Edit。
验证字段是否自动填充,特别是以下项:
- Host 选项卡中的 Name 将变为 DNS 名称。
- MAC 地址 字段为空。Microsoft Azure Resource Manager 在置备过程中为主机分配一个 MAC 地址。
- Azure Subnet 字段填充了所需的 Azure 子网。
- 对于主机上的第一个接口 , 会自动选择 受管、主要 和调配选项。如果没有,请选择它们。
- 可选: 如果要使用静态私有 IP 地址,从 IPv4 Subnet 列表中选择与 Azure 子网地址匹配的 Network Address 字段。在 IPv4 Address 字段中输入 Azure 子网范围内的 IPv4 地址。
- 单击 Operating System 选项卡,并确认所有字段都自动包含值。
- 对于 调配方法,请确保选择了 基于映像的。
- 从 Image 列表中,选择您要用于置备的 Azure Resource Manager 镜像。
- 在 Root Password 字段中,输入 root 密码以进行身份验证。
- 单击 Provisioning 模板中的 Resolve,以检查新主机可以识别要使用的正确置备模板。
- 单击 Virtual Machine 选项卡,并确认这些设置填充了来自主机组和计算配置集的详细信息。根据您的需要修改这些设置。
- 单击 Parameters 选项卡,并确保存在一个提供激活密钥的参数。如果没有,请添加激活码。
- 单击 Submit 以保存主机条目。
CLI 过程
使用
hammer host create
命令创建主机,并包含--provision-method 镜像
。将以下示例中的值替换为您的环境的适当值。# hammer host create \ --architecture x86_64 \ --compute-profile "My_Compute_Profile" \ --compute-resource "My_Azure_Compute_Resource" \ --domain "My_Domain" \ --image "My_Azure_Image" \ --location "My_Location" \ --name="Azure_VM" \ --operatingsystem "My_Operating_System" \ --organization "My_Organization" \ --provision-method "image"
有关此计算资源的其他主机创建参数的更多信息,请输入 hammer host create --help
命令。
16.5. 删除 Microsoft Azure 上的虚拟机
您可以从 Satellite 中删除在 Microsoft Azure 上运行的虚拟机。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Compute Resources。
- 选择 Microsoft Azure 供应商。
- 在 Virtual Machines 选项卡中点 Actions 菜单中的 Delete。这会从 Microsoft Azure 计算资源中删除虚拟机,同时保留 Satellite 中任何关联的主机。如果要删除孤立主机,请导航到 Hosts > All Hosts 并删除主机。
16.6. 卸载 Microsoft Azure 插件
如果您之前已安装了 Microsoft Azure 插件,但不再使用它将主机部署到 Azure,您可以从 Satellite 服务器中卸载它。
流程
从 Satellite 服务器卸载 Azure 计算资源供应商:
# satellite-maintain packages remove rubygem-foreman_azure_rm rubygem-ms_rest_azure # satellite-installer --no-enable-foreman-plugin-azure
- 可选:在 Satellite web UI 中,导航到 Administer > About,再选择 Available Providers 选项卡来验证删除 Microsoft Azure 插件。
附录 A. 用于调配示例的初始化脚本
如果您没有遵循 管理内容 中的示例,您可以使用以下初始化脚本创建用于调配示例的环境。
流程
创建一个脚本文件(
content-init.sh
)并包含以下内容:#!/bin/bash MANIFEST=$1 # Import the content from Red Hat CDN hammer organization create \ --name "ACME" \ --label "ACME" \ --description "Our example organization for managing content." hammer subscription upload \ --file ~/$MANIFEST \ --organization "ACME" hammer repository-set enable \ --name "Red Hat Enterprise Linux 7 Server (RPMs)" \ --releasever "7Server" \ --basearch "x86_64" \ --product "Red Hat Enterprise Linux Server" \ --organization "ACME" hammer repository-set enable \ --name "Red Hat Enterprise Linux 7 Server (Kickstart)" \ --releasever "7Server" \ --basearch "x86_64" \ --product "Red Hat Enterprise Linux Server" \ --organization "ACME" hammer repository-set enable \ --name "Red Hat Satellite Client 6 (for RHEL 7 Server) (RPMs)" \ --basearch "x86_64" \ --product "Red Hat Enterprise Linux Server" \ --organization "ACME" hammer product synchronize --name "Red Hat Enterprise Linux Server" \ --organization "ACME" # Create our application life cycle hammer lifecycle-environment create \ --name "Development" \ --description "Environment for ACME's Development Team" \ --prior "Library" \ --organization "ACME" hammer lifecycle-environment create \ --name "Testing" \ --description "Environment for ACME's Quality Engineering Team" \ --prior "Development" \ --organization "ACME" hammer lifecycle-environment create \ --name "Production" \ --description "Environment for ACME's Product Releases" \ --prior "Testing" \ --organization "ACME" # Create and publish our Content View hammer content-view create \ --name "Base" \ --description "Base operating system" \ --repositories "Red Hat Enterprise Linux 7 Server RPMs x86_64 7Server,Red Hat Satellite Client 6 for RHEL 7 Server RPMs x86_64" \ --organization "ACME" hammer content-view publish \ --name "Base" \ --description "Initial Content View for our operating system" \ --organization "ACME" hammer content-view version promote \ --content-view "Base" \ --version 1 \ --to-lifecycle-environment "Development" \ --organization "ACME" hammer content-view version promote \ --content-view "Base" \ --version 1 \ --to-lifecycle-environment "Testing" \ --organization "ACME" hammer content-view version promote \ --content-view "Base" \ --version 1 \ --to-lifecycle-environment "Production" \ --organization "ACME"
在脚本上设置可执行权限:
# chmod +x content-init.sh
从红帽客户门户网站下载 Red Hat Subscription Manifest 副本,并在清单中运行该脚本:
# ./content-init.sh manifest_98f4290e-6c0b-4f37-ba79-3a3ec6e405ba.zip
这导入了本指南中置备示例所需的红帽内容。
附录 B. 置备 FIPS-Compliant 主机
Satellite 支持置备主机,这些主机符合国家标准与技术对 Cryptographic 模块标准的安全要求,参考数字 FIPS 140-2,在此处称为 FIPS。
要启用置备与 FIPS 兼容的主机,请完成以下任务:
- 更改操作系统的置备密码哈希算法
- 创建主机组并设置主机组参数以启用 FIPS
如需更多信息 ,请参阅在 管理主机 中创建主机组。
置备的主机应用了 FIPS 兼容设置。要确认这些设置已经启用,请完成 第 B.3 节 “验证 FIPS 模式已启用” 中的步骤。
B.1. 更改配置密码哈希算法
要置备 FIPS 兼容主机,您必须首先将您在置备到 SHA256 时使用的密码哈希算法。必须为每个要部署为兼容 FIPS 的操作系统应用该配置设置。
流程
确定操作系统 ID:
# hammer os list
更新每个操作系统的密码哈希值。
# hammer os update \ --password-hash SHA256 --title "My_Operating_System"
请注意,您不能使用以逗号分隔的值列表。
B.2. 设置 FIPS-Enabled Parameter
要置备 FIPS 兼容主机,您必须创建一个主机组,并将主机组参数 fips_enabled
设置为 true
。如果这没有被设置为 true
,或者不存在,则特定于 FIPS 的更改不适用于系统。在置备主机或主机组时,您可以设置此参数。
要在置备主机时设置此参数,请将 --parameters fips_enabled=true
附加到 Hammer 命令中。
# hammer hostgroup set-parameter \
--hostgroup "My_Host_Group" \
--name fips_enabled \
--value "true"
如需更多信息,请参阅 hammer hostgroup set-parameter --help
的输出。
B.3. 验证 FIPS 模式已启用
要验证这些 FIPS 合规更改是否成功,您必须置备主机并检查其配置。
流程
-
以
root
或具有管理员级帐户登录主机。 使用以下命令:
$ cat /proc/sys/crypto/fips_enabled
值
1
确认启用了 FIPS 模式。
附录 C. 为 Red Hat Satellite 构建云镜像
使用这个部分构建镜像,并将镜像注册到 Red Hat Satellite。
您可以使用预配置的 Red Hat Enterprise Linux KVM 客户机 QCOW2 镜像:
这些镜像包含 cloud-init
。要正常工作,它们必须使用 ec2 兼容元数据服务来置备 SSH 密钥。
对于 KVM 客户机镜像:
-
镜像中的
root
帐户已被禁用,但sudo
访问权限被授予一个名为cloud-user
的特殊用户。 -
没有为此镜像设置
root
密码。通过将!!
放入第二个字段,将root
密码锁定在/etc/shadow
中。
如果要创建自定义 Red Hat Enterprise Linux 镜像,请参阅 生成自定义 Red Hat Enterprise Linux 9 镜像或生成 自定义的 Red Hat Enterprise Linux 8 镜像。
C.1. 创建自定义 Red Hat Enterprise Linux 镜像
先决条件
- 使用 Linux 主机机器创建镜像。在这个示例中,我们使用 Red Hat Enterprise Linux 7 Workstation。
-
在工作站上使用
virt-manager
来完成此步骤。如果您在远程服务器上创建镜像,请使用virt-manager
从工作站连接到服务器。 - Red Hat Enterprise Linux 7 或 6 ISO 文件(请参阅 Red Hat Enterprise Linux 7.4 Binary DVD 或者 Red Hat Enterprise Linux 6.9 Binary DVD)。
有关安装 Red Hat Enterprise Linux 工作站的详情,请参考 Red Hat Enterprise Linux 7 安装指南。
在创建自定义镜像前,请安装以下软件包:
安装
libvirt
、qemu-kvm
和图形工具:# dnf install virt-manager virt-viewer libvirt qemu-kvm
安装以下命令行工具:
# dnf install virt-install libguestfs-tools-c
在以下步骤中,在托管 libvirt
环境的工作站中输入 [root@host]#
提示所有命令。
C.2. 配置主机进行注册
默认情况下,Red Hat Enterprise Linux 虚拟机注册到客户门户订阅管理。您必须更新每个虚拟机配置,以便它们从正确的卫星服务器或胶囊服务器接收更新。
先决条件
主机必须使用以下 Red Hat Enterprise Linux 版本:
- 6.4 或更高版本
- 7.0 或更高版本
- 支持所有 Red Hat Enterprise Linux 架构(i386、x86_64、s390x、ppc_64)。
确保时间同步工具已经启用并在卫星服务器、任何胶囊服务器和主机上运行。
For Red Hat Enterprise Linux 6:
# chkconfig ntpd on; service ntpd start
Red Hat Enterprise Linux 7:
# systemctl enable --now chronyd
确保守护进程
rhsmcertd
已在主机上运行。For Red Hat Enterprise Linux 6:
# chkconfig rhsmcertd on; service rhsmcertd start
Red Hat Enterprise Linux 7:
# systemctl enable --now rhsmcertd
为注册配置主机:
- 记录卫星服务器或胶囊服务器的完全限定域名(FQDN)。
- 在主机上,以 root 用户身份连接到主机上的终端
从要注册主机的卫星服务器或胶囊服务器,安装使用者 RPM。使用者 RPM 更新主机的内容源位置,并允许主机从红帽卫星中指定的内容源下载内容。
# rpm -Uvh http://server.example.com/pub/katello-ca-consumer-latest.noarch.rpm
C.3. 注册主机
可通过在卫星上生成 curl
命令并在主机上运行此命令,将主机注册到卫星。此方法使用两个模板: 全局注册
模板和 主机初始配置
模板。这可让您完全控制主机注册过程。您可以通过导航到 Administer > Settings 并点 Provisioning 选项卡来设置默认模板。
先决条件
-
生成
curl
命令的 Satellite 用户必须具有create_hosts
权限。 - 您必须在要注册的主机上具有 root 权限。
- 卫星服务器、任何胶囊服务器和所有主机都必须与同一 NTP 服务器同步,并且使时间同步工具已启用并在运行。
- 守护进程 rhsmcertd 必须正在主机上运行。
- 主机必须有可用的激活码。如需更多信息,请参阅管理内容 中的 激活码 。
-
可选:如果要将主机注册到 Red Hat Insights,您必须同步
rhel-8-for-x86_64-baseos-rpms
和rhel-8-for-x86_64-appstream-rpms
存储库,并在您使用的激活码中提供它们。这是在主机上安装insights-client
软件包所必需的。 - 如果要使用 Capsule 服务器而不是 Satellite 服务器,请确保已相应地配置了 Capsule 服务器。如需更多信息,请参阅安装 Capsule 服务器 中的 为主机注册和置备配置 Capsule。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Register Host。
- 可选: 选择不同的 机构。
- 可选: 选择不同的位置 。
- 可选:在 Host Group 列表中选择要关联主机的主机。从 主机组 继承值的字段:操作系统、激活密钥 和 生命周期环境。
- 可选 :在操作系统 列表中,选择您要注册的主机的操作系统。
- 可选:在 Capsule 列表中,选择用于注册主机的胶囊。
可选:如果要使第一个调用不安全,请选择 Insecure 选项。在第一个调用过程中,主机从 Satellite 下载 CA 文件。主机将使用此 CA 文件连接到卫星,以备将来调用它们的安全。
红帽建议您避免不安全的调用。
如果攻击者位于 Satellite 和主机之间的网络中,则攻击者可以从第一个不安全的调用中获取 CA 文件,攻击者可以从注册的主机和 JSON Web Tokens(JWT)访问 API 调用的内容。因此,如果您选择在注册过程中部署 SSH 密钥,攻击者将能够使用 SSH 密钥访问主机。
反之,您可以在注册主机前手动在每台主机上复制并安装 CA 文件。
要做到这一点,找到 Satellite 存储 CA 文件的位置。导航到 Administer > Settings > Authentication 并找到 SSL CA 文件 设置的值。
将 CA 文件复制到主机上的
/etc/pki/ca-trust/source/anchors/
目录中,并输入以下命令:# update-ca-trust enable # update-ca-trust
然后,使用安全
curl
命令注册主机,例如:# curl -sS https://satellite.example.com/register ...
以下是使用
--insecure
选项的curl
命令示例:# curl -sS --insecure https://satellite.example.com/register ...
- 选择 Advanced 选项卡。
在 Setup REX 列表中,选择是否要将 Satellite SSH 密钥部署到主机。
如果设置为
Yes
,则在注册的主机上将安装公共 SSH 密钥。继承的值基于host_registration_remote_execution
参数。它可以被继承,例如,来自主机组、操作系统或组织。覆盖后,所选值将存储在主机参数级别上。在 Setup Insights 列表中,选择是否安装
insights-client
,并将主机注册到 Insights。Insights 工具仅适用于 Red Hat Enterprise Linux。它对其他操作系统没有影响。
您必须在注册的机器中启用以下软件仓库:
-
Red Hat Enterprise Linux 6:
rhel-6-server-rpms
-
Red Hat Enterprise Linux 7:
rhel-7-server-rpms
Red Hat Enterprise Linux 8:
rhel-8-for-x86_64-appstream-rpms
insights-client
软件包默认安装在 Red Hat Enterprise Linux 8 上,除非使用 "Minimal Install" 选项部署 Red Hat Enterprise Linux 8 的环境中。
-
Red Hat Enterprise Linux 6:
-
可选: 在 Install packages 字段中,列出您要在注册时要在主机上安装的软件包(使用空格分隔)。这可以通过
host_packages
参数设置。 -
可选: 选择 Update packages 选项在注册时更新主机中的所有软件包。这可以通过
host_update_packages
参数设置。 -
可选:在 Repository 字段中输入执行注册前要添加的存储库。例如,使
subscription-manager
软件包在注册时很有用。对于 Red Hat 系列发行版本,请输入该程序库的 URL,例如http://rpm.example.com/
。 - 可选:在 Repository GPG 密钥 URL 字段中,指定公钥来验证 GPG 签名软件包的签名。需要使用 GPG 公钥标头以 ASCII 形式指定它。
可选:在 Token 生命周期(小时) 字段中,更改 Satellite 用于身份验证的 JSON Web Token(JWT)的有效性持续时间。此令牌的持续时间定义生成的
curl
命令的工作方式。您可以将持续时间设置为 0sandboxed-将999999 999 小时或无限。请注意,Satellite 应用生成
curl
命令对主机的授权的用户权限。如果用户丢失或获得额外的权限,则 JWT 的权限也会发生。因此,在令牌期间,不要删除、块或更改用户的权限。JWT 的范围仅限于注册端点,在其他任何位置都无法使用。
- 可选:在 Remote Execution Interface 字段中输入主机必须用于 SSH 连接的网络接口的标识符。如果将此字段留空,Satellite 将使用默认网络接口。
从 REX 拉取模式 列表中,选择是否要部署 Satellite 远程执行拉取客户端。
如果设置为
Yes
,则将在注册的主机上安装远程执行 pull 客户端。继承的值基于host_registration_remote_execution_pull
参数。它可以被继承,例如,来自主机组、操作系统或组织。当被覆盖时,所选值存储在主机参数级别上。注册的主机必须有权访问红帽卫星客户端 6 存储库。
有关 pull 模式的更多信息,请参阅管理主机中的远程执行的传输 模式 。
- 在 Activation Keys 字段中输入要分配给主机的一个或多个激活码。
- 可选:选择 Lifecycle 环境。
- 可选: 如果要忽略订阅管理器 错误,请选择 Ignore 错误选项。
-
可选:如果要在注册并运行
subscription-manager
参数前删除任何katello-ca-consumer
rpms,请选择 Force 选项。 - 点 Generate 按钮。
-
复制生成的
curl
命令。 -
在您要注册的主机上,以
root
用户身份运行curl
命令。
C.4. 安装 Katello Agent
您可以安装 Katello 代理来远程更新 Satellite 客户端。
Katello 代理已弃用,并将在以后的 Satellite 版本中删除。迁移进程以使用远程执行功能远程更新客户端。如需更多信息,请参阅管理主机 中的 从 Katello Agent 迁移到 远程执行 。
katello-agent
软件包依赖于提供
服务的 gofer 软件包。
gofer
d
先决条件
- 您已在卫星服务器上启用了 Satellite Client 6 存储库。如需更多信息,请参阅在 连接 的网络环境中安装卫星服务器 中的启用卫星客户端 6 存储库。
- 您已在卫星服务器上同步了卫星客户端 6 存储库。如需更多信息,请参阅在 连接的网络环境中安装卫星服务器中的同步 卫星客户端 6 存储库 。
- 您已在客户端上启用了 Satellite Client 6 存储库。
流程
安装
katello-agent
软件包:# dnf install katello-agent
启动
goferd
服务:# systemctl start goferd
C.5. 手动安装和配置 Puppet 代理
使用这个流程手动在主机上安装和配置 Puppet 代理。
先决条件
- 主机必须分配有 Puppet 环境。
- 必须启用 Satellite Client 6 存储库并同步到 Satellite 服务器,并在主机上启用。如需更多信息,请参阅 管理内容 中的 导入内容。
流程
-
以
root
用户身份登录主机。 安装 Puppet 代理软件包。
在运行 Red Hat Enterprise Linux 8 及更高版本的主机上:
# dnf install puppet-agent
在运行 Red Hat Enterprise Linux 7 及更早版本的主机上:
# yum install puppet-agent
使用以下脚本,将 Puppet 代理添加到当前 shell 中的
PATH
中:. /etc/profile.d/puppet-agent.sh
配置 Puppet 代理。将
environment
参数设置为主机所属的 Puppet 环境的名称:# puppet config set server satellite.example.com --section agent # puppet config set environment My_Puppet_Environment --section agent
启动 Puppet 代理服务:
# puppet resource service puppet ensure=running enable=true
为主机创建证书:
# puppet ssl bootstrap
- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules。
- 从所需胶囊服务器 的操作 列中的列表中,选择 证书。
- 单击所需主机右侧的 Sign to,以签署 Puppet 代理的 SSL 证书。
在主机上再次运行 Puppet 代理:
# puppet ssl bootstrap
其它资源
- 有关 Puppet 的更多信息,请参阅在Red Hat Satellite 中使用 Puppet 集成管理配置。
C.6. 完成 Red Hat Enterprise Linux 7 镜像
流程
更新系统:
# yum update
安装
cloud-init
软件包:# yum install cloud-utils-growpart cloud-init
打开
/etc/cloud/cloud.cfg
配置文件:# vi /etc/cloud/cloud.cfg
在标题
cloud_init_modules
下添加:- resolv-conf
当实例首次引导时,
resolv-conf
选项会自动配置resolv.conf
。此文件包含与实例相关的信息,如名称服务器
、域和
其他选项。打开
/etc/sysconfig/network
文件:# vi /etc/sysconfig/network
添加以下行以避免访问 EC2 元数据服务:
NOZEROCONF=yes
取消注册虚拟机,以便生成的镜像不包含根据克隆的每个实例相同的订阅详情:
# subscription-manager repos --disable=* # subscription-manager unregister
关闭实例:
# poweroff
在 Red Hat Enterprise Linux Workstation 中,以 root 用户身份连接到终端,并导航至
/var/lib/libvirt/images/
目录:# cd /var/lib/libvirt/images/
使用
virt-sysprep
命令重置并清理镜像,以便它可用于在没有问题的情况下创建实例:# virt-sysprep -d rhel7
使用
virt-sparsify
命令减少镜像大小。这个命令将磁盘镜像中的任何可用空间重新转换为主机中的可用空间:# virt-sparsify --compress rhel7.qcow2 rhel7-cloud.qcow2
这会在您输入命令的位置创建一个新的
rhel7-cloud.qcow2
文件。
C.7. 完成 Red Hat Enterprise Linux 6 镜像
流程
更新系统:
# {package-update}
安装
cloud-init
软件包:# dnf install cloud-utils-growpart cloud-init
编辑
/etc/cloud/cloud.cfg
配置文件并在cloud_init_modules
add 下:- resolv-conf
当实例首次引导时,
resolv-conf
选项会自动配置resolv.conf
配置文件。此文件包含与实例相关的信息,如名称服务器
、域
及其他选项。要防止网络问题,请按如下所示创建
/etc/udev/rules.d/75-persistent-net-generator.rules
文件:# echo "#" > /etc/udev/rules.d/75-persistent-net-generator.rules
这可防止
/etc/udev/rules.d/70-persistent-net.rules
文件被创建。如果创建/etc/udev/rules.d/70-persistent-net.rules
,则在从快照引导时,网络可能无法正常工作(创建为"eth1"而不是"eth0",且 IP 地址没有被分配)。将以下行添加到
/etc/sysconfig/network
,以避免访问 EC2 元数据服务出现问题:NOZEROCONF=yes
取消注册虚拟机,以便生成的镜像不包含根据克隆的每个实例相同的订阅详情:
# subscription-manager repos --disable=* # subscription-manager unregister # yum clean all
关闭实例:
# poweroff
在 Red Hat Enterprise Linux Workstation 中,以 root 用户身份登录并使用
virt-sysprep
命令重置和清理镜像,以便它可用于在没有问题的情况下创建实例:# virt-sysprep -d rhel6
使用
virt-sparsify
命令减少镜像大小。这个命令将磁盘镜像中的任何可用空间重新转换为主机中的可用空间:# virt-sparsify --compress rhel6.qcow2 rhel6-cloud.qcow2
这会在您输入命令的位置创建一个新的
rhel6-cloud.qcow2
文件。注意根据镜像,根据应用到实例的类别中的磁盘空间,手动调整实例分区。
C.7.1. 后续步骤
- 对您要通过 Satellite 置备的每个镜像重复这些步骤。
- 将镜像移动到您要存储的位置,以备将来使用。
C.8. 后续步骤
- 对您要通过 Satellite 置备的每个镜像重复这些步骤。
- 将镜像移动到您要存储的位置,以备将来使用。
附录 D. 主机参数层次结构
您可以在置备主机时访问主机参数。主机会按顺序从以下位置继承其参数,以增加优先级:
参数级别 | 在卫星 Web UI 中设置 |
---|---|
全局定义参数 | 配置 > Global 参数 |
机构级别参数 | 管理 > 机构 |
位置级别参数 | 管理 > 位置 |
域级别参数 | Infrastructure > Domains |
子网级别参数 | infrastructure > Subnets |
操作系统级参数 | Hosts > Operating Systems |
主机组级参数 | 配置 > Host Groups |
主机参数 | Hosts > All Hosts |