管理主机
将主机注册到 Satellite,配置主机组和集合,设置远程执行,管理主机上的软件包、监控主机等等
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
使用 Red Hat Jira 中的 Create Issue 表单提供您的反馈。JIRA 问题是在 Red Hat Satellite Jira 项目中创建的,您可以在其中跟踪其进度。
先决条件
- 确保您已注册了 红帽帐户。
流程
- 单击以下链接: 创建问题。如果 Jira 显示登录错误,则登录并在您重定向到表单后继续。
- 完成 Summary 和 Description 字段。在 Description 字段中,包含文档 URL、章节号以及问题的详细描述。不要修改表单中的任何其他字段。
- 点 Create。
第 1 章 Satellite 中的主机概述 复制链接链接已复制到粘贴板!
主机是 Red Hat Satellite 管理的任何 Linux 客户端。主机可以是物理或虚拟的主机。
您可以在 Red Hat Satellite 支持的任何平台上部署虚拟主机,如 Amazon EC2、Google Compute Engine、KVM、libvirt、Microsoft Azure、OpenStack、Red Hat Virtualization、Rackspace Cloud Services 或 VMware vSphere。
通过 Satellite,您可以大规模管理主机,包括监控、配置、远程执行、配置管理、软件管理和订阅管理。
1.1. 在 Satellite Web UI 中浏览主机 复制链接链接已复制到粘贴板!
在 Satellite Web UI 中,您可以浏览 Satellite 识别的所有主机,按类型分组:
- 所有主机 - Satellite 识别的所有主机的列表。
- 通过 Discovery 插件 发现的 Hosts - provisioning 网络中检测到的裸机主机列表。
- 内容主机 - 管理与内容和订阅相关的任务的主机列表。
- Host Collections - 用于批量操作(如勘误表安装)的用户定义的主机集合列表。
要搜索主机,在 Search 字段中输入,并使用星号 rolebinding 执行部分字符串搜索。例如,如果搜索名为 server.example.com 的内容主机,请在 Search 字段中点 Content Hosts 页面并键入 server*。或者,*ver* 还会查找内容主机 server.example.com。
即使没有自我注册,Satellite 服务器也会被列为主机本身。不要从主机列表中删除 Satellite 服务器。
第 2 章 管理主机 复制链接链接已复制到粘贴板!
本章论述了创建、注册、管理和删除主机。
2.1. 在 Red Hat Satellite 中创建主机 复制链接链接已复制到粘贴板!
创建主机是主机置备过程的一部分。有多种调配方法,各自需要不同的卫星和胶囊配置。如需更多信息,请参阅 置备主机。
2.2. 克隆主机 复制链接链接已复制到粘贴板!
您可以克隆现有的主机。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 在 Actions 菜单中,单击 Clone。
- 在 Host 选项卡中,确保提供与原始主机不同的名称。
- 在 Interfaces 选项卡中,确保提供不同的 IP 地址。
- 单击 Submit 以克隆主机。
如需更多信息,请参阅 第 2.1 节 “在 Red Hat Satellite 中创建主机”。
2.3. 从虚拟机监控程序将虚拟机与 Satellite 关联 复制链接链接已复制到粘贴板!
流程
- 在 Satellite Web UI 中,进入到 Infrastructure > Compute Resources。
- 选择计算资源。
- 在 Virtual Machines 选项卡中,单击 Associate VMs 来关联所有虚拟机,或者从 Actions 菜单中选择关联虚拟机以关联单个虚拟机。
2.4. 编辑主机的系统目的 复制链接链接已复制到粘贴板!
您可以编辑 Red Hat Enterprise Linux 主机的系统目的属性。系统目的允许您在网络上设置系统的预期使用,并提高 Red Hat Hybrid Cloud Console 订阅服务中的报告准确性。有关系统目的的更多信息,请参阅 自动安装 RHEL 8 中的 使用 subscription-manager 命令行工具配置系统目的。
先决条件
- 您要编辑的主机必须使用 subscription-manager 注册。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点您要修改的主机的名称。
- 在 Overview 选项卡中,点 System purpose 卡上的 Edit。
- 为您的主机选择系统目的属性。
- 点击 Save。
CLI 过程
登录主机并编辑所需的系统目的属性。例如,将 usage 类型设置为
Production,将角色设置为Red Hat Enterprise Linux Server。有关值列表,请参阅 自动安装 RHEL 8 中的 使用 subscription-manager 命令行工具配置系统目的。subscription-manager syspurpose set usage 'Production' subscription-manager syspurpose set role 'Red Hat Enterprise Linux Server'
# subscription-manager syspurpose set usage 'Production' # subscription-manager syspurpose set role 'Red Hat Enterprise Linux Server'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证此主机的系统目的属性:
subscription-manager syspurpose
# subscription-manager syspurposeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. 编辑多个主机的系统目的 复制链接链接已复制到粘贴板!
您可以编辑 Red Hat Enterprise Linux 主机的系统目的属性。有关系统目的的更多信息,请参阅 自动安装 RHEL 8 中的 使用 subscription-manager 命令行工具配置系统目的。
先决条件
- 要编辑的主机必须使用 subscription-manager 注册。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Content Hosts 并选择您要编辑的 Red Hat Enterprise Linux 8 主机。
- 单击 Select Action 列表,再选择 Manage System Purpose。
选择您要分配给所选主机的系统目的属性。您可以选择以下值之一:
- 设置所有选择的主机的特定属性。
- 没有更改 在所选主机上保留属性。
- none (Clear) 清除所选主机上的属性。
- 单击 分配。
2.6. 更改主机的模块流 复制链接链接已复制到粘贴板!
如果您有一个主机正在运行 Red Hat Enterprise Linux 8,您可以修改您安装的仓库的模块流。
您可以在 Satellite Web UI 中从主机启用、禁用、安装、更新和删除模块流。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点您要修改的主机的名称。
- 单击 Content 选项卡,然后单击 Module streams 选项卡。
- 点模块旁边的垂直 ellipsis,然后选择您要执行的操作。远程执行作业完成后,您会收到 REX 作业通知。
2.7. 在内容主机上启用自定义存储库 复制链接链接已复制到粘贴板!
您可以使用 Satellite Web UI 在内容主机上启用所有自定义存储库。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts 并选择主机。
- 选择 Content 选项卡,然后选择 Repository sets。
- 从下拉菜单中,您可以将 Repository type 列过滤到 Custom。
- 选中所需的存储库数量,或者单击 Select All 复选框来选择所有存储库,然后单击垂直 ellipsis,然后选择 Override to Enabled。
2.8. 更改主机的内容源 复制链接链接已复制到粘贴板!
内容源是主机消耗内容的 Capsule。使用这个流程更改主机的内容源。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点您要修改的主机的名称。
- 单击 Edit 按钮旁边的垂直 ellipsis 图标,再选择 Change content source。
- 从列表中选择 Content Source,Lifecycle Content View, 和 Content Source。
点更改内容源。
注意如果一些生命周期环境没有在所选内容源上同步,则它们无法进行选择。如需更多信息,请参阅管理内容中的将生命周期环境添加到 胶囊服务器 。
您可以使用远程执行或手动完成内容源更改。若要利用远程执行更新主机上的配置,可单击 Run job invocation。有关运行远程执行作业的更多信息,请参阅管理主机中的配置和设置 远程作业。要手动更新内容源,请从主机上的 更改内容源 执行自动生成的命令。
2.9. 更改主机环境 复制链接链接已复制到粘贴板!
使用这个流程更改主机环境。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点您要修改的主机的名称。
- 在 Content view 环境 卡中,点选项图标并选择 Edit content view environments。
- 选择环境。
- 选择内容视图。
- 点击 Save。
2.10. 更改主机的受管状态 复制链接链接已复制到粘贴板!
默认情况下,Satellite 置备的主机是 Managed。当主机设置为 Managed 时,您可以从 Satellite 服务器配置额外的主机参数。这些附加参数列在 操作系统 选项卡中。如果您在 操作系统 选项卡中更改任何设置,则在将主机设置为构建并重启它之前,它们才会生效。
如果您需要获取使用 Satellite 不支持的操作系统的配置管理报告,请将主机设置为 Unmanaged。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点您要修改的主机的名称。
- 点 Edit。
- 点 Manage host 或 Unmanage host 更改主机的状态。
- 点 Submit。
2.11. 在主机上配置 Tracer 复制链接链接已复制到粘贴板!
您可以在主机上安装 Tracer,并在 Satellite 上访问 Traces。tracer 显示需要重启的过时的服务和应用程序列表,并要求您在内核更新后重启主机。trace 是 Satellite Web UI 中 tracer 生成的输出。
先决条件
- 主机注册到 Red Hat Satellite。
- 用于主机的操作系统的 Red Hat Satellite Client 6 存储库已同步到 Satellite 服务器上,可在内容视图和主机的生命周期环境中同步,并为主机启用。如需更多信息, 请参阅管理内容 中的更改 Satellite 中的主机存储库设置状态。
- 远程执行已启用。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选择您的主机。
- 在 Traces 选项卡上,单击 Enable Traces。
-
从列表中选择要安装
katello-host-tools-tracer的供应商。 - 单击 Enable Tracer。在远程执行作业完成后,您会收到 REX 作业通知。
- 如果您获取需要重启的应用程序列表,请选择您要重启的应用程序。
点 Restart app,然后点以下按钮之一:
- 通过远程执行重启
通过自定义远程执行重启
第一个选项会立即重新启动应用,而第二个选项则允许您检查和自定义 REX 作业。
2.12. 重启主机上的应用程序 复制链接链接已复制到粘贴板!
使用此流程从 Satellite Web UI 重启应用程序。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点您要修改的主机的名称。
- 选择 Traces 选项卡。
- 选择您要重启的应用程序。
- 从 Restart app 列表中选择 Restart via remote execution。远程执行作业完成后,您将收到 REX 作业通知。
2.13. 将主机分配给特定的机构 复制链接链接已复制到粘贴板!
使用这个流程将主机分配给特定的机构。有关机构的一般信息以及如何配置它们,请参阅管理 Red Hat Satellite 中的管理机构。
如果您的主机已经注册到不同的机构,您必须首先取消注册该主机,然后才能将其分配给新机构。要取消主机注册,请在主机上运行 subscription-manager unregister。将主机分配给新机构后,您可以重新注册主机。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选中您要更改的主机的复选框。
- 从 Select Action 列表中,选择 Assign Organization。此时会打开一个新选项窗口。
在 Select Organization 列表中,选择要为其分配主机的组织。选中 Fix Organization on Mismatch 的复选框。
注意如果存在与主机关联的资源,如域或子网,且同时与您要分配主机的机构没有关联,则会出现不匹配。Fix Organization on Mismatch 选项将此类资源添加到机构中,因此推荐的选择。Fail on Mismatch 选项始终会产生错误消息。例如,将主机从一个机构重新分配给另一个机构将失败,即使设置中没有实际不匹配。
- 点 Submit。
2.14. 将主机分配给特定位置 复制链接链接已复制到粘贴板!
使用这个流程将主机分配给特定位置。有关位置以及如何配置它们的常规信息,请参阅管理 Red Hat Satellite 中的管理 位置。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选中您要更改的主机的复选框。
- 从 Select Action 列表中,选择 Assign Location。此时会打开一个新选项窗口。
导航到 Select Location 列表,再选择您要用于主机的位置。选中 Fix Location on Mismatch 的复选框。
注意如果存在与主机关联的资源,如域或子网,且同时与您要分配主机的位置无关,则会出现不匹配。选项 Fix Location on Mismatch 可将这样的资源添加到位置,因此推荐的选择。Fail on Mismatch 选项始终会产生错误消息。例如,将主机从一个位置重新分配给另一个位置将失败,即使设置中没有实际不匹配。
- 点 Submit。
2.15. 在主机间切换 复制链接链接已复制到粘贴板!
当您位于 Satellite Web UI 中的特定主机上时,您可以使用主机切换器在主机间导航,而无需离开页面。点 主机名 旁边的 wagon。这会按字母顺序显示主机列表,并带有分页箭头和搜索栏,以查找您要查找的主机。
2.16. 从内容主机查看主机详情 复制链接链接已复制到粘贴板!
使用这个流程查看内容主机的主机详情页面。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Content Hosts
- 点击您要查看的内容主机。
- 选择 Details 选项卡查看主机详情页面。
Details 选项卡中的卡显示 系统属性、BIOS、网络接口、操作系统、配置模板 和调配 的详细信息。注册的内容主机显示用于注册 详情、安装的产品和 HW 属性 的额外卡,提供有关 Model、CPU 数、插槽、每个插槽的内核数、RAM 的信息。
2.17. 选择主机列 复制链接链接已复制到粘贴板!
您可以在 Hosts > All Hosts 页面的 host 表中选择您要看到的列。
无法取消选择 Name 列。Name 列充当主机的主要识别方法。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 单击 Manage columns。
选择您要显示的列。您可以选择单独的列或列类别。选择或取消选择类别选择或取消选择该类别中的所有列。
注意有些列包含多个类别,但您只能显示特定类型的列。通过选择或取消选择特定列,您可以选择或取消选择该列的所有实例。
验证
- 现在,您可以在 host 表中看到所选列。
2.18. 从 Satellite 中删除主机 复制链接链接已复制到粘贴板!
使用这个流程从 Satellite 中删除主机。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts or Hosts > Content Hosts。请注意,从 All Hosts 或 Content Hosts 中删除主机没有区别。在这两种情况下,Satellite 会完全删除主机。
- 选择您要删除的主机。
- 从 Select Action 列表中,选择 Delete Hosts。
- 单击 Submit 以从 Satellite 永久删除主机。
默认情况下,host delete 设置上的 Destroy 关联的虚拟机设置为 no。如果删除与虚拟机关联的主机记录,则虚拟机将保留在计算资源上。
要删除计算资源上的虚拟机,请进入到 Administer > Settings 并选择 Provisioning 选项卡。如果将 host delete 上与 Destroy 关联的虚拟机设置为 yes,则删除与虚拟机关联的主机记录时会删除虚拟机。为避免在这种情况下删除虚拟机,请在不将其从计算资源中删除或更改设置的情况下,从 Satellite 中解除虚拟机解除关联。
CLI 过程
从 Satellite 中删除您的主机:
hammer host delete \ --id My_Host_ID \ --location-id My_Location_ID \ --organization-id My_Organization_ID
$ hammer host delete \ --id My_Host_ID \ --location-id My_Location_ID \ --organization-id My_Organization_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,您可以使用--
name My_Host_Name而不是--id My_Host_ID。
2.18.1. 将虚拟机与 Satellite 解除关联,而无需将其从虚拟机监控程序中删除 复制链接链接已复制到粘贴板!
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选中您要解除关联主机左侧的复选框。
- 在 Select Action 列表中,单击 Disassociate Hosts。
- 可选:选择复选框来保留主机以便将来的操作。
- 点 Submit。
2.19. RHEL 主机的生命周期状态 复制链接链接已复制到粘贴板!
Satellite 提供多个机制来显示 Red Hat Enterprise Linux 主机即将结束(EOS)事件的信息:
- 通知横幅
- Hosts index 页面上的列
- 在每个主机上运行 Red Hat Enterprise Linux 的 Hosts index 页面上的报警,以及即将发布的 EOS 事件,以及支持结束的时间
- 在 Hosts index 页面中按 EOS 搜索主机的功能
- 主机详情页面中的主机状态 卡
对于任何没有运行 Red Hat Enterprise Linux 的主机,Satellite 在 RHEL Lifecycle 状态和 Last report 列中显示 Unknown。
EOS 通知横幅
当维护支持或延长生命周期支持方法结束时,如果您拥有具有 Red Hat Enterprise Linux 版本的主机,则在 Satellite Web UI 中看到通知横幅。该通知提供有关 Red Hat Enterprise Linux 版本、环境中运行该版本的主机数量、生命周期支持以及过期日期的信息。除了其他信息外,Red Hat Enterprise Linux 生命周期列在通知中也可见。
2.19.1. 显示 RHEL 生命周期状态 复制链接链接已复制到粘贴板!
您可以在 Hosts index 页面上的表中显示 Red Hat Enterprise Linux 主机的支持结束(EOS)状态。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 单击 Manage columns。
- 选择 Content 列将它展开。
- 选择 RHEL Lifecycle status。
- 点 Save 生成一个新的列,该列会显示 Red Hat Enterprise Linux 生命周期状态。
2.19.2. 主机根据 RHEL 生命周期状态搜索 复制链接链接已复制到粘贴板!
您可以使用 Search 字段来根据 rhel_lifecycle_status 搜索主机。它可以有以下值之一:
-
full_support -
maintenance_support -
approaching_end_of_maintenance -
extended_support -
approaching_end_of_support -
support_ended
第 3 章 使用主机组 复制链接链接已复制到粘贴板!
使用 Satellite,您可以使用主机组作为常见主机设置的模板,将这些设置应用到多个主机。
3.1. 主机组概述 复制链接链接已复制到粘贴板!
主机组充当常见主机设置的模板。
使用主机组,您可以为主机定义许多设置,如生命周期环境、内容视图或主机可用的 Ansible 角色。除了为每个主机单独定义设置外,您可以使用主机组定义一次常见设置并将其应用到多个主机。
您可以创建嵌套的主机组。
当您更改现有主机组的设置时,新设置不会传播到分配给主机组的主机。在主机组中更改后,只有 Puppet 类设置会在主机上更新。
3.2. 嵌套主机组 复制链接链接已复制到粘贴板!
您可以创建主机组的层次结构。目的是拥有一个基础级主机组,它代表您机构中的所有主机,并提供常规设置,然后嵌套提供特定设置的组。
在嵌套主机组时,Satellite 会按照以下顺序应用主机设置:
- 主机设置优先于主机组设置。
- 嵌套式主机组设置优先于父主机组设置。
例 3.1. 嵌套式主机组层次结构
您要创建一个名为 Base 的顶级主机组,以及两个名为 Webserver 和 Storage 的嵌套式主机组。嵌套式主机组与多个主机关联。您还创建与任何主机组不关联的主机 custom.example.com。
您可以在嵌套主机组(Webservers 和 Storage)上的顶级主机组(Base)和 Ansible 角色上定义操作系统。
| 顶级主机组 | 嵌套主机组 | 主机 | 从主机组继承的设置 |
|---|---|---|---|
| Base
这个主机组应用 | webservers
此主机组应用 | webserver1.example.com | 主机使用以下设置:
|
| webserver2.example.com | |||
| 存储
此主机组应用 | storage1.example.com | 主机使用以下设置:
| |
| storage2.example.com | |||
| [no 主机组] | custom.example.com | 没有从主机组继承的设置。 | |
例 3.2. 嵌套式主机组设置
您要创建一个名为 Base 的顶级主机组,以及两个名为 Webserver 和 Storage 的嵌套式主机组。您还可以创建与顶级主机组 Base 关联的主机 custom.example.com,但没有嵌套的主机组。
您可以在顶级主机组(Base)和嵌套主机组(Webserver 和 Storage)上为操作系统和 Ansible 角色设置定义不同的值。
| 顶级主机组 | 嵌套主机组 | Host | 从主机组继承的设置 |
|---|---|---|---|
| Base 此主机组应用这些设置:
| webservers 此主机组应用这些设置:
| webserver1.example.com | 主机使用以下设置:
|
| webserver2.example.com | |||
| 存储 此主机组应用这些设置:
| storage1.example.com | 主机使用以下设置:
| |
| storage2.example.com | |||
| [no nested host group] | custom.example.com | 主机使用以下设置:
|
3.3. 创建主机组 复制链接链接已复制到粘贴板!
创建主机组,以便能够将主机设置应用到多个主机。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入到 Configure > Host Groups,再点 Create Host Group。
- 如果您有一个要从中继承属性的现有主机组,您可以从 Parent 列表中选择主机组。如果没有,请将此字段留空。
- 输入新主机组的 Name。
- 输入您希望未来主机继承的任何其他信息。
- 单击 Ansible Roles 选项卡,然后从 Ansible Roles 列表中选择您要添加到主机的一个或多个角色。使用 箭头图标 管理您添加或删除的角色。
点附加标签页,将您要属性的任何详情添加到主机组中。
注意在注册与
生产环境中创建的 Puppet 环境关联的主机组时,Puppet 无法检索 Puppet CA 证书。要创建与主机组关联的合适的 Puppet 环境,请手动创建目录:
mkdir /etc/puppetlabs/code/environments/example_environment
# mkdir /etc/puppetlabs/code/environments/example_environmentCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 单击 Submit 以保存主机组。
CLI 过程
使用
hammer hostgroup create命令创建主机组。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. 为每个生命周期环境创建主机组 复制链接链接已复制到粘贴板!
使用这个流程为库生命周期环境创建主机组,并为其他生命周期环境添加嵌套主机组。
流程
要为每个生命周期环境创建一个主机组,请运行以下 Bash 脚本:
3.5. 将主机添加到主机组 复制链接链接已复制到粘贴板!
您可以在 Satellite Web UI 中将主机添加到主机组中。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点您要修改的主机的名称。
- 点 Edit。
- 从 Host Group 列表中选择主机组。
- 点 Submit。
验证
- Overview 选项卡下的 Details 卡现在显示您的主机所属的主机组。
3.6. 更改主机的主机组 复制链接链接已复制到粘贴板!
使用这个流程更改主机的主机组。
如果您在更改主机组后重新置备主机,则会应用主机从主机组继承的新值。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点您要修改的主机的名称。
- 点 Edit。
- 从 Host Group 列表中选择新的主机组。
- 点 Submit。
验证
- Overview 选项卡下的 Details 卡现在显示您的主机所属的主机组。
第 4 章 注册主机和设置主机集成 复制链接链接已复制到粘贴板!
您必须注册尚未通过 Satellite 置备的主机,才能使用 Satellite 管理它们。您可以通过 Satellite 服务器或 Capsule 服务器注册主机。
您还必须根据您要使用的集成功能在主机上安装和配置工具。使用以下步骤安装和配置主机工具:
4.1. 注册中支持的客户端 复制链接链接已复制到粘贴板!
Satellite 支持以下操作系统和架构以进行注册。
- 支持的主机操作系统
主机可以使用以下操作系统:
- Red Hat Enterprise Linux 10、9 和 8
- 带有 ELS 附加组件的 Red Hat Enterprise Linux 7
您可以注册以下主机以转换为 RHEL:
- CentOS Linux 7
- Oracle Linux 7 和 8
- 支持的主机架构
主机可以使用以下构架:
- AMD 和 Intel 64 位构架
- 64 位 ARM 架构
- IBM Power Systems, Little Endian
- 64 位 IBM Z 架构
4.2. 注册方法 复制链接链接已复制到粘贴板!
您可以使用以下方法将主机注册到 Satellite:
- 全局注册
您可以从 Satellite 生成注册命令,并在无限数量的主机上运行此命令,方法是使用 Satellite API 的自定义模板来注册它们。如需更多信息,请参阅 第 4.3 节 “使用全局注册注册主机”。
通过使用此方法,您还可以在注册 Satellite 期间将 Satellite SSH 密钥部署到主机,以启用用于远程执行任务的主机。如需更多信息,请参阅 第 13 章 配置和设置远程作业。
使用此方法,您还可以在注册到 Satellite 的过程中使用 Red Hat Insights 配置主机。如需更多信息,请参阅 第 10 章 使用 Red Hat Insights 监控主机。
- (已弃用) Katello CA Consumer
-
您可以从
satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm下载并安装消费者 RPM,然后运行subscription-manager。 - (已弃用) 启动脚本
-
您可以从主机上的
satellite.example.com/pub/bootstrap.py下载启动脚本,然后运行 脚本。如需更多信息,请参阅 第 4.4 节 “使用 bootstrap 脚本注册主机”。
4.3. 使用全局注册注册主机 复制链接链接已复制到粘贴板!
您可以通过在 Satellite 上生成 curl 或 wget 命令并在主机上运行此命令,将主机注册到 Satellite。此方法使用两个置备模板: 全局注册 模板和 Linux host_init_config 默认模板。这可让您完全控制主机注册过程。
如果需要更大的灵活性,您还可以自定义默认模板。如需更多信息,请参阅 第 4.3.5 节 “自定义注册模板”。
4.3.1. 用于注册的全局参数 复制链接链接已复制到粘贴板!
您可以通过进入到 Configure > Global Parameters 来配置以下全局参数:
-
host_registration_insights参数在insights片断中使用。如果参数设为true,则注册会在主机上安装并启用 Red Hat Insights 客户端。如果参数设置为false,Satellite 会阻止安装和注册 Red Hat Insights 客户端。默认值为true。在覆盖参数值时,请将参数类型设置为boolean。 -
host_registration_insights_inventory参数控制清单上传。如果参数设为true,则主机将包含在上传到 Red Hat Hybrid Cloud Console 的 Insights 清单报告中。如果参数设为false,则主机将不包括在 Insights Inventory 报告上传中。要在不将主机注册到 Insights 客户端的情况下上传清单数据,请将host_registration_insights参数设置为false,并将host_registration_insights_inventory设置为true。 -
host_packages参数用于在主机上安装软件包。 -
host_registration_remote_execution参数在remote_execution_ssh_keys片断中使用。如果设为true,则注册将在主机上启用远程执行。默认值为true。 -
remote_execution_ssh_keys,remote_execution_ssh_user,remote_execution_create_user, 和remote_execution_effective_user_method参数在remote_execution_ssh_keys片断中使用。如需了解更多详细信息,请参阅代码片段。
您可以通过 Hosts > Templates > Provisioning Templates 进入 Satellite web UI 中的片断。
4.3.2. 配置主机以进行注册 复制链接链接已复制到粘贴板!
配置主机以注册到 Satellite 服务器或胶囊服务器。您可以使用配置管理工具一次性配置多个主机。
先决条件
- 主机必须使用受支持的操作系统。如需更多信息,请参阅 第 4.1 节 “注册中支持的客户端”。
- Satellite 服务器上的系统时钟和任何胶囊服务器都必须在网络间同步。如果系统时钟没有同步,SSL 证书验证可能会失败。例如,您可以使用 Chrony 来管理时间。
流程
在您的主机上启用并启动时间同步工具。主机必须与与 Satellite 服务器和任何胶囊服务器相同的 NTP 服务器同步。
systemctl enable --now chronyd
# systemctl enable --now chronydCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在主机上部署 SSL CA 文件,以便主机可以进行安全注册调用。
- 进入 Administer > Settings > Authentication 并查找 SSL CA 文件设置的值,查找 Satellite 存储 SSL CA 文件 文件的位置。
-
安全地将 SSL CA 文件传输到您的主机,例如使用
scp。 - 使用 SSH 登录您的主机。
将证书复制到信任存储中:
cp My_SSL_CA_file.pem /etc/pki/ca-trust/source/anchors
# cp My_SSL_CA_file.pem /etc/pki/ca-trust/source/anchorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新信任存储:
update-ca-trust
# update-ca-trustCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.3. 注册主机 复制链接链接已复制到粘贴板!
您可以使用注册模板注册主机,并在注册过程中设置各种集成功能和主机工具。
先决条件
- 您的 Satellite 帐户已分配有 Register hosts 角色,或者分配有等效权限的角色。
- 您必须在要注册的主机上具有 root 权限。
-
您必须在要注册的主机上安装了
curl或wget。 - 您已配置了主机以进行注册。如需更多信息,请参阅 第 4.3.2 节 “配置主机以进行注册”。
- 主机必须有激活码。如需更多信息,请参阅管理内容中的管理激活码。
-
可选: 如果要将主机注册到 Red Hat Insights,您必须同步
rhel-8-for-x86_64-baseos-rpms和rhel-8-for-x86_64-appstream-rpms存储库,并在您使用的激活码中提供它们。这是在您的主机上安装insights-client软件包所必需的。 - 用于主机的操作系统的 Red Hat Satellite Client 6 存储库在 Satellite 服务器上同步,并在您使用的激活码中启用。如需更多信息,请参阅管理内容中的导入内容。远程执行拉取客户端、Puppet 代理、跟踪器和其他工具需要此存储库。
如果要使用 Capsule 服务器而不是 Satellite 服务器,请确保已相应地配置了胶囊服务器。
重要必须将您的胶囊服务器添加到 Satellite 服务器上的可信代理列表中!
如需更多信息,请参阅 安装 Capsule 服务器 中的 为主机注册配置 Capsule 和置备。
- 如果您的 Satellite 服务器或胶囊服务器位于 HTTP 代理后面,请将主机上的 Subscription Manager 配置为使用 HTTP 代理进行连接。如需更多信息,请参阅 红帽知识库 中的 如何通过防火墙或代理访问 Red Hat Subscription Manager (RHSM)。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Register Host。
输入有关如何配置注册主机的详情。
如果您从 Host Group 列表中选择一个主机组,以下字段会继承其来自主机组的值:
- 操作系统
- 激活码
- 生命周期环境
- 负载均衡器后面的 Capsule 优先于 Satellite Web UI 中选择的 Capsule 作为主机的内容源。
- 在 General 选项卡中,在 Activation Keys 字段中输入分配给您的主机的一个或多个激活码。
-
点 Generate 生成
curl命令。 -
以
root用户身份在您要注册的主机上运行curl命令。注册完成后,您在配置注册模板时指定的主机组的任何 Ansible 角色都将在主机上运行。
您可以指定的注册详情包括:
- 在 General 选项卡中,您可以选择 Capsule 字段中要注册您的主机。负载均衡器后面的 Capsule 优先于 Satellite Web UI 中选择的 Capsule 作为主机的内容源。
-
在 General 选项卡中,在 Download utility 字段中,您可以使用
wget命令选择wget。默认情况下,Satellite 生成一个curl命令。 在 General 选项卡中,您可以选择 Insecure 选项,使第一个调用不安全。在此第一次调用期间,您的主机会从 Satellite 下载 CA 文件。您的主机将使用此 CA 文件连接到 Satellite,并在以后的所有调用都保证它们的安全。
红帽建议您避免不安全的调用。
如果攻击者位于 Satellite 和主机之间的网络中,从第一个不安全的调用中获取 CA 文件,攻击者可以从您的主机和 JSON Web Tokens (JWT)访问 API 调用的内容。因此,如果您选择在注册过程中部署 SSH 密钥,攻击者可以使用 SSH 密钥访问您的主机。
- 在 Advanced 标签页的 Repositories 字段中,您可以在执行注册前列出要添加的存储库。如果您在激活码中提供软件仓库,则不必指定软件仓库。
- 在 Advanced 选项卡中,您可以配置要安装的远程执行、Red Hat Insights 和软件包。
在 Advanced 选项卡中,在 Token lifetime (小时) 字段中,您可以更改 Satellite 用于身份验证的 JSON Web Token (JWT)的有效性持续时间。此令牌的持续时间定义生成的注册命令的工作方式。
请注意,Satellite 将生成注册命令的用户的权限应用到主机的授权。如果用户丢失或获得额外的权限,则 JWT 的权限也会改变。因此,不要在令牌期间删除、阻止或更改用户的权限。
JWT 的范围仅限于注册端点,且不能在其它任何位置使用。
Satellite 生成注册命令,以及按 ID 搜索资源的参数。您可以编辑注册命令,按标题搜索以下资源:
- 机构(Organization)
-
URL 片段示例:
organization=My%20Organization或organization=My+Organization - 位置
-
URL 片段示例:
location=My%20Location或location=My+Location - 主机组
如果主机组嵌套,请包含以斜杠字符(
/)分隔的父组。URL 片段示例:
hostgroup=Parent%20Group%2FMy%20Host%20Group- 操作系统
-
URL 片段示例:
operatingsystem=My%20Operating%20System或operatingsystem=My+Operating+System
参数值必须采用 URL 编码。
CLI 过程
-
使用
hammer host-registration generate-command生成注册命令以注册您的主机。 -
在您要注册的主机上,以
root身份运行注册命令。
如需更多信息,请参阅使用 hammer host-registration generate-command --help 的 Hammer CLI 帮助。
Ansible 流程
-
使用
redhat.satellite.registration_command模块。
如需更多信息,请参阅 ansible-doc redhat.satellite.registration_command 的 Ansible 模块文档。
API 流程
-
使用
POST /api/registration_commands资源。
如需更多信息,请参阅 https://satellite.example.com/apidoc/v2.html 的完整 API 参考。
后续步骤
- 要使用 Tracer 设置对过时的服务和应用程序的监控,请参阅管理主机中的 在主机上配置 Tracer。
4.3.4. 使用代码片段自定义主机注册 复制链接链接已复制到粘贴板!
您可以通过使用预定义的名称创建片断来自定义注册过程。Global Registration 模板会自动包含这些片断。因此,您不必编辑模板。
要添加自定义步骤以注册,请创建以下一个或多个片断:
before_registration-
在将主机注册到 Satellite 之前,由
Global Registration模板载入并执行此片断。 after_registration-
在将主机注册到 Satellite 后,
全局注册模板会加载并执行此片段。
确保精确命名代码片段。否则,全局注册 模板无法加载它们。
先决条件
-
您的 Satellite 帐户有一个授予权限
view_provisioning_templates、create_provisioning_templates、assign_organizations和assign_locations的角色。 - 您已选择特定的组织和位置上下文。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Templates > Provisioning Templates。
- 点 Create Template。
-
在 Name 字段中输入所需片断的名称:pre
_registration或after_registration。 - 在模板编辑器中,创建您的片断。
- 在 Type 选项卡中,选择 Snippet。
- 在 Locations 选项卡上,将代码片段分配到所需的位置。
- 在 Organizations 选项卡上,将代码片段分配到所需的组织。
- 点 Submit。
其他资源
4.3.5. 自定义注册模板 复制链接链接已复制到粘贴板!
您可以通过编辑自定义模板来自定义注册过程。请注意,Satellite 中的所有默认模板都将被锁定。如果要自定义注册模板,您必须克隆默认模板并编辑克隆。
红帽只支持原始未编辑的模板。自定义模板不会接收红帽发布的更新。
注册过程使用以下置备模板:
-
Global Registration 模板包含将主机注册到 Satellite 的步骤。当主机访问
/registerSatellite API 端点时,此模板会显示。 - Linux host_init_config 默认模板 包含注册后主机初始配置的步骤。
流程
- 导航到 Hosts > Templates > Provisioning Templates。
- 搜索您要编辑的模板。
- 在所需模板所在的行中,单击 Clone。
- 根据需要编辑模板。如需更多信息,请参阅 附录 B, 模板编写参考。
- 点 Submit。
- 导航到 Administer > Settings > Provisioning。
根据需要更改以下设置:
- 将 Default Global registration template 设置指向您的自定义全局注册模板,
- 将 Default 'Host 初始配置' 模板 设置指向您的自定义初始配置模板。
4.3.6. 无效的注册令牌 复制链接链接已复制到粘贴板!
当您在全局主机注册中生成注册命令时,Satellite 还会生成唯一的 JSON Web Token (JWT),用于将注册调用从主机授权到 Satellite 服务器。此 JWT 绑定到生成注册命令的用户。
用户可以为 JWT 配置自定义有效期持续时间。如果有效期持续时间太长,或者 JWT 已被破坏,则 JWT 会带来安全问题。为缓解此问题,Satellite 管理员或具有适当权限的用户可能会使现有的 JWT 无效。
您还可以通过禁用用户来临时禁用注册令牌。当您重新启用用户时,用户可以继续使用其注册令牌。
4.3.6.1. 导致您自己的 JWT 无效 复制链接链接已复制到粘贴板!
您可以使当前用户的所有注册 JSON Web 令牌无效。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
要使用 API,请参阅 API 流程。
流程
- 在卫星 Web UI 中,单击顶栏中的用户菜单,再选择 My Account。
- 选择 Registration Tokens 选项卡。
- 单击 Invalidate JWTs。
- 在确认窗口中,单击 Confirm。
验证
-
Satellite Web UI 显示以下信息:
Successfully invalid registration token。
CLI 过程
运行 Hammer 会使所有注册令牌无效:
hammer user registration-token invalidate --user-id My_User_ID
$ hammer user registration-token invalidate --user-id My_User_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
API 流程
-
使用
DELETE /api/users/:user_id/registration_tokens资源。
如需更多信息,请参阅 https://satellite.example.com/apidoc/v2.html 的完整 API 参考。
4.3.6.2. 无效的其他用户的 JWT 复制链接链接已复制到粘贴板!
您可以使一个或多个用户的所有注册 JSON Web 令牌无效。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
要使用 API,请参阅 API 流程。
先决条件
-
您的 Satellite 用户具有授予
edit_users权限的角色。对于 Satellite Web UI,您还需要view_users权限。
流程
- 在 Satellite Web UI 中,进入到 Administer > Users。
- 在您要无效注册令牌的用户行中,从操作菜单中选择 Invalidate JWTs。
- 在确认窗口中,单击 Confirm。
验证
-
Satellite Web UI 会显示以下信息:
Successfully invalidated registration token for the user。
CLI 过程
通过运行 Hammer 使单个用户的所有注册令牌无效:
hammer user registration-token invalidate --user-id User_ID
$ hammer user registration-token invalidate --user-id User_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过运行 Hammer 使多个用户的所有注册令牌无效:
hammer user registration-token invalidate-multiple --search "My_Search_Query"
$ hammer user registration-token invalidate-multiple --search "My_Search_Query"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
API 流程
-
使用
DELETE /api/users/:user_id/registration_tokens资源使单个用户的所有注册令牌无效。 -
使用
DELETE /api/registration_tokens?search=url-encoded-search-query资源使多个用户的所有注册令牌无效。
如需更多信息,请参阅 https://satellite.example.com/apidoc/v2.html 的完整 API 参考。
其他资源
- 在管理 Red Hat Satellite 中构建搜索查询
4.3.6.3. 无效的所有用户的 JWT 复制链接链接已复制到粘贴板!
您可以在 Satellite Web UI 中一次性使所有用户的所有注册 JSON Web 令牌无效。
先决条件
-
您的 Satellite 用户具有授予
view_users和edit_users权限的角色。
流程
- 在 Satellite Web UI 中,进入到 Administer > Users。
- 单击 所有用户的 Invalidate JWT。
- 在确认窗口中,单击 Confirm。
验证
-
Satellite Web UI 会显示以下信息:
Successfully invalidated registration token for all users。
4.4. 使用 bootstrap 脚本注册主机 复制链接链接已复制到粘贴板!
您可以使用 bootstrap 脚本自动执行内容注册和 Puppet 配置。
bootstrap 脚本是一个已弃用的功能。弃用的功能仍然包含在 Satellite 中,并被支持。但是,它将在以后的发行版本中删除,且不建议在新的部署中使用。
使用 第 4.3 节 “使用全局注册注册主机” 替代。
有关 Satellite 中已弃用或删除的主要功能的最新列表,请参阅 Satellite 发行注记中的已弃用功能 部分。
您可以使用 bootstrap 脚本注册新主机,或者将现有主机从 RHN、SAM、RHSM 或其他 Red Hat Satellite 实例迁移。
katello-client-bootstrap 软件包默认安装在 Satellite 服务器的基本操作系统上。bootstrap.py 脚本安装在 /var/www/html/pub/ 目录中,以便 satellite.example.com/pub/bootstrap.py 的主机可用。该脚本在 /usr/share/doc/katello-client-bootstrap-版本/README.md 文件中包括文档。
要使用 bootstrap 脚本,您必须在主机上安装它。因为该脚本只需要一次,且仅适用于 root 用户,您可以将其放在 /root 或 /usr/local/sbin 中,并在使用后将其删除。这个过程使用 /root。
限制:
出于安全原因,胶囊上的反向代理默认是禁用的。因此,如果您通过 Capsule 注册主机,启动脚本将无法正常工作。红帽建议使用 全局注册 来注册主机。
先决条件
-
您有一个 Satellite 用户,具有运行 bootstrap 脚本所需的权限。此流程中的示例指定
admin用户。如果您的安全策略无法接受此项,请创建一个具有所需最低权限的新角色,并将它添加到将运行脚本的用户。如需更多信息,请参阅 第 4.4.1 节 “为 bootstrap 脚本设置权限”。 - 您有启用了 Red Hat Satellite Client 6 存储库的主机的激活码。有关配置激活码的详情,请参考 管理内容 中的 管理 激活码。
- 您已创建了主机组。有关创建主机组的更多信息,请参阅 第 3.3 节 “创建主机组”。
Puppet 注意事项
如果主机组与一个生产环境中创建的 Puppet 环境关联,则 Puppet 在从该主机组注册主机时无法检索 Puppet CA 证书。
要创建与主机组关联的合适的 Puppet 环境,请按照以下步骤操作:
手动创建目录:
mkdir /etc/puppetlabs/code/environments/example_environment
# mkdir /etc/puppetlabs/code/environments/example_environmentCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 Satellite Web UI 中,进入到 Configure > Puppet ENC > Environments。
- 单击 Import environment from。
- 选择您的 Capsule。
- 选择创建的目录,然后单击 Update。
流程
-
以
root用户身份登录主机。 下载脚本:
curl -O http://satellite.example.com/pub/bootstrap.py
# curl -O http://satellite.example.com/pub/bootstrap.pyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使脚本可执行:
chmod +x bootstrap.py
# chmod +x bootstrap.pyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过查看帮助文本来确认脚本可以执行:
在 Red Hat Enterprise Linux 8 中:
/usr/libexec/platform-python bootstrap.py -h
# /usr/libexec/platform-python bootstrap.py -hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在其他 Red Hat Enterprise Linux 版本中:
./bootstrap.py -h
# ./bootstrap.py -hCopy to Clipboard Copied! Toggle word wrap Toggle overflow
输入适合您环境的 bootstrap 命令。
对于--
server选项,请指定 Satellite 服务器的 FQDN 或 Capsule 服务器。对于-location,--organization, and--hostgroup选项,使用带引号名称而不是标签,作为选项的参数。有关高级用例,请参阅 第 4.4.2 节 “高级 bootstrap 脚本配置”。在 Red Hat Enterprise Linux 8 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
输入您使用-
login选项指定的 Satellite 用户的密码。脚本将进度通知发送到 stdout。
-
当脚本提示时,批准主机的 Puppet 证书。在 Satellite Web UI 中,进入到 Infrastructure > Capsules,找到您使用-
server选项指定的 Satellite 或 Capsule 服务器。 - 从 Actions 列中的列表中,选择 Certificates。
- 在 Actions 列中,单击 Sign 以批准主机的 Puppet 证书。
- 返回到主机,以查看 bootstrap 过程完成的其余部分。
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts,并确保主机连接到正确的主机组。
可选:在主机注册完成后,删除脚本:
rm bootstrap.py
# rm bootstrap.pyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.1. 为 bootstrap 脚本设置权限 复制链接链接已复制到粘贴板!
使用这个流程配置 Satellite 用户,并带有运行 bootstrap 脚本所需的权限。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入到 Administer > Users。
- 点所需的用户名来选择现有用户。此时将打开一个新窗格,其中包含用于修改选定用户的信息的选项卡。或者,创建一个专门用于运行此脚本的新用户。
- 单击 Roles 选项卡。
从 Roles 列表中选择 Edit hosts and Viewer。
重要Edit hosts 角色允许用户编辑和删除主机,并且能够添加主机。如果您的安全策略无法接受,请创建具有以下权限的新角色,并将其分配给用户:
-
view_organizations -
view_locations -
view_domains -
view_hostgroups -
view_hosts -
view_architectures -
view_ptables -
view_operatingsystems -
create_hosts
-
- 点 Submit。
CLI 过程
使用 bootstrap 脚本所需的最小权限创建一个角色。本例创建一个名为 Bootstrap 的角色:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为现有用户分配新角色:
hammer user add-role --id user_id --role Bootstrap
$ hammer user add-role --id user_id --role BootstrapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,您可以创建新用户,并将这个新角色分配给他们。有关使用 Hammer 创建用户的更多信息,请参阅管理 Red Hat Satellite 中的管理用户和角色 。
4.4.2. 高级 bootstrap 脚本配置 复制链接链接已复制到粘贴板!
本节还有更多使用 bootstrap 脚本注册或迁移主机的示例。
这些示例指定 admin Satellite 用户。如果您的安全策略无法接受此项,请创建一个具有 bootstrap 脚本所需的最小权限的新角色。如需更多信息,请参阅 第 4.4.1 节 “为 bootstrap 脚本设置权限”。
4.4.2.1. 将主机从一个 Satellite 迁移到另一个 Satellite 复制链接链接已复制到粘贴板!
使用脚本 with- force 从旧 Satellite 中删除 katello-ca-consumer reasonable 软件包,并在新的 Satellite 上安装 katello-ca-consumer reasonable 软件包。
流程
在 Red Hat Enterprise Linux 8 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
启动脚本会检测存在 /etc/syconfig/rhn/systemid 以及与 RHN 的有效连接,以表明系统注册到旧平台。然后,该脚本会调用 rhn-classic-migrate-to-rhsm 将系统从 RHN 迁移。默认情况下,由于审计原因,该脚本不会删除系统的传统配置文件。要删除传统配置文件,可使用 --legacy-purge,并使用 --legacy-login 提供具有适当权限的用户帐户来删除配置文件。提示时输入用户帐户密码。
流程
在 Red Hat Enterprise Linux 8 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2.3. 在没有 Puppet 的情况下将主机注册到 Satellite 复制链接链接已复制到粘贴板!
默认情况下,bootstrap 脚本配置用于内容管理和配置管理的主机。如果您有一个现有的配置管理系统,且不想在主机上安装 Puppet,请使用 --skip-puppet。
流程
在 Red Hat Enterprise Linux 8 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2.4. 仅将主机注册到 Satellite 以进行内容管理 复制链接链接已复制到粘贴板!
要将系统注册为内容主机,并省略调配和配置管理功能,可使用 --skip-foreman。
流程
在 Red Hat Enterprise Linux 8 中,输入以下命令:
/usr/libexec/platform-python bootstrap.py \ --server satellite.example.com \ --organization="My_Organization" \ --activationkey="My_Activation_Key" \ --skip-foreman
# /usr/libexec/platform-python bootstrap.py \ --server satellite.example.com \ --organization="My_Organization" \ --activationkey="My_Activation_Key" \ --skip-foremanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 中,输入以下命令:
bootstrap.py --server satellite.example.com \ --organization="My_Organization" \ --activationkey="My_Activation_Key" \ --skip-foreman
# bootstrap.py --server satellite.example.com \ --organization="My_Organization" \ --activationkey="My_Activation_Key" \ --skip-foremanCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2.5. 更改 bootstrap 脚本用来下载消费者 RPM 的方法 复制链接链接已复制到粘贴板!
默认情况下,启动脚本使用 HTTP 从 http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm 下载使用者 RPM。在某些环境中,您可能只想在主机和 Satellite 之间允许 HTTPS。use --download-method 将下载方法从 HTTP 更改为 HTTPS。
流程
在 Red Hat Enterprise Linux 8 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2.6. 为 Satellite 提供主机的 IP 地址 复制链接链接已复制到粘贴板!
在一个接口上具有多个接口或多个 IP 地址的主机上,您可能需要覆盖 IP 地址的自动检测,并为 Satellite 提供特定的 IP 地址。use -ip.
流程
在 Red Hat Enterprise Linux 8 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2.7. 在主机上启用远程执行 复制链接链接已复制到粘贴板!
use- rex 和 --rex-user 启用远程执行,并为指定用户添加所需的 SSH 密钥。
流程
在 Red Hat Enterprise Linux 8 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2.8. 在注册过程中为主机创建域 复制链接链接已复制到粘贴板!
要创建主机记录,在运行脚本之前,Satellite 中需要存在主机的 DNS 域。如果域不存在,则使用 --add-domain 来添加。
流程
在 Red Hat Enterprise Linux 8 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2.9. 为主机提供替代 FQDN 复制链接链接已复制到粘贴板!
如果主机名不是 FQDN,或者不是 RFC 兼容(包含下划线等字符),则脚本将在主机名验证阶段失败。如果您无法将主机更新为使用 Satellite 接受的 FQDN,您可以使用 bootstrap 脚本指定替代 FQDN。
流程
使用 Hammer 将
create_new_host_when_facts_are_uploaded和create_new_host_when_report_is_uploaded设置为 false :Copy to Clipboard Copied! Toggle word wrap Toggle overflow use--fqdn指定将报告到 Satellite 的 FQDN:在 Red Hat Enterprise Linux 8 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 中,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. 在主机注册过程中安装和配置 Puppet 代理 复制链接链接已复制到粘贴板!
您可以在注册过程中在主机上安装和配置 Puppet 代理。主机上需要配置了 Puppet 代理,才能与您的 Satellite 集成。有关 Puppet 的更多信息,请参阅使用 Puppet 集成管理配置。
先决条件
- Puppet 必须在您的卫星中启用。如需更多信息,请参阅使用 Puppet 集成管理配置中的启用 Puppet 与 Satellite 集成。
- 用于主机的操作系统的 Red Hat Satellite Client 6 存储库在 Satellite 服务器上同步,并在您使用的激活码中启用。如需更多信息,请参阅管理内容中的导入内容。
- 您有一个激活码。如需更多信息,请参阅管理内容中的管理激活码。
流程
- 在 Satellite Web UI 中,进入到 Configure > Global Parameters 以全局添加主机参数。或者,您可以进入到 Configure > Host Groups 并编辑或创建主机组,来仅将主机参数添加到主机组中。
使用全局参数或主机组中的 host 参数启用 Puppet 代理。
添加名为
enable-puppet7的主机参数,选择 boolean 类型,然后将值设为true。在全局参数或主机组中使用以下主机参数为 Puppet 代理指定配置:
-
添加名为
puppet_server的主机参数,选择字符串类型,并将值设为 Puppet 服务器的主机名,如puppet.example.com。 -
可选:添加名为
puppet_ca_server的主机参数,选择字符串类型,并将值设为 Puppet CA 服务器的主机名,如puppet-ca.example.com。如果没有设置puppet_ca_server,则 Puppet 代理将使用与puppet_server相同的服务器。 -
可选:添加名为
puppet_environment的主机参数,选择字符串类型,并将值设置为您希望主机使用的 Puppet 环境。
在 BZ2177730 被解决前,您需要使用 host 参数来指定 Puppet 代理配置,即使 Puppet 服务器是 Capsule 服务器。
-
添加名为
- 进入到 Hosts > Register Host,并使用适当的激活码注册您的主机。如需更多信息,请参阅 管理主机 中的 使用全局注册注册主机。
- 进入到 Infrastructure > Capsules。
- 从所需胶囊服务器的 Actions 列中的列表中,选择 Certificates。
- 单击所需主机右侧的 Sign to,为 Puppet 代理签署 SSL 证书。
4.6. 手动安装和配置 Puppet 代理 复制链接链接已复制到粘贴板!
您可以手动在主机上安装和配置 Puppet 代理。主机上需要配置了 Puppet 代理,才能与您的 Satellite 集成。有关 Puppet 的更多信息,请参阅使用 Puppet 集成管理配置。
先决条件
- Puppet 必须在您的卫星中启用。如需更多信息,请参阅使用 Puppet 集成管理配置中的启用 Puppet 与 Satellite 集成。
- 主机必须分配有 Puppet 环境。
- 用于主机的操作系统的 Red Hat Satellite Client 6 存储库已同步到 Satellite 服务器上,可在内容视图和主机的生命周期环境中同步,并为主机启用。如需更多信息, 请参阅管理内容 中的更改 Satellite 中的主机存储库设置状态。
流程
-
以
root用户身份登录主机。 安装 Puppet 代理软件包。
在运行 Red Hat Enterprise Linux 8 及更高版本的主机上:
dnf install puppet-agent
# dnf install puppet-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在运行 Red Hat Enterprise Linux 7 及更早版本的主机上:
yum install puppet-agent
# yum install puppet-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
使用以下脚本,将 Puppet 代理添加到当前 shell 中的
PATH中:. /etc/profile.d/puppet-agent.sh
. /etc/profile.d/puppet-agent.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 Puppet 代理。将
environment参数设置为主机所属的 Puppet 环境的名称:puppet config set server satellite.example.com --section agent puppet config set environment My_Puppet_Environment --section agent
# puppet config set server satellite.example.com --section agent # puppet config set environment My_Puppet_Environment --section agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 Puppet 代理服务:
puppet resource service puppet ensure=running enable=true
# puppet resource service puppet ensure=running enable=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为主机创建证书:
puppet ssl bootstrap
# puppet ssl bootstrapCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 Satellite Web UI 中,进入到 Infrastructure > Capsules。
- 从所需胶囊服务器的 Actions 列中的列表中,选择 Certificates。
- 单击所需主机右侧的 Sign to,为 Puppet 代理签署 SSL 证书。
在主机上再次运行 Puppet 代理:
puppet ssl bootstrap
# puppet ssl bootstrapCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7. 在主机注册过程中运行 Ansible 角色 复制链接链接已复制到粘贴板!
在将主机注册到 Satellite 时,您可以运行 Ansible 角色。
先决条件
- 所需的 Ansible 角色已从 Capsule 导入到 Satellite。如需更多信息,请参阅使用 Ansible 集成 管理配置中的导入 Ansible 角色和变量。
流程
- 使用 Ansible 角色创建主机组。如需更多信息,请参阅 第 3.3 节 “创建主机组”。
- 使用主机组和分配的 Ansible 角色注册主机。如需更多信息,请参阅 第 4.3.3 节 “注册主机”。
4.8. 为主机使用自定义 SSL 证书 复制链接链接已复制到粘贴板!
您可以使用主机上的自定义 SSL 证书,在 Satellite 服务器、胶囊服务器和主机之间启用加密通信。在将自定义 SSL 证书部署到主机之前,请确保您已将自定义 SSL 证书部署到您的 Satellite 服务器。
4.8.1. 将自定义 SSL 证书部署到主机 复制链接链接已复制到粘贴板!
在将 Satellite 配置为使用自定义 SSL 证书后,您必须将证书部署到注册到 Satellite 的主机。
流程
更新每个主机上的 SSL 证书:
dnf install http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
# dnf install http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpmCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.9. 将自定义 SSL 证书重置为主机上的默认自签名证书 复制链接链接已复制到粘贴板!
要将主机上的自定义 SSL 证书重置为默认自签名证书,您必须通过 全局 注册重新注册您的主机。如需更多信息,请参阅 第 4.3 节 “使用全局注册注册主机”。
第 5 章 配置网络接口 复制链接链接已复制到粘贴板!
Satellite 支持为单个主机指定多个网络接口。您可以在创建新主机时配置这些接口,如 第 2.1 节 “在 Red Hat Satellite 中创建主机” 或编辑现有主机时。
您可以附加到主机中的几种网络接口。在配置接口时,请选择以下之一:
- Interface :允许您指定额外的物理或虚拟接口。您可以创建的虚拟接口类型有两种。当主机需要使用单一接口与多个(虚拟)网络通信时,请使用 VLAN,而这些网络无法相互访问。使用 alias 在现有接口中添加附加 IP 地址。
- bond :创建一个绑定接口。NIC 绑定是一种将多个网络接口绑定成一个单一接口(以单一设备形式显示并具有单个 MAC 地址)的方法。这可让两个或多个网络接口充当一个,从而增加带宽并提供冗余。
- BMC :基板管理控制器(BMC)允许您远程监控和管理机器的物理状态。有关 BMC 的更多信息,请参阅在 连接的网络环境中安装 Satellite 服务器中的在主机上启用电源管理 。
额外的接口默认启用 Managed 标志,这意味着新接口在置备过程中由与所选子网关联的 DNS 和 DHCP Capsule 服务器自动配置。这需要一个配置正确配置的 DNS 和 DHCP Capsule 服务器的子网。如果您使用 Kickstart 方法进行主机置备,则会在 /etc/sysconfig/network-scripts/ifcfg-interface_id 的安装后阶段为受管接口自动创建配置文件。
5.1. 配置物理接口 复制链接链接已复制到粘贴板!
您可以为主机配置物理接口。
流程
进入 Add Interface 表单:
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点击您要编辑的主机旁边的 Edit。
- 在 Interfaces 选项卡中,点 Add Interface。
指定常规接口设置:
- 指定 MAC 地址。需要此设置。
-
指定 设备标识符,如
eth0。
配置网络和 DNS 设置:
- 指定与主机的 IP 地址关联的 DNS 名称。
- 从 Domain 列表中选择一个域。
- 在 IPv4 Subnet 或 IPv6 Subnet 列表中选择一个子网。
指定 IPv4 地址或 IPv6 地址。
注意带有分配的 DHCP 胶囊服务器的受管接口需要此设置来创建 DHCP 租期。启用 DHCP 的受管接口由推荐的 IP 地址自动提供。
指定接口管理选项:
- 选择接口是 Managed。
- 选择这是否 为主机 的主接口。
- 选择这是否是主机的 Provision 接口。
- 选择是否将接口用于远程执行。
- 单击 OK 以保存接口配置。
- 点 Submit 将更改应用到主机。
5.2. 配置虚拟接口 复制链接链接已复制到粘贴板!
您可以为主机配置虚拟接口。这可以是 VLAN 或别名接口。
- VLAN 接口允许主机使用单个物理接口连接到单独的网络段。
-
别名接口是附加到现有接口的额外 IP 地址。别名接口从它所附加的接口自动继承 MAC 地址;因此,您可以在不指定 MAC 地址的情况下创建别名。接口必须在将引导模式设置为
static的子网中指定。
虚拟接口目前需要物理设备的 MAC 地址。因此,这些接口的配置仅适用于裸机主机。
流程
进入 Add Interface 表单:
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点击您要编辑的主机旁边的 Edit。
- 在 Interfaces 选项卡中,点 Add Interface。
指定常规接口设置:
- 如果管理虚拟接口,请指定 MAC 地址。
在 Device Identifier 字段中指定 ID。
-
对于 VLAN,请使用
eth1.10格式。 -
对于别名,请使用
eth1:10格式。
-
对于 VLAN,请使用
配置虚拟 NIC:
- 选中 Virtual NIC 复选框。
- (可选)指定 VLAN 标签。
-
指定虚拟接口附加到 的物理接口标识符,如
eth1。需要此设置。
- 单击 OK 以保存接口配置。
- 点 Submit 将更改应用到主机。
5.3. 配置绑定接口 复制链接链接已复制到粘贴板!
您可以通过为主机配置绑定接口来组合多个物理接口。
绑定接口目前需要物理设备的 MAC 地址。因此,这些接口的配置仅适用于裸机主机。
流程
进入 Add Interface 表单:
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点击您要编辑的主机旁边的 Edit。
- 在 Interfaces 选项卡中,点 Add Interface。
- 从 Type 列表中选择 Bond。
指定常规接口设置:
-
在 Device Identifier 字段中,以
bond0格式指定接口 ID。 - 指定 MAC 地址。
- 如果要配置二级接口,请选择 Managed。否则,Satellite 不会应用配置。
-
在 Device Identifier 字段中,以
添加特定于绑定接口的配置:
- 模式 :选择绑定模式。
- attached devices: 指定以逗号分隔的附加设备的标识符列表。这些可以是物理接口或 VLAN。
-
绑定选项 :指定一个以空格分隔的配置选项列表,如
miimon=100。
- 单击 OK 以保存接口配置。
- 点 Submit 将更改应用到主机。
CLI 过程
要使用绑定接口创建主机,请输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
bondN替换为绑定以及设备标识符的 ID,例如bond0。
5.4. 配置桥接接口 复制链接链接已复制到粘贴板!
您可以通过配置桥接接口来配置网络间的流量转发。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点击您要编辑的主机旁边的 Edit。
- 在 Interfaces 选项卡中,点 Add Interface。
- 从 Type 列表中选择 Bridge。
- 指定 MAC 地址。
-
在 Device Identifier 字段中,以
bridge0格式指定接口 ID。 - 如果要配置二级接口,请选择 Managed。
- 在 Attached devices 字段中,指定附加设备的以逗号分隔的标识符列表。可以是物理或者虚拟以太网设备、绑定或 VLAN 设备。
- 单击 OK 以保存接口配置。
- 点 Submit 将更改应用到主机。
5.5. Satellite 中可用的绑定模式 复制链接链接已复制到粘贴板!
| 绑定模式 | 描述 |
|---|---|
| balance-rr | 在每个绑定接口上按顺序接收和发送传输。 |
| active-backup | 通过第一个可用的绑定接口接收并发送传输。只有在活跃的绑定接口失败时,才会使用另一个绑定接口。 |
| balance-xor | 传输基于所选的哈希策略。在这个模式中,目标为特定对等点的流量总是通过同一个接口发送。 |
| broadcast | 所有传输都将在所有绑定接口上发送。 |
| 802.a3 | 创建共享相同设置的聚合组。在活动组中的所有接口上传输和接收接收。 |
| balance-tlb | 传出流量会根据每个绑定接口上的当前负载进行分发。 |
| balance-alb | 接收负载均衡是通过地址解析协议(ARP)协商来实现的。 |
5.6. 配置基板管理控制器(BMC)接口 复制链接链接已复制到粘贴板!
要从 Satellite 控制裸机主机的电源状态,您可以为支持此功能的主机配置基板管理控制器(BMC)接口。
先决条件
您知道主机上 BMC 接口的 MAC 地址、IP 地址和其他详情,以及该接口的身份验证凭证。
注意只有在 BMC 接口被管理时,您只需要 BMC 接口的 MAC 地址,以便它可以创建 DHCP 保留。
流程
在 Capsule 上启用 BMC 电源管理:
satellite-installer \ --foreman-proxy-bmc-default-provider ipmitool \ --foreman-proxy-bmc true
# satellite-installer \ --foreman-proxy-bmc-default-provider ipmitool \ --foreman-proxy-bmc trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 Satellite Web UI 中,进入到 Infrastructure > Subnets。
- 选择主机的子网。
- 在 Capsules 选项卡中,选择您的 Capsule 作为 BMC Capsule。
- 点 Submit。
进入 Add Interface 表单:
- 导航到 Hosts > All Hosts。
- 点击您要编辑的主机旁边的 Edit。
- 在 Interfaces 选项卡中,点 Add Interface。
- 从 Type 列表中选择 BMC。
指定常规接口设置:
- 如果管理 BMC,请指定 MAC 地址。
- 指定 设备标识符。
指定特定于 BMC 接口的配置选项:
- Username and Password :指定 BMC 所需的任何身份验证凭证。
- Provider: 指定 BMC 供应商。
- 单击 OK 以保存接口配置。
- 点 Submit 将更改应用到主机。
5.7. 网络接口配置选项 复制链接链接已复制到粘贴板!
在添加网络接口时,您需要指定多个配置选项。以下列表提供有关不同类型的接口的相关选项的信息。
物理接口设置
- 设备识别符
- 标识符用于在创建绑定接口、VLAN 和别名时指定此物理接口。
- DNS 名称
- Satellite 将此名称保存在与所选域(DNS A"字段)关联的 Capsule 服务器中,以及与所选子网(DNS PTR"字段)关联的 Capsule 服务器。因此,单个主机可以有多个 DNS 条目。
- 域
- 指定与网络接口关联的域。要创建和管理域,请导航到 Infrastructure > Domains。
- subnet
- 指定与网络接口关联的子网。要创建和管理子网,请导航到 Infrastructure > Subnets。
- 受管 接口
- 如果管理接口,则在置备过程中从关联的 Capsule 服务器拉取配置,并且创建 DNS 和 DHCP 条目。如果您将置备与安装程序自动化搭配使用,则会为接口自动创建配置文件。
- 主接口
- 主接口的 DNS 名称用作 FQDN 的主机部分。
- 置备
- 网络引导使用置备接口。对于基于镜像的调配,完成调配的脚本将通过调配接口来执行。
虚拟接口设置
- Tag
您可以将 VLAN 标签设置为从物理网络到虚拟接口中继网络段。
- 如果没有指定标签,受管接口会继承关联子网的 VLAN 标签。
- 此字段中的用户指定的条目不会应用到别名接口。
绑定接口设置
- 模式
- 绑定模式定义了容错和负载平衡的策略。有关每个绑定模式的简短描述,请参阅 第 5.5 节 “Satellite 中可用的绑定模式”。
有关绑定接口的配置选项的更多信息,请参阅 Red Hat Enterprise Linux 8 配置和管理网络 中的 配置网络绑定。
第 6 章 刷新主机上的自签名 CA 证书 复制链接链接已复制到粘贴板!
在 Satellite 服务器上更改 CA 证书时,您必须在主机上刷新 CA 证书。
确保使用临时双 CA 证书文件进行不间断操作。如需更多信息,请参阅管理 Red Hat Satellite 中的规划自签名 CA 证书续订。
如果您已在 Satellite 服务器上更改了 CA 证书,而无需使用临时双 CA 证书文件,您必须手动刷新主机上的证书,因为脚本的变体将无法识别 Satellite 服务器。
只有在使用自签名 CA 证书时,才必须重新部署 CA 证书。
6.1. 使用脚本 REX 在主机上部署 CA 证书 复制链接链接已复制到粘贴板!
您可以将远程执行(REX)与 Script 供应商搭配使用来部署 CA 证书。
先决条件
- 主机注册到 Satellite。
- 主机上启用了远程执行。
- Satellite 服务器上更改了 CA 证书。如需更多信息,请参阅管理 Red Hat Satellite 中的规划自签名 CA 证书续订。
流程
- 在 Satellite Web UI 中,进入到 Monitor > Jobs。
- 点 Run Job。
- 从 Job category 列表中,选择 Commands。
- 从 Job template 列表中,选择 Download and run a script。
- 点 Next。
- 选择您要在其上执行作业的主机。
在 url 字段中输入以下 URL:
https://satellite.example.com/unattended/public/foreman_ca_refresh
https://satellite.example.com/unattended/public/foreman_ca_refreshCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 satellite.example.com 替换为您的 Satellite 服务器的 FQDN。
当 CA 证书过期时,您可以使用 HTTP。
- 可选:点 Next 和 configure advanced 字段和调度。
- 单击 Run on selected hosts。
验证
如果主机可以访问 Satellite 服务器,则主机上的以下命令会成功:
curl --head https://satellite.example.com
$ curl --head https://satellite.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 satellite.example.com 替换为您的 Satellite 服务器的 FQDN。
如果主机可以访问 Capsule 服务器,则主机上的以下命令会成功:
curl --head https://capsule.example.com:9090/features
$ curl --head https://capsule.example.com:9090/featuresCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 capsule.example.com 替换为胶囊服务器的 FQDN。
6.2. 使用 Ansible REX 在主机上部署 CA 证书 复制链接链接已复制到粘贴板!
您可以将远程执行(REX)与 Ansible 提供程序搭配使用,以部署 CA 证书。
先决条件
- 主机注册到 Satellite。
- 主机上启用了远程执行。
- Satellite 服务器上更改了 CA 证书。如需更多信息,请参阅管理 Red Hat Satellite 中的规划自签名 CA 证书续订。
流程
- 在 Satellite Web UI 中,进入到 Monitor > Jobs。
- 点 Run Job。
- 从 Job category 列表中,选择 Ansible Commands。
- 从 Job template 列表中,选择 Download and execute a script。
- 点 Next。
- 选择您要在其上执行作业的主机。
在 url 字段中输入以下 URL:
https://satellite.example.com/unattended/public/foreman_ca_refresh
https://satellite.example.com/unattended/public/foreman_ca_refreshCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 satellite.example.com 替换为您的 Satellite 服务器的 FQDN。
当 CA 证书过期时,您可以使用 HTTP。
- 可选:点 Next 和 configure advanced 字段和调度。
- 单击 Run on selected hosts。
验证
如果主机可以访问 Satellite 服务器,则主机上的以下命令会成功:
curl --head https://satellite.example.com
$ curl --head https://satellite.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 satellite.example.com 替换为您的 Satellite 服务器的 FQDN。
如果主机可以访问 Capsule 服务器,则主机上的以下命令会成功:
curl --head https://capsule.example.com:9090/features
$ curl --head https://capsule.example.com:9090/featuresCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 capsule.example.com 替换为胶囊服务器的 FQDN。
6.3. 在主机上手动部署 CA 证书 复制链接链接已复制到粘贴板!
您可以通过渲染公共置备模板(提供 CA 证书)在主机上手动部署 CA 证书。
先决条件
- 在 Satellite 服务器和主机上具有 root 访问权限。
流程
在您的 Satellite 服务器中下载证书:
curl -o "satellite_ca_cert.crt" https://satellite.example.com/unattended/public/foreman_raw_ca
# curl -o "satellite_ca_cert.crt" https://satellite.example.com/unattended/public/foreman_raw_caCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 satellite.example.com 替换为您的 Satellite 服务器的 FQDN。
-
安全地将 CA 证书传输到您的主机,例如使用
scp。 - 使用 SSH 登录您的主机。
将证书复制到 Subscription Manager 配置目录中:
cp -u satellite_ca_cert.crt /etc/rhsm/ca/katello-server-ca.pem
# cp -u satellite_ca_cert.crt /etc/rhsm/ca/katello-server-ca.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将证书复制到信任存储中:
cp satellite_ca_cert.crt /etc/pki/ca-trust/source/anchors
# cp satellite_ca_cert.crt /etc/pki/ca-trust/source/anchorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新信任存储:
update-ca-trust
# update-ca-trustCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
如果主机可以访问 Satellite 服务器,则主机上的以下命令会成功:
curl --head https://satellite.example.com
$ curl --head https://satellite.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 satellite.example.com 替换为您的 Satellite 服务器的 FQDN。
如果主机可以访问 Capsule 服务器,则主机上的以下命令会成功:
curl --head https://capsule.example.com:9090/features
$ curl --head https://capsule.example.com:9090/featuresCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 capsule.example.com 替换为胶囊服务器的 FQDN。
第 7 章 将主机升级到下一个主要 Red Hat Enterprise Linux 版本 复制链接链接已复制到粘贴板!
您可以使用作业模板将 Red Hat Enterprise Linux 主机升级到下一个主版本。可以对升级路径进行以下升级:
- Red Hat Enterprise Linux 7 到 Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 8 到 Red Hat Enterprise Linux 9
- Red Hat Enterprise Linux 9 到 Red Hat Enterprise Linux 10
先决条件
确保您的 Red Hat Enterprise Linux 主机满足升级的要求。
- 对于 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8,请参阅从 RHEL 7 升级到 RHEL 8 中的规划升级。https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/upgrading_from_rhel_7_to_rhel_8/planning-an-upgrade_upgrading-from-rhel-7-to-rhel-8
- 对于 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9,请参阅从 RHEL 8 升级到 RHEL 9 中的规划升级到 RHEL 9。
- 对于 Red Hat Enterprise Linux 9 升级到 Red Hat Enterprise Linux 10,请参阅从 RHEL 9 升级到 RHEL 10 中的规划升级到 RHEL 10。
准备您的 Red Hat Enterprise Linux 主机进行升级。
- 对于 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8,请参阅 从 RHEL 7 升级到 RHEL 8 中的 为升级准备 RHEL 7 系统。
- 对于 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9 ,请参阅从 RHEL 8 升级到 RHEL 9 中的为升级准备 RHEL 8 系统。
- 对于 Red Hat Enterprise Linux 9 升级到 Red Hat Enterprise Linux 10 ,请参阅从 RHEL 9 升级到 RHEL 10 中的为升级准备 RHEL 9 系统。
- 将 Satellite SSH 密钥分发到您要升级的主机。更多信息请参阅 第 13.14 节 “为远程执行分发 SSH 密钥”。
流程
如果您使用 Leapp 预升级检查的自定义作业模板,请将 leapp_preupgrade 远程执行功能配置为指向您的模板:
- 在 Satellite Web UI 中,进入到 Administer > Remote Execution Features。
- 点 leapp_preupgrade。
- 在作业模板 下拉菜单中,选择您的模板。
- 点 Submit。
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选择您要升级到下一个主 Red Hat Enterprise Linux 版本的主机。
- 在 Schedule Remote Job 列表中,选择 Preupgrade check with Leapp。
检查完成后,点 Leapp preupgrade report 选项卡查看 Leapp 是否在您的主机上发现任何问题。带有 Inhibitor 标志的问题被视为至关重要,并可能会破坏升级过程。具有 Has Remediation 标志的问题包含了可帮助您解决这个问题的补救。
点带有 Has Remediation 标记的问题扩展它。
- 如果问题包含补救 命令,您可以使用远程执行直接从 Satellite 修复它。选择问题。
- 如果问题只包含补救 Hint,使用 hint 来手动修复主机上的问题。
对其他问题重复此步骤。
- 在选择了补救命令中的任何问题后,点 Fix Selected 并提交作业。
- 修复问题后,单击 Rerun,然后单击 Submit 以再次运行预升级检查,以验证您升级的主机没有任何问题,并准备好升级。
- 如果预升级检查验证主机没有任何问题,点 Run Upgrade 并点 Submit 来启动升级。另外,您可以通过在 Schedule Remote Job 下拉菜单中选择 Upgrade with Leapp 来升级主机。
第 8 章 将主机转换为 Red Hat Enterprise Linux 复制链接链接已复制到粘贴板!
您可以将 Red Hat Enterprise Linux 衍生版本转换成主机上受支持的 Red Hat Enterprise Linux,同时保留已安装的应用程序和配置。Satellite 提供了 Convert2RHEL 工具来简化转换过程。
Satellite 中的 Convert2RHEL 工具包含一个 Ansible 角色和 Ansible Playbook。您可以使用 Ansible 角色在 Satellite 服务器上生成转换数据,其中包括启用所需的存储库并创建产品、激活密钥和主机组。然后,您可以使用 Ansible Playbook 在主机上执行实际的转换,它会在主机上安装 Convert2RHEL CLI 工具并运行它。
您可以使用 Ansible 角色为以下转换生成转换数据:
- CentOS Linux 7 到 Red Hat Enterprise Linux 7
- Oracle Linux 7 到 Red Hat Enterprise Linux 7
- Oracle Linux 8 到 Red Hat Enterprise Linux 8
红帽支持这些转换。
转换过程与系统中的每个 RPM 软件包被替换的 Red Hat Enterprise Linux 的次版本相似。保留 Red Hat Enterprise Linux 中不可用的第三方软件包和非红帽软件包。
Convert2RHEL 工具删除不必要的软件包,如徽标或已知的软件包,以便在转换过程中造成问题。实用程序将 CentOS-release 或 Oracle-release 软件包替换为 rhel-release 软件包,以及由 CentOS 或 Oracle 签名的所有软件包均与红帽等效的软件包替代。该工具还订阅主机到红帽订阅管理。
转换过程的持续时间取决于必须替换的软件包数量、网络速度、存储速度和类似的因素。
在转换的主机上使用延长生命周期支持附加组件订阅
如果您转换为处于 延长生命周期阶段 的 RHEL 版本,且您不计划将主机升级到完全支持的 RHEL 版本,建议在转换过程中使用延长生命周期支持(ELS)附加服务。请注意,根据 RHEL Conversion Support Policy 和 RHEL In-place upgrade 支持政策的转换和后续升级没有 ELS 订阅的支持范围。
先决条件
- 请参阅 Red Hat Enterprise Linux 8 中的 支持的转换路径,使用 Convert2RHEL 工具从 Linux 发行版本转换到 RHEL。
确保已将订阅清单上传到 Satellite,并且有足够的 Red Hat Enterprise Linux 权利用于转换。或者,您可以使用 Ansible 变量告诉角色从磁盘导入清单。清单必须导入到要注册主机以进行转换的组织。
您可以更新您的分配,并 从红帽客户门户网站下载 更新的清单。如需更多信息,请参阅为连接的 Satellite 服务器创建和管理 清单 中的 导出和导入 清单。
- 确保您已在 Satellite 中启用并同步了 Satellite 中用于转换主机的次 Red Hat Enterprise Linux 版本并同步红帽软件仓库。如需更多信息 ,请参阅管理内容中的 启用红帽存储库 和 同步存储库。
高级转换步骤
-
导入
redhat.satellite.convert2rhelAnsible 角色和变量。如需更多信息,请参阅使用 Ansible 集成 管理配置 中的 导入 Ansible 角色 和变量。 - 配置 Ansible 变量来生成转换数据。如需更多信息,请参阅 第 8.1 节 “用于转换的 Ansible 变量”。
-
将
redhat.satellite.convert2rhel角色分配到代表 Satellite 服务器的主机。有关更多信息,请参阅使用 Ansible 集成 管理配置中的将 Ansible 角色分配给现有主机。 在服务器上运行 Ansible 角色。有关更多信息,请参阅使用 Ansible 集成 管理配置 中的 在主机上运行 Ansible 角色。
Ansible 角色会生成主机转换所需的数据,即仓库、证书、激活码和主机组。根据您在前面步骤中设置的变量,该角色会启用
rhel-7-server-rpms仓库(7Server 版本和 x86_64 架构),或rhel-8-for-x86_64-baseos-rpms和rhel-8-for-x86_64-appstream-rpms仓库,或两者都被启用。使用生成的主机组注册主机以进行转换。
使用全局注册模板在转换前注册并订阅您的主机。选择为转换生成的主机组,如从
CentOS 7 转换主机时 CentOS 7 转换。如需更多信息,请参阅 第 4.3 节 “使用全局注册注册主机”。在主机组上运行 pre-conversion 分析,以验证主机是否已准备好转换。使用以下设置执行远程作业:
-
作业类别:
Convert 2 RHEL -
作业模板 :
trans2RHEL 分析 如果要使用延长生命周期支持附加组件订阅,请将 ELS 选项设置为
yes。如需更多信息,请参阅 第 13.22 节 “执行远程作业”。
查看 pre-conversion 分析报告,并解决阻塞转换的所有问题。重复此步骤,直到您解决所有阻塞的问题。如需更多信息,请参阅使用 Convert2RHEL 工具从 Linux 发行版本转换到 RHEL 中的查看 Red Hat Enterprise Linux 8 中的 pre-conversion 分析报告 。
-
作业类别:
在主机组中运行 Convert2RHEL playbook。使用以下设置执行远程作业:
-
作业类别:
Convert 2 RHEL -
作业模板:
Convert to RHEL 激活码 :
-
如果您转换为 Red Hat Enterprise Linux 7,则
convert2rhel_rhel7 -
如果您转换为 Red Hat Enterprise Linux 8,则
convert2rhel_rhel8
-
如果您转换为 Red Hat Enterprise Linux 7,则
-
如果要使用延长生命周期支持附加组件订阅,请将 ELS 选项设置为
yes。
如需更多信息,请参阅 第 13.22 节 “执行远程作业”。
-
作业类别:
8.1. 用于转换的 Ansible 变量 复制链接链接已复制到粘贴板!
在运行 Ansible 角色来生成转换数据前,请配置以下所需的 Ansible 变量的值。
Satellite 从 redhat.satellite.convert2rhel 角色导入大部分需要的 Ansible 变量。但是,一些变量不会被导入。这些变量在下表中带有一个星号 *。您必须手动创建这些额外变量,并将其分配给 redhat.satellite.convert2rhel 角色。
| Name | 类型 | 意图和值 |
|---|---|---|
|
| 字符串 |
Satellite 服务器的 URL,如 |
|
| 字符串 | 您的用户名 |
|
| 字符串 | 您的密码 |
|
| 字符串 | 您的机构名称 |
|
| 布尔值 |
如果您不希望 Satellite 服务器在继续数据生成前等待存储库同步完成(默认为 |
|
| 布尔值 |
如果要在 Ansible 中启用证书检查,设置为 |
|
| 布尔值 |
如果您已在 Satellite 服务器上已有清单,设置为 |
|
| 布尔值 |
启用 Red Hat Enterprise Linux 7 软件仓库。如果您不想将主机转换为 Red Hat Enterprise Linux 7,则设置为 |
|
| 布尔值 |
如果您想要为 Oracle Linux 7 准备转换数据,设置为 |
|
| 布尔值 |
启用 Red Hat Enterprise Linux 8 软件仓库。如果您不想将主机转换为 Red Hat Enterprise Linux 8 (默认为 |
|
| 布尔值 |
如果您想要为 Oracle Linux 8 准备转换数据,设置为 |
| Name | 类型 | 意图和值 |
|---|---|---|
|
| 字符串 |
要从磁盘上传的清单的路径,如 |
|
| 字符串 |
次版本,如 |
第 9 章 使用 RHEL web 控制台主机管理和监控 复制链接链接已复制到粘贴板!
您可以使用 RHEL web 控制台互动 Web 界面执行操作并监控 Red Hat Enterprise Linux 主机。您可以启用远程执行功能,将 Satellite 与 RHEL web 控制台集成。当您在使用 Satellite 管理的主机上安装 RHEL web 控制台时,您可以在 Satellite web UI 中查看该主机的 RHEL web 控制台仪表板。您还可以使用与 RHEL web 控制台集成的功能,如 Red Hat Image Builder。
9.1. 在 Satellite 中启用 RHEL web 控制台 复制链接链接已复制到粘贴板!
默认情况下,RHEL web 控制台集成在 Satellite 中被禁用。如果要从 Satellite 中访问主机的 RHEL web 控制台功能,您必须首先在 Satellite 服务器上启用 RHEL web 控制台。
流程
在 Satellite 服务器上启用 RHEL web 控制台:
satellite-installer --enable-foreman-plugin-remote-execution-cockpit --reset-foreman-plugin-remote-execution-cockpit-ensure
# satellite-installer --enable-foreman-plugin-remote-execution-cockpit --reset-foreman-plugin-remote-execution-cockpit-ensureCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2. 使用 RHEL web 控制台管理和监控主机 复制链接链接已复制到粘贴板!
您可以通过 Satellite Web UI 访问 RHEL web 控制台 UI,并使用功能管理和监控 Satellite 中的主机。
先决条件
- 您已在 Satellite 中启用了 RHEL web 控制台。
您已在要管理和监控的主机上安装了 RHEL web 控制台。
Satellite 提供了一个名为 Service Action 的作业模板 - 在 Ansible Services 作业类别下启用 Web 控制台,您可以使用它来安装 RHEL web 控制台。有关运行远程作业的详情,请参考 第 13 章 配置和设置远程作业。
- Satellite 或 Capsule 可以使用 SSH 密钥向主机进行身份验证。更多信息请参阅 第 13.14 节 “为远程执行分发 SSH 密钥”。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts,再选择您要使用 RHEL web 控制台管理和监控的主机。
- 在主机窗口的右上角,单击垂直 ellipsis,然后选择 Web Console。
现在,您可以通过 RHEL web 控制台访问可用于主机监控和管理的完整功能,如 Red Hat Image Builder。
其他资源
有关使用 RHEL web 控制台的更多信息,请参阅以下文档:
有关通过 RHEL web 控制台使用红帽镜像构建器的更多信息,请参阅以下文档:
- 在 RHEL web 控制台中访问 RHEL 镜像构建器仪表盘,以 编写自定义的 RHEL 系统镜像 (RHEL 9)
- 在 RHEL web 控制台中访问 RHEL 镜像构建器仪表盘,以 编写自定义的 RHEL 系统镜像 (RHEL 8)
- 在 镜像构建器指南 (RHEL 7)中的 RHEL 7 web 控制台中访问镜像构建器 GUI
9.3. 在 Satellite 上禁用 RHEL web 控制台 复制链接链接已复制到粘贴板!
如果要在 Satellite 上禁用 RHEL web 控制台,请执行以下步骤。
流程
在 Satellite 服务器上禁用 RHEL web 控制台:
satellite-installer --foreman-plugin-remote-execution-cockpit-ensure absent
# satellite-installer --foreman-plugin-remote-execution-cockpit-ensure absentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
您可以在 Capsule 服务器上独立启用或禁用 RHEL web 控制台集成。要防止在 Capsule 服务器上启用 RHEL web 控制台集成,请在完成过程后输入以下命令:
satellite-installer --foreman-proxy-plugin-remote-execution-script-cockpit-integration false
# satellite-installer --foreman-proxy-plugin-remote-execution-script-cockpit-integration false
第 10 章 使用 Red Hat Insights 监控主机 复制链接链接已复制到粘贴板!
您可以使用 Insights 诊断与安全漏洞、性能下降和稳定性故障相关的系统和停机时间。您可以使用 Insights 仪表板快速识别稳定性、安全性和性能的关键风险。您可以根据类别排序,查看影响和分辨率的详细信息,然后确定受影响的系统。
要使用 Insights 监控您使用 Satellite 管理的主机,您必须首先在主机上安装 Insights,并将主机注册到 Insights。
对于新的 Satellite 主机,您可以在主机注册到 Satellite 过程中安装和配置 Insights。如需更多信息,请参阅 第 4.3 节 “使用全局注册注册主机”。
对于已经注册到 Satellite 的主机,您可以使用 Ansible 角色在主机上安装和配置 Insights。如需更多信息,请参阅 第 10.3 节 “使用 Ansible 角色部署 Red Hat Insights”。
如果您将主机注册到新的 Satellite 服务器,请将主机重新注册到 Insights,以避免创建重复条目。如需更多信息,请参阅使用 Red Hat Insights 重新注册您的系统。
其他信息
-
要查看所有插件的日志,请转至
/var/log/foreman/production.log。 - 如果您在连接到 Insights 时遇到问题,请确保您的证书为最新版本。刷新订阅清单以更新您的证书。
-
您可以通过在一个主机上配置
insights-client.timer来更改运行insights-client的默认调度。如需更多信息,请参阅 Red Hat Insights 的客户端配置指南 中的 更改 insights-client 调度。
10.1. 在 Satellite 中从 Insights 访问信息 复制链接链接已复制到粘贴板!
您可以在 Satellite Web UI 中的以下位置访问 Red Hat Insights 中可用于主机的额外信息:
- 进入 Insights > Recommendations,其中 Remediate 按钮旁边的垂直 ellipsis 在 Red Hat Insights 中提供了一个到常规建议页面的 View。在每个建议行中,垂直 ellipsis 在 Red Hat Insights 链接中提供到建议规则的 View,如果这个建议提供了这个建议,则 知识库文章 链接。
- 如需更多信息,请导航到 Hosts > All Hosts。如果主机有建议,点建议数。在 Insights 选项卡上,Remediate 按钮旁边的垂直图标提供 Go To Satellite Insights 页面 链接到系统的信息,以及 Red Hat Insights 链接中的 View,用于托管控制台详情。
10.2. 从 rh-cloud 和 insights-client 报告中排除主机 复制链接链接已复制到粘贴板!
您可以将 host_registration_insights 参数设置为 False,以省略 rh-cloud 和 insights-client 报告。Satellite 将排除 rh-cloud 报告中的主机,并阻止 insights-client 上传报告到云。
流程
- 在 Satellite Web UI 中,进入到 Host > All Hosts。
- 选择您要更改值的任何主机。
-
在 Parameters 选项卡中,点
host_registration_insights的编辑按钮。 - 将值设为 False。
如果您在已在 Red Hat Hybrid Cloud Console 上报告的主机上将参数设置为 false,则仍会从清单中自动删除。但是,这个过程可能需要一些时间才能完成。
其他资源
- 您可以在任何级别上设置此参数。如需更多信息,请参阅 置备主机 中的 主机参数层次结构。
10.3. 使用 Ansible 角色部署 Red Hat Insights 复制链接链接已复制到粘贴板!
RedHatInsights.insights-client Ansible 角色用于自动化安装并使用 Insights 注册主机。有关将此角色添加到 Satellite 的更多信息,请参阅使用 Ansible 集成管理配置中的开始使用 Satellite 中的 Ansible。
流程
将 RedHatInsights.insights-client 角色添加到主机。
对于新主机,请参阅 第 2.1 节 “在 Red Hat Satellite 中创建主机”。
对于现有主机,请参阅使用 Ansible 集成管理配置中的 使用 Ansible 角色在客户端上自动化重复的任务。
- 要在主机上运行 RedHatInsights.insights-client 角色,请导航到 Hosts > All Hosts,然后点击您要使用的主机的名称。
- 在主机详细信息页面上,展开 Schedule a job 下拉菜单。
- 单击 Run Ansible roles。
10.4. 为主机配置 Insights 建议同步 复制链接链接已复制到粘贴板!
您可以启用从每天默认发生的 Red Hat Hybrid Cloud Console 中自动同步建议。如果禁用该设置,您可以手动同步建议。
流程
要自动获得建议:
- 在 Satellite Web UI 中,进入到 Insights > Recommendations。
- 自动启用 同步。
手动获取建议:
- 在 Satellite Web UI 中,进入到 Insights > Recommendations。
- 在垂直 ellipsis 上,单击 Sync Recommendations。
10.5. 配置从 Insights 清单中自动删除主机 复制链接链接已复制到粘贴板!
当主机从 Satellite 中删除时,也可以将其从 Red Hat Insights 清单中删除,也可以手动删除。您可以在 Red Hat Hybrid Cloud Console 与每天默认发生的 Satellite 同步期间,配置从 Insights 清单中删除主机。如果禁用该设置,您仍然可以从清单手动删除批量主机。
先决条件
-
您的用户帐户必须具有
view_foreman_rh_cloud权限,才能在 Satellite Web UI 中查看 Inventory Upload 页面。
流程
- 在 Satellite Web UI 中,进入到 Insights > Inventory Upload。
- 启用自动不匹配删除 设置。
10.6. 为主机创建 Insights 修复计划 复制链接链接已复制到粘贴板!
使用 Satellite,您可以创建一个 Red Hat Insights 修复计划,并在 Satellite 主机上运行计划。
流程
- 在 Satellite Web UI 中,进入到 Insights > Recommendations。
在 Red Hat Insights 页面中,选择您要包含在 Insights 计划中的建议数量。
您只能选择具有关联 playbook 的建议。
- 单击 Remediate。
- 在 Remediation Summary 窗口中,您可以选择要应用的解决方案。使用 Filter 字段搜索特定关键字。
- 单击 Remediate。
- 在 Job Invocation 页面中,不要更改 precompleted 字段的内容。
- 可选。对于远程执行作业的更高级的配置,请点 Show Advanced Fields。
- 选择您需要的 查询类型。
- 选择您需要的 Schedule。
- 点 Submit。
或者:
- 在 Satellite Web UI 中,进入到 Hosts > ; All Hosts。
- 选择主机。
- 在 Host details 页面中,单击 Recommendations。
- 在 Red Hat Insights 页面中,选择您要包含在 Insights 计划中的建议数量,然后继续。
在 Jobs 窗口中,您可以查看计划的进度。
第 11 章 使用报告模板监控主机 复制链接链接已复制到粘贴板!
您可以使用报告模板查询 Satellite 数据,以获取有关主机状态、注册的主机、适用勘误表、应用勘误表和用户活动的信息。您可以使用 Satellite 附带的报告模板,或者编写您自己的自定义报告模板以满足您的要求。报告引擎使用嵌入式 Ruby (ERB)语法。有关编写模板和 ERB 语法的更多信息,请参阅 附录 B, 模板编写参考。
您可以创建模板,或克隆模板并编辑克隆。有关模板语法的帮助,点模板并点 Help 选项卡。
11.1. 生成主机监控报告 复制链接链接已复制到粘贴板!
要在 Satellite Web UI 中查看报告模板,请导航到 Monitor > Reports > Report Templates。要调度报告,请配置 cron 作业或使用 Satellite Web UI。
流程
- 在 Satellite Web UI 中,进入到 Monitor > Reports > Report Templates。例如,Host - Installed Products 模板会生成带有已安装产品信息的报告,以及其他指标,包括系统目的属性。
- 在您要使用的报告模板右侧,单击 Generate。
- 可选: 要调度报告,在 Generate at 字段右侧,点图标选择要生成报告的日期和时间。
- 可选: 要向电子邮件地址发送报告,请通过电子邮件 复选框选择发送报告,然后在 传输至电子邮件地址 字段中,输入所需的电子邮件地址。
- 可选:应用搜索查询过滤器。要查看所有可用结果,请不要使用任何值填充 filter 字段。
- 点 Submit。包含报告的 CSV 文件会被下载。如果您选择了 通过电子邮件发送报告 复选框,则主机监控报告将发送到您的电子邮件地址。
CLI 过程
列出所有可用的报告模板:
hammer report-template list
$ hammer report-template listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 生成一个报告:
hammer report-template generate --id My_Template_ID
$ hammer report-template generate --id My_Template_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令会等待报告在完成前完全生成。如果要将报告生成为后台任务,您可以使用
hammer report-template schedule命令。注意如果要生成 订阅 - 常规 报告,则必须使用 now
选项中的日期来指定常规订阅的最新过期时间。显示所有订阅
hammer report-template generate \ --inputs "Days from Now=no limit" \ --name "Subscription - General Report"
$ hammer report-template generate \ --inputs "Days from Now=no limit" \ --name "Subscription - General Report"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示将在 60 天内过期的所有订阅
hammer report-template generate \ --inputs "Days from Now=60" \ --name "Subscription - General Report"
$ hammer report-template generate \ --inputs "Days from Now=60" \ --name "Subscription - General Report"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.2. 创建报告模板 复制链接链接已复制到粘贴板!
在 Satellite 中,您可以创建报告模板并自定义模板以符合您的要求。您可以导入现有的报告模板,并使用片断和模板宏进一步自定义它们。
报告模板使用嵌入式 Ruby (ERB)语法。要查看有关在 Satellite Web UI 中使用 ERB 语法和宏的信息,请导航到 Monitor > Reports > Report Templates,然后点击 Create Template,然后点击 Help 选项卡。
当您在 Satellite 中创建报告模板时,会默认启用安全模式。
流程
- 在 Satellite Web UI 中,进入到 Monitor > Reports > Report Templates。
- 点 Create Template。
- 在 Name 字段中输入您的报告模板的唯一名称。
- 如果您希望模板可用于所有位置和组织,请选择 Default。
- 在模板编辑器中直接创建模板,或通过单击 Import,从文本文件导入模板。有关导入模板的更多信息,请参阅 第 11.5 节 “导入报告模板”。
- 可选:在 Audit Comment 字段中,您可以添加有关此模板的任何有用信息。
-
单击 Input 选项卡,然后在 Name 字段中输入您可以以以下格式在模板中引用的输入名称:
input ('name')。请注意,您必须在模板正文中引用此输入值前保存模板。 - 选择输入值是否是必需的。如果输入值是必需的,请选中 Required 复选框。
- 从 Value Type 列表中,选择用户必须输入的输入值类型。
- 可选:如果要使用事实进行模板输入,请选择 Advanced 复选框。
- 可选:在 Options 字段中,定义用户可从中选择的选项。如果此字段未定义,用户会收到可输入他们想要的值的 free-text 字段。
- 可选:在 Default 字段中输入您要设置为默认模板输入的值,如主机名。
- 可选:在 Description 字段中,您可以输入您要显示的信息作为生成报告时输入的内联帮助。
- 可选:点 Type 选项卡,并选择此模板是要包含在其他模板中的代码片段。
- 点 Location 选项卡,并添加您要使用模板的位置。
- 单击 Organizations 选项卡,再添加您要使用该模板的组织。
- 点 Submit 保存您的更改。
其他资源
- 有关安全模式的详情请参考 第 11.8 节 “报告模板安全模式”。
- 有关编写模板的更多信息,请参阅 附录 B, 模板编写参考。
- 有关您可以在报告模板中使用的宏的更多信息,请参阅 第 B.6 节 “模板宏”。
11.3. 导出报告模板 复制链接链接已复制到粘贴板!
您可以导出在 Satellite 中创建的报告模板。
流程
- 在 Satellite Web UI 中,进入到 Monitor > Reports > Report Templates。
- 找到您要导出的模板,并从 Actions 列中的列表中,选择 Export。
- 对您要下载的每个报告模板重复此操作。
包含模板下载的 .erb 文件。
CLI 过程
要查看可用于导出的报告模板,请输入以下命令:
hammer report-template list
$ hammer report-template listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意要在此命令输出中导出的模板模板 ID。
要导出报告模板,请输入以下命令:
hammer report-template dump --id My_Template_ID > example_export.erb
$ hammer report-template dump --id My_Template_ID > example_export.erbCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.4. 使用 Satellite API 导出报告模板 复制链接链接已复制到粘贴板!
您可以使用 Satellite report_templates API 从 Satellite 导出报告模板。有关使用 Satellite API 的更多信息,请参阅使用 Satellite REST API。
流程
使用以下请求检索可用报告模板列表:
请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,
json_reformat工具用于格式化 JSON 输出。响应示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意您要导出的模板的
id,并使用以下请求导出模板:请求示例:
curl --insecure --output /tmp/_Example_Export_Template.erb_ \ --user admin:password --request GET --config \ https://satellite.example.com/api/report_templates/My_Template_ID/export
$ curl --insecure --output /tmp/_Example_Export_Template.erb_ \ --user admin:password --request GET --config \ https://satellite.example.com/api/report_templates/My_Template_ID/exportCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,
158是要导出的模板的示例 ID。在本例中,导出的模板被重定向到
host_complete_list.erb。
11.5. 导入报告模板 复制链接链接已复制到粘贴板!
您可以将报告模板导入到您要创建的新模板的正文中。请注意,使用 Satellite Web UI,您只能单独导入模板。对于批量操作,请使用 Satellite API。如需更多信息,请参阅 第 11.6 节 “使用 Satellite API 导入报告模板”。
先决条件
- 您必须已从 Satellite 导出模板,才能导入模板以便在新模板中使用。更多信息请参阅 第 11.3 节 “导出报告模板”。
流程
- 在 Satellite Web UI 中,进入到 Monitor > Reports > Report Templates。
- 在 Report Templates 窗口的右上角,单击 Create Template。
-
在 Editor 选项卡的右上角,单击文件夹图标,然后选择您要导入的
.erb文件。 - 编辑模板以符合您的要求。
- 点 Submit。
有关自定义新模板的更多信息,请参阅 附录 B, 模板编写参考。
11.6. 使用 Satellite API 导入报告模板 复制链接链接已复制到粘贴板!
您可以使用 Satellite API 将报告模板导入到 Satellite。使用 Satellite API 导入报告模板会自动解析报告模板元数据并分配机构和位置。有关使用 Satellite API 的更多信息,请参阅使用 Satellite REST API。
先决条件
使用
.erb语法创建模板,或者从其他 Satellite 导出模板。有关编写模板的更多信息,请参阅 附录 B, 模板编写参考。
有关从 Satellite 导出模板的更多信息,请参阅 第 11.4 节 “使用 Satellite API 导出报告模板”。
流程
使用以下示例格式化您要导入到
.json文件的模板:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 带有 ERB 模板的 JSON 文件示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下请求导入模板:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下请求检索报告模板列表,并验证您可以在 Satellite 中查看模板:
curl \ --insecure \ --user My_User_Name:My_Password \ --request GET \ --config https://satellite.example.com/api/report_templates | json_reformat
$ curl \ --insecure \ --user My_User_Name:My_Password \ --request GET \ --config https://satellite.example.com/api/report_templates | json_reformatCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.7. 生成安装的软件包列表 复制链接链接已复制到粘贴板!
使用这个流程在 Report Templates 中生成已安装的软件包列表。
流程
- 在 Satellite Web UI 中,进入到 Monitor > Reports > Report Templates。
- 在 Host - All Installed Packages 右侧,单击 Generate。
- 可选: 使用 Hosts filter search 字段搜索并应用特定主机过滤器。
- 点 Generate。
- 如果下载没有自动启动,请单击 Download。
验证
- 您有电子表格列出了您计算机上下载的选定主机安装的软件包。
11.8. 报告模板安全模式 复制链接链接已复制到粘贴板!
当您在 Satellite 中创建报告模板时,会默认启用安全模式。安全模式限制了您可以在报告模板中使用的宏和变量。安全模式可防止在报告模板中呈现问题并强制实施最佳实践。Satellite Web UI 中提供了支持的宏和变量列表。
要查看可用的宏和变量,在 Satellite Web UI 中,进入到 Monitor > Reports > Report Templates 并点 Create Template。在 Create Template 窗口中,单击 Help 选项卡并展开 Safe mode 方法。
启用安全模式时,如果您尝试使用未列在 Safe 模式方法中 的宏或变量,模板编辑器会显示错误消息。
要在 Satellite 中查看安全模式的状态,在 Satellite Web UI 中,进入到 Administer > Settings 并点 Provisioning 选项卡。找到 Safemode 渲染 行来检查值。
第 12 章 配置主机集合 复制链接链接已复制到粘贴板!
通过 Satellite,您可以使用主机集合来创建内容主机组。
12.1. 主机集合概述 复制链接链接已复制到粘贴板!
主机集合是一组内容主机。
使用主机集合,您可以一次性对多个主机执行相同的操作。这些操作包括安装、删除和更新软件包和勘误表,以及分配内容视图环境。
例如,您可以使用主机集合来按功能、部门或事业部对主机进行分组。
12.2. 创建主机集合 复制链接链接已复制到粘贴板!
以下步骤演示了如何创建主机集合。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Host Collections。
- 单击新建主机集合。
- 添加 主机集合的名称。
- 清除 Unlimited Content Hosts,在 Limit 自动中输入期望的最多的主机数量。
- 添加主机集合 的描述。
- 点击 Save。
CLI 过程
运行以下命令来创建主机集合:
hammer host-collection create \ --name "My_Host_Collection" \ --organization "My_Organization"
$ hammer host-collection create \ --name "My_Host_Collection" \ --organization "My_Organization"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.3. 克隆主机集合 复制链接链接已复制到粘贴板!
以下步骤演示了如何克隆主机集合。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Host Collections。
- 在左侧面板中,点击您要克隆的主机集合。
- 单击 Copy Collection。
- 为克隆的集合指定一个名称。
- 点 Create。
12.4. 删除主机集合 复制链接链接已复制到粘贴板!
使用以下步骤从 Satellite 中删除主机集合。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Host Collections。
- 选择您要删除的主机集合。
- 在 Select Action 下,单击 Remove。
- 点 Delete 删除主机集合。
12.5. 将主机添加到主机集合 复制链接链接已复制到粘贴板!
您可以在 Satellite Web UI 中的主机集合中将主机添加到主机集合。
先决条件
主机必须注册到 Red Hat Satellite 中,才能将其添加到主机集合中。有关注册主机的详情,请参考 第 4.3 节 “使用全局注册注册主机”。
请注意,如果您将主机添加到主机集合,则 Satellite 审计系统不会记录更改。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 点您要修改的主机的名称。
- 在 Host collections 卡中,单击垂直 ellipsis,再选择 Add host to collections。
- 选择主机集合。
- 点 Add。
CLI 过程
要将主机添加到主机集合,请输入以下命令:
hammer host-collection add-host \ --host-ids My_Host_ID_1 \ --id My_Host_Collection_ID
$ hammer host-collection add-host \ --host-ids My_Host_ID_1 \ --id My_Host_Collection_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
12.6. 批量将主机添加到主机集合 复制链接链接已复制到粘贴板!
您可以将多个主机添加到主机集合。
先决条件
主机必须注册到 Red Hat Satellite 中,才能将其添加到主机集合。有关注册主机的详情,请参考 第 4.3 节 “使用全局注册注册主机”。
请注意,如果您将主机添加到主机集合,则 Satellite 审计系统不会记录更改。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Host Collections。
- 选择应当添加主机的主机集合。
- 在 Hosts 选项卡上,选择 Add 子选项卡。
- 从表中选择要添加的主机,然后单击 Add Selected。
CLI 过程
要在主机集合中添加多个主机,请输入以下命令:
hammer host-collection add-host \ --host-ids My_Host_ID_1,My_Host_ID_2 \ --id My_Host_Collection_ID
$ hammer host-collection add-host \ --host-ids My_Host_ID_1,My_Host_ID_2 \ --id My_Host_Collection_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
12.7. 从主机集合中删除主机 复制链接链接已复制到粘贴板!
以下步骤演示了如何从主机集合中删除主机。
请注意,如果您从主机集合中删除主机,则不会修改数据库中的主机集合记录,因此 Satellite 审计系统不会记录更改。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Host Collections。
- 选择所需的主机集合。
- 在 Hosts 选项卡上,选择 List/Remove 子选项卡。
- 从主机集合选择要删除的主机,再单击 Remove Selected。
12.8. 在主机集合中添加内容 复制链接链接已复制到粘贴板!
这些步骤演示了如何在 Red Hat Satellite 中向主机集合中添加内容。
12.8.1. 在主机集合中添加软件包 复制链接链接已复制到粘贴板!
以下流程演示了如何将软件包添加到主机集合。
先决条件
- 要添加的内容应在其中一个现有软件仓库中可用,或者在此过程前添加。
- 内容应提升到分配了主机的环境。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Host Collections。
- 选择应当添加软件包的主机集合。
- 在 Collection Actions 选项卡中,单击 Package Installation、Removal 和 Update。
- 要更新所有软件包,请点 Update All Packages 以使用默认方法。或者,选择按钮右侧的下拉列表来选择要使用的方法。通过远程执行 - 自定义第一个 菜单条目将带您进入 Job invocation 页面,您可以在其中自定义该操作。
- 根据需要选择 Package 或 Package Group 按钮。
在提供的字段中,指定软件包或软件包组名称。然后点击:
- Install – 使用默认方法安装新软件包。或者,选择按钮右侧的下拉图标,然后选择要使用的方法。通过远程执行 - 自定义第一个 菜单条目将带您进入 Job invocation 页面,您可以在其中自定义该操作。
- update- 使用默认方法 更新 主机集合中的现有软件包。或者,选择按钮右侧的下拉图标,然后选择要使用的方法。通过远程执行 - 自定义第一个 菜单条目将带您进入 Job invocation 页面,您可以在其中自定义该操作。
12.8.2. 查看安装的软件包 复制链接链接已复制到粘贴板!
使用以下步骤查看主机安装的软件包。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts 并选择主机的名称。
- 在 Content 选项卡上,Packages 会显示安装的软件包列表。
要查看软件包的详细信息,请选择该软件包。
- Details 选项卡显示所选软件包的详情。
- Files 选项卡列出软件包中包含的文件。
- Dependencies 选项卡列出软件包的依赖项。
- Repositories 选项卡列出包含所选软件包的存储库。
- 您可以根据 Library 或 Default organization 进行过滤。
12.8.3. 升级软件包 复制链接链接已复制到粘贴板!
使用以下步骤查看主机安装的软件包。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts 并选择包含您要升级的软件包的主机名称。
在 内容 选项卡中,选择 Packages。
Status 列显示软件包是 upgradable 还是 Up-to date。您无法更新最新的软件包。
- 从软件包列表中选择要升级的软件包,然后点行末尾的垂直 ellipsis 图标。
- 选择 Apply via Remote Execution 来使用远程执行;例如,如果要 自定义远程执行,则通过自定义远程执行应用 应用,例如,设置应应用的时间。
- 点 Submit 以升级软件包。
12.8.4. 从主机中删除软件包 复制链接链接已复制到粘贴板!
使用以下步骤从主机中删除已安装的软件包。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts,再选择包含您要删除的软件包的主机。
- 在 内容 选项卡中,选择 Packages。
- 单击您要删除的软件包所在行末尾的垂直 ellipsis 图标,然后选择 Remove 选项。
- 点 Submit。
12.8.5. 将勘误添加到主机集合 复制链接链接已复制到粘贴板!
以下流程演示了如何将勘误表添加到主机集合。
先决条件
- 要添加的勘误应在其中一个现有软件仓库中可用,或者在此过程前添加。
- 勘误应提升到分配了主机的环境。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Host Collections。
- 选择应添加勘误的主机集合。
- 在 Collection Actions 选项卡上,单击 Errata Installation。
- 选择您要添加到主机集合中的勘误,再单击 Install Selected 以使用默认方法。或者,选择按钮右侧的下拉列表来选择要使用的方法。通过远程执行 - 自定义第一个 菜单条目会进入 Job invocation 页面,您可以在其中自定义该操作。
12.8.6. 将勘误添加到单个主机 复制链接链接已复制到粘贴板!
使用以下步骤将勘误表添加到主机。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选择您要添加勘误的主机。
- 单击 Content,再选择 Errata 选项卡。
- 选择您要添加到主机的勘误,或者选择列表顶部的复选框来添加所有可安装勘误。单击您要从完整列表中删除的任何勘误旁边的复选框。
- 使用您要添加到主机的勘误旁边的垂直 ellipsis 图标,选择 Apply via Remote Execution 来使用远程执行,或者如果要自定义远程执行,选择 Apply via customized remote execution。
- 点 Submit。
12.8.7. 应用可安装勘误 复制链接链接已复制到粘贴板!
使用以下步骤查看可安装勘误表列表以及要安装的勘误。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts 并选择您需要的主机。
- 如果有与主机关联的勘误,它们会显示在新的 Host 页面中的可安装勘误卡中。
- 在 Content 选项卡上,勘误 会显示所选主机的可安装勘误表。
- 点您要安装的任何勘误的复选框。
- 使用您要添加到主机的勘误旁边的垂直 ellipsis 图标,选择 Apply via Remote Execution 来使用远程执行。如果要自定义远程执行,请选择 Apply via customized remote execution。
- 点 Submit。
12.8.8. 根据类型和严重性过滤勘误 复制链接链接已复制到粘贴板!
使用以下步骤根据类型或严重性过滤勘误。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts 并点主机的名称。
- 在 Contents 选项卡上,Errata 列出了与所选主机关联的勘误。
- 点 Type 根据类型过滤勘误。
- 您可以过滤以显示类型为 Security, Bugfix, 或 Enhancement 的勘误
- 点 Severity 以按严重性进行过滤。
- 您可以过滤以显示严重性 N/A、低等、中等、重要或严重的勘误。
- 要取消选择您选择的选项,返回到选项列表,然后再次点击所选选项。
您还可以使用主机页面中的 Errata 卡,在显示前对类型进行预过滤勘误。
12.8.9. 通过适用的和可安装查看勘误 复制链接链接已复制到粘贴板!
使用以下步骤通过适用或可安装来查看勘误。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选择主机名。
- 单击 Overview 选项卡。在 Errata 卡下,有两种类型的勘误。
- 点 Applicable 查看应用到主机上安装的软件包的勘误。
- 点 Installable 查看主机内容视图环境中可用的适用勘误。
- 点每个类型下带有勘误数的链接,以查看该类型的所有可用勘误的列表。
- 点每种类型下 的安全公告、错误修复或 增强功能,以仅查看相应的勘误表类型。
12.8.10. 为可安装及适用勘误生成报告 复制链接链接已复制到粘贴板!
使用以下步骤生成主机上可安装或适用勘误的报告。
流程
- 在 Satellite Web UI 中,进入到 Monitor > Reports > Report Templates。
- 为 Host - Applicable Errata 模板单击 Generate。
- 可选: 要调度报告,请点击 Generate at 字段右侧的 日历 图标,并为生成的报告选择您想要的日期和时间。
- 可选: 要向电子邮件地址发送报告,请通过电子邮件 复选框选择发送报告,然后在 传输至电子邮件地址 字段中,输入所需的电子邮件地址。
- 可选:为 报告文件选择另一个输出格式。默认值为 CSV。
- 可选: 要将报告限制为搜索查询找到的主机,请点击 Hosts 过滤器 并从可用主机列表中搜索。对于所有可用主机的报告,请将 Hosts filter 留空。
- 可选: 要将报告限制为搜索查询找到的勘误,请点击 Errata 过滤器 并从可用勘误列表中搜索。有关所有可用勘误的报告,请将 Errata 过滤 留空。
在 Installability 列表中选择以下选项之一:
- 适用于 显示所有适用的勘误。
- 可安装,将报告限制为可在您的主机可能安装的内容视图环境中访问的勘误表。
- 点 Generate。您的浏览器会在 Satellite 创建后自动下载报告文件。如果您选择了 通过电子邮件选项发送 发送报告,则报告将发送给您的电子邮件地址。
12.8.11. 从主机集合中删除内容 复制链接链接已复制到粘贴板!
以下步骤演示了如何从主机集合中删除软件包。
流程
- 点 Hosts > Host Collections。
- 单击应当删除该软件包的主机集合。
- 在 Collection Actions 选项卡中,单击 Package Installation、Removal 和 Update。
- 根据需要选择 Package 或 Package Group 按钮。
- 在提供的字段中,指定软件包或软件包组名称。
- 点 Remove 使用默认方法删除软件包或软件包组。或者,选择按钮右侧的下拉图标,然后选择要使用的方法。通过远程执行 - 自定义第一个 菜单条目将带您进入 Job invocation 页面,您可以在其中自定义该操作。
12.8.12. 更改主机集合的生命周期环境或内容视图 复制链接链接已复制到粘贴板!
以下流程演示了如何更改主机集合的已分配的生命周期环境或内容视图。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Host Collection。
- 选择应当更改生命周期环境或内容视图的主机集合。
- 在 Collection Actions 选项卡中,单击 Change assigned Lifecycle Environment 或 Content View。
- 选择要分配给主机集合的生命周期环境。
- 从列表中选择所需的内容视图。
单击 分配。
注意更改将在大约 4 小时内生效。要使更改生效,请在主机上立即生效,请输入以下命令:
subscription-manager refresh
# subscription-manager refreshCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用远程执行来同时在多个主机上运行此命令。
第 13 章 配置和设置远程作业 复制链接链接已复制到粘贴板!
Red Hat Satellite 支持在主机上远程执行命令。使用远程执行,您可以在多个主机上执行各种任务。
13.1. Red Hat Satellite 中的远程执行 复制链接链接已复制到粘贴板!
通过远程执行,您可以使用 shell 脚本或 Ansible 角色和 playbook 从 Capsules 在主机上运行作业。
将远程执行用于 Satellite 中的以下优点:
- 同时在多个主机上运行作业。
- 使用命令中的变量对运行的作业进行更精细的控制。
- 使用主机事实和参数来填充变量值。
- 在运行该命令时为模板指定自定义值。
远程执行的通信通过胶囊服务器进行,这意味着卫星服务器不需要直接访问目标主机,并且可以扩展来管理许多主机。
要使用远程执行,您必须定义一个作业模板。作业模板是您要应用到远程主机的命令。您可以多次执行作业模板。
Satellite 使用 ERB 语法作业模板。如需更多信息,请参阅 附录 B, 模板编写参考。
默认情况下,Satellite 包含多个用于 shell 脚本和 Ansible 的作业模板。如需更多信息,请参阅 第 13.21 节 “设置作业模板”。
其他资源
- 请参阅 第 13.22 节 “执行远程作业”。
13.2. 远程执行工作流 复制链接链接已复制到粘贴板!
对于您创建的自定义 Ansible 角色,或您下载的角色,您必须安装在胶囊服务器上包含角色的软件包。在使用 Ansible 角色之前,您必须将角色从安装了它们的 Capsule 中导入到 Satellite 中。
当您在主机上运行远程作业时,对于每个主机,Satellite 会执行以下操作,以查找要使用的远程执行胶囊:
Satellite 只搜索启用了远程执行功能的 Capsules。
- Satellite 找到启用了 远程执行 复选框的主机接口。
- Satellite 查找这些接口的子网。
- Satellite 找到分配给这些子网的远程执行胶囊。
- 从这一组胶囊中,Satellite 选择具有最少运行任务的胶囊。通过执行此操作,Satellite 可确保在远程执行胶囊之间平衡作业负载。
如果您启用了 Prefer registered through Capsule for remote execution,Satellite 会使用主机注册到的 Capsule 运行 REX 作业。
默认情况下,Prefer registered through Capsule for remote execution 被设置为 No。要启用它,在 Satellite web UI 中,进入到 Administer > Settings,在 Content 标签页中将 Prefer registered through Capsule for remote execution 设置为 Yes。这可确保卫星通过注册到的胶囊在主机上执行 REX 作业。
如果 Satellite 在此阶段找不到远程执行胶囊,并且 Fallback 到 Any Capsule 设置是否已启用,则 Satellite 会添加另一组胶囊来选择远程执行胶囊。Satellite 从分配给主机的以下类型的 Capsules 中选择最轻巧的 Capsules:
- 分配给主机子网的 DHCP、DNS 和 TFTP 胶囊
- 分配给主机的域的 DNS Capsule
- 分配给主机域的 realm Capsule
- Puppet 服务器实例
- Puppet CA Capsule
- OpenSCAP Capsule
如果 Satellite 在此阶段找不到远程执行胶囊,并且如果启用了 Enable Global Capsule 设置,Satellite 会从主机的机构和位置中的所有胶囊中选择最轻便的远程执行胶囊,以执行远程作业。
13.3. 远程执行的权限 复制链接链接已复制到粘贴板!
您可以控制哪些角色可以运行基础架构内的哪些作业,包括它们可以作为目标的主机。远程执行功能提供了两个内置角色:
- 远程执行管理器 :可以访问所有远程执行特性和功能。
- 远程执行用户 : 只能运行作业。
您可以克隆 远程执行用户角色,并自定义其过滤器以提高粒度。如果您对自定义角色使用 view_job_templates 权限调整过滤器,则只能根据匹配的作业模板查看和触发作业。您可以使用 view_hosts 和 view_smart_proxies 权限来限制哪些主机或胶囊对角色可见。
execute_template_invocation 权限是一个特殊权限,在执行作业开始前立即检查。此权限定义了您可以在特定主机上运行的作业模板。在指定权限时,这提高了粒度。
您可以针对 Red Hat Satellite 运行远程执行作业,并使用 execute_jobs_on_infrastructure_hosts 权限注册到 Red Hat Satellite 中。默认情况下,标准的 Manager 和 Site Manager 角色已具有这个权限。如果您使用 Manager 或 Site Manager 角色,或者将自定义角色与 execute_jobs_on_infrastructure_hosts 权限搭配使用,您可以根据注册的 Red Hat Satellite 和 Capsule 主机执行远程作业。
有关使用角色和权限的更多信息,请参阅管理 Red Hat Satellite 中的创建和管理角色。
以下示例显示了 execute_template_invocation 权限的过滤器:
name = Reboot and host.name = staging.example.com name = Reboot and host.name ~ *.staging.example.com name = "Restart service" and host_group.name = webservers
name = Reboot and host.name = staging.example.com
name = Reboot and host.name ~ *.staging.example.com
name = "Restart service" and host_group.name = webservers
使用本示例中的第一行将 Reboot 模板应用到所选主机。使用第二行定义一个主机池,其名称以 .staging.example.com 结尾。使用第三行将模板与主机组绑定。
分配给具有这些角色的用户的权限可能会随时间变化。如果您已经调度了一些作业来在以后运行,并且权限更改,这可能会导致执行失败,因为权限会在作业执行前立即检查。
13.4. 用于远程执行的传输模式 复制链接链接已复制到粘贴板!
您可以将 Satellite 配置为使用两种不同的传输模式进行远程作业执行。您可以将单个胶囊配置为使用一种模式或另一个模式,但不能同时配置两者。
- 基于推送的传输
在
ssh模式的 Capsules 上,远程执行使用 SSH 服务来传输作业详情。这是默认的传输模式。必须在目标主机上启用并激活 SSH 服务。远程执行胶囊必须有权访问目标主机上的 SSH 端口。除非具有不同的设置,否则标准 SSH 端口为 22。此传输模式同时支持 Script 和 Ansible 提供程序。
- 基于拉取的传输
在
pull-mqtt模式的 Capsules 上,远程执行使用消息队列遥测传输(MQTT)来启动它从 Satellite 服务器接收的作业执行。主机使用yggdrasilpull 客户端订阅 Capsule 上的 MQTT 代理,以获取作业通知。主机从 MQTT 代理收到通知后,它会通过 HTTPS 从 Capsule 中拉取作业详情,运行作业,并将结果报告回 Capsule。这个传输模式只支持 Script 供应商。
要使用
pull-mqtt模式,您必须在 Capsule 服务器上启用它并在主机上配置拉取客户端。
如果您的 Capsule 已使用 pull-mqtt 模式,而您想要切回到 ssh 模式,请运行这个 satellite-installer 命令:
satellite-installer --foreman-proxy-plugin-remote-execution-script-mode ssh
# satellite-installer --foreman-proxy-plugin-remote-execution-script-mode ssh
其他资源
- 要在 Capsule 服务器上启用拉取模式,请参阅安装 Capsule 服务器 中的 为远程执行配置基于拉取的 传输。
- 要在注册的主机上启用拉取模式,请继续 第 13.5 节 “配置主机以使用拉取客户端”。
要在新主机上启用 pull 模式,请继续以下内容:
13.5. 配置主机以使用拉取客户端 复制链接链接已复制到粘贴板!
对于配置为使用 pull-mqtt 模式的 Capsules,主机可以使用远程执行拉取客户端订阅远程作业。这不使用 SSH,主机不需要打开任何传入的防火墙端口。
先决条件
- 您已将主机注册到 Satellite。
-
主机注册的胶囊配置为使用
pull-mqtt模式。如需更多信息,请参阅安装 Capsule 服务器 中的 为远程执行配置基于拉取的传输。 - 用于主机的操作系统的 Red Hat Satellite Client 6 存储库已同步到 Satellite 服务器上,可在内容视图和主机的生命周期环境中同步,并为主机启用。如需更多信息, 请参阅管理内容 中的更改 Satellite 中的主机存储库设置状态。
- 主机的操作系统版本的 AppStream 存储库在 Satellite 服务器上同步,可在内容视图和主机的生命周期环境中同步,并为主机启用。如需更多信息, 请参阅管理内容 中的更改 Satellite 中的主机存储库设置状态。
-
主机可以使用端口
1883通过 MQTT 与其胶囊通信。 -
主机可以使用端口
9090通过 HTTPS 与胶囊通信。
流程
在您的主机上安装
katello-pull-transport-migrate软件包:在 Red Hat Enterprise Linux 10、Red Hat Enterprise Linux 9 和 Red Hat Enterprise Linux 8 主机上:
dnf install katello-pull-transport-migrate
# dnf install katello-pull-transport-migrateCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 7 主机上:
yum install katello-pull-transport-migrate
# yum install katello-pull-transport-migrateCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
确定在主机上安装了
yggdrasil软件包的版本:rpm --query yggdrasil
$ rpm --query yggdrasilCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Yggdrasil 服务的状态:
如果您的主机安装了
yggdrasil版本 0.4.z 或更高版本:systemctl status yggdrasil com.redhat.Yggdrasil1.Worker1.foreman
# systemctl status yggdrasil com.redhat.Yggdrasil1.Worker1.foremanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的主机安装了
yggdrasil版本 0.2.z 或更早版本:systemctl status yggdrasild
# systemctl status yggdrasildCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果服务正在运行,您已成功将主机配置为使用 pull 客户端。
13.6. 创建作业模板 复制链接链接已复制到粘贴板!
使用这个流程创建作业模板。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Templates > Job templates。
- 单击 New Job Template。
- 单击 Template 选项卡,然后在 Name 字段中输入您的作业模板的唯一名称。
- 选择 Default 以使模板适用于所有机构和位置。
- 在模板编辑器中直接创建模板,或通过单击 Import 将其从文本文件上传。
- 可选:在 Audit Comment 字段中,添加有关更改的信息。
- 点 Job 选项卡,然后在 Job category 字段中输入您自己的类别,或者从 第 C.2 节 “默认作业模板类别” 中列出的默认类别中进行选择。
-
可选:在 Description Format 字段中输入描述模板。例如,
安装软件包 %{package_name}。您还可以在模板中使用%{template_name}和%{job_category}。 - 从 Provider Type 列表中,为 shell 脚本选择 SSH,为 Ansible 任务或 playbook 选择 Ansible。
- 可选:在 Timeout to kill 字段中,输入超时值来终止作业(如果其未完成)。
- 可选:点 Add Input 来定义输入参数。在执行作业时请求参数,且不必在模板中定义。有关示例,请参阅 Help 选项卡。
- 可选:点 Foreign 输入集 来在此作业中包含其他模板。
-
可选:在 Effective user 区中,如果命令无法使用默认的
remote_execution_effective_user设置,请配置一个用户。 - 可选:如果此模板是要包含在其他模板中的代码片段,请单击 Type 选项卡并选择 Snippet。
- 可选:如果使用 Ansible 提供程序,点 Ansible 选项卡。选择 Enable Ansible Callback,以允许主机发送用于创建配置报告的事实,在作业完成后返回到 Satellite。
- 点 Location 选项卡,并添加您要使用模板的位置。
- 单击 Organizations 选项卡,再添加您要使用该模板的组织。
- 点 Submit 保存您的更改。
您可以通过在模板语法中包含其他模板来扩展和自定义作业模板。如需更多信息,请参阅管理主机中的模板编写参考和 作业模板示例 和扩展。
CLI 过程
要使用模板定义文件创建作业模板,请输入以下命令:
hammer job-template create \ --file "Path_to_My_Template_File" \ --job-category "My_Category_Name" \ --name "My_Template_Name" \ --provider-type SSH
$ hammer job-template create \ --file "Path_to_My_Template_File" \ --job-category "My_Category_Name" \ --name "My_Template_Name" \ --provider-type SSHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.7. 按名称导入 Ansible Playbook 复制链接链接已复制到粘贴板!
您可以根据名称从 Capsule 上安装的集合导入到 Satellite。Satellite 从导入的 playbook 创建作业模板,并将模板放在 Ansible Playbook - 导入 的作业类别中。
如果您有自定义集合,请将其放在 /etc/ansible/collections/ansible_collections/My_Namespace/My_Collection 中。
先决条件
- 启用 Ansible 插件。
-
您的 Satellite 帐户具有授予
import_ansible_playbooks权限的角色。
流程
使用以下 API 请求获取可用的 Ansible Playbook:
curl \ --header 'Content-Type: application/json' \ --request GET \ https://satellite.example.com/ansible/api/v2/ansible_playbooks/fetch?proxy_id=My_Capsule_ID
$ curl \ --header 'Content-Type: application/json' \ --request GET \ https://satellite.example.com/ansible/api/v2/ansible_playbooks/fetch?proxy_id=My_Capsule_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 选择您要导入的 Ansible Playbook,并记录其名称。
根据名称导入 Ansible Playbook:
curl \ --data '{ "playbook_names": ["My_Playbook_Name"] }' \ --header 'Content-Type: application/json' \ --request PUT \ https://satellite.example.com/ansible/api/v2/ansible_playbooks/sync?proxy_id=My_Capsule_ID$ curl \ --data '{ "playbook_names": ["My_Playbook_Name"] }' \ --header 'Content-Type: application/json' \ --request PUT \ https://satellite.example.com/ansible/api/v2/ansible_playbooks/sync?proxy_id=My_Capsule_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在导入完成后,您可以在 Satellite Web UI 中获取通知。
后续步骤
- 您可以通过从创建的作业模板执行远程作业来运行 playbook。如需更多信息,请参阅 第 13.22 节 “执行远程作业”。
13.8. 导入所有可用的 Ansible Playbook 复制链接链接已复制到粘贴板!
您可以从 Capsule 上安装的集合将所有可用的 Ansible Playbook 导入到 Satellite。Satellite 从导入的 playbook 创建作业模板,并将模板放在 Ansible Playbook - 导入 的作业类别中。
如果您有自定义集合,请将其放在 /etc/ansible/collections/ansible_collections/My_Namespace/My_Collection 中。
先决条件
- 启用 Ansible 插件。
-
您的 Satellite 帐户具有授予
import_ansible_playbooks权限的角色。
流程
使用以下 API 请求导入 Ansible Playbook:
curl -X PUT -H 'Content-Type: application/json' https://satellite.example.com/ansible/api/v2/ansible_playbooks/sync?proxy_id=My_Capsule_ID
# curl -X PUT -H 'Content-Type: application/json' https://satellite.example.com/ansible/api/v2/ansible_playbooks/sync?proxy_id=My_Capsule_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在导入完成后,您可以在 Satellite Web UI 中获取通知。
后续步骤
- 您可以从创建的作业模板执行远程作业来运行 playbook。如需更多信息,请参阅 第 13.22 节 “执行远程作业”。
13.9. 将回退配置为 Satellite 中的任何 Capsule 远程执行设置 复制链接链接已复制到粘贴板!
您可以启用 Fallback 到 Any Capsule 设置,将 Satellite 配置为从分配给主机的 Capsules 列表中搜索远程执行 Capsules。如果您需要在没有配置子网的主机上运行远程作业,或者将主机子网分配给没有启用远程执行功能的 Capsules,这将非常有用。
如果启用了 Fallback 到 Any Capsule 设置,Satellite 会添加另一组 Capsules,以从中选择远程执行胶囊。Satellite 还从分配给主机的所有 Capsules 集合中选择最轻巧的 Capsules,如下所示:
- 分配给主机子网的 DHCP、DNS 和 TFTP 胶囊
- 分配给主机的域的 DNS Capsule
- 分配给主机域的 realm Capsule
- Puppet 服务器实例
- Puppet CA Capsule
- OpenSCAP Capsule
流程
- 在 Satellite Web UI 中,进入到 Administer > Settings。
- 点 Remote Execution。
- 将 Fallback 配置为 Any Capsule 设置。
CLI 过程
在 Satellite 上输入
hammer settings set命令,将 Fallback 配置为 Any Capsule 设置。要将值设为true,输入以下命令:hammer settings set \ --name remote_execution_fallback_proxy \ --value true
$ hammer settings set \ --name remote_execution_fallback_proxy \ --value trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.10. 在 Satellite 中配置全局胶囊远程执行设置 复制链接链接已复制到粘贴板!
默认情况下,无论胶囊是否分配给主机子网,Satellite 会在主机的组织和位置搜索远程执行胶囊。如果要将搜索限制为分配给主机子网的 Capsule,可以禁用 Enable Global Capsule 设置。
如果启用了 Enable Global Capsule 设置,Satellite 会添加另一组 Capsules,以从中选择远程执行胶囊。Satellite 还从主机的 组织和 location 中所有 Capsules 集合中选择最轻便的远程执行胶囊,以执行远程作业。
流程
- 在 Satellite Web UI 中,进入到 Administer > Settings。
- 点 Remote Execution。
- 配置 Enable Global Capsule 设置。
CLI 过程
在 Satellite 上输入
hammer settings set命令以配置Enable Global Capsule设置。要将值设为true,输入以下命令:hammer settings set \ --name remote_execution_global_proxy \ --value true
$ hammer settings set \ --name remote_execution_global_proxy \ --value trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.11. 在推送模式下为远程执行作业设置替代目录 复制链接链接已复制到粘贴板!
默认情况下,Satellite 使用主机上的 /var/tmp 目录来以推送模式执行远程执行作业。如果您的主机上的 /var/tmp 目录使用 noexec 标志挂载,则 Satellite 无法在此目录中执行远程执行作业脚本。您可以使用 satellite-installer 设置替代目录,以便在推送模式下执行远程执行作业。
流程
在主机上创建新目录:
mkdir /My_Remote_Working_Directory
# mkdir /My_Remote_Working_DirectoryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从默认
/var/tmp目录中复制 SELinux 上下文:chcon --reference=/var/tmp /My_Remote_Working_Directory
# chcon --reference=/var/tmp /My_Remote_Working_DirectoryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将您的 Satellite 服务器或 Capsule 服务器配置为使用新目录:
satellite-installer \ --foreman-proxy-plugin-remote-execution-script-remote-working-dir /My_Remote_Working_Directory
# satellite-installer \ --foreman-proxy-plugin-remote-execution-script-remote-working-dir /My_Remote_Working_DirectoryCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.12. 在 pull 模式中为远程执行作业设置替代目录 复制链接链接已复制到粘贴板!
默认情况下,Satellite 在主机上使用 /run 目录来以 pull 模式执行远程执行作业。如果主机上的 /run 目录使用 noexec 标志挂载,则 Satellite 无法在此目录中执行远程执行作业脚本。您可以使用 Yggdrasil 服务设置一个替代目录,以便在 pull 模式中执行远程执行作业。
前提条件
确定在主机上安装了
yggdrasil软件包的版本:rpm --query yggdrasil
$ rpm --query yggdrasilCopy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
创建新目录:
mkdir /My_Remote_Working_Directory
# mkdir /My_Remote_Working_DirectoryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 访问 Yggdrasil 服务配置:
如果您的主机安装了
yggdrasil版本 0.4.z 或更高版本:systemctl edit com.redhat.Yggdrasil1.Worker1.foreman
# systemctl edit com.redhat.Yggdrasil1.Worker1.foremanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的主机安装了
yggdrasil版本 0.2.z 或更早版本:systemctl edit yggdrasild
# systemctl edit yggdrasildCopy to Clipboard Copied! Toggle word wrap Toggle overflow
通过在配置中添加以下行来指定替代目录:
Environment=FOREMAN_YGG_WORKER_WORKDIR=/My_Remote_Working_Directory
Environment=FOREMAN_YGG_WORKER_WORKDIR=/My_Remote_Working_DirectoryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 Yggdrasil 服务:
如果您的主机安装了
yggdrasil版本 0.4.z 或更高版本:systemctl restart yggdrasil com.redhat.Yggdrasil1.Worker1.foreman
# systemctl restart yggdrasil com.redhat.Yggdrasil1.Worker1.foremanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的主机安装了
yggdrasil版本 0.2.z 或更早版本:systemctl restart yggdrasild
# systemctl restart yggdrasildCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.13. 更改权限提升方法 复制链接链接已复制到粘贴板!
默认情况下,基于推送的远程执行使用 sudo 从 SSH 用户切换到在主机上执行脚本的有效用户。在某些情况下,您可能需要使用其他方法,如 su 或 dzdo。您可以在 Satellite 设置中全局配置替代方法。
先决条件
-
您的用户帐户已分配了一个授予
view_settings和edit_settings权限的角色。 -
如果要将
dzdo用于 Ansible 作业,请确保安装了包含所需 dzdo become 插件的community.generalAnsible 集合。如需更多信息,请参阅 Ansible 文档中的安装 集合。
流程
- 进入到 Administer > Settings。
- 选择 Remote Execution 选项卡。
- 单击 Effective User Method 设置的值。
- 选择新值。
- 点 Submit。
13.14. 为远程执行分发 SSH 密钥 复制链接链接已复制到粘贴板!
对于 ssh 模式中的 Capsules,远程执行连接通过 SSH 进行身份验证。必须将 Capsule 中的公共 SSH 密钥分发到您要管理的附加主机。
确保 SSH 服务已启用并在主机上运行。配置任何网络或基于主机的防火墙,以启用对端口 22 的访问。
使用以下方法之一将公共 SSH 密钥从 Capsule 分发到目标主机:
- 第 13.15 节 “手动分发用于远程执行的 SSH 密钥”.
- 第 13.17 节 “使用 Satellite API 获取用于远程执行的 SSH 密钥”.
- 第 13.18 节 “配置 Kickstart 模板以在置备过程中分发 SSH 密钥”.
- 对于新的 Satellite 主机,您可以使用全局注册模板在注册过程中将 SSH 密钥部署到 Satellite 主机。如需更多信息,请参阅 管理主机 中的 使用全局注册注册主机。
默认情况下,Satellite 将远程执行功能的 SSH 密钥分发到从 Satellite 调配的主机。
如果主机在 Amazon Web Services 上运行,请启用密码身份验证。如需更多信息,请参阅 新用户帐户。
13.15. 手动分发用于远程执行的 SSH 密钥 复制链接链接已复制到粘贴板!
要手动分发 SSH 密钥,请完成以下步骤:
流程
将 SSH 公钥从 Capsule 复制到您的目标主机:
ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub root@client.example.com
# ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub root@client.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对您要管理的每个目标主机重复此步骤。
验证
要确认密钥成功复制到目标主机,在 Capsule 上输入以下命令:
ssh -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy root@client.example.com
# ssh -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy root@client.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.16. 将密码短语添加到用于远程执行的 SSH 密钥 复制链接链接已复制到粘贴板!
默认情况下,胶囊使用非密码短语保护的 SSH 密钥来在主机上执行远程作业。您可以按照以下流程使用密码短语保护 SSH 密钥。
流程
在 Satellite 服务器或 Capsule 服务器中,使用
ssh-keygen在您的 SSH 密钥中添加密码短语:ssh-keygen -p -f ~foreman-proxy/.ssh/id_rsa_foreman_proxy
# ssh-keygen -p -f ~foreman-proxy/.ssh/id_rsa_foreman_proxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
- 现在,在主机上运行远程执行作业时,必须使用密码短语。
13.17. 使用 Satellite API 获取用于远程执行的 SSH 密钥 复制链接链接已复制到粘贴板!
要使用 Satellite API 从 Capsule 下载公钥,请在每个目标主机上完成此步骤。
流程
在目标主机上,创建
~/.ssh目录来存储 SSH 密钥:mkdir ~/.ssh
# mkdir ~/.sshCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从 Capsule 下载 SSH 密钥:
curl https://capsule.example.com:9090/ssh/pubkey >> ~/.ssh/authorized_keys
# curl https://capsule.example.com:9090/ssh/pubkey >> ~/.ssh/authorized_keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为
~/.ssh目录配置权限:chmod 700 ~/.ssh
# chmod 700 ~/.sshCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为
authorized_keys文件配置权限:chmod 600 ~/.ssh/authorized_keys
# chmod 600 ~/.ssh/authorized_keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.18. 配置 Kickstart 模板以在置备过程中分发 SSH 密钥 复制链接链接已复制到粘贴板!
您可以在自定义 Kickstart 模板中添加 remote_execution_ssh_keys 片断,以便在置备过程中将 SSH 密钥部署到主机。Satellite 附带的 Kickstart 模板默认包括这个片段。Satellite 在调配期间将用于远程执行的 SSH 密钥复制到系统。
流程
要在新置备的主机中包含公钥,请将以下代码片段添加到您使用的 Kickstart 模板中:
<%= snippet 'remote_execution_ssh_keys' %>
<%= snippet 'remote_execution_ssh_keys' %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.19. 为 Kerberos 票据授予票据配置 keytab 复制链接链接已复制到粘贴板!
使用这个流程将 Satellite 配置为使用 keytab 获取 Kerberos 票据授予票据。如果您没有设置 keytab,则必须手动检索票据。
流程
查找
foreman-proxy用户的 ID:id -u foreman-proxy
# id -u foreman-proxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
umask值,以便新文件具有权限600:umask 077
# umask 077Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 keytab 创建目录:
mkdir -p "/var/kerberos/krb5/user/My_User_ID"
# mkdir -p "/var/kerberos/krb5/user/My_User_ID"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 keytab 或将现有 keytab 复制到目录中:
cp My_Client.keytab /var/kerberos/krb5/user/My_User_ID/client.keytab
# cp My_Client.keytab /var/kerberos/krb5/user/My_User_ID/client.keytabCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将目录所有者更改为
foreman-proxy用户:chown -R foreman-proxy:foreman-proxy "/var/kerberos/krb5/user/My_User_ID"
# chown -R foreman-proxy:foreman-proxy "/var/kerberos/krb5/user/My_User_ID"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保 keytab 文件是只读的:
chmod -wx "/var/kerberos/krb5/user/My_User_ID/client.keytab"
# chmod -wx "/var/kerberos/krb5/user/My_User_ID/client.keytab"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 恢复 SELinux 上下文:
restorecon -RvF /var/kerberos/krb5
# restorecon -RvF /var/kerberos/krb5Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.20. 为远程执行配置 Kerberos 身份验证 复制链接链接已复制到粘贴板!
您可以使用 Kerberos 身份验证来建立在 Satellite 主机上远程执行的 SSH 连接。
前提条件
- 在 Kerberos 服务器中注册 Satellite 服务器
- 在 Kerberos 服务器中注册 Satellite 目标主机
- 配置并初始化 Kerberos 用户帐户以进行远程执行
- 确保 Satellite 上的 foreman-proxy 用户具有有效的 Kerberos 票据授予票据
流程
要为远程执行安装并启用 Kerberos 身份验证,请输入以下命令:
satellite-installer --foreman-proxy-plugin-remote-execution-script-ssh-kerberos-auth true
# satellite-installer --foreman-proxy-plugin-remote-execution-script-ssh-kerberos-auth trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 要编辑用于远程执行的默认用户,请在 Satellite Web UI 中进入到 Administer > Settings 并点 Remote Execution 选项卡。在 SSH User 行中,编辑第二列并为 Kerberos 帐户添加用户名。
- 导航到 remote_execution_effective_user,再编辑第二列,以添加 Kerberos 帐户的用户名。
验证
- 要确认 Kerberos 身份验证已准备好使用,请在主机上运行远程作业。如需更多信息,请参阅 第 13.22 节 “执行远程作业”。
13.21. 设置作业模板 复制链接链接已复制到粘贴板!
Satellite 提供可用于执行作业的默认作业模板。要查看作业模板列表,请导航到 Hosts > Templates > Job templates。如果要使用没有更改的模板,请执行 第 13.22 节 “执行远程作业”。
您可以使用默认模板作为自行开发的基础。默认作业模板被锁定以进行编辑。克隆模板并编辑克隆。
流程
- 若要克隆模板,可在 Actions 列中选择 Clone。
- 输入克隆的唯一名称,然后点 Submit 以保存更改。
作业模板使用嵌入式 Ruby (ERB)语法。有关编写模板的更多信息, 请参阅管理主机中的模板编写参考。
Ansible 注意事项
要创建 Ansible 作业模板,请使用以下步骤,而不是 ERB 语法,请使用 YAML 语法。使用- -- 开始 模板。您可以将 Ansible Playbook YAML 文件嵌入到作业模板正文中。您还可以添加 ERB 语法来自定义 YAML Ansible 模板。您还可以在 Satellite 中导入 Ansible Playbook。如需更多信息,请参阅管理 Red Hat Satellite 中的 同步模板存储库。
参数变量
在运行时,作业模板可以接受您为主机定义的参数变量。请注意,只有主机编辑页面中的 Parameters 选项卡中可见的参数才能用作作业模板的输入参数。
13.22. 执行远程作业 复制链接链接已复制到粘贴板!
您可以针对一个或多个主机执行基于作业模板的作业。
Ansible 作业在多个主机上运行的批处理,因此您无法取消在特定主机上运行的作业。只有在 Ansible Playbook 在批处理中的所有主机上运行后,作业才会完成。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
流程
- 在 Satellite Web UI 中,进入到 Monitor > Jobs,再点 Run job。
- 选择要使用的 Job category 和 Job template,然后单击 Next。
选择您要在其上运行作业的主机。如果您没有选择任何主机,则该作业将在当前上下文中看到的所有主机上运行。
注意如果要选择主机组及其所有子组,则选择主机组不足以选择主机组,因为该作业将直接在该组中的主机上运行,而不是在子组中的主机上运行。反之,您必须选择主机组及其所有子组,或使用此搜索查询:
hostgroup_fullname ~ "My_Host_Group*"
hostgroup_fullname ~ "My_Host_Group*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 My_Host_Group 替换为顶级主机组的名称。
- 如果需要,为作业模板提供输入。不同的模板有不同的输入,一些模板没有任何输入。输入所有必要的输入后,点 Next。
- 可选: 要为作业配置高级设置,请填写 Advanced 字段。要了解更多有关高级设置的信息,请参阅 第 13.23 节 “作业向导中的高级设置”。
- 点 Next。
计划作业的时间。
- 要立即执行作业,请保留预选的 Immediate 执行。
- 要在以后执行作业,请选择 future execution。
- 要定期执行作业,请选择 Recurring execution。
可选:如果您选择将来或重复执行,请选择 Query type,否则点 Next。
- 静态查询 意味着作业在您提供的主机的确切列表中执行。
- 动态查询 意味着仅在执行作业前评估主机列表。如果您根据某些过滤器输入主机列表,则结果可能与您第一次使用该过滤器时不同。
选择查询类型后,点 Next。
可选:如果您选择将来或重复执行,请提供额外的详情:
- 对于将来的执行,请在日期和时间输入开始。您还可以选择 Starts before and time。如果作业在这段时间之前无法启动,它将被取消。
- 对于 Recurring execution,请选择开始日期和时间、频率以及结束重复作业的条件。您可以选择不间断在一定时间结束、以一定时间结束,或者在指定数量的重复后结束。您还可以添加 Purpose - 用于跟踪作业的特殊标签。一次只能有一个具有给定目的的活动作业。
输入所需信息后,点 Next。
- 查看作业详情。您可以选择返回作业向导的任何部分并编辑信息。
- 单击 Submit 以调度要执行的作业。
CLI 过程
在 Satellite 中输入以下命令:
hammer settings set \ --name remote_execution_global_proxy \ --value false
$ hammer settings set \ --name remote_execution_global_proxy \ --value falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查找您要使用的作业模板 ID:
hammer job-template list
$ hammer job-template listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 显示模板详情以查看模板所需的参数:
hammer job-template info --id My_Template_ID
$ hammer job-template info --id My_Template_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用自定义参数执行远程作业:
hammer job-invocation create \ --inputs My_Key_1="My_Value_1",My_Key_2="My_Value_2",... \ --job-template "My_Template_Name" \ --search-query "My_Search_Query"
$ hammer job-invocation create \ --inputs My_Key_1="My_Value_1",My_Key_2="My_Value_2",... \ --job-template "My_Template_Name" \ --search-query "My_Search_Query"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
My_Search_Query替换为定义主机的过滤器表达式,如"name ~ My_Pattern"。
其他资源
-
有关使用 Hammer CLI 创建、监控或取消远程作业的更多信息,请输入
hammer job-template --help和hammer job-invocation --help。
13.23. 作业向导中的高级设置 复制链接链接已复制到粘贴板!
有些作业模板要求您输入高级设置。某些高级设置仅对某些作业模板可见。以下是常规高级设置列表。
- SSH 用户
- 用于通过 SSH 连接到主机的用户。
- 有效用户
用于执行作业的用户。默认情况下,它是 SSH 用户。如果它与 SSH 用户(s su 或 sudo )不同,则根据您的设置来切换帐户。
-
如果您在高级设置中设置了有效的用户,Ansible 会将
ansible_become_user设置为您的输入值,ansible_become设为true。这意味着,如果您在 playbook 中使用参数become: true并become_user: My_User,它们将会被 Satellite 覆盖。 -
如果您的 SSH 用户和 有效用户 相同,则 Satellite 不会覆盖
become_user。因此,您可以在 Ansible Playbook 中设置自定义become_user。
-
如果您在高级设置中设置了有效的用户,Ansible 会将
- 描述
- 该作业的描述模板。
- 终止超时
- 作业开始的时间(以秒为单位)。
- 选择的时间
-
如果客户端未提取作业,则取消作业的时间(以秒为单位)。此设置仅适用于使用
pull-mqtt传输的主机。 - 密码
- 如果 SSH 验证方法是密码,而不是 SSH 密钥,则使用。
- 私钥密码短语
- 如果 SSH 密钥受密码短语保护,则使用。
- 有效的用户密码
- 如果有效用户与 ssh 用户不同,则会使用。
- 并发级别
- 定义一次执行的最大作业数。当在大量主机上执行作业时,这可以防止系统资源过载。
- 执行排序
- 决定在主机上执行作业的顺序。它可以是字母顺序或随机化。
13.24. 使用扩展的 cron 行 复制链接链接已复制到粘贴板!
当使用远程执行调度 cron 作业时,您可以使用扩展 cron 行来指定作业节奏。标准 cron 行包含五个字段,用于指定分钟、小时、月份、月份和星期几。例如: 0 5 * * * 代表每天 5 AM。
扩展的 cron 行提供以下功能:
- 您可以使用
#以一个月为单位指定 concrete 周的一天 例如:
-
0 0 代表 mon140 指定月的第一个星期一 -
0 0 * Fri issues3,fri issue4 指定 3rd 和 4th Fridays of the month -
0 7 * * Fri""-1指定当月的最后五天(07:00) -
0 7 * * Fri这个问题L还指定当月的最后五天(07:00) -
0 23 * mon failing2,tue指定月的第 2 个星期一,以及每周的星期一,于 23:00
-
- 您可以使用
%指定月的第一天 例如:
-
9 0 * * Sun%2指定在 00:09 的每个周的星期日 -
0 0 * * Sun%2+1指定每个奇数的星期日 -
9 0 * * Sun%2,tue%3会在每次第三个星期日指定彼此的星期日和每一次星期二
-
- 您可以使用
& 指定月中的日期必须与周中的日期匹配 例如:
-
0 0 30 * 1& 指定 30 天,但仅在周一时
-
13.25. 为主机调度周期性 Ansible 作业 复制链接链接已复制到粘贴板!
您可以调度周期性作业,以在主机上运行 Ansible 角色。
先决条件
-
确保您有
view_foreman_tasks、view_job_invocations和view_recurring_logics权限。
流程
- 在 Satellite Web UI 中,进入 Hosts > All Hosts 并选择您要在其上执行远程作业的目标主机。
- 在 Ansible 选项卡上,选择 Jobs。
- 单击 Schedule recurring job。
- 在 Create New Recurring Ansible Run 窗口中定义第一次运行的重复频率、开始时间和日期。
- 点 Submit。
- 可选:在主机概述中查看调度的 Ansible 作业,或导航到 Ansible > Jobs。
13.26. 为主机组调度周期性 Ansible 作业 复制链接链接已复制到粘贴板!
您可以调度周期性作业,以在主机组上运行 Ansible 角色。
流程
- 在 Satellite Web UI 中,进入到 Configure > Host groups。
- 在 Actions 列中,选择 Configure Ansible Job for the host group to schedule an Ansible roles run for。
- 单击 Schedule recurring job。
- 在 Create New Recurring Ansible Run 窗口中定义第一次运行的重复频率、开始时间和日期。
- 点 Submit。
13.27. 使用 Ansible 提供程序进行软件包和勘误表操作 复制链接链接已复制到粘贴板!
默认情况下,Satellite 被配置为使用 Script 供应商模板进行远程执行作业。如果您希望将 Ansible 作业模板用于远程作业,您可以将 Satellite 配置为默认使用它们关联的远程执行功能。
请记住,只有为 ssh 模式配置了远程执行时,Ansible 作业模板才起作用。
流程
- 在 Satellite Web UI 中,进入到 Administer > Remote Execution Features。
-
查找其名称包含
by_search的每个功能。 -
将这些功能的作业模板从
Katello Script Default更改为Katello Ansible Default。 - 点 Submit。
Satellite 现在将 Ansible 提供程序模板用于远程执行作业,您可执行软件包和勘误表操作。这适用于从 Satellite Web UI 进行的作业调用,并使用带有您已更改的相同远程执行功能的 hammer job-invocation create。
13.28. 在 Capsule 上设置作业速率限制 复制链接链接已复制到粘贴板!
您可以一次限制 Capsule 上活跃作业的最大数量,以防止性能激增。作业从 Capsule 第一次尝试通知主机有关作业的时间,直到作业在主机上完成为止。
作业速率限制仅适用于基于 mqtt 的作业。
活跃作业的最大数量取决于胶囊服务器的计算资源。默认情况下,活跃作业的最大数量为无限。
流程
使用
satellite-installer设置活跃作业的最大数量:satellite-installer \ --foreman-proxy-plugin-remote-execution-script-mqtt-rate-limit MAX_JOBS_NUMBER
# satellite-installer \ --foreman-proxy-plugin-remote-execution-script-mqtt-rate-limit MAX_JOBS_NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
satellite-installer \ --foreman-proxy-plugin-remote-execution-script-mqtt-rate-limit 200
# satellite-installer \ --foreman-proxy-plugin-remote-execution-script-mqtt-rate-limit 200Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 14 章 Satellite 中的主机状态 复制链接链接已复制到粘贴板!
在 Satellite 中,每个主机都有一个全局状态,指示哪些主机需要注意。每个主机也具有代表特定功能的状态的子状态。当子状态的任何更改时,全局状态会被重新计算,结果由所有子状态决定。
14.1. 主机全局状态概述 复制链接链接已复制到粘贴板!
全局状态代表特定主机的整体状态。状态可能有三个可能的值之一: OK、Warning 或 Error。您可以在 Hosts Overview 页面上找到全局状态。该状态显示主机名旁边的小图标,并且具有与状态对应的颜色。将鼠标悬停在图标上可显示带有子状态信息的工具提示,以快速查找更多详细信息。要在 Satellite Web UI 中查看主机的全局状态,请导航到 Hosts > All Hosts。
- 确定
- 任何子状态都没有报告错误。此状态以绿色突出显示。
- 警告
- 如果没有检测到错误,一些子状态会引发警告。例如,即使主机被配置为发送报告,也没有主机的配置管理报告。最好调查任何警告以确保您的部署健康。此状态以颜色黄色突出显示。
- Error
- 有些子状态报告失败。例如,运行包含一些失败的资源。这个状态以红色显示。
搜索语法
如果要根据其状态搜索主机,请使用 管理 Red Hat Satellite 中的 搜索和书签 中介绍的语法在 Satellite 中进行搜索,然后使用以下与状态相关的示例进行搜索:
搜索具有 OK 状态的主机:
global_status = ok
global_status = ok
搜索要注意的所有主机:
global_status = error or global_status = warning
global_status = error or global_status = warning
14.2. 主机子状态概述 复制链接链接已复制到粘贴板!
子状态仅监控主机功能的一部分。
要查看主机的子状态,在 Satellite Web UI 中,进入到 Hosts > All Hosts,并点击您要检查的完整状态的主机。您可以查看主机名称旁边的全局主机状态,以及 Host 状态卡上的主机子状态。
每个子状态都有自己的一组可能值,这些值映射到三个全局状态值。
下面列出了 Satellite 包含的子状态。
- 配置
只有 Satellite 使用 Ansible、Puppet 或 Salt 等配置管理系统时,这个子状态才相关。
可能的值:
Expand 标签 全局主机状态 禁用警报
确定
Active
确定
待处理
确定
没有更改
确定
没有报告
确定/警告
不同步
Warning
错误
错误
有关此子状态值的附加信息:
- Active: 在最后一个配置期间,会应用一些资源。
-
待定 :在最后配置过程中,会应用一些资源,但您的配置管理集成被配置为以
noop模式运行。 - 无更改 :在上次配置期间,不会更改。
-
无报告 :这既可以是 Warning 或 OK 状态。如果没有报告,但主机使用关联的胶囊进行配置管理,或者
always_show_configuration_status设置为true,但它映射到 Warning。否则,它将映射到 OK。 - 错误: 这表示配置期间出现错误。例如,配置运行无法安装软件包。
-
同步 : 不根据
out ofsync _interval设置,在预期间隔内没有收到配置报告。报告由原始卷标识,并根据它有不同的间隔。
- Build
此子状态仅与从 Satellite 或主机通过全局注册注册的主机相关。
可能的值:
Expand 标签 全局主机状态 数字值 已安装
确定
0
待处理的安装
确定
1
令牌已过期
错误
2
安装错误
错误
3
- Compliance
指明主机是否与 OpenSCAP 策略兼容。
可能的值:
Expand 标签 全局主机状态 数字值 Compliant
确定
0
inconclusive
Warning
1
至少一个符合条件
错误
2
- 执行
最后一次完成的远程执行作业的状态。
可能的值:
Expand 标签 全局主机状态 数字值 最后执行成功 / No execution yet yet
确定
0
最后执行失败
错误
1
未知执行状态
确定
2 或 3
最后执行已取消
确定
4
- 清单(Inventory)
指明主机是否已同步到 Red Hat Hybrid Cloud Console。Satellite 服务器执行同步本身,但只会将基本信息上传到红帽混合云控制台。
可能的值:
Expand 标签 全局主机状态 数字值 主机没有上传到 RH 云清单
Warning
0
成功上传到 RH 云清单
确定
1
- Insights
指明主机是否已同步到 Red Hat Hybrid Cloud Console。此同步由主机执行。主机上传比 Satellite 服务器更多的信息。
可能的值:
Expand 标签 全局主机状态 数字值 报告
确定
0
未报告
错误
1
- 勘误
指明主机上是否有勘误可用。
可能的值:
Expand 标签 全局主机状态 数字值 最新
确定
0
Unknown
Warning
1
所需的勘误
错误
2
所需的安全勘误
错误
3
- RHEL 生命周期
指明主机上安装的 Red Hat Enterprise Linux 操作系统的当前状态。
可能的值:
Expand 标签 全局主机状态 数字值 Unknown
确定
0
完全支持
确定
1
维护支持
确定
2
维护支持结束的方法
Warning
3
延长的支持
确定
4
支持方法结束
Warning
5
支持终止
错误
6
- trace
指明主机是否需要重启或进程重启。
可能的值:
Expand 标签 全局主机状态 数字值 Unknown
Warning
-1
最新
确定
0
所需的进程重启
错误
1
所需的重启
错误
2
搜索语法
如果要根据其子状态搜索主机,请使用 管理 Satellite 指南中的 搜索和书签 一章中介绍的语法在 Satellite 中进行搜索,然后使用以下与状态相关的示例进行搜索:
您可以根据其最后报告的状态搜索主机的配置子状态。
例如,查找至少有一个待处理资源的主机:
status.pending > 0
status.pending > 0
查找在上一次运行期间重启某些服务的主机:
status.restarted > 0
status.restarted > 0
查找有值得关注的最后一次运行的主机,这可能表示发生了内容:
status.interesting = true
status.interesting = true
第 15 章 管理软件包 复制链接链接已复制到粘贴板!
您可以使用 Satellite 来安装、升级和删除软件包,并在主机上启用或禁用存储库。
软件包操作使用远程执行。有关运行远程执行作业的更多信息,请参阅管理主机中的配置和设置 远程作业。
15.1. 在主机上启用和禁用存储库 复制链接链接已复制到粘贴板!
使用这个流程在主机上启用和禁用存储库。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts,
- 选择主机。
- 在 Content 选项卡上,单击 Repository sets 选项卡。
- 点垂直 ellipsis 选择 Override to disabled 或 Override to enabled 来在主机上禁用或启用存储库。
15.2. 在主机上安装软件包 复制链接链接已复制到粘贴板!
使用这个流程,使用 Satellite Web UI 查看并安装软件包。用于安装的软件包列表取决于分配给主机的内容视图环境。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选择主机。
- 在 Content 选项卡上,点 Packages 选项卡。
- 在升级按钮旁边的垂直 ellipsis 图标上,单击 Install packages。
- 在 Install packages 窗口中,选择要在主机上安装的软件包或软件包。
- 点 Install。Satellite Web UI 显示远程执行作业的通知。
API 流程
以 JSON 格式提供 API 请求正文:
API 请求正文示例:
- 1
- 包含 API 请求的
"job_invocation"对象。 - 2
- 可选:限制并发运行作业的主机数量。
- 3
- 值为
"katello_package_install"的"feature"字段。 - 4
- 指定要安装的软件包的
"inputs/package"对象。使用空格分开多个软件包。 - 5
- 可选:开始安装软件包的时间界限。
- 您可以使用 ISO 8601 格式指定一个或多个边界。
- 如果此时无法安装软件包,则会取消该操作。
- 如果省略时间,则默认为 00:00:00。
- 如果省略时区,则默认为 UTC。
- 6
- 与您要安装软件包的主机匹配的搜索查询。
- 7
- 可选: 如果要以该用户身份安装软件包,则 SSH 用户的凭证。
- 8
- 可选:如果提供了
"scheduling"对象,您可以通过指定"targeting_type/dynamic_query"字段在作业运行时评估搜索查询。- 如果您希望查询在运行作业时生成不同的结果,这非常有用。
-
如果省略此字段,则默认为
"static_query"。
使用创建的正文向 Satellite 服务器的
/api/job_invocations端点发送POST请求,并查看格式化的响应:API 请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 在 Satellite Web UI 中,进入到 Monitor > Jobs,查看调度或已完成的远程执行作业的报告,以便在所选主机上安装软件包。
15.3. 升级主机上的软件包 复制链接链接已复制到粘贴板!
您可以在 Satellite Web UI 中批量升级主机上的软件包。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选择主机。
- 在 Content 选项卡上,点 Packages 选项卡。
- 从 Status 列表中选择 Upgradable。
- 在 Upgradable to 列中,选择要升级到的软件包版本。
- 选择您要升级的软件包。
- 单击 Upgrade。Satellite Web UI 显示远程执行作业的通知。
API 流程
以 JSON 格式提供 API 请求正文:
API 请求正文示例:
- 1
- 包含 API 请求的
"job_invocation"对象。 - 2
- 可选:限制并发运行作业的主机数量。
- 3
- 值为
"katello_package_update"的"feature"字段。 - 4
- 指定要更新的软件包的
"inputs/package"对象。使用空格分开多个软件包。 - 5
- 可选:开始更新软件包的时间界限。
- 您可以使用 ISO 8601 格式指定一个或多个边界。
- 如果此时无法更新软件包,则会取消该操作。
- 如果省略时间,则默认为 00:00:00。
- 如果省略时区,则默认为 UTC。
- 6
- 与您要更新软件包的主机匹配的搜索查询。
- 7
- 可选: SSH 用户的凭证,如果要以该用户身份更新软件包。
- 8
- 可选:如果提供了
"scheduling"对象,您可以通过指定"targeting_type/dynamic_query"字段在作业运行时评估搜索查询。- 如果您希望查询在运行作业时生成不同的结果,这非常有用。
-
如果省略此字段,则默认为
"static_query"。
使用创建的正文向 Satellite 服务器的
/api/job_invocations端点发送POST请求,并查看格式化的响应:API 请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 在 Satellite Web UI 中,进入到 Monitor > Jobs,查看调度或已完成的远程执行作业的报告,以更新所选主机上的软件包。
15.4. 从主机中删除软件包 复制链接链接已复制到粘贴板!
您可以使用 Satellite Web UI 从主机中删除软件包。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选择主机。
- 在 Content 选项卡上,点 Packages 选项卡。
- 点您要删除的软件包的垂直 ellipsis。
- 选择 Remove。Satellite Web UI 显示远程执行作业的通知。
API 流程
以 JSON 格式提供 API 请求正文:
API 请求正文示例:
- 1
- 包含 API 请求的
"job_invocation"对象。 - 2
- 可选:限制并发运行作业的主机数量。
- 3
- 值为
"katello_package_remove"的"feature"字段。 - 4
- 指定要删除的软件包的
"inputs/package"对象。使用空格分开多个软件包。 - 5
- 可选:开始删除软件包的时间界限。
- 您可以使用 ISO 8601 格式指定一个或多个边界。
- 如果此时无法删除软件包,则会取消该操作。
- 如果省略时间,则默认为 00:00:00。
- 如果省略时区,则默认为 UTC。
- 6
- 与要删除软件包的主机匹配的搜索查询。
- 7
- 可选:如果要以该用户身份删除软件包,则 SSH 用户的凭证。
- 8
- 可选:如果提供了
"scheduling"对象,您可以通过指定"targeting_type/dynamic_query"字段在作业运行时评估搜索查询。- 如果您希望查询在运行作业时生成不同的结果,这非常有用。
-
如果省略此字段,则默认为
"static_query"。
使用创建的正文向 Satellite 服务器的
/api/job_invocations端点发送POST请求,并查看格式化的响应:API 请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 在 Satellite Web UI 中,进入到 Monitor > Jobs,查看调度或已完成的远程执行作业的报告,以删除所选主机上的软件包。
第 16 章 软件包模式和镜像模式主机 复制链接链接已复制到粘贴板!
Satellite 将镜像模式主机标识为通过 Subscription Manager 从 bootc 状态报告容器镜像的任何系统。它将所有其他主机作为软件包模式主机进行分类。
镜像模式通过使开发、操作和解决方案供应商能够使用相同的容器原生虚拟化工具和技术来管理应用和底层操作系统来简化企业操作。
在镜像模式中,用户可以安装和管理软件包,但存在限制。在镜像模式主机上安装的任何软件包都是临时的,重启后会消失。因此,通常不建议安装软件包,除了调试目的,或者在某些情况下,在应用关键安全补丁时。
在 All Hosts 页面上,可以显示 Type 列,其中包含模式指示符。此列默认为禁用。
镜像模式主机
镜像模式主机包括反映其引导状态的额外字段。这些字段跟踪各种场景中使用的容器镜像:
- 引导的镜像和 Digest :指示主机当前使用的容器镜像。
- Staging Image 和 Digest :指示主机在下次重启后使用的容器镜像。
-
可用镜像和 Digest :代表通过运行
bootc upgrade --check来缓存的容器镜像。 -
回滚镜像和 Digest: 如果应用了
Bootc 回滚,代表主机会在下一次重启后恢复容器镜像。
其他资源
- 有关镜像模式的更多信息,请参阅 RHEL 镜像模式快速启动指南。
16.1. 查看引导的容器镜像 复制链接链接已复制到粘贴板!
这些操作简化了镜像模式主机的管理,通过 Satellite 提供对主机操作的灵活性和控制。
流程
- 在 Satellite Web UI 中,进入到 Content > Booted Container Images 以查看镜像模式主机使用的所有镜像。本页显示了特定镜像路径下摘要的分布。镜像路径下的更多摘要表示主机生态系统中的偏移更大,最好确保所有主机都运行最新的镜像版本来最小化。
- 单击主机数以导航到 All Hosts 页面,它将识别与每个特定镜像关联的主机,并使用每个摘要显示主机数量。
-
选择主机和 Details 标签页中,使用镜像模式 Details 卡查看当前的
bootc状态。 -
单击此卡中 Bootc Action - Script Default remote execution 作业的链接,以在主机上执行 Bootc 操作。对于 pull-mode 远程执行,
foreman_ygg_worker软件包必须包含在镜像模式主机的容器镜像中。
CLI 过程
-
运行
hammer host bootc images命令。
16.2. 镜像模式主机的远程执行作业 复制链接链接已复制到粘贴板!
您可以使用 Bootc 作业类别下的远程执行作业来管理镜像模式主机:
- Bootc Action - Script Default: 从下拉菜单中选择任何 Bootc 操作,输入参数,并指定目标。
- Bootc Rollback - 脚本默认 :运行 Bootc rollback 以恢复到以前的镜像。
- Bootc 状态 - 脚本默认: 运行 Bootc 状态及可选的额外参数来检查状态。
- Bootc Switch - Script Default: 使用强制镜像输入和可选额外参数运行 Bootc 开关,以切换到其他镜像。
- Bootc Upgrade - Script Default: 使用可选额外参数运行 Bootc 升级来更新镜像。
对于 pull-mode 远程执行,foreman_ygg_worker 软件包必须包含在镜像模式主机的容器镜像中。
其他资源
- 如需更多信息,请参阅 第 13 章 配置和设置远程作业。
附录 A. 故障排除:远程作业在 yggdrasil 更新后超时 复制链接链接已复制到粘贴板!
在禁用了弱依赖项且配置为使用 yggdrasil pull 客户端的主机上,远程作业可能会在 yggdrasil 软件包更新至 0.4.z 或更高版本后启动失败。
基于拉取的传输配置依赖于 Yggdrasil 服务,并根据主机上安装的 yggdrasil 软件包的版本而有所不同。要在主机上安装 yggdrasil 版本 0.4.z 后,基于拉取的远程执行模式可以正常工作,必须更新 Yggdrasil 客户端配置。在主机上安装 foreman_ygg_migration 软件包,可确保 Satellite 将所需的更改应用到 Yggdrasil 配置。
在启用了弱依赖项的主机上,Satellite 会自动安装 foreman_ygg_migration 软件包。不需要进一步的步骤。
在禁用弱依赖项的主机上,您必须手动安装 foreman_ygg_migration 软件包。
流程
确定在主机上安装了
yggdrasil软件包的版本:rpm --query yggdrasil
$ rpm --query yggdrasilCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的主机安装了
yggdrasil版本 0.4.z 或更高版本,则yggdrasil和com.redhat.Yggdrasil1.Worker1.foreman服务应该正在运行。检查这些服务的状态:systemctl status yggdrasil com.redhat.Yggdrasil1.Worker1.foreman
# systemctl status yggdrasil com.redhat.Yggdrasil1.Worker1.foremanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果上述服务没有运行,这意味着 Yggdrasil 可能没有正确配置。
手动安装
foreman_ygg_migration软件包:dnf install foreman_ygg_migration
# dnf install foreman_ygg_migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
foreman_ygg_migration可确保 Satellite 应用所需的 Yggdrasil 配置更改,并在 pull 模式中启用远程执行按预期工作。
验证
再次检查 Yggdrasil 服务的状态:
systemctl status yggdrasil com.redhat.Yggdrasil1.Worker1.foreman
# systemctl status yggdrasil com.redhat.Yggdrasil1.Worker1.foremanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这些服务现在应该正在运行。
附录 B. 模板编写参考 复制链接链接已复制到粘贴板!
嵌入式 Ruby (ERB)是一个基于模板生成文本文件的工具,模板将纯文本与 Ruby 代码组合。Red Hat Satellite 在以下情况下使用 ERB 语法:
- 自定义模板
- 如需更多信息,请参阅置备 主机中的创建置备模板。
- 远程执行作业模板
- 更多信息请参阅 第 13 章 配置和设置远程作业。
- 报告模板
- 更多信息请参阅 第 11 章 使用报告模板监控主机。
- 分区表的模板
- 如需更多信息,请参阅置备 主机中的创建分区表。
- 智能类参数
- 有关更多信息,请参阅使用 Puppet 集成 管理配置 中的 配置 Puppet 智能类参数。
本节概述了 ERB 模板中使用的特定于 Satellite 的宏和变量,以及一些用法示例。请注意,Red Hat Satellite 提供的默认模板(Hosts > Templates > Provisioning Templates ,Hosts > Templates > Job templates,Monitor > Reports > Report Templates )还提供了一个很好的 ERB 语法示例源。
在置备主机或运行远程作业时,ERB 中的代码会被执行,变量将被替换为特定于主机的值。这个过程被称为 渲染。Satellite 服务器默认启用 securemode 渲染选项,这可以防止从模板执行任何有害的代码。
B.1. 在 Satellite Web UI 中访问模板写入引用 复制链接链接已复制到粘贴板!
您可以在 Satellite Web UI 中访问模板编写参考文档。
流程
- 登录 Satellite Web UI。
- 在 Satellite Web UI 中,进入到 Administer > About。
- 点 Support 部分中的 Templates DSL 链接。
B.2. 模板中使用自动完成 复制链接链接已复制到粘贴板!
您可以使用 autocompletion 选项访问模板编辑器中的可用宏和使用信息列表。这适用于 Satellite 中的所有模板。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Templates > Partition tables,Hosts > Templates > Provisioning Templates, 或 Hosts > Templates > Job templates。
- 点模板编辑器右上角的 设置 图标,然后选择 Autocompletion。
-
在模板编辑器中按
Ctrl+Space来访问所有可用宏的列表。您可以通过键入有关您要查找内容的更多信息来缩小宏列表范围。例如,如果您查找某个方法列出主机的内容源的 ID,您可以键入host并检查内容源的可用宏列表。 - 下拉菜单旁边的窗口提供宏、其使用情况的描述,以及它将返回的值。
-
当您找到查找的方法时,按
Enter来输入方法。
您还可以在 设置 菜单中启用 Live Autocompletion,以查看在每次键入内容时与模式匹配的宏列表。但是,这可能会在不需要的位置输入宏,如置备模板中的软件包名称。
B.3. 编写 ERB 模板 复制链接链接已复制到粘贴板!
以下标签是 ERB 模板中最重要的且常用的标签:
<% %>
所有 Ruby 代码都包含在 ERB 模板中的 & lt;% % > 中。代码在渲染模板时执行。它可以包含 Ruby 控制流结构以及特定于 Satellite 的宏和变量。例如:
<% if @host.operatingsystem.family == "Redhat" && @host.operatingsystem.major.to_i > 6 -%>
systemctl <%= input("action") %> <%= input("service") %>
<% else -%>
service <%= input("service") %> <%= input("action") %>
<% end -%>
<% if @host.operatingsystem.family == "Redhat" && @host.operatingsystem.major.to_i > 6 -%>
systemctl <%= input("action") %> <%= input("service") %>
<% else -%>
service <%= input("service") %> <%= input("action") %>
<% end -%>
请注意,此模板静默对服务执行操作,并在输出中返回任何内容。
<%= %>
这提供了与 <% %> 相同的功能,但在执行模板时,代码输出将插入到模板中。这对变量替换很有用,例如:
输入示例:
echo <%= @host.name %>
echo <%= @host.name %>
渲染示例:
host.example.com
host.example.com
输入示例:
<% server_name = @host.fqdn %> <%= server_name %>
<% server_name = @host.fqdn %>
<%= server_name %>
渲染示例:
host.example.com
host.example.com
请注意,如果您输入了不正确的变量,则不会返回输出。但是,如果您尝试对不正确的变量调用方法,则会返回以下出错信息:
输入示例:
<%= @example_incorrect_variable.fqdn -%>
<%= @example_incorrect_variable.fqdn -%>
渲染示例:
undefined method `fqdn' for nil:NilClass
undefined method `fqdn' for nil:NilClass
<% -%>, <%= -%>
默认情况下,如果 Ruby 块在行尾关闭,则会在 Ruby 块后插入换行符:
输入示例:
<%= "line1" %> <%= "line2" %>
<%= "line1" %>
<%= "line2" %>
渲染示例:
line1 line2
line1
line2
要更改默认行为,请使用 -% > 修改热线标记:
输入示例:
<%= "line1" -%> <%= "line2" %>
<%= "line1" -%>
<%= "line2" %>
渲染示例:
line1line2
line1line2
这用于减少 Ruby 语法在渲染的模板中允许的行数。ERB 标签中的空格将被忽略。
有关如何在报告模板中使用它的示例,以便在 FQDN 和 IP 地址间删除不必要的换行符:
输入示例:
<%= @host.fqdn -%> <%= @host.ip -%>
<%= @host.fqdn -%>
<%= @host.ip -%>
渲染示例:
host.example.com10.10.181.216
host.example.com10.10.181.216
<%# %>
括起在模板渲染过程中忽略的注释:
输入示例:
<%# A comment %>
<%# A comment %>
这不会生成任何输出。
ERB 模板中的缩进
由于 ERB 标签的不同长度,缩进 ERB 语法似乎有些。ERB 语法忽略空格。处理缩进的一种方法是在每个新行开头声明 ERB 标签,然后使用 ERB 标签中的空格来概述语法中的关系,例如:
<%- load_hosts.each do |host| -%> <%- if host.build? %> <%= host.name %> build is in progress <%- end %> <%- end %>
<%- load_hosts.each do |host| -%>
<%- if host.build? %>
<%= host.name %> build is in progress
<%- end %>
<%- end %>
B.4. ERB 模板故障排除 复制链接链接已复制到粘贴板!
Satellite Web UI 提供了两种方法来验证特定主机的模板渲染:
- 在模板编辑器中直接在模板编辑器 中(在 Hosts > Templates > Partition tables,Hosts > Templates > Provisioning Templates, 或 Hosts > Templates > Job templates)下,在 Template 选项卡中点 Preview 并从列表中选择一个主机。然后,模板使用所选主机的参数在文本字段中显示。预览失败可帮助识别模板中的问题。
- 在主机的详情页面中,在 Hosts > All Hosts 中选择一个主机,然后点击 Templates 选项卡列出与主机关联的模板。从所选模板旁边的列表中选择 Review,以查看其渲染的版本。
B.5. 通用的特定于 Satellite 的宏 复制链接链接已复制到粘贴板!
本节列出了 ERB 模板的特定于 Satellite 的宏。您可以在所有类型的模板中使用下表中列出的宏。
| Name | 描述 |
|---|---|
| indent(n) | 使用没有缩进的代码片段模板时,使用没有缩进的代码片段模板使用 n 个空格。 |
| foreman_url(kind) |
将完整的 URL 返回到给定类型的主机渲染模板。例如,"provision"类型的模板通常位于 |
| snippet(name) | 呈现指定的代码片段模板。有助于嵌套自定义模板。 |
| snippets(file) |
呈现 Foreman 数据库中找到的指定代码片段,如果数据库中找不到,尝试从 |
| snippet_if_exists(name) | 呈现指定的代码片段,如果没有找到指定名称的代码片段,则跳过。 |
B.6. 模板宏 复制链接链接已复制到粘贴板!
如果要编写自定义模板,您可以使用以下一些宏。根据模板类型,以下一些宏具有不同的要求。
有关报告模板可用宏的更多信息,请在 Satellite Web UI 中导航到 Monitor > Reports > Report Templates,然后点 Create Template。在 Create Template 窗口中,单击 Help 选项卡。
如需有关作业模板可用宏的更多信息,在 Satellite Web UI 中,导航到 Hosts > Templates > Job templates,然后点击 New Job Template。在 New Job Template 窗口中,单击 Help 选项卡。
- 输入
使用
输入宏,您可以自定义模板可以使用的输入数据。您可以定义可供用户使用的输入名称、类型和选项。对于报告模板,您只能使用用户输入。当您定义新输入并保存模板时,您可以使用模板正文的 ERB 语法引用输入。<%= input('cpus') %><%= input('cpus') %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会从用户输入
cpus加载值。- load_hosts
使用
load_hosts宏,您可以生成主机的完整列表。<%- load_hosts().each_record do |host| -%> <%= host.name %>
<%- load_hosts().each_record do |host| -%> <%= host.name %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用带有
each_record宏的load_hosts宏来批量加载 1000 个记录,以减少内存消耗。如果要过滤报告的主机列表,您可以添加选项
搜索: input ('Example_Host'):<% load_hosts(search: input('Example_Host')).each_record do |host| -%> <%= host.name %> <% end -%><% load_hosts(search: input('Example_Host')).each_record do |host| -%> <%= host.name %> <% end -%>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,您首先创建一个输入,然后使用它来优化
load_hosts宏检索的搜索条件。- report_row
使用
report_row宏,您可以创建一个格式化的报告来简化分析。report_row宏需要report_render宏来生成输出。输入示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 渲染示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以通过添加另一个标头来向报告添加额外的列。以下示例在报告中添加 IP 地址:
输入示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 渲染示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - report_render
此宏仅适用于报告模板。
使用
report_render宏,您可以为报告创建输出。在模板渲染过程中,您可以选择您要报告的格式。支持 YAML、JSON、HTML 和 CSV 格式。<%= report_render -%>
<%= report_render -%>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - render_template()
此宏仅适用于作业模板。
使用这个宏,您可以呈现特定模板。您还可以启用和定义您要传递给模板的参数。
- truthy
使用
truthy宏,您可以声明传递的值是否为 true 或 false,无论值是整数还是布尔值或字符串。此宏有助于避免在模板包含多个值类型时产生混淆。例如,布尔值
true与字符串值"true"不同。使用这个宏,您可以声明模板如何解释值并避免混淆。您可以使用
truthy来声明值,如下所示:truthy?("true") => true truthy?(1) => true truthy?("false") => false truthy?(0) => falsetruthy?("true") => true truthy?(1) => true truthy?("false") => false truthy?(0) => falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow - falsy
falsy 宏的作用与真实性宏相同。
使用
falsy宏,您可以声明传递的值是否为 true 或 false,无论值是整数还是布尔值或字符串。您可以使用
falsy来声明值,如下所示:falsy?("true") => false falsy?(1) => false falsy?("false") => true falsy?(0) => truefalsy?("true") => false falsy?(1) => false falsy?("false") => true falsy?(0) => trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
B.7. 特定于主机的变量 复制链接链接已复制到粘贴板!
以下变量允许使用模板中的主机数据。请注意,作业模板仅接受 @host 变量。
| Name | 描述 |
|---|---|
|
| 主机的构架。 |
|
| 返回所有绑定接口的数组。请参阅 第 B.10 节 “解析数组”。 |
|
| 系统调配的方法,可以是 build (如 Kickstart)或镜像。 |
|
| 主机的 SSL 证书名称。 |
|
| 主机的磁盘布局。可以从操作系统继承。 |
|
| 主机的域。 |
|
| 主机的 Puppet 环境。 |
|
| 返回一个来自 Facter 的 Ruby 事实哈希。例如,若要从输出中访问 "ipaddress" 事实,指定 @host.facts['ipaddress']。 |
|
| 返回主机的引导装载程序密码。 |
|
| 主机的主机组。 |
|
| 返回包含主机参数信息的 Ruby 哈希。例如,使用 host_enc['parameters']['lifecycle_environment'] 获取主机的生命周期环境。 |
|
|
如果使用镜像置备主机,则返回 |
|
| 包含包括了主接口的所有可用主机接口的数组。请参阅 第 B.10 节 “解析数组”。 |
|
| 返回具有给定标识符的接口数组。您可以将多个标识符数组作为输入传递,如 @host.interfaces_with_identifier (['eth0', 'eth1'])。请参阅 第 B.10 节 “解析数组”。 |
|
| 主机的 IP 地址。 |
|
| 主机的位置。 |
|
| 主机的 MAC 地址。 |
|
| 返回一组受管接口(不包括 BMC 和绑定接口)。请参阅 第 B.10 节 “解析数组”。 |
|
| 分配的操作系统安装介质。 |
|
| 主机的全名。 |
|
| 操作系统系列。 |
|
| 所分配操作系统的主版本号。 |
|
| 所分配操作系统的次要版本号。 |
|
| 分配的操作系统名称。 |
|
| 指向内核和 initrd 的完整路径,返回一个数组。 |
|
| 用于置备的 URI (安装介质中配置的路径)。 |
|
| 返回指定 host 参数的值。 |
|
|
如果指定的 host 参数评估为 |
|
|
如果指定的 host 参数评估为 |
|
| 返回主机的主接口。 |
|
| 计算资源提供商。 |
|
| 返回主机的调配接口。返回接口对象。 |
|
| 分区表名称。 |
|
| 主机必须使用的 Puppet CA 服务器。 |
|
| 主机必须使用的 Puppet 服务器。 |
|
|
如果使用网络或 PXE 置备主机,则返回 |
|
| 主机的短名称。 |
|
| BMC 接口的 IP 地址。 |
|
| BMC 接口的 MAC 地址。 |
|
| BMC 接口的名称。 |
|
| BMC 网络的子网。 |
|
|
如果为这个主机配置了 DHCP 代理,则返回 |
|
| 主机的主 DNS 服务器。 |
|
| 主机的辅助 DNS 服务器。 |
|
| 主机的网关。 |
|
| 主机的子网掩码。 |
|
| 与此主机关联的 initrd 镜像的完整路径。不建议使用变量,因为它不进行干预。 |
|
| 与此主机关联的内核的完整路径。不建议使用此变量,首选 boot_files_uri。 |
|
|
根据调配类型,等于 |
|
|
如果网络配置是静态,则返回 |
|
| 正在呈现的模板的名称。 |
|
| 返回引导装载程序参数来设置加密的引导装载程序密码,如-- md5pass=""{@host.grub_pass}。 |
|
| 使用端口和主机的波特率(可以添加到内核行中)返回字符串。例如 console=ttyS1,9600。 |
|
| 返回为系统配置的 root 密码。 |
大多数常见的 Ruby 方法都可用于特定于主机的变量。例如,要提取主机的 IP 地址的最后一个片段,您可以使用:
<% @host.ip.split('.').last %>
<% @host.ip.split('.').last %>
B.8. 特定于 Kickstart 的变量 复制链接链接已复制到粘贴板!
以下变量设计为在 Kickstart 自定义模板中使用。
| Name | 描述 |
|---|---|
| @arch | 主机架构名称,与 @host.architecture.name 相同。 |
| @dynamic |
如果使用的分区表是 %pre 脚本(在表的第一行有一个 #Dynamic 选择),则返回 |
| @epel | 一个命令,它会自动安装 epel-release RPM 的正确版本。在 %post 脚本中使用。 |
| @mediapath | 提供 URL 命令的完整 Kickstart 行。 |
| @osver | 操作系统主要版本号,与 @host.operatingsystem.major 相同。 |
B.9. 条件语句 复制链接链接已复制到粘贴板!
在您的模板中,您可以根据存在的值来执行不同的操作。要达到此目的,您可以在 ERB 语法中使用条件语句。
在以下示例中,ERB 语法搜索特定的主机名,并根据找到的值返回输出:
输入示例
渲染示例
host1.example.com positive
host1.example.com
positive
B.10. 解析数组 复制链接链接已复制到粘贴板!
在编写或修改模板时,您可能会遇到返回数组的变量。例如,与网络接口相关的主机变量,如 @host.interfaces 或 @host.bond_interfaces,返回数组中分组的接口数据。要提取特定接口的参数值,请使用 Ruby 方法解析阵列。
查找解析数组的正确方法
以下流程是一个示例,您可以使用它来查找模板中解析数组的相关方法。本例中使用了报告模板,但步骤适用于其他模板。
要检索内容主机的 NIC,在本示例中,使用
@host.interfaces变量返回类值,您可以使用 来查找方法来解析该数组。输入示例:
<%= @host.interfaces -%>
<%= @host.interfaces -%>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 渲染示例:
<Nic::Base::ActiveRecord_Associations_CollectionProxy:0x00007f734036fbe0>
<Nic::Base::ActiveRecord_Associations_CollectionProxy:0x00007f734036fbe0>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在 Create Template 窗口中,点 Help 选项卡并搜索
ActiveRecord_Associations_CollectionProxy和Nic::Base类。 对于
ActiveRecord_Associations_CollectionProxy,在 Allowed 方法或成员 栏中,您可以查看以下方法来解析阵列:[] each find_in_batches first map size to_a
[] each find_in_batches first map size to_aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于
Nic::Base,在 Allowed 方法或 members 列中,您可以查看以下方法来解析阵列:alias? attached_devices attached_devices_identifiers attached_to bond_options children_mac_addresses domain fqdn identifier inheriting_mac ip ip6 link mac managed? mode mtu nic_delay physical? primary provision shortname subnet subnet6 tag virtual? vlanid
alias? attached_devices attached_devices_identifiers attached_to bond_options children_mac_addresses domain fqdn identifier inheriting_mac ip ip6 link mac managed? mode mtu nic_delay physical? primary provision shortname subnet subnet6 tag virtual? vlanidCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要迭代接口数组,请在 ERB 语法中添加相关方法:
输入示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 渲染示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
B.11. 模板片断示例 复制链接链接已复制到粘贴板!
检查主机是否启用了 Puppet 和 Puppetlabs
以下示例检查主机是否启用了 Puppet 和 Puppetlabs 存储库:
<%
pm_set = @host.puppetmaster.empty? ? false : true
puppet_enabled = pm_set || host_param_true?('force-puppet')
puppetlabs_enabled = host_param_true?('enable-puppetlabs-repo')
%>
<%
pm_set = @host.puppetmaster.empty? ? false : true
puppet_enabled = pm_set || host_param_true?('force-puppet')
puppetlabs_enabled = host_param_true?('enable-puppetlabs-repo')
%>
捕获主机操作系统的主版本和次版本
以下示例演示了如何捕获主机操作系统的次版本和主版本,可用于软件包相关决策:
将片断导入到模板
以下示例将 subscription_manager_registration 片断导入到模板,并将其缩进四个空格:
<%= indent 4 do snippet 'subscription_manager_registration' end %>
<%= indent 4 do
snippet 'subscription_manager_registration'
end %>
有条件地导入 Kickstart 片断
如果主机的子网启用了 DHCP 引导模式,以下示例导入 kickstart_networking_setup 片断:
<% subnet = @host.subnet %> <% if subnet.respond_to?(:dhcp_boot_mode?) -%> <%= snippet 'kickstart_networking_setup' %> <% end -%>
<% subnet = @host.subnet %>
<% if subnet.respond_to?(:dhcp_boot_mode?) -%>
<%= snippet 'kickstart_networking_setup' %>
<% end -%>
从主机自定义事实解析值
您可以使用 host.facts 变量从主机的事实和自定义事实解析值。在本例中,luks_stat 是一个自定义事实,您可以像 dmi::system::serial_number 一样解析,它是一个主机事实:
'Serial': host.facts['dmi::system::serial_number'], 'Encrypted': host.facts['luks_stat'],
'Serial': host.facts['dmi::system::serial_number'],
'Encrypted': host.facts['luks_stat'],
在本例中,您可以自定义 Applicable Errata report 模板,以解析每个主机的内核版本的自定义信息:
附录 C. 作业模板示例和扩展 复制链接链接已复制到粘贴板!
使用本节作为帮助修改、自定义和扩展作业模板以适合您的要求的参考。
C.1. 自定义作业模板 复制链接链接已复制到粘贴板!
在创建作业模板时,您可以在模板编辑器字段包含现有模板。这样,您可以组合模板,或者从一般创建更具体的模板。
以下模板组合了默认模板,以在客户端上安装和启动 nginx 服务:
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => 'nginx' %> <%= render_template 'Service Action - SSH Default', :action => 'start', :service_name => 'nginx' %>
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => 'nginx' %>
<%= render_template 'Service Action - SSH Default', :action => 'start', :service_name => 'nginx' %>
以上模板直接指定渲染模板的参数值。也可以使用 input () 方法,在作业执行时为渲染的模板定义输入。例如,您可以使用以下语法:
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => input("package") %>
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => input("package") %>
使用上述模板,您必须从渲染的模板导入参数定义。为此,请导航到 Jobs 选项卡,单击 Add Foreign Input Set,然后从 Target template 列表中选择呈现的模板。您可以导入所有参数,或者指定一个以逗号分隔的列表。
C.2. 默认作业模板类别 复制链接链接已复制到粘贴板!
| 作业模板类别 | Description |
|---|---|
| 软件包 | 执行与软件包相关的操作的模板。默认情况下,包括安装、更新和删除操作。 |
| puppet | 用于在目标主机上运行 Puppet 的模板。 |
| power | 执行电源相关操作的模板。默认包括重启和关闭操作。 |
| 命令 | 用于在远程主机上执行自定义命令的模板。 |
| 服务 | 执行服务相关操作的模板。默认包括 start、stop、restart 和 status 操作。 |
| Katello | 执行内容相关操作的模板。这些模板主要用于 Satellite Web UI 的不同部分(例如,用于内容主机的批量操作 UI),但可以单独用来执行勘误表安装等操作。 |
C.3. restorecon 模板示例 复制链接链接已复制到粘贴板!
本例演示了如何创建一个名为 Run Command - restorecon 的模板,该模板为目标主机上所选目录中所有文件恢复默认 SELinux 上下文。
流程
- 在 Satellite Web UI 中,进入到 Hosts > Templates > Job templates。
- 单击 New Job Template。
在 Name 字段中输入 Run Command - restorecon。选择 Default 以使模板可供所有机构使用。在模板编辑器中添加以下文本:
restorecon -RvF <%= input("directory") %>restorecon -RvF <%= input("directory") %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在作业调用过程中,<%
= input ("directory")%> 字符串被一个用户定义的目录替代。-
在 Job 选项卡上,将 Job category 设置为
Commands。 -
单击 Add Input 以允许作业自定义。在 Name 字段中输入
目录。输入名称必须与模板编辑器中指定的值匹配。 - 点 Required,以便在没有用户指定参数的情况下无法执行命令。
-
从 Input type 列表中选择 User input。输入在作业调用期间要显示的描述,如
Target directory for restorecon。 - 点 Submit。如需更多信息,请参阅 第 C.5 节 “在多个主机上执行 restorecon 模板”。
C.4. 渲染 restorecon 模板 复制链接链接已复制到粘贴板!
本例演示了如何创建从 第 C.3 节 “restorecon 模板示例” 中创建的 Run command - restorecon 模板派生的模板。此模板在在作业执行时不需要用户输入,它将在目标主机上的 /home/ 目录下的所有文件中恢复 SELinux 上下文。
按照 第 13.21 节 “设置作业模板” 所述创建新模板,并在模板编辑器中指定以下字符串:
<%= render_template("Run Command - restorecon", :directory => "/home") %>
<%= render_template("Run Command - restorecon", :directory => "/home") %>
C.5. 在多个主机上执行 restorecon 模板 复制链接链接已复制到粘贴板!
本例演示了如何根据在多个主机的 第 C.3 节 “restorecon 模板示例” 中创建的模板运行作业。作业在 /home/ 目录下的所有文件中恢复 SELinux 上下文。
流程
- 在 Satellite Web UI 中,进入到 Monitor > Jobs,再点 Run job。
- 选择 Commands as Job category and Run Command - restorecon as Job template,再单击 Next。
- 选择您要在其上运行作业的主机。如果您没有选择任何主机,则该作业将在当前上下文中看到的所有主机上运行。
-
在 目录 字段中,提供一个目录,如
/home,然后单击 Next。 - 可选: 要为作业配置高级设置,请填写 Advanced 字段。要了解更多有关高级设置的信息,请参阅 第 13.23 节 “作业向导中的高级设置”。输入高级设置或不需要设置后,请单击 Next。
计划作业的时间。
- 要立即执行作业,请保留预选的 Immediate 执行。
- 要在以后执行作业,请选择 future execution。
- 要定期执行作业,请选择 Recurring execution。
可选:如果您选择将来或重复执行,请选择 Query type,否则点 Next。
- 静态查询 意味着作业在您提供的主机的确切列表中执行。
动态查询 意味着仅在执行作业前评估主机列表。如果您根据某些过滤器输入主机列表,则结果可能与您第一次使用该过滤器时不同。
选择查询类型后,点 Next。
可选:如果您选择将来或重复执行,请提供额外的详情:
- 对于将来的执行,请在日期和时间输入开始。您还可以选择 Starts before and time。如果作业在这段时间之前无法启动,它将被取消。
对于 Recurring execution,请选择结束重复作业的开始日期和时间、频率和条件。您可以选择不间断在一定时间结束、以一定时间结束,或者在指定数量的重复后结束。您还可以添加 Purpose - 用于跟踪作业的特殊标签。一次只能有一个具有给定目的的活动作业。
输入所需信息后,点 Next。
- 查看作业详情。您可以选择返回作业向导的任何部分并编辑信息。
- 单击 Submit 以调度要执行的作业。
C.6. 模板中包括电源操作 复制链接链接已复制到粘贴板!
本例演示了如何为执行电源操作(如重启)设置作业模板。此流程可防止 Satellite 在重启时将断开连接异常解释为错误,因此远程执行作业可以正常工作。
按照 第 13.21 节 “设置作业模板” 所述创建新模板,并在模板编辑器中指定以下字符串:
<%= render_template("Power Action - SSH Default", :action => "restart") %>
<%= render_template("Power Action - SSH Default", :action => "restart") %>