第 3 章 注册主机

将主机注册到 Satellite 服务器或胶囊式服务器有三种主要方法:

  1. 从 Satellite 生成 curl 命令,并从无限数量的主机运行命令,以使用全局注册模板注册它们。此方法适用于之前注册的全新安装主机和主机,例如到 Satellite 5 或其他 Satellite 6。

    通过使用此方法,您还可以在注册到 Satellite 期间将 Satellite SSH 密钥部署到主机,以启用用于远程执行作业的主机。有关远程执行作业的更多信息,请参阅配置和设置远程作业

    通过使用此方法,您还可以在注册到 Satellite 期间使用 Red Hat Insights 配置主机。有关将 Insights 与 Satellite 主机一起使用的更多信息,请参阅使用 Red Hat Insights 监控主机

  2. 下载并安装使用者 RPM server.example.com/pub/katello-ca-consumer-latest.noarch.rpm,然后运行 Subscription Manager。此方法适用于新安装的主机。
  3. 下载并运行 bootstrap 脚本(server.example.com/pub/bootstrap.py)。此方法适用于之前注册的全新安装主机和主机,例如到 Satellite 5 或其他 Satellite 6。

您也可以将 Atomic 主机注册到卫星服务器或胶囊式服务器。

使用以下流程之一注册主机:

使用以下步骤安装和配置主机工具:

支持的主机操作系统

主机必须使用以下 Red Hat Enterprise Linux 版本之一:

  • 5.7 或更高版本
  • 6.1 或更高版本*
  • 7.0 或更高版本
  • 8.0 或更高版本
注意

Red Hat Enterprise Linux 版本 6.1、6.6 和 6.3 需要手动更新 subscription-manager 和相关的软件包。如需更多信息,请参阅 https://access.redhat.com/solutions/1256763

支持的架构

支持 Red Hat Enterprise Linux 的所有构架:

  • i386
  • x86_64
  • s390x
  • ppc_64

3.1. 使用全局注册模板将主机注册到 Red Hat Satellite

使用以下步骤将主机注册到 Red Hat Satellite 6。

使用这个注册方法,您可以通过在 Satellite 上生成 curl 命令并在主机上运行此命令,将主机注册到 Satellite。此方法使用全局注册模板,供您完全控制主机注册过程。

先决条件

  • 生成 curl 命令的 Satellite 用户必须具有 create_hosts 权限。
  • 您必须在要注册的主机上具有 root 权限。
  • 您必须已创建了激活码。
  • 可选: 如果要将主机注册到 Red Hat Insights,您必须同步 rhel-7-server-rpms 存储库,并使其在使用的激活密钥中可用。这是在主机上安装 insights-client 软件包所必需的。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Provisioning Templates,找到 Linux 注册默认模板 并点击它。
  2. 单击 关联 选项卡。
  3. 确保您要注册的操作系统位于 Selected items 列中。
  4. Submit
  5. 进入 Hosts > Operating Systems 并点击您要注册的操作系统。
  6. Templates 选项卡。
  7. Registration template 列表中,确保选择了 Linux 注册 default
  8. Submit
  9. 进入 Hosts > All Hosts > Register Host
  10. 可选: 如果要通过 Capsule 注册主机,请确保在这个胶囊上启用了 注册 功能。

    导航到 Infrastructure > Capsules,点要使用的 Capsule,并在 Active features 列表中找到 Registration 功能。

    可选:如果您的胶囊上没有启用 注册 功能,请在 Capsule 上输入以下命令以启用它:

    # satellite-installer --foreman-proxy-registration \
    --foreman-proxy-templates \
    --foreman-proxy-template-url 'http://capsule.example.com'
  11. 可选: 在 Host Group 列表中,选择要将主机与之关联的主机组。
  12. Operating System 列表中,选择您要注册的主机的操作系统。
  13. Capsule 列表中,选择要通过其注册主机的 Capsule。如果您不想使用外部胶囊,则必须选择 internal Capsule。
  14. Insights 列表中,选择是否要将主机注册到 Insights。
  15. Remote Execution 列表中,选择是否要将 Satellite SSH 密钥部署到主机。
  16. 可选:Satellite 使用 JSON Web 令牌(JWT)进行身份验证。此令牌的持续时间定义了生成的 curl 命令的工作方式。如果要更改令牌的持续时间,请在 Token 生命周期(小时) 字段输入所需的持续时间。您可以将持续时间设置为任意小时。

    请注意,Satellite 使用生成 curl 命令的用户的权限来授权主机。如果用户丢失或获得其他权限,则 JWT 的权限也会改变。因此,不要删除、块或更改用户在令牌期间的权限。

  17. 可选:在 Remote Execution Interface 字段中,输入主机必须用于 SSH 连接的网络接口。如果将此字段留空,Satellite 将使用默认网络接口。
  18. Activation Key (s) 字段中输入一个或多个激活密钥,以分配到主机。
  19. Generate 命令
  20. 复制生成的 curl 命令,以将其输入在主机上。
  21. 使用以下方法之一配置主机:

    • curl 命令中添加 --insecure 选项。这会使第一次调用不安全,但首先调用时,主机会从 Satellite 下载 CA 文件。主机将使用此 CA 文件与将来的所有调用连接 Satellite,使其安全。

      如果一个攻击者位于 Satellite 和主机之间的网络,可以从第一个不安全的调用中获取 CA 文件,攻击者可以从注册的主机和 JWT 获取 API 调用的内容。因此,如果您已选择在注册期间部署 SSH 密钥,攻击者就可以使用 SSH 密钥访问主机。以下是带 --insecure 选项的 curl 命令示例:

      curl -X GET --insecure https://satellite.example.com/register...
    • 如果您不想使用 --insecure 选项调用 curl 命令,您可以在每个主机上手动复制并安装 CA 文件。

      为此,请进入 Administer > Settings > Authentication 并查找 SSL CA file 设置的值来找到 Satellite 存储 CA 文件的位置。

      将 CA 文件复制到主机上的 /etc/pki/ca-trust/source/anchors/ 目录中,并输入以下命令:

      # update-ca-trust enable
      # update-ca-trust
  22. 在您要注册的主机上,以 root 用户身份输入 curl 命令。

