搜索

第 3 章 注册主机

download PDF

将主机注册到 Satellite 服务器或 Capsule 服务器有三个主要方法:

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

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

    通过使用此方法,您还可以在 Satellite 注册过程中使用 Red Hat Insights 配置主机。有关在 Satellite 主机中使用 Insights 的更多信息,请参阅使用 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 Hosts 注册到 Satellite 服务器或 Capsule 服务器。

使用以下步骤之一注册主机:

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

支持的主机操作系统

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

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

Red Hat Enterprise Linux 6.1、6.2 和 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

通过在 Satellite 上生成 curl 命令并在主机上运行此命令,可以将主机注册到 Satellite。此方法使用两种模板: 全局注册 模板和 主机初始配置 模板。这可让您完全控制主机注册过程。您可以通过导航到 Administer > Settings,然后点击 Provisioning 选项卡来设置默认模板。

先决条件

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

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

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

    # satellite-installer \
    --foreman-proxy-registration true \
    --foreman-proxy-templates true \
    --foreman-proxy-template-url 'http://capsule.example.com'

步骤

  1. 进入 Hosts > Register Host
  2. 可选: 选择不同的 机构
  3. 可选:选择 不同的位置
  4. 可选:从 Host Group 列表中,选择要将主机关联的主机组。从 主机组继承值的字段操作系统激活码生命周期环境
  5. 可选:从 Capsule 列表中,选择要通过的 Capsule 注册主机的 Capsule。如果您不想使用外部 Capsule,则必须选择内部 Capsule。
  6. 可选:从 Operating system 列表中选择您要注册的主机操作系统。
  7. 可选: 如果您要使第一个调用不安全,请选择 Insecure 选项。在此第一次调用期间,主机从 Satellite 下载 CA 文件。主机将使用此 CA 文件与以后的所有调用连接 Satellite,使其安全。

    建议您避免不安全的调用。

    如果攻击者位于 Satellite 和主机之间的网络中,从第一个不安全的调用中获取 CA 文件,攻击者可以访问 API 调用的内容,并从注册的主机和 JSON Web 令牌(JWT)获取 API 调用的内容。因此,如果您选择在注册过程中部署 SSH 密钥,攻击者可以使用 SSH 密钥访问主机。

    相反,您可以在注册主机前在每个主机上手动复制并安装 CA 文件。

    要做到这一点,找到 Satellite 通过导航到 Administer > Settings > Authentication 并查找 SSL CA 文件设置的值来存储 CA 文件的位置。

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

    # update-ca-trust enable
    # update-ca-trust

    然后,使用安全 curl 命令注册主机,例如:

    # curl -sS https://satellite.example.com/register ...

    以下是带有 --insecure 选项的 curl 命令示例:

    # curl -sS --insecure https://satellite.example.com/register ...
  8. 选择 Advanced 选项卡。
  9. Setup REX 列表中,选择是否要将 Satellite SSH 密钥部署到主机。

    如果设置为 Yes,则会在注册的主机上安装公共 SSH 密钥。继承的值基于 host_registration_remote_execution 参数。它可以继承,例如从主机组、操作系统或机构中继承。覆盖后,所选值将存储在 host 参数级别上。

  10. Setup Insights 列表中,选择是否要安装 insights-client 并将主机注册到 Insights。

    Insights 工具仅适用于 Red Hat Enterprise Linux。它对其他操作系统没有影响。

    您必须在注册的机器中启用以下软件仓库:

    • RHEL 6: rhel-6-server-rpms
    • RHEL 7: rhel-7-server-rpms
    • RHEL 8: rhel-8-for-x86_64-appstream-rpms

      在 RHEL 8 上默认安装 insights-client 软件包,但使用 "Minimal Install" 选项部署 RHEL 8 的环境中。

  11. 可选:在 Token 生命周期(小时) 字段中,更改 Satellite 用于身份验证的 JSON Web Token (JWT)的有效性持续时间。此令牌的持续时间定义了生成的 curl 命令的工作方式。您可以将持续时间设置为 0 - 999 999 小时或无限。

    请注意,Satellite 应用生成 curl 命令的用户的权限到主机授权。如果用户丢失或获得额外权限,则 JWT 更改的权限也会有变化。因此,不要在令牌期间删除、阻止或更改用户的权限。

    JWT 范围仅限于注册端点,无法在其它任何位置使用。

  12. 可选:在 Remote Execution Interface 字段中输入主机必须用于 SSH 连接的网络接口标识符。如果将此字段留空,Satellite 将使用默认网络接口。
  13. 可选:在 Install packages 字段中,列出您要在注册后在主机上安装的软件包(以空格分开)。这可以通过 host_packages 参数设置。
  14. 可选: 选择 Update packages 选项,以在注册后更新主机上的所有软件包。这可以通过 host_update_packages 参数设置。
  15. 可选:在 Repository 字段中,输入在执行注册前要添加的存储库。例如,使 subscription-manager 软件包可用于注册目的非常有用。对于 Red Hat 系列发行版本,请输入存储库的 URL,例如 http://rpm.example.com/
  16. 可选:在 Repository GPG 密钥 URL 字段中,指定公钥来验证 GPG 签名软件包的签名。它需要在 ASCII 表单中使用 GPG 公钥标头指定。
  17. Activation Keys 字段中输入要分配给主机的一个或多个激活码。
  18. 可选: 选择 生命周期阶段
  19. 可选:如果要忽略订阅管理器 错误,请选择 Ignore error 选项。
  20. 可选: 如果您要在注册前删除任何 katello-ca-consumer rpms,并使用 --force 参数运行 subscription-manager,请选择 Force 选项。
  21. Generate 按钮。
  22. 复制生成的 curl 命令。
  23. 在您要注册的主机上,以 root 用户身份运行 curl 命令。

