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 chronyd
Copy 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/anchors
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新信任存储:
update-ca-trust
# update-ca-trust
Copy 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 的步骤。当主机访问
/register
Satellite 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_ID
Copy 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_ID
Copy 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。