3.1.1. 自定义全局注册和主机注册模板

如果要自定义注册过程,请使用本节中的信息。

请注意,Satellite 中的所有默认模板都将被锁定。如果要自定义注册过程,您需要克隆默认模板并编辑克隆。然后,在 Administer > Settings > Provisioning 中更改 Default Global registration template 设置以指向您的自定义全局注册 模板。更改操作系统设置中的 Registration template 设置,以指向您的自定义 Linux 注册默认模板

模板

注册过程使用以下注册模板:

  • Global Registration 模板包含将主机注册到 Satellite 的步骤。此模板在主机访问 /register 端点时显示。
  • Linux 注册默认模板 包含在主机注册后配置主机的步骤。

全局参数

您可以通过导航到 Configure > Global Parameters 来配置以下全局参数:

  • host_registration_remote_execution 参数在 remote_execution_ssh_keys 代码段中使用,默认值为 true
  • insights 片段中使用 host_registration_insights 参数,默认值为 true

代码片段

remote_execution_ssh_keys 代码片段用于 Linux 注册默认模板。只有 host_registration_remote_execution 参数为 true 时,它才会将 SSH 密钥部署到主机。

Linux 注册默认模板中使用 insights 片段。当全局参数 host_registration_insights 设为 true 时,它会下载并安装 Red Hat Insights 客户端。

变量

下表描述了 Global Registration 模板中使用的变量。

表 3.1. 全局注册模板变量

变量命令参数描述

@user

none

当前经过身份验证的用户对象。

@organization

organization_id

如果没有设置 organization_id,则设置用户的默认机构,或设置用户机构中的第一个机构。

@location

location_id

如果没有设置 location_id,则设置用户的默认位置,或者设置用户位置列表中的第一个位置。

@hostgroup

hostgroup_id

主机的主机组。

@operatingsystem

operatingsystem_id

主机操作系统.

@setup_insights

setup_insights

覆盖注册主机的 host_registration_insights 全局参数的值,并安装 insights 客户端。

@setup_remote_execution

setup_remote_execution

覆盖注册主机的 host_registration_remote_execution 全局参数的值,并部署用于远程执行的 SSH 密钥。

@remote_execution_interface

remote_execution_interface

为远程执行设置默认主机接口。

@activation_key

activation_key

主机激活密钥.

@registration_url

none

/register 端点的 URL。