3.1.1. 自定义注册模板

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

请注意,Satellite 中的所有默认模板都被锁定。如果要自定义注册过程,您需要克隆默认模板并编辑克隆。然后,在 Administer > Settings > Provisioning 中修改 Default Global registration templateDefault 'Host initial configuration' template 以指向您的自定义模板。

模板

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

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

全局参数

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

  • host_registration_remote_execution 参数用于 remote_execution_ssh_keys 片断,默认值为 true
  • insights 片断中使用 host_registration_insights 参数,默认值为 true
  • host_packages 参数用于在主机上安装软件包。
  • remote_execution_ssh_keysremote_execution_ssh_userremote_execution_create_userremote_execution_effective_user_method 参数在 remote_execution_ssh_keys 中使用。如需更多详细信息,请参阅代码片段的详细信息。
  • encrypt_grub 参数为主机启用加密引导装载程序密码的设置,默认值为 false

    要实际设置密码,请在模板中使用 grub_pass 宏。

片断

Linux host_init_config 默认 模板中使用代码片段:

  • 只有在 host_registration_remote_execution 参数为 true 时,remote_execution_ssh_keys 片断才会将 SSH 密钥部署到主机。
  • 当全局参数 host_registration_insights 被设置为 true 时,insights 片断下载并安装 Red Hat Insights 客户端。
  • puppetlabs_repopuppet_setup 片断会在主机上安装 puppet 代理(仅在存在 puppet master 时)
  • host_init_config_post 是主机初始配置期间用户自定义操作的空片段。

变量

下表描述了 全局注册 模板中使用什么变量。

表 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 密钥。

@setup_remote_execution

setup_remote_execution

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

@packages

软件包

要安装的软件包

@repo

repo

在主机上添加存储库

@repo_gpg_key_url

repo_gpg_key_url

设置存储库 GPG 密钥表单 URL

@activation_keys

activation_keys

主机激活码。

@force

force

删除任何 katello-ca-consumer rpms rpms,并使用 --force 参数运行 subscription-manager register 命令。

@ignore_subman_errors

ignore_subman_errors

忽略 subscription-manager 错误

@lifecycle_environment_id

lifecycle_environment_id

生命周期阶段 ID

@registration_url

none

/register 端点的 URL。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.