4.3. 使用全局注册注册主机
您可以通过在 Satellite 上生成 curl 命令并在主机上运行此命令,将主机注册到 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 客户端将清单报告上传到 Red Hat Hybrid Cloud Console。默认值为true。在覆盖参数值时,请将参数类型设置为boolean。 -
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在主机上部署 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更新信任存储:
# update-ca-trust
4.3.3. 注册主机 复制链接链接已复制到粘贴板!
您可以使用注册模板注册主机,并在注册过程中设置各种集成功能和主机工具。
先决条件
- 您的 Satellite 帐户已分配有 Register hosts 角色,或者分配有等效权限的角色。
- 您必须在要注册的主机上具有 root 权限。
- 您已配置了主机以进行注册。如需更多信息,请参阅 第 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。
- 输入有关如何配置注册主机的详情。
- 在 General 选项卡中,在 Activation Keys 字段中输入分配给主机的一个或多个激活码。
-
点 Generate 生成
curl命令。 -
以
root用户身份在您要注册的主机上运行curl命令。注册完成后,您在配置注册模板时指定的主机组的任何 Ansible 角色都将在主机上运行。
您可以指定的注册详情包括:
- 在 General 选项卡中,您可以选择 Capsule 字段中要注册主机。负载均衡器后面的 Capsule 优先于 Satellite Web UI 中选择的 Capsule 作为主机的内容源。
在 General 选项卡中,您可以选择 Insecure 选项,使第一个调用不安全。在此第一次调用期间,主机会从 Satellite 下载 CA 文件。主机将使用此 CA 文件连接到 Satellite,并在以后的所有调用都保证它们的安全。
红帽建议您避免不安全的调用。
如果攻击者位于 Satellite 和主机之间的网络中,从第一个不安全的调用中获取 CA 文件,攻击者可以访问对注册的主机和 JSON Web 令牌(JWT)的 API 调用的内容。因此,如果您选择在注册过程中部署 SSH 密钥,攻击者可以使用 SSH 密钥访问主机。
- 在 Advanced 标签页的 Repositories 字段中,您可以在执行注册前列出要添加的存储库。如果您在激活码中提供软件仓库,则不必指定软件仓库。
在 Advanced 选项卡中,在 Token lifetime (小时) 字段中,您可以更改 Satellite 用于身份验证的 JSON Web Token (JWT)的有效性持续时间。此令牌的持续时间定义生成的
curl命令的工作方式。请注意,Satellite 将生成
curl命令的用户的权限应用到主机的授权。如果用户丢失或获得额外的权限,则 JWT 的权限也会改变。因此,不要在令牌期间删除、阻止或更改用户的权限。JWT 的范围仅限于注册端点,且不能在其它任何位置使用。
CLI 过程
-
使用
hammer host-registration generate-command生成curl命令以注册主机。 -
在您要注册的主机上,以
root用户身份运行curl命令。
如需更多信息,请参阅使用 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 参考。
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 初始配置' 模板 设置指向您的自定义初始配置模板。