搜索

管理 Red Hat Satellite

download PDF
Red Hat Satellite 6.13

管理 Red Hat Satellite 的指南。

Red Hat Satellite Documentation Team

摘要

本指南提供如何配置和管理 Red Hat Satellite 6 服务器的说明。在继续此工作流前,您必须已成功安装 Red Hat Satellite 6 服务器和任何所需的胶囊服务器。

向红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

使用 Red Hat JIRA 中的 Create Issue 表单提供您的反馈。JIRA 问题在 Red Hat Satellite Jira 项目中创建,您可以在其中跟踪其进度。

前提条件

流程

  1. 单击以下链接: 创建问题。如果 Jira 显示登录错误,则登录并在您重定向到表单后继续。
  2. 完成 SummaryDescription 字段。在 Description 字段中,包含文档 URL、章节号以及问题的详细描述。不要修改表单中的任何其他字段。
  3. Create

第 1 章 访问 Red Hat Satellite

安装和配置 Red Hat Satellite 后,请使用 Satellite Web UI 界面登录 Satellite 以进行进一步配置。

1.1. 导入 Katello Root CA 证书

第一次登录 Satellite 时,您可能会看到一条警告,通知您在使用默认的自签名证书,在浏览器中导入 root CA 证书前,您可能无法将此浏览器连接到 Satellite。使用以下步骤在 Satellite 上找到 root CA 证书,并将其导入到您的浏览器中。

要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 流程

前提条件

  • 您的 Red Hat Satellite 已安装并配置。

流程

  1. 识别 Satellite 服务器的完全限定域名:

    # hostname -f
  2. 使用指向完全限定域名的 Web 浏览器访问卫星服务器上的 pub 目录:

    https://satellite.example.com/pub
  3. 当您第一次访问 Satellite 时,Web 浏览器中会显示不受信任的连接警告。接受自签名证书,并将 Satellite URL 添加为安全例外,以覆盖设置。此过程可能因所使用的浏览器而异。在接受安全例外前,请确保 Satellite URL 有效。
  4. 选择 katello-server-ca.crt
  5. 将证书作为证书颁发机构导入到您的浏览器中,并信任它来识别网站。

CLI 过程

  1. 在 Satellite CLI 中,将 katello-server-ca.crt 文件复制到您用于访问 Satellite Web UI 的机器:

    # scp /var/www/html/pub/katello-server-ca.crt username@hostname:remotefile
  2. 在浏览器中,将 katello-server-ca.crt 证书导入为证书颁发机构,并信任它来识别网站。

1.2. 登录到 Satellite

使用 Web 用户界面登录 Satellite 以进一步配置。

前提条件

流程

  1. 使用指向完全限定域名的 Web 浏览器访问 Satellite 服务器:

    https://satellite.example.com/
  2. 输入配置过程中创建的用户名和密码。如果在配置过程中没有创建用户,则默认用户名为 admin。如果登录时遇到问题,可以重置密码。更多信息请参阅 第 1.8 节 “重置管理用户密码”

1.3. 使用红帽身份管理凭证登录到 Satellitehammer CLI

本节描述了如何使用 Red Hat Identity Management (IdM)登录和密码登录到您的 Satellitehammer CLI。

前提条件

流程

  1. 代表 Satellite 用户获取 Kerberos 票据授予票据(TGT):

    $ kinit idm_user
    警告

    如果您要将 Red Hat Identity Management 设置为身份验证提供程序时,您启用了对 Satellite API 和 Satellite Web UI 的访问,攻击者可以在用户收到 Kerberos TGT 后获取 API 会话。即使用户之前没有在任何位置输入 Satellite 登录凭据,例如在浏览器中,也可以受到攻击。

  2. 如果没有启用自动协商身份验证,请使用 TGT 手动对hammer 进行身份验证:

    $ hammer auth login negotiate
  3. 可选:销毁集合中所有缓存的 Kerberos 票据:

    $ kdestroy -A

您仍然已登录,即使销毁 Kerberos 票据。

验证

  • 使用任何 hammer 命令确定系统不要求您再次进行身份验证:

    $ hammer host list
注意

要从hammer 注销,请输入: hammer auth logout

1.4. 使用红帽身份管理凭证通过 Firefox 浏览器登录到 Satellite Web UI

本节论述了如何使用 Firefox 浏览器使用红帽身份管理(IdM)登录和密码登录到 Satellite Web UI。

前提条件

  • 您已将 Satellite 服务器注册到 Red Hat Identity Management 中,并将服务器配置为使用 Red Hat Identity Management 进行身份验证。如需更多信息,请参阅 在 连接的网络环境中安装 Satellite 服务器 中的 使用 Red Hat Identity Management
  • 您在其上使用 Firefox 浏览器登录 Satellite Web UI 的主机是 Red Hat Identity Management 客户端。
  • 您有一个有效的 Red Hat Identity Management 登录和密码。
  • 红帽建议使用最新的稳定 Firefox 浏览器。
  • 为单点登录(SSO)配置了 Firefox 浏览器。如需更多信息,请参阅 在 Red Hat Enterprise Linux 中配置身份验证和授权 中的 将 Firefox 配置为使用 Kerberos 进行单点登录
  • 红帽身份管理服务器正在运行并可以被主机访问。

流程

  1. 使用您的 Red Hat Identity Management 凭证为您获取 Kerberos 票据授予票据(TGT):

    $ kinit idm_user
    Password for idm_user@EXAMPLE.COM:
  2. 在浏览器地址栏中,输入 Satellite 服务器的 URL。

    您已自动登录。

注意

或者,您可以跳过前两个步骤,并在 Satellite Web UI 中显示的字段中输入您的登录和密码。当您访问 Satellite Web UI 的主机不是 Red Hat Identity Management 客户端时,这也是唯一选项。

1.5. 使用红帽身份管理凭证通过 Chrome 浏览器登录到 Satellite Web UI

本节论述了如何使用 Chrome 浏览器使用 Red Hat Identity Management 登录和密码登录到 Satellite Web UI。

前提条件

  • 您已将 Satellite 服务器注册到 Red Hat Identity Management 中,并将服务器配置为使用 Red Hat Identity Management 进行身份验证。如需更多信息,请参阅 在 连接的网络环境中安装 Satellite 服务器 中的 使用 Red Hat Identity Management
  • 使用 Chrome 浏览器登录到 Satellite Web UI 的主机是一个 Red Hat Identity Management 客户端。
  • 您有一个有效的 Red Hat Identity Management 登录和密码。
  • 红帽建议使用最新的 stable Chrome 浏览器。
  • 红帽身份管理服务器正在运行并可以被主机访问。

流程

  1. 启用 Chrome 浏览器使用 Kerberos 身份验证:

    $ google-chrome --auth-server-whitelist=".example.com" --auth-negotiate-delegate-whitelist=”.example.com"
    注意

    您还可以列出特定的 Satellite 服务器,而不是列出整个域。

  2. 使用您的 Red Hat Identity Management 凭证为您获取 Kerberos 票据授予票据(TGT):

    $ kinit idm_user
    Password for idm_user@_EXAMPLE.COM:
  3. 在浏览器地址栏中,输入 Satellite 服务器的 URL。

    您已自动登录。

注意

或者,您可以跳过前三个步骤,并在 Satellite Web UI 中显示的字段中输入您的登录和密码。当您访问 Satellite Web UI 的主机不是 Red Hat Identity Management 客户端时,这也是唯一选项。

1.7. 更改密码

这些步骤介绍了如何更改密码。

流程

  1. 点击右上角的您的用户名。
  2. 从菜单中选择 My Account
  3. Current Password 字段中,输入当前密码。
  4. Password 字段中,输入新密码。
  5. Verify 字段中,再次输入新密码。
  6. 单击提交按钮 保存新密码。

1.8. 重置管理用户密码

使用以下步骤将管理密码重置为随机生成的字符,或者设置新的管理密码。

要重置管理用户密码

  1. 登录安装卫星服务器的基本操作系统。
  2. 输入以下命令重置密码:

    # foreman-rake permissions:reset
    Reset to user: admin, password: qwJxBptxb7Gfcjj5
  3. 使用此密码在 Satellite Web UI 中重置密码。
  4. 编辑卫星服务器上的 ~/.hammer/cli.modules.d/foreman.yml 文件以添加新密码:

    # vi ~/.hammer/cli.modules.d/foreman.yml

除非更新 ~/.hammer/cli.modules.d/foreman.yml 文件,否则您无法通过 Hammer CLI 使用新密码。

要设置新的管理用户密码

  1. 登录安装卫星服务器的基本操作系统。
  2. 要设置密码,请输入以下命令:

    # foreman-rake permissions:reset password=new_password
  3. 编辑卫星服务器上的 ~/.hammer/cli.modules.d/foreman.yml 文件以添加新密码:

    # vi ~/.hammer/cli.modules.d/foreman.yml

除非更新 ~/.hammer/cli.modules.d/foreman.yml 文件,否则您无法通过 Hammer CLI 使用新密码。

1.9. 在登录页面上设置自定义消息

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Settings,然后点击 General 选项卡。
  2. 单击登录页面 页页文本 旁边的编辑按钮,然后输入要在登录页面中显示所需的文本。例如,贵公司所需的此文本可能是警告消息。
  3. Save
  4. 从 Satellite Web UI 注销,并验证自定义文本现在显示在 Satellite 版本号下的登录页面中。

第 2 章 启动和停止 Red Hat Satellite

Satellite 提供 satellite-maintain service 命令,用于从命令行管理 Satellite 服务。这在创建 Satellite 备份时很有用。有关创建备份的更多信息,请参阅 第 12 章 备份 Satellite 服务器和 Capsule 服务器

使用 satellite-installer 命令安装 Satellite 后,所有 Satellite 服务都会自动启动并启用。通过执行以下内容来查看这些服务的列表:

# satellite-maintain service list

要查看运行的服务的状态,请执行:

# satellite-maintain service status

要停止 Satellite 服务,请执行:

# satellite-maintain service stop

要启动 Satellite 服务,请执行:

# satellite-maintain service start

要重启 Satellite 服务,请执行:

# satellite-maintain service restart

第 3 章 克隆 Satellite 服务器

您可以克隆 Satellite 服务器来创建实例,以测试实例的升级和将实例迁移到不同的机器或操作系统。这是升级或迁移期间提供更大的灵活性的可选步骤。

您不能在胶囊服务器上使用 Satellite 克隆工具。相反,您必须备份现有的 Capsule 服务器,在目标服务器上恢复它,然后重新配置 Capsule 服务器。

注意

如果您创建 Satellite 服务器的新实例,请在恢复备份后停用旧实例。克隆的实例不应在生产环境中并行运行。

术语

确保您了解以下术语:

源服务器
克隆的来源。
目标服务器
将文件复制到的远程服务器并将源服务器克隆到其中。

3.1. 克隆进程概述

  1. 备份源服务器。
  2. 将源服务器克隆到目标服务器。
  3. 关闭源服务器。
  4. 更新目标服务器上的网络配置,使其与其新主机名匹配目标服务器的 IP 地址。
  5. 如果有任何内容主机使用已弃用的 Katello Agent,请在所有这些内容主机及其 Capsules 上重启 goferd 服务来刷新连接。
  6. 测试新目标服务器。

3.2. 前提条件

要克隆 Satellite 服务器,请确保您有以下可用资源:

在开始克隆前,请确保存在以下条件:

  • 目标服务器位于隔离的网络中。这可避免与 Capsule 服务器和主机不需要的通信。
  • 目标服务器具有至少与源服务器相同的存储容量。

自定义配置文件

如果您在由 satellite-installer 工具或 Satellite 备份流程管理的源服务器上有任何自定义配置,您必须手动备份这些文件。

3.3. Pulp 数据注意事项

您可以在不包含 Pulp 数据的情况下克隆 Satellite 服务器。但是,为了让克隆的环境正常工作,您需要 Pulp 数据。如果目标服务器没有 Pulp 数据。它不是一个完全正常工作的 Satellite。

要将 Pulp 数据传送到目标服务器,有两个选项:

  • 使用带有 Pulp 数据的备份克隆
  • 使用没有 Pulp 数据的备份克隆,并从源服务器手动复制 /var/lib/pulp

如果您的 pulp_data.tar 文件大于 500 GB,或者使用较慢的存储系统,如 NFS,pulp_data.tar 文件大于 100 GB,请不要在备份中包含 pulp_data.tar,因为这可能会在提取过程中造成内存错误。将 pulp_data.tar 文件从源服务器复制到目标服务器。

要在没有 Pulp 数据的情况下备份

按照以下步骤 第 3.4 节 “克隆 Satellite 服务器” 中的步骤,并使用以下步骤替换涉及使用 Pulp 数据克隆的步骤:

  1. 对处于活跃状态的 PostgreSQL 数据库执行备份,不包括 Pulp 数据:

    # satellite-maintain backup offline --skip-pulp-content \
    --assumeyes /var/backup
  2. 停止并禁用 Satellite 服务:

    # satellite-maintain service stop
    # satellite-maintain service disable
  3. 将 Pulp 数据复制到目标服务器:

    # rsync --archive --partial --progress --compress \
    /var/lib/pulp/ target_server.example.com:/var/lib/pulp/

继续 第 3.4.2 节 “克隆到目标服务器”

3.4. 克隆 Satellite 服务器

使用以下步骤克隆 Satellite 服务器。请注意,由于必须复制和传输的数据作为这些步骤的一部分,所以可能需要大量时间来完成。

3.4.1. 为克隆准备源服务器

在源服务器上完成以下步骤:

  1. 验证 Satellite 订阅的池 ID:

    # subscription-manager list --consumed \
    --matches 'Red Hat Satellite'|grep "Pool ID:"|awk '{print $3}'

    请注意 Pool ID 以供以后使用。

  2. 删除 Red Hat Satellite 订阅:

    # subscription-manager remove --serial=$(subscription-manager list \
    --consumed \
    --matches 'Red Hat Satellite'|grep "Serial:"|awk '{print $2}')
  3. 确定 Pulp 数据的大小:

    # du -sh /var/lib/pulp/
  4. 如果您的 Pulp 数据少于 500 GB,请执行一个有活跃的 PostgreSQL 数据库的备份,包括 Pulp 数据。如果您有超过 500 GB Pulp 数据,请跳过以下步骤并完成 第 3.3 节 “Pulp 数据注意事项” 中的步骤。

    # satellite-maintain backup offline --assumeyes /var/backup
  5. 停止并禁用 Satellite 服务:

    # satellite-maintain service stop
    # satellite-maintain service disable

继续 第 3.4.2 节 “克隆到目标服务器”

3.4.2. 克隆到目标服务器

要克隆服务器,请在目标服务器上完成以下步骤:

  1. satellite-clone 工具默认使用 /backup/ 作为备份文件夹。如果您复制到其他文件夹,请更新 /etc/satellite-clone/satellite-clone-vars.yml 文件中的 backup_dir 变量。
  2. 将源 Satellite 中的备份文件放在目标服务器的 /backup/ 文件夹中。您可以挂载共享存储,或将备份文件复制到目标服务器上的 /backup/ 文件夹。
  3. 关闭源服务器。
  4. 输入以下命令在客户门户网站中注册、附加订阅并只启用所需的订阅:

    # subscription-manager register your_customer_portal_credentials
    # subscription-manager attach --pool=pool_ID
    # subscription-manager repos --disable=*
    # subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms \
    --enable=rhel-8-for-x86_64-baseos-rpms \
    --enable=satellite-maintenance-6.13-for-rhel-8-x86_64-rpms
    # dnf module enable satellite-maintenance:el8
  5. 安装 satellite-clone 软件包:

    # dnf install satellite-clone

    安装 satellite-clone 工具后,您可以调整任何配置,以适应 /etc/satellite-clone/satellite-clone-vars.yml 文件中的自己的部署。

  6. 运行 satellite-clone 工具:

    # satellite-clone
  7. 重新配置 DHCP、DNS、TFTP 和远程执行服务。克隆过程禁用目标 Satellite 服务器上的这些服务,以避免与源 Satellite 服务器冲突。
  8. 在 Satellite Web UI 中重新配置并启用 DHCP、DNS 和 TFTP。如需更多信息,请参阅 在 连接的网络环境中安装 Satellite 服务器 中的 在 Satellite 服务器上配置外部服务
  9. 使用用户名 admin 和密码 changeme 登录到 Satellite Web UI。立即更新 admin 密码以保护凭据。
  10. 确保选择正确的机构。
  11. 在 Satellite Web UI 中,导航到 Content > Subscriptions,然后点 Manage Manifest
  12. Refresh 按钮,然后点 Close 返回订阅列表。
  13. 验证可用的订阅是否正确。
  14. 按照 /usr/share/satellite-clone/logs/reassociate_capsules.txt 文件中的说明,恢复 Capsule 及其生命周期环境之间的关联。
  15. 更新网络配置,如 DNS,将目标服务器的 IP 地址与其新主机名匹配。satellite-clone 工具将主机名更改为源服务器的主机名。如果要将主机名更改为不同的主机名,您可以使用 satellite-change-hostname 工具。如需更多信息,请参阅管理 Red Hat Satellite 中的 重命名 Satellite 或 Capsule 服务器
  16. 如果源服务器使用 virt-who 守护进程,请在目标服务器上安装和配置它。将 /etc/virt-who.d/ 目录中的所有 virt-who 配置文件从源服务器复制到目标服务器上的同一目录中。如需更多信息,请参阅在 Red Hat Satellite 中配置虚拟机订阅。在使用以下章节进行升级后,可以安全地弃用源服务器。

第 4 章 使用预定义的配置集调整 Satellite 服务器

如果您的 Satellite 部署包含超过 5000 个主机,您可以使用预定义的调优配置文件来提高 Satellite 的性能。

请注意,您不能在 Capsules 上使用调优配置集。

您可以根据 Satellite 管理的主机数量以及可用的硬件资源,选择其中一个配置文件。

调优的配置文件位于 /usr/share/foreman-installer/config/foreman.hiera/tuning/sizes 目录中。

当您使用 --tuning 选项运行 satellite-installer 命令时,部署配置设置会按以下顺序应用到 Satellite:

  1. /usr/share/foreman-installer/config/foreman.hiera/tuning/common.yaml 文件中定义的默认性能优化配置集
  2. 要应用到部署的调优配置集,并在 /usr/share/foreman-installer/config/foreman.hiera/tuning/sizes/ 目录中定义
  3. 可选:如果您配置了 /etc/foreman-installer/custom-hiera.yaml 文件,Satellite 会应用这些配置设置。

请注意,/etc/foreman-installer/custom-hiera.yaml 文件中定义的配置设置会覆盖 tuned 配置集中定义的配置设置。

因此,在应用 tuned 配置集前,您必须比较 /usr/share/foreman-installer/config/foreman.hiera/tuning/common.yaml 文件中的 default 调整配置集和 /etc/foreman-installer/custom-hiera.yaml 文件中定义的配置设置,并从 /etc/foreman-installer/custom-hiera.yaml 文件中删除任何重复的配置。

default

受管主机数量:0 – 5000

RAM: 20G

CPU 内核数: 4

受管主机数量:5001945- the10000

RAM: 32G

CPU 内核数: 8

Large

受管主机数量: 10001945- the20000

RAM: 64G

CPU 内核数:16

extra-large

受管主机数量: 20001945- the60000

RAM:128G

CPU 内核数: 32

extra-extra-large

受管主机数量:60000+

RAM: 256G

CPU 内核数: 48+

流程

  1. 可选:如果您在 Satellite 服务器上配置了 custom-hiera.yaml 文件,请将 /etc/foreman-installer/custom-hiera.yaml 文件备份到 custom-hiera.original。如果 /etc/foreman-installer/custom-hiera.yaml 文件损坏,则可以使用备份文件将其恢复到其原始状态:

    # cp /etc/foreman-installer/custom-hiera.yaml \
    /etc/foreman-installer/custom-hiera.original
  2. 可选:如果您在 Satellite 服务器上配置了 custom-hiera.yaml 文件,请查看 /usr/share/foreman-installer/config/foreman.hiera/tuning/common.yaml 和您要应用到 /usr/share/foreman-installer/config/foreman.hiera/config/foreman.hiera/config/foreman.hiera/config /foreman.hiera/config/foreman.hiera/config/foreman.hiera/tuning/common.yaml 的调优配置集。将配置条目与 /etc/foreman-installer/custom-hiera.yaml 文件中的条目进行比较,并删除 /etc/foreman-installer/custom-hiera.yaml 文件中的任何重复的配置设置。
  3. 输入 satellite-installer 命令,其中包含您要应用的配置集的 --tuning 选项。例如,要应用中型性能优化配置集设置,请输入以下命令:

    # satellite-installer --tuning medium

第 5 章 从内部 Satellite 数据库迁移到外部数据库

安装 Red Hat Satellite 时,satellite-installer 命令会在与 Satellite 相同的服务器上安装 PostgreSQL 数据库。如果您使用默认内部数据库,但希望开始使用外部数据库来帮助服务器负载,您可以将内部数据库迁移到外部数据库。

要确认您的 Satellite 服务器是否具有内部数据库,您可以查询数据库的状态:

对于 PostgreSQL,输入以下命令:

# satellite-maintain service status --only postgresql

红帽不提供对外部数据库维护的支持或工具。这包括备份、升级和数据库调整。您必须具有自己的数据库管理员才能支持和维护外部数据库。

要从默认内部数据库迁移到外部数据库,您必须完成以下步骤:

  1. 第 5.2 节 “为外部数据库准备主机”.准备 Red Hat Enterprise Linux 8 服务器来托管外部数据库。
  2. 第 5.3 节 “安装 PostgreSQL”.使用具有 Satellite 的数据库、Pulp 和 Candlepin 以及拥有他们的专用用户准备 PostgreSQL。
  3. 第 5.4 节 “迁移到外部数据库”.编辑 satellite-installer 的参数以指向新数据库,并运行 satellite-installer

5.1. PostgreSQL 作为外部数据库注意事项

Foreman、Katello 和 Candlepin 使用 PostgreSQL 数据库。如果要将 PostgreSQL 用作外部数据库,以下信息可帮助您确定此选项是否适合您的 Satellite 配置:Satellite 支持 PostgreSQL 版本 12。

外部 PostgreSQL 的优点

  • 在 Satellite 上增加可用内存和可用 CPU
  • 在 PostgreSQL 数据库上将 shared_buffers 设置为一个高数字,而不会干扰 Satellite 上的其他服务的风险
  • 在不影响 Satellite 操作的情况下调整 PostgreSQL 服务器系统的灵活性

外部 PostgreSQL 的缺点

  • 部署复杂性的增加,使故障排除变得更加困难
  • 外部 PostgreSQL 服务器是要修补和维护的其他系统
  • 如果 Satellite 或 PostgreSQL 数据库服务器出现硬件或存储故障,则 Satellite 无法正常工作
  • 如果 Satellite 服务器和数据库服务器之间存在延迟,则性能可能会会受到影响

如果您怀疑您的 Satellite 上的 PostgreSQL 数据库会导致性能问题,请使用 Satellite 6 中的信息: 如何启用 postgres 查询日志来检测运行缓慢的查询,以确定您是否具有缓慢的查询。花费超过一秒的查询通常是由大型安装的性能问题导致的,而移至外部数据库可能并不可以帮助。如果您有缓慢的查询,请联系红帽支持团队。

5.2. 为外部数据库准备主机

使用最新的 Red Hat Enterprise Linux 8 安装最新置备的系统来托管外部数据库。

Red Hat Enterprise Linux 的订阅不提供将 Satellite 与外部数据库搭配使用的正确服务级别协议。您还必须将 Satellite 订阅附加到要用于外部数据库的基本操作系统。

前提条件

流程

  1. 使用附加 Satellite 基础架构订阅 中的说明,将 Satellite 订阅附加到您的服务器。
  2. 禁用所有软件仓库并只启用以下软件仓库:

    # subscription-manager repos --disable '*'
    # subscription-manager repos \
    --enable=satellite-6.13-for-rhel-8-x86_64-rpms \
    --enable=satellite-maintenance-6.13-for-rhel-8-x86_64-rpms \
    --enable=rhel-8-for-x86_64-baseos-rpms \
    --enable=rhel-8-for-x86_64-appstream-rpms
  3. 启用以下模块:

    # dnf module enable satellite:el8
    注意

    启用模块 satellite:el8 会警告与 postgresql:10ruby:2.5 冲突,因为这些模块在 Red Hat Enterprise Linux 8 中被设置为默认模块版本。模块 satellite:el8 依赖于模块 postgresql:12ruby:2.7,它将通过 satellite:el8 模块启用。这些警告不会导致安装过程失败,因此可以安全地忽略。有关 Red Hat Enterprise Linux 8 中的模块和生命周期流的更多信息,请参阅 Red Hat Enterprise Linux Application Streams 生命周期

5.3. 安装 PostgreSQL

您只能安装在内部数据库安装过程中使用 satellite-installer 工具安装的相同版本的 PostgreSQL。Satellite 支持 PostgreSQL 版本 12。

流程

  1. 要安装 PostgreSQL,请输入以下命令:

    # dnf install postgresql-server postgresql-evr
  2. 要初始化 PostgreSQL,请输入以下命令:

    # postgresql-setup initdb
  3. 编辑 /var/lib/pgsql/data/postgresql.conf 文件:

    # vi /var/lib/pgsql/data/postgresql.conf

    请注意,需要调整外部 PostgreSQL 的默认配置才能与 Satellite 一起工作。推荐的外部数据库配置调整如下:

    • checkpoint_completion_target: 0.9
    • max_connections: 500
    • shared_buffers: 512MB
    • work_mem: 4MB
  4. 删除 # 并编辑 以侦听入站连接:

    listen_addresses = '*'
  5. 编辑 /var/lib/pgsql/data/pg_hba.conf 文件:

    # vi /var/lib/pgsql/data/pg_hba.conf
  6. 在文件中添加以下行:

      host  all   all   Satellite_ip/32   md5
  7. 要启动并启用 PostgreSQL 服务,请输入以下命令:

    # systemctl enable --now postgresql
  8. 打开外部 PostgreSQL 服务器上的 postgresql 端口:

    # firewall-cmd --add-service=postgresql
    # firewall-cmd --runtime-to-permanent
  9. 切换到 postgres 用户并启动 PostgreSQL 客户端:

    $ su - postgres -c psql
  10. 创建三个数据库和专用角色:一个用于 Satellite,一个用于 Candlepin,另一个用于 Pulp :

    CREATE USER "foreman" WITH PASSWORD 'Foreman_Password';
    CREATE USER "candlepin" WITH PASSWORD 'Candlepin_Password';
    CREATE USER "pulp" WITH PASSWORD 'Pulpcore_Password';
    CREATE DATABASE foreman OWNER foreman;
    CREATE DATABASE candlepin OWNER candlepin;
    CREATE DATABASE pulpcore OWNER pulp;
  11. 退出 postgres 用户:

    # \q
  12. 从卫星服务器,测试您可以访问数据库。如果连接成功,命令会返回 1

    # PGPASSWORD='Foreman_Password' psql -h postgres.example.com  -p 5432 -U foreman -d foreman -c "SELECT 1 as ping"
    # PGPASSWORD='Candlepin_Password' psql -h postgres.example.com -p 5432 -U candlepin -d candlepin -c "SELECT 1 as ping"
    # PGPASSWORD='Pulpcore_Password' psql -h postgres.example.com -p 5432 -U pulp -d pulpcore -c "SELECT 1 as ping"

5.4. 迁移到外部数据库

备份并传输现有数据,然后使用 satellite-installer 命令将 Satellite 配置为连接到外部 PostgreSQL 数据库服务器。

前提条件

  • 您已在 Red Hat Enterprise Linux 服务器中安装和配置了 PostgreSQL 服务器。

流程

  1. 在 Satellite 服务器中,停止 Satellite 服务:

    # satellite-maintain service stop
  2. 启动 PostgreSQL 服务:

    # systemctl start postgresql
  3. 备份内部数据库:

    # satellite-maintain backup online --skip-pulp-content --preserve-directory -y /var/migration_backup
  4. 将数据传送到新的外部数据库中:

    PGPASSWORD='Foreman_Password' pg_restore -h postgres.example.com -U foreman -d foreman < /var/migration_backup/foreman.dump
    PGPASSWORD='Candlepin_Password' pg_restore -h postgres.example.com -U candlepin -d candlepin < /var/migration_backup/candlepin.dump
    PGPASSWORD='Pulpcore_Password' pg_restore -h postgres.example.com -U pulp -d pulpcore < /var/migration_backup/pulpcore.dump
  5. 使用 satellite-installer 命令更新 Satellite 以指向新数据库:

    satellite-installer --scenario satellite \
        --foreman-db-host postgres.example.com \
        --foreman-db-password Foreman_Password \
        --foreman-db-database foreman \
        --foreman-db-manage false \
        --foreman-db-username foreman \
        --katello-candlepin-db-host postgres.example.com \
        --katello-candlepin-db-name candlepin \
        --katello-candlepin-db-password Candlepin_Password \
        --katello-candlepin-manage-db false \
        --katello-candlepin-db-user candlepin \
        --foreman-proxy-content-pulpcore-manage-postgresql false \
        --foreman-proxy-content-pulpcore-postgresql-host postgres.example.com \
        --foreman-proxy-content-pulpcore-postgresql-db-name pulpcore \
        --foreman-proxy-content-pulpcore-postgresql-password Pulpcore_Password \
        --foreman-proxy-content-pulpcore-postgresql-user pulp

第 6 章 使用 Ansible Collections 管理 Satellite

卫星 Ansible Collections 是一组与 Satellite API 交互的 Ansible 模块。您可以使用 Satellite Ansible Collections 来管理和自动化卫星的许多方面。

6.1. 安装 Satellite Ansible 模块

使用这个流程安装 Satellite Ansible 模块。

流程

  • 使用以下命令安装软件包:

    # satellite-maintain packages install ansible-collection-redhat-satellite

6.2. 查看 Satellite Ansible 模块

您可以运行以下命令来查看已安装的 Satellite Ansible 模块:

# ansible-doc -l redhat.satellite

另外,您还可以在 Red Hat Ansible Automation Platform 中看到 Satellite Ansible 模块的完整列表和其他相关信息。

所有模块都在 redhat.satellite 命名空间中,可以以 redhat.satellite._module_name_ 格式引用。例如,要显示 activation_key 模块的信息,请输入以下命令:

$ ansible-doc redhat.satellite.activation_key

第 7 章 管理机构

组织根据所有权、目的、内容、安全级别或其他部门将 Red Hat Satellite 资源划分为逻辑组。您可以通过红帽卫星创建和管理多个组织,然后划分您的红帽订阅并分配给每个单独的组织。这提供了一种管理一个管理系统下多个组织的内容的方法。以下是机构管理的一些示例:

单个机构
带有简单系统管理链的小型企业。在这种情况下,您可以为业务创建一个机构,并为它分配内容。
多个机构
拥有数较小的业务单位的大型公司。例如,拥有单独的系统管理和软件开发组的公司。在这种情况下,您可以为公司及其拥有的每个业务单元创建组织。这会为每个单独保留系统基础架构。然后您可以根据每个机构根据需要分配内容。
外部机构
为其他组织管理外部系统的公司。例如,公司为客户提供云计算和 Web 托管资源。在这种情况下,您可以为公司自己的系统基础架构创建一个组织,然后为每个外部业务创建一个组织。然后,您可以根据需要为每个机构分配内容。

Red Hat Satellite 的默认安装有一个名为 Default Organization 的默认组织。

新用户

如果没有为新用户分配默认机构,则其访问会被限制。要授予用户系统权利,请将它们分配给默认机构。用户下次登录 Satellite 时,用户的帐户具有正确的系统权限。

7.1. 创建机构

使用这个流程创建机构。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Organizations
  2. 单击 New Organization
  3. Name 字段中输入机构的名称。
  4. Label 字段中输入机构的唯一标识符。这用于创建和映射某些资产,如内容存储的目录。使用字母、数字、下划线和横线,但没有空格。
  5. 可选:如果您不想启用简单内容访问(SCA),请取消选中 Simple Content Access 复选框。有关 SCA 的更多信息,请参阅 简单内容访问

    注意

    红帽不推荐禁用 SCA,因为授权模式已弃用。

  6. 可选:在 Description 字段中输入机构的描述。
  7. Submit
  8. 如果您分配了没有机构的主机,请选择您要添加到机构的主机,然后点 Proceed to Edit
  9. Edit 页面中,分配您要添加到机构的基础架构资源。这包括网络资源、安装介质、Kickstart 模板和其他参数。您可以随时返回到此页面,导航到 Administer > Organizations,然后选择要编辑的机构。
  10. Submit

CLI 过程

  1. 运行以下命令来创建机构:

    # hammer organization create \
    --name "My_Organization" \
    --label "My_Organization_Label" \
    --description "My_Organization_Description"
    注意

    以这种方式创建的组织默认启用简单内容访问(SCA)。如果要禁用 SCA,请在命令中添加 --simple-content-access false 参数。红帽不建议禁用 SCA,因为授权模式(不使用 SCA)已被弃用。

  2. 可选: 要编辑机构,请输入 hammer organization update 命令。例如,以下命令将计算资源分配给机构:

    # hammer organization update \
    --name "My_Organization" \
    --compute-resource-ids 1

7.2. 设置机构上下文

组织上下文定义了用于主机及其关联的资源的组织。

流程

机构菜单是菜单栏中的第一个菜单项,位于 Satellite Web UI 的左上角。如果您没有选择当前组织,则菜单显示 Any Organization。单击 任何组织 按钮,再选择要使用的组织。

CLI 过程

在使用 CLI 时,包含 --organization "My_Organization"--organization-label "My_Organization_Label" 作为选项。例如:

# hammer subscription list \
--organization "My_Organization"

此命令输出为 My_Organization 分配的订阅。

7.3. 创建机构调试证书

如果需要组织的调试证书,请使用以下步骤。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Organizations
  2. 选择您要为其生成调试证书的机构。
  3. Generate and Download
  4. 将证书文件保存到安全的位置。

为置备模板调试证书

如果环境中已下载它们的机构中不存在,则会自动为置备模板下载生成调试证书。

7.4. 使用机构调试证书浏览存储库内容

如果您有该组织的调试证书,您可以使用 Web 浏览器或使用 API 查看机构的存储库内容。

前提条件

流程

  1. 将私钥和公钥从证书分成两个文件。

    1. 为默认机构打开 X.509 证书:

      $ vi 'Default Organization-key-cert.pem'
    2. 将文件的内容从 -----BEGIN RSA PRIVATE KEY----- 复制到 -----END RSA PRIVATE KEY-----,到 key.pem 文件中。
    3. 将文件的内容从 -----BEGIN CERTIFICATE----- 复制到 -----END CERTIFICATE-----cert.pem 文件中。
  2. 要使用浏览器,您必须首先将 X.509 证书转换为浏览器支持的格式,然后导入证书。

对于 Firefox 用户

  1. 使用以下命令将证书转换为 PKCS12 格式:

    $ openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in cert.pem -inkey key.pem -out My_Organization_Label.pfx -name My_Organization
  2. 在 Firefox 浏览器中,导航到 Edit > Preferences > Advanced Tab
  3. 选择 查看证书 并点 Your Certificates 选项卡。
  4. 单击 Import,再选择要加载的 .pfx 文件。
  5. 在地址栏中输入以下 URL,以浏览所有存储库的可访问路径并检查其内容:

    https://satellite.example.com/pulp/content/

对于 CURL 用户

  • 要将机构调试证书与 CURL 搭配使用,请输入以下命令:

    $ curl -k --cert cert.pem --key key.pem \
    https://satellite.example.com/pulp/content/My_Organization_Label/Library/content/dist/rhel/server/7/7Server/x86_64/os/

    确保 cert.pemkey.pem 的路径是正确的绝对路径,否则命令会以静默方式失败。Pulp 使用组织标签,因此您必须在 URL 中输入机构标签。

7.5. 删除机构

如果机构没有与任何生命周期环境或主机组关联,您可以删除机构。如果有任何要删除的机构相关联的生命周期环境或主机组,请导航到 Administer > Organizations 并点相关机构来删除它们。不要删除安装期间创建的默认组织,因为默认组织是 Satellite 环境中任何未关联主机的占位符。任何给定时间,环境中必须至少有一个机构。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Organizations
  2. 从您要删除的机构名称右侧的列表中,选择 Delete
  3. 单击 OK 以删除该组织。

CLI 过程

  1. 输入以下命令检索您要删除的机构的 ID:

    # hammer organization list

    从输出中,记下您要删除的组织的 ID。

  2. 输入以下命令删除机构:

    # hammer organization delete --id Organization_ID

第 8 章 管理位置

位置功能与组织类似:它们提供了一种对资源和分配主机进行分组的方法。机构和位置有以下概念的区别:

  • 位置基于物理或虚拟设置。
  • 位置具有层次结构。

8.1. 创建位置

使用这个流程创建位置,以便您可以按照位置管理主机和资源。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Locations
  2. 单击 New Location
  3. 可选:从 Parent 列表中选择一个父位置。这会创建一个位置层次结构。
  4. Name 字段中输入位置的名称。
  5. 可选:在 Description 字段中输入位置描述。
  6. Submit
  7. 如果您没有分配位置的主机,请添加您要分配给新位置的任何主机,然后单击 Proceed to Edit
  8. 分配您要添加到位置的任何基础架构资源。这包括网络资源、安装介质、Kickstart 模板和其他参数。您可以随时返回到此页面,导航到 Administer > Locations,然后选择要编辑的位置。
  9. 单击 Submit 以保存您的更改。

CLI 过程

  • 输入以下命令来创建位置:

    # hammer location create \
    --description "My_Location_Description" \
    --name "My_Location" \
    --parent-id "My_Location_Parent_ID"

8.2. 创建多个位置

以下示例 Bash 脚本创建三个位置 - 伦敦,Munich,NSA - 并将它们分配给 Example 组织。

ORG="Example Organization"
LOCATIONS="London Munich Boston"

for LOC in ${LOCATIONS}
do
  hammer location create --name "${LOC}"
  hammer location add-organization --name "${LOC}" --organization "${ORG}"
done

8.3. 设置位置上下文

位置上下文定义用于主机及其关联的资源的位置。

流程

位置菜单是菜单栏中的第二个菜单项,位于 Satellite Web UI 的左上角。如果您还没有选择当前位置,则菜单会显示 Any Location。单击 Any location 并选择要使用的位置。

CLI 过程

在使用 CLI 时,包含 --location "My_Location"--location-id "My_Location_ID" 作为选项。例如:

# hammer host list --location "My_Location"

此命令列出与 My_Location 位置关联的主机。

8.4. 删除位置

如果位置没有与任何生命周期环境或主机组关联,您可以删除位置。如果有任何生命周期环境或与您要删除的位置关联的主机组,请导航到 Administer > Locations 并点相关位置来删除它们。不要删除安装期间创建的默认位置,因为默认位置是 Satellite 环境中任何未关联主机的占位符。在任何给定时间,环境中必须至少有一个位置。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Locations
  2. 从您要删除的位置名称右侧的列表中选择 Delete
  3. 单击 OK 以删除该位置。

CLI 过程

  1. 输入以下命令检索您要删除的位置的 ID:

    # hammer location list

    从输出中,记下您要删除的位置的 ID。

  2. 输入以下命令删除位置:

    # hammer location delete --id Location ID

第 9 章 管理用户和角色

用户使用系统定义一组个人的详细信息。用户可以与组织和环境关联,以便在创建新实体时自动使用默认设置。用户也可以附加 一个或多个角色,授予他们查看和管理组织和环境的权限。有关使用用户的更多信息,请参阅 第 9.1 节 “管理用户”

您可以通过将多个用户组织到用户组来管理一次的权限。用户组本身可以进一步分组以创建权限层次结构。有关创建用户组的更多信息,请参阅 第 9.4 节 “创建和管理用户组”

角色定义一组权限和访问级别。每个角色包含一个 权限过滤器,用于指定角色允许的操作。操作按照 资源类型分组。创建角色后,用户和组就可以与该角色关联。这样,您可以将相同的权限集分配给大型用户组。Satellite 提供了一组预定义的角色,还支持创建自定义角色和权限过滤器,如 第 9.5 节 “创建和管理角色” 所述。

9.1. 管理用户

作为管理员,您可以创建、修改和删除 Satellite 用户。您还可以通过分配不同的角色来为用户或一组用户配置访问权限

9.1.1. 创建用户

使用这个流程创建用户。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

流程

  1. 在 Satellite Web UI 中,进入到 Administer > Users
  2. 单击 创建用户
  3. Login 字段中,输入用户的用户名。
  4. FirstnameLastname 字段中,输入用户的实际名字和姓氏。
  5. Mail 字段中,输入用户的电子邮件地址。
  6. Description 字段中,添加新用户的描述。
  7. Language 列表中选择用户的特定语言。
  8. Timezone 列表中选择用户的时区。

    默认情况下,卫星服务器使用用户浏览器的语言和时区设置。

  9. 为该用户设置密码:

    1. Authorized by 列表中,选择用户通过身份验证的源。

      • INTERNAL :用于在卫星服务器中管理用户。
      • EXTERNAL : 要配置外部身份验证,如 在 连接的网络环境中安装 Satellite 服务器 中的 配置 外部身份验证 中所述。
    2. Password 字段和 Verify 字段中输入用户 的初始密码
  10. 单击 Submit 以创建该用户。

CLI 过程

  • 运行以下命令来创建用户:

    # hammer user create \
    --auth-source-id My_Authentication_Source \
    --login My_User_Name \
    --mail My_User_Mail \
    --organization-ids My_Organization_ID_1,My_Organization_ID_2 \
    --password My_User_Password

    --auth-source-id 1 设置表示用户在内部进行身份验证,您可以将外部身份验证源指定为替代方案。添加 --admin 选项,为用户授予管理员权限。不需要指定机构 ID,您可以稍后使用 update 子命令修改用户详情。

有关用户相关子命令的更多信息,请输入 hammer user --help

9.1.2. 为用户分配角色

使用这个流程为用户分配角色。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

流程

  1. 在 Satellite Web UI 中,进入到 Administer > Users
  2. 单击 要为其分配一个或多个角色的用户的用户名。

    注意

    如果没有列出用户帐户,请检查您当前是否查看正确的机构。要列出卫星中的所有用户,请单击 Default Organization,然后单击 Any Organization

  3. 单击 Locations 选项卡,然后在未分配任何位置时选择一个位置。
  4. 单击 Organizations 选项卡,再检查组织是否已分配。
  5. 单击 Roles 选项卡,以显示可用角色的列表。
  6. Roles 列表中选择要分配的角色。

    若要授予所有可用权限,请选中 Admin 复选框。

  7. Submit

若要查看分配给用户的角色,请单击 Roles 选项卡;分配的角色列在已 选项下。若要移除所分配角色,可单击 Selected items 中的角色名称。

CLI 过程

  • 要为用户分配角色,请输入以下命令:

    # hammer user add-role --id user_id --role role_name

9.1.3. 模拟不同的用户帐户

管理员可以以不同的用户身份临时登录到 Satellite Web UI 来模拟其他经过身份验证的用户进行测试和故障排除。在模拟另一个用户时,管理员有权精确访问系统中模拟用户可以访问的内容,包括同一菜单。

创建审计是为了记录管理员在模拟另一个用户时执行的操作。但是,管理员在模拟另一个用户时执行的所有操作都会记录为被模拟用户执行的。

前提条件

  • 确保您以具有 Satellite 管理员特权的用户身份登录到 Satellite Web UI。

流程

  1. 在 Satellite Web UI 中,进入到 Administer > Users
  2. 在您要模拟的用户右侧,从 Actions 列中的列表中,选择 Impersonate

当您想停止模拟会话时,在主菜单的右上角,单击模拟图标。

9.1.4. 创建仅限 API 的用户

您可以创建只能与 Satellite API 交互的用户。

前提条件

流程

  1. 以 admin 用户身份登录您的 Satellite。
  2. 导航到 Administer > Users 并选择用户。
  3. User 选项卡中,设置密码。不要保存或与其它密码保存或通信。您可以在控制台中创建伪随机字符串:

    # openssl rand -hex 32
  4. 为用户创建个人访问令牌。如需更多信息,请参阅 第 9.3.1 节 “创建一个个人访问令牌”

9.2. 管理 SSH 密钥

向用户添加 SSH 密钥允许在调配期间部署 SSH 密钥。有关置备过程中部署 SSH 密钥的详情,请参考 置备主机 中的 在置备过程中部署 SSH 密钥

有关 SSH 密钥和 SSH 密钥创建的详情,请参考在 Red Hat Enterprise Linux 8 中使用基于 SSH 的身份验证配置基本系统设置

9.2.1. 为用户管理 SSH 密钥

使用这个流程为用户添加或删除 SSH 密钥。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

前提条件

  • 确保您以 Red Hat Satellite 的 Admin 用户身份或为添加 SSH 密钥启用了 create_ssh_key 权限,为删除密钥启用了 destroy_ssh_key 权限的用户身份登陆到 Satellite web UI,用于。

流程

  1. 在 Satellite Web UI 中,进入到 Administer > Users
  2. Username 列中点所需用户的用户名。
  3. SSH Keys 选项卡。

    • 添加 SSH 密钥

      1. 在剪贴板中准备公共 SSH 密钥的内容。
      2. 单击添加 SSH 密钥
      3. Key 字段中,粘贴剪贴板中的公共 SSH 密钥内容。
      4. Name 字段中输入 SSH 密钥的名称。
      5. Submit
    • 要删除 SSH 密钥

      1. 点要删除的 SSH 密钥行中的 Delete
      2. 在确认提示中点 OK

CLI 过程

要为用户添加 SSH 密钥,您必须指定到公共 SSH 密钥文件的路径,或者指定复制到剪贴板的公共 SSH 密钥的内容。

  • 如果您有公共 SSH 密钥文件,请输入以下命令:

    # hammer user ssh-keys add \
    --user-id user_id \
    --name key_name \
    --key-file ~/.ssh/id_rsa.pub
  • 如果您有公共 SSH 密钥的内容,请输入以下命令:

    # hammer user ssh-keys add \
    --user-id user_id \
    --name key_name \
    --key ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNtYAAABBBHHS2KmNyIYa27Qaa7EHp+2l99ucGStx4P77e03ZvE3yVRJEFikpoP3MJtYYfIe8k 1/46MTIZo9CPTX4CYUHeN8= host@user

要从用户中删除 SSH 密钥,请输入以下命令:

# hammer user ssh-keys delete --id key_id --user-id user_id

要查看附加到用户的 SSH 密钥,请输入以下命令:

# hammer user ssh-keys info --id key_id --user-id user_id

要列出附加到用户的 SSH 密钥,请输入以下命令:

# hammer user ssh-keys list --user-id user_id

9.3. 管理个人访问令牌

个人访问令牌允许您在不使用密码的情况下验证 API 请求。您可以为个人访问令牌设置过期日期。如果您决定它应在过期日期前过期,可以撤销它。

9.3.1. 创建一个个人访问令牌

使用这个流程创建个人访问令牌。

流程

  1. 在 Satellite Web UI 中,进入到 Administer > Users
  2. 选择您要为其创建个人访问令牌的用户。
  3. Personal Access Tokens 选项卡中,点 Add Personal Access Token
  4. 输入个人访问令牌的名称
  5. 可选:选择 Expires 日期来设置过期日期。如果您没有设置过期日期,您的个人访问令牌将永远不会过期,除非被撤销。
  6. 点 Submit。到此,在 Personal Access Tokens 选项卡会包括您可用的个人访问令牌。

    重要

    确保存储您的个人访问令牌,因为您将无法在离开页面或创建新的个人访问令牌后再次访问它。您可以点 Copy to clipboard 复制个人访问令牌。

验证

  1. 向 Satellite 服务器发出 API 请求,并使用您的个人访问令牌进行身份验证:

    # curl https://satellite.example.com/api/status --user My_Username:My_Personal_Access_Token
  2. 您应该收到状态为 200 的响应,例如:

    {"satellite_version":"6.13.0","result":"ok","status":200,"version":"3.5.1.10","api_version":2}

    如果您再次返回 Personal Access Tokens 选项卡,您可以在个人访问令牌旁看到最后使用时间。

9.3.2. 撤销个人访问令牌

使用这个流程在过期日期前撤销个人访问令牌。

流程

  1. 在 Satellite Web UI 中,进入到 Administer > Users
  2. 选择您要撤销个人访问令牌的用户。
  3. Personal Access Tokens 选项卡中,找到您要撤销的个人访问令牌。
  4. 在您要撤销的个人访问令牌旁边的 Actions 列中点 Revoke

验证

  1. 向 Satellite 服务器发出 API 请求,并尝试使用撤销的个人访问令牌进行身份验证:

    # curl https://satellite.example.com/api/status --user My_Username:My_Personal_Access_Token
  2. 您会收到以下出错信息:

    {
      "error": {"message":"Unable to authenticate user My_Username"}
    }

9.4. 创建和管理用户组

9.4.1. 用户组

使用 Satellite,您可以为用户组分配权限。您还可以将用户组创建为其他用户组的集合。如果使用外部身份验证源,您可以将 Satellite 用户组映射到外部用户组,如 在 连接的网络环境中安装 Satellite 服务器 中的 配置外部用户组 中所述。

用户组在组织上下文中定义,这意味着您必须选择一个机构,然后才能访问用户组。

9.4.2. 创建用户组

使用这个流程创建用户组。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > User Groups
  2. 单击 Create User group
  3. User Group 选项卡中,指定新用户组的名称并选择组成员:

    • User Groups 列表中选择之前创建的用户组。
    • Users 列表中选择用户。
  4. Roles 选项卡上,选择您要分配给用户组的角色。或者,选择 Admin 复选框,以分配所有可用的权限。
  5. Submit

CLI 过程

  • 运行以下命令来创建用户组:

    # hammer user-group create \
    --name My_User_Group_Name \
    --role-ids My_Role_ID_1,My_Role_ID_2 \
    --user-ids My_User_ID_1,My_User_ID_2

9.4.3. 删除用户组

使用以下步骤从 Satellite 中删除用户组。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > User Groups
  2. 点您要删除的用户组右侧的 Delete
  3. 单击 Confirm 以删除用户组。

9.5. 创建和管理角色

Satellite 提供了一组预定义的角色,并足以用于标准任务,如 第 9.6 节 “Satellite 中可用的预定义角色” 中列出的权限。也可以配置自定义角色,并为它们分配一个或多个权限过滤器。权限过滤器定义允许特定资源类型的操作。某些卫星插件自动创建角色。

9.5.1. 创建角色

使用这个流程创建角色。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Roles
  2. 单击 Create Role
  3. 为角色提供 Name
  4. 单击 Submit 以保存您的新角色。

CLI 过程

  • 运行以下命令来创建角色:

    # hammer role create --name My_Role_Name

为了满足其目的,角色必须包含权限。创建角色后,继续执行 第 9.5.3 节 “为角色添加权限”

9.5.2. 克隆角色

使用 Satellite Web UI 克隆角色。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Roles,然后从所需角色右侧的下拉菜单中选择 Clone
  2. 为角色提供 Name
  3. 单击 Submit 以克隆角色。
  4. 单击克隆角色的名称,再导航到 Filters
  5. 根据需要编辑权限。
  6. 单击 Submit 以保存您的新角色。

9.5.3. 为角色添加权限

使用这个流程为角色添加权限。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Roles
  2. 从所需角色右侧的下拉列表中,选择 Add Filter
  3. 从下拉列表中选择资源类型(Miscellaneous) 组收集与任何资源组无关的权限。
  4. 单击您要从 Permission 列表中选择的权限。
  5. 根据所选的 资源类型, 您可以选择或取消选择 无限覆盖 复选框。默认选择 Unlimited 复选框,这意味着权限应用到所选类型的所有资源。当您禁用 无限 复选框时,搜索字段 激活。在此字段中,您可以使用 Satellite 搜索语法来指定进一步过滤。更多信息请参阅 第 9.7 节 “粒度权限过滤器”。当您启用 覆盖 复选框时,您可以添加额外的位置和组织,以允许角色访问附加位置和机构中的资源类型;您也可以从资源类型中删除已关联的位置和组织来限制访问。
  6. Next
  7. 单击 Submit 以保存更改。

CLI 过程

  1. 列出所有可用的权限:

    # hammer filter available-permissions
  2. 为角色添加权限:

    # hammer filter create \
    --permission-ids My_Permission_ID_1,My_Permission_ID_2 \
    --role My_Role_Name

如需有关角色和权限参数的更多信息,请输入 hammer 角色 --helphammer filter --help 命令。

9.5.4. 查看角色的权限

使用 Satellite Web UI 查看角色的权限。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Roles
  2. 单击所需角色右侧的 Filters 以进入 Filters 页面。

Filters 页面包含分配给角色的权限表,按照资源类型分组。也可以生成可在 Satellite 系统上使用的权限和操作的完整表。更多信息请参阅 第 9.5.5 节 “创建完全权限表”

9.5.5. 创建完全权限表

使用 Satellite CLI 创建权限表。

流程

  1. 确保已安装所需的软件包。在 Satellite 服务器中执行以下命令:

    # satellite-maintain packages install foreman-console
  2. 使用以下命令启动 Satellite 控制台:

    # foreman-rake console

    在控制台中插入以下代码:

    f = File.open('/tmp/table.html', 'w')
    
    result = Foreman::AccessControl.permissions {|a,b| a.security_block <=> b.security_block}.collect do |p|
          actions = p.actions.collect { |a| "<li>#{a}</li>" }
          "<tr><td>#{p.name}</td><td><ul>#{actions.join('')}</ul></td><td>#{p.resource_type}</td></tr>"
    end.join("\n")
    
    f.write(result)

    以上语法创建了权限表,并将其保存到 /tmp/table.html 文件中。

  3. Ctrl + D 退出 Satellite 控制台。在 /tmp/table.html 的第一行中插入以下文本:

    <table border="1"><tr><td>Permission name</td><td>Actions</td><td>Resource type</td></tr>

    /tmp/table.html 末尾附加以下文本:

    </table>
  4. 在 Web 浏览器中打开 /tmp/table.html 以查看表。

9.5.6. 删除角色

使用以下步骤从 Satellite 中删除角色。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Roles
  2. 从要删除的角色右侧的下拉列表中,选择 Delete
  3. 单击 Confirm 以删除该角色。

9.6. Satellite 中可用的预定义角色

下表提供了 Satellite 中预定义角色授予用户的权限概述。

要查看预定义角色授予的确切权限集,请以特权用户身份在 Satellite Web UI 中显示角色。如需更多信息,请参阅 第 9.5.4 节 “查看角色的权限”

表 9.1. 角色提供的权限
角色角色提供的权限

访问 Insights 管理员

添加并编辑 Insights 规则。

访问 Insights Viewer

查看 Insight 报告.

Ansible 角色管理器

在主机和主机组上扮演角色。查看、销毁和导入 Ansible 角色。查看、编辑、创建、销毁和导入 Ansible 变量。

Ansible Tower 清单读者

查看事实、主机和主机组。

书签管理器

创建、编辑和删除书签。

引导磁盘访问

下载引导磁盘。

合规管理器

查看、创建、编辑和销毁 SCAP 内容文件、合规策略和定制文件。查看合规性报告。

合规性查看器

查看合规性报告。

创建 ARF 报告

创建合规性报告。

默认角色

每个用户都被授予的权限集,而不管任何其他角色如何。

发现管理器

查看、调配、编辑和销毁发现的主机并管理发现规则。

Discovery Reader

查看主机和发现规则。

编辑主机

查看、创建、编辑、销毁和构建主机。

编辑分区表

查看、创建、编辑和销毁分区表。

Manager

查看并编辑全局设置。

机构管理员

除管理机构的权限外的所有权限。

根据机构定义的管理员角色。该角色对其他组织中的资源没有可见性。

通过克隆此角色并分配机构,您可以将该机构的管理委托给用户。

红帽访问日志

查看日志查看器和日志。

远程执行管理器

控制哪些角色有权运行基础架构作业。

远程执行用户

针对主机运行远程执行作业。

站点管理器

Manager 角色的剩余版本。

系统管理员

  • 编辑 Administer > Settings 中的全局设置。
  • 查看、创建、编辑和销毁用户、用户组和角色。
  • 查看、创建、编辑、销毁和分配机构和位置,但不查看这些资源。

具有此角色的用户可以创建用户并为他们分配所有角色。因此,请确保只为受信任的用户授予此角色。

任务管理器

查看和编辑 Satellite 任务。

任务读取器

只能查看 Satellite 任务的角色。

Viewer

被动角色,提供查看卫星结构、日志、报告和统计数据各个元素的配置。

查看主机

只能查看主机的角色。

virt-who Manager

具有完整 virt-who 权限的角色。

virt-who Reporter

将 virt-who 生成的报告上传到 Satellite。如果您手动配置 virt-who,并需要一个具有有限 virt-who 权限的用户角色。

virt-who Viewer

查看 virt-who 配置。具有此角色的用户可以使用现有的 virt-who 配置部署 virt-who 实例。

9.7. 粒度权限过滤器

第 9.5.3 节 “为角色添加权限” 所述,Red Hat Satellite 提供了将配置的用户权限限制为所选资源类型的实例的能力。这些粒度过滤器是对 Satellite 数据库的查询,受到大多数资源类型的支持。

9.7.1. 创建 Granular Permission Filter

使用这个流程创建精细的过滤器。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

Satellite 不应用搜索条件来创建操作。例如,在搜索字段中使用 name = "Default Location" 表达式的限制 create_locations 操作不会阻止用户将自定义名称分配给新创建的位置。

流程

Edit Filter 页面的 Search 字段中指定查询。取消选择要激活的字段的 Unlimited 复选框。查询的格式如下:

field_name operator value
  • field_name 标记要查询的字段。可用字段名称的范围取决于资源类型。例如,Partition Table 资源类型提供 family布局name 作为查询参数。
  • Operator 指定 field_name 之间的比较类型。有关适用 Operator 的概述,请参阅 第 9.7.3 节 “支持 Granular Search 的 Operator”
  • value 是用于过滤的值。例如,这可以是组织的名称。支持两种类型的通配符字符:下划线(_)提供单个字符替换,而百分比符号(%)替换零个或多个字符。

对于大多数资源类型,Search 字段提供了一个显示可用参数的下拉列表。在将光标放在搜索字段中后会出现此列表。对于许多资源类型,您可以使用逻辑运算符(如 )来组合查询,而不用 和 运算符。

CLI 过程

  • 要创建精细的过滤器,请输入带有 --search 选项的 hammer filter create 命令来限制权限过滤器,例如:

    # hammer filter create \
    --permission-ids 91 \
    --search "name ~ ccv*" \
    --role qa-user

此命令向 qa-user 角色添加一个查看、创建、编辑和销毁内容视图的权限,该视图仅适用于以 ccv 开头的名称。

9.7.2. 使用 Granular 权限过滤器的示例

作为管理员,您可以允许所选用户在环境路径的某些部分进行更改。通过以下过滤器,您可以在应用程序生命周期的开发阶段处理内容,但内容在推送到生产后将无法访问。

9.7.2.1. 为主机资源类型应用权限

以下查询仅将为 Host 资源类型指定的权限应用到名为 host-editors 的组中的主机。

hostgroup = host-editors

以下查询会返回记录名称与 XXXXY yyyy 或 zzzz 示例字符串匹配的记录:

name ^ (XXXX, Yyyy, zzzz)

您还可以将权限限制为所选环境。要做到这一点,在 Search 字段中指定环境名称,例如:

Dev

您可以使用 Search 字段中的粒度权限过滤器,将用户权限限制到特定的机构或位置。但是,一些资源类型提供了 GUI 替代方案,提供 位置和组织 选项卡的 覆盖 复选框。在这些选项卡上,您可以从可用机构和位置列表中选择。更多信息请参阅 第 9.7.2.2 节 “创建特定于组织的管理器角色”

9.7.2.2. 创建特定于组织的管理器角色

使用 Satellite Web UI 创建仅限于一个名为 org-1 的单个机构的管理角色。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Roles
  2. 克隆现有的 机构管理员 角色。从 Filters 按钮旁边的下拉列表中,选择 Clone。然后,系统会提示您为克隆角色插入名称,如 org-1 admin
  3. 单击所需的位置和组织,将它们与角色相关联。
  4. 单击 Submit 以创建该角色。
  5. 单击 org-1 admin,然后单击 Filters 以查看所有关联的过滤器。默认过滤器适用于大多数用例。但是,您可以选择性地点 Edit 来更改每个过滤器的属性。对于某些过滤器,如果您希望角色能够访问其他位置和机构中的资源,则可以启用 Override 选项。例如,通过选择 Domain 资源类型、Override 选项,然后使用 LocationsOrganizations 选项卡的额外位置和组织,您可以允许此角色访问额外位置和不与此角色关联的组织中的域。您还可以单击 New filter,将新过滤器与此角色关联。

9.7.3. 支持 Granular Search 的 Operator

表 9.2. 逻辑 Operator

操作符

Description

结合搜索条件.

not

否定一个表达式。

has

对象必须具有指定的属性。

表 9.3. 符号 Operator

操作符

Description

=

等于。文本字段不区分大小写的相同性比较。

!=

不等于。= 运算符的一个 inversion。

~

与 类似。搜索文本字段不区分大小写的搜索。

!~

不喜欢。~ 运算符的 inversion。

^

中:对文本字段不区分大小写的搜索的平等比较。这会生成不同的 SQL 查询 等于 比较,并更有效地进行多个值比较。

!^

不在 中。^ 运算符的 inversion。

>, >=

大于大于或等于。仅支持数字字段。

<, ⇐

小于小于或等于。仅支持数字字段。

第 10 章 配置电子邮件通知

电子邮件通知由卫星服务器定期创建,或者在完成某些事件后创建。定期通知可以每天、每周或每月发送。

有关可用通知类型的概述,请参阅 第 10.1 节 “电子邮件通知类型”

默认情况下,用户不会收到任何电子邮件通知。管理员可以配置用户,以根据通知类型和频率等条件接收通知。

重要

默认情况下,卫星服务器不启用传出电子邮件,因此您必须检查您的电子邮件配置。如需更多信息,请参阅 在 连接的网络环境中安装 Satellite 服务器 中的 为 传出电子邮件配置 Satellite 服务器

10.1. 电子邮件通知类型

Satellite 可以创建以下电子邮件通知:

  • 审计摘要 :由卫星服务器审核的所有活动的摘要。
  • 主机构建 :构建主机时发送的通知。
  • 主机勘误公告 :用户管理的主机的适用和可安装勘误表概述。
  • 合规策略摘要 :OpenSCAP 策略报告概述及其结果。
  • 提升勘误 :仅在内容视图提升后发送通知。它包含对注册到提升的内容视图的主机适用和可安装的勘误表摘要。这使得用户可以监控应用到哪些主机中的更新。
  • 同步勘误 :仅在同步存储库后发送通知。它包含同步引入的新勘误的摘要。

如需电子邮件通知类型的完整列表,请导航到 Satellite Web UI 中的 Administer > Users,点所需用户的 Username,然后选择 Email Preferences 选项卡。

10.2. 配置电子邮件通知首选项

您可以将 Satellite 配置为向注册到 Satellite 的单个用户发送电子邮件消息。如果存在,Satellite 会将电子邮件发送到添加到帐户的电子邮件地址。用户可以通过单击 Satellite Web UI 右上角的其名称并选择 My account 来编辑电子邮件地址。

从 Satellite Web UI 为用户配置电子邮件通知。

注意

如果要将电子邮件通知发送到组电子邮件地址而不是单独的电子邮件地址,请创建一个具有组电子邮件地址和最小 Satellite 权限的用户帐户,然后将用户帐户订阅到所需的通知类型。

流程

  1. 在 Satellite Web UI 中,进入到 Administer > Users
  2. 点您要编辑的用户的 Username
  3. User 选项卡上,验证 Mail 字段的值。在此字段中,电子邮件通知将发送到地址。
  4. 电子邮件首选项 选项卡上,选择 邮件已启用
  5. 选择您希望用户使用通知类型旁边的下拉菜单接收的通知。

    注意

    通过在 Mail Query 文本框中输入所需的查询,可以过滤 审计概述 通知。

  6. Submit

    用户将开始接收通知电子邮件。

10.3. 测试电子邮件发送

要验证电子邮件的发送,请向用户发送测试电子邮件。如果电子邮件已发送,则设置正确。

流程

  1. 在 Satellite Web UI 中,进入到 Administer > Users
  2. 点用户名。
  3. 电子邮件首选项 选项卡上,单击测试电子邮件

    将立即向用户的电子邮件地址发送测试电子邮件消息。

如果发送电子邮件,则验证已完成。否则,您必须执行以下诊断步骤:

  1. 验证用户的电子邮件地址。
  2. 验证卫星服务器的电子邮件配置。
  3. 检查防火墙和邮件服务器日志。

10.4. 测试电子邮件通知

要验证用户是否已正确订阅通知,请手动触发通知。

流程

  • 要触发通知,请执行以下命令:

    # foreman-rake reports:_My_Frequency_

    My_Frequency 替换为以下之一:

  • daily
  • weekly
  • monthly

这会触发所有订阅用户的指定频率调度的所有通知。如果每个订阅的用户收到通知,验证会成功。

注意

目前不支持手动向单个用户发送触发的通知。

10.5. 更改主机的电子邮件通知设置

卫星可以将主机的事件通知发送到主机的注册所有者。您可以将 Satellite 配置为向单个用户或用户组发送电子邮件通知。当设置为用户组时,订阅了电子邮件类型的所有组成员都会收到信息。

接收主机的电子邮件通知可能很有用,但如果您期望收到频繁的错误,还会造成问题,例如,您正解决的已知问题或错误。

流程

  1. 在 Satellite Web UI 中,进入到 Hosts > All Hosts,找到您要查看的主机,并在 Actions 列中点 Edit
  2. 进入 Additional Information 选项卡。如果选中了在 Satellite 报告中包含此主机的 复选框,则会在该主机上启用电子邮件通知。
  3. 可选:切换复选框以启用或禁用电子邮件通知。

    注意

    如果要接收电子邮件通知,请确保在用户设置中设置了电子邮件地址。

第 11 章 管理安全合规性

安全合规管理是定义安全策略的持续流程,审计系统符合这些政策,并解决不合规实例。任何不合规都根据机构的配置管理策略进行管理。安全策略的范围包括特定于主机范围到行业范围内,因此需要在定义中具有灵活性。

使用 Satellite,您可以在所有注册的主机上调度合规审计和报告。

11.1. 安全内容自动化协议

Satellite 使用安全内容自动化协议(SCAP)标准来定义安全策略。

SCAP 是基于 XML 的多个规格的框架,如可扩展检查列表配置描述格式(XCCDF)和开放漏洞和评估语言(OVAL)中描述的漏洞。这些规格被封装为 数据流文件

XCCDF 中的清单项目(也称为 规则 )表达了系统项目所需的配置。例如,规则可以指定没有人可以使用 root 用户帐户通过 SSH 登录主机。规则可以分组到一个或多个 XCCDF 配置集 中,允许多个配置集共享规则。

OpenSCAP 扫描程序工具针对规则评估主机上的系统项目,并在资产报告格式(ARF)中生成报告,然后返回到 Satellite 来监控和分析。

表 11.1. OpenSCAP 扫描程序支持的 SCAP Framework 1.3 中的规格

标题

描述

版本

SCAP

安全内容自动化协议

1.3

XCCDF

可扩展配置检查列表描述格式

1.2

OVAL

开放漏洞和评估语言

5.11

-

资产识别

1.1

ARF

资产报告格式

1.1

CCE

常见配置枚举

5.0

CPE

常见平台枚举

2.3

CVE

常见的漏洞和风险

2.0

CVSS

常见漏洞评分系统

2.0

其他资源

11.2. Satellite 中的 SCAP 内容

SCAP 内容是一个 SCAP 数据流文件,其中包含合规性、配置或安全基准的实施。单个数据流通常包含多个 XCCDF 配置集。XCCDF 配置集定义了一个行业标准或自定义安全标准,您可以评估 Satellite 中主机配置的合规性,如通用目的操作系统(OSPP)、健康保险可移植性和责任法案(HIPAA)和 PCI-DSS v3.2.1 Control Baseline for Red Hat Enterprise Linux 9。您可以使用 定制文件 根据要求调整现有的 XCCDF 配置集。

在 Satellite 中,您可以使用 SCAP 内容中的 XCCDF 配置集,最终是定制文件来定义 合规策略。Satellite 包括 OpenSCAP 项目 提供的 SCAP 安全指南中的默认 SCAP 内容。

有关如何下载、部署、修改和创建自己的内容的更多信息,请参阅:

11.2.1. 支持的 SCAP 版本

Satellite 支持 SCAP 版本 1.2 和 1.3 的内容。

11.3. 合规策略部署选项

您可以使用以下方法之一部署合规策略:

Ansible 部署
您可以使用 Ansible 角色配置主机以进行合规性扫描。
Puppet 部署
您可以使用 Puppet 类和 Puppet 代理配置主机以进行合规性扫描。
手动部署
您可以手动为合规性扫描配置主机。

11.4. 配置合规策略部署方法

使用以下步骤为您选择的方法配置 Satellite 来部署合规策略。在稍后 创建合规策略 时,您将选择这些方法之一。

Ansible 部署的步骤

  1. 导入 foreman.foreman_scap_client Ansible 角色。

    如需更多信息,请参阅在 Red Hat Satellite 中使用 Ansible 集成管理配置

  2. 将创建的策略和 foreman.foreman_scap_client Ansible 角色分配到主机或主机组。
  3. 若要触发部署,请手动对主机或主机组运行 Ansible 角色,或者使用远程执行进行常规策略更新来设置周期性作业。

    如需更多信息,请参阅管理主机中的配置和设置远程作业

Puppet 部署的步骤

  1. 确保 Puppet 已启用。
  2. 确保主机上安装了 Puppet 代理。
  3. 导入包含 foreman_scap_client Puppet 模块的 Puppet 环境。

    如需更多信息,请参阅在 Red Hat Satellite 中使用 Puppet 集成管理配置

  4. 将创建的策略和 foreman_scap_client Puppet 类分配给主机或主机组。

    Puppet 会触发下一次常规运行的部署,也可以手动运行 Puppet。Puppet 默认每 30 分钟运行一次。

手动部署的步骤

11.5. 列出可用的 SCAP 内容

使用这个流程查看已在 Satellite 中载入的 SCAP 内容。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

前提条件

  • 您的用户帐户具有 view_scap_contents 权限。

流程

  • 在 Satellite Web UI 中,进入到 Hosts > Compliance - SCAP contents

CLI 过程

  • 在 Satellite 服务器上运行以下 Hammer 命令:

    # hammer scap-content list \
    --location "My_Location" \
    --organization "My_Organization"

11.6. 配置 SCAP 内容

您可以上传 SCAP 数据流和定制文件来定义合规策略。

11.6.1. 加载默认 SCAP 内容

通过在 Satellite 服务器上载入默认 SCAP 内容,您可以确保加载 SCAP 安全指南(SSG)中的数据流,并分配给所有机构和位置。

SSG 由 Satellite 服务器的操作系统提供,并安装在 /usr/share/xml/scap/ssg/content/ 中。请注意,可用的数据流取决于 Satellite 运行的操作系统版本。您只能使用此 SCAP 内容扫描与 Satellite 服务器具有相同次 RHEL 版本的主机。如需更多信息,请参阅 第 11.6.2 节 “为 RHEL 获取支持的 SCAP 内容”

前提条件

  • 您的用户帐户分配了 create_scap_contents 权限的角色。

流程

  • 在 Satellite 服务器上使用以下 Hammer 命令:

    # hammer scap-content bulk-upload --type default

11.6.2. 为 RHEL 获取支持的 SCAP 内容

您可以在红帽客户门户网站上获取 Red Hat Enterprise Linux 的最新 SCAP 安全指南(SSG)。您必须获取为主机的次要 RHEL 版本指定的 SSG 版本。

流程

  1. 在软件包浏览器中访问 SCAP 安全指南
  2. Version 菜单中,为您的主机运行的 RHEL 的次版本选择最新的 SSG 版本。例如,对于 RHEL 8.6,请选择名为 If el8_6 的版本
  3. 下载软件包 RPM。
  4. 从 RPM 中提取 data-stream 文件(*-ds.xml)。例如:

    $ rpm2cpio scap-security-guide-0.1.69-3.el8_6.noarch.rpm \
    | cpio -iv --to-stdout ./usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml \
    > ssg-rhel-8.6-ds.xml
  5. 将数据流上传到 Satellite。如需更多信息,请参阅 第 11.6.3 节 “上传额外的 SCAP 内容”

其他资源

11.6.3. 上传额外的 SCAP 内容

您可以将其他 SCAP 内容上传到 Satellite 服务器,可以是自己创建的内容,或者在其他位置获取。请注意,红帽只提供对从红帽获取的 SCAP 内容的支持。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

前提条件

  • 您的用户帐户具有 create_scap_contents 权限。
  • 您已获取了 SCAP 数据流文件。

流程

  1. 在 Satellite Web UI 中,进入到 Hosts > Compliance > SCAP contents
  2. 单击 Upload New SCAP Content
  3. Title 文本框中输入标题,如 My SCAP Content
  4. Scap File 中,单击 Choose file,导航到包含 SCAP data-stream 文件的位置,然后单击 Open
  5. 位置 选项卡上,选择位置。
  6. 组织选项卡上,选择组织
  7. Submit

如果成功加载 SCAP 内容文件,则会显示类似于 Successfully created My SCAP Content 的消息。

CLI 过程

  1. 将 SCAP data-stream 文件放在 Satellite 服务器上的目录中,如 /usr/share/xml/scap/my_content/
  2. 在 Satellite 服务器上运行以下 Hammer 命令:

    # hammer scap-content bulk-upload --type directory \
    --directory /usr/share/xml/scap/my_content/ \
    --location "My_Location" \
    --organization "My_Organization"

验证

11.6.4. 定制 XCCDF 配置集

您可以使用 定制文件 自定义现有的 XCCDF 配置集,而无需编辑原始 SCAP 内容。单个定制文件可以包含多个 XCCDF 配置集的自定义。

您可以使用 SCAP Workbench 工具创建定制文件。有关使用 SCAP Workbench 工具的更多信息,请参阅 为您的用例自定义 SCAP 安全指南

然后,您可以将定制文件分配给合规策略,以在策略中自定义 XCCDF 配置集。

11.6.5. 上传定制文件

上传定制文件后,您可以在自定义策略中应用它来自定义 XCCDF 配置集。

前提条件

  • 您的用户帐户具有 create_tailoring_files 权限。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Compliance - Tailoring Files,再点 New Tailoring File
  2. Name 文本框中输入名称。
  3. 单击 Choose File,导航到包含定制文件的位置,然后选择 Open
  4. 单击 Submit 以上传所选的定制文件。

11.7. 管理合规策略

合规策略 是一个调度的审计,用于检查指定的主机是否符合 SCAP 内容中的特定 XCCDF 配置集。

您可以指定 Satellite 服务器上扫描的调度,并在主机上执行扫描。扫描完成后,会生成 ARF 格式的报告并上传到 Satellite 服务器。合规策略不对扫描的主机进行任何更改。

合规策略定义 SCAP 客户端配置和 cron 计划。然后,策略会与分配策略的主机上的 SCAP 客户端一起部署。

11.7.1. 创建合规策略

通过创建合规策略,您可以定义和规划安全合规要求,并确保您的主机保持符合您的安全策略。

前提条件

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Compliance - Policies
  2. 单击 New PolicyNew Compliance Policy
  3. 选择部署方法: AnsiblePuppetManual。然后单击"下一步"
  4. 输入此策略的名称,描述(可选),然后单击 Next
  5. 选择要应用的 SCAP ContentXCCDF Profile,然后单击 Next

    请注意,Satellite 不会检测所选 XCCDF 配置集是否包含任何规则。一个空的 XCCDF 配置集(如 Default XCCDF Profile )将返回空的报告。

  6. 可选: 要自定义 XCCDF 配置集,请选择 Tailoring FileXCCDF Profile in Tailoring File,然后点 Next
  7. 指定应用策略时的调度时间。从 Period 列表中选择 WeeklyMonthlyCustomCustom 选项允许在策略调度中更大的灵活性。

    • 如果您选择 Weekly,还要从 Weekday 列表中选择所需的日期。
    • 如果您选择 Monthly,在月的几天中指定所需的 日期
    • 如果您选择 Custom,请在 Cron line 字段中输入有效的 Cron 表达式。
  8. 选择要应用策略的位置,然后单击 Next
  9. 选择要应用该策略的组织,然后单击下一步
  10. 可选:选择要为其分配策略的主机组。
  11. Submit

11.7.2. 查看合规策略

您可以预览由特定 OpenSCAP 内容和配置集组合应用的规则。当您计划策略时,这非常有用。

前提条件

  • 您的用户帐户具有 view_policies 权限。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Compliance - Policies
  2. 在所需策略的 Actions 列中,点 Show Guide 或从列表中选择它。

11.7.3. 编辑合规策略

在 Satellite Web UI 中,您可以编辑合规策略。

Puppet 代理在下次运行时将编辑的策略应用到主机。默认情况下,每 30 分钟发生一次。如果使用 Ansible,您必须手动运行 Ansible 角色,或者配置了在主机上运行 Ansible 角色的周期性远程执行作业。

前提条件

  • 您的用户帐户具有 view_policiesedit_policies 权限。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Compliance - Policies
  2. 点所需策略的名称。
  3. 编辑必要的属性。
  4. Submit

11.7.4. 删除合规策略

在 Satellite Web UI 中,您可以删除现有的合规策略。

前提条件

  • 您的用户帐户具有 view_policiesdestroy_policies 权限。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Compliance - Policies
  2. 在所需策略的 Actions 列中,从列表中选择 Delete
  3. 在确认信息中点 OK

11.8. 部署合规策略

若要部署合规策略,您必须安装 SCAP 客户端,更新 cron 调度文件,并将策略中选择的 SCAP 内容上传到主机上。

11.8.1. 使用 Ansible 在主机组中部署策略

使用 Ansible 在主机组中部署合规策略后,Ansible 角色将安装 SCAP 客户端并根据所选的合规策略在主机上配置 OpenSCAP 扫描。

前提条件

  • 您已在 Capsule 上启用了 OpenSCAP。如需更多信息,请参阅安装 Capsule 服务器 中的 在 Capsule 服务器上启用 OpenSCAP
  • 您已启用并将操作系统存储库同步到 Satellite,并在主机上启用它们:

    • Red Hat Enterprise Linux 9 for x86_64 - BaseOS 和 Appstream (RPMs)- rhel-9-for-x86_64-baseos-rpmsrhel-9-for-x86_64-appstream-rpms
    • Red Hat Enterprise Linux 8 for x86_64 - BaseOS 和 Appstream (RPMs)- rhel-8-for-x86_64-baseos-rpmsrhel-8-for-x86_64-appstream-rpms
    • Red Hat Enterprise Linux 7 Server 和 Extras (RPMs)- rhel-7-server-rpmsrhel-7-server-extras-rpms
  • 您已启用并将 Satellite 客户端 6 存储库同步到 Satellite,并在主机上启用它。
  • 您已使用 Ansible 部署选项 创建了合规策略, 并分配了主机组。

流程

  1. 在 Satellite Web UI 中,进入到 Configure > Host Groups
  2. 点您要为 OpenSCAP 报告配置的主机组。
  3. OpenSCAP Capsule 列表中,选择您要使用的启用了 OpenSCAP 的 Capsule。
  4. Ansible Roles 选项卡上,分配 foreman.foreman_scap_client Ansible 角色。
  5. 可选:在 Parameters 选项卡中,配置角色的任何 Ansible 变量。
  6. 单击 Submit 以保存您的更改。
  7. 在所需主机组的行中,导航到 Actions 列,再选择 Run all Ansible roles

11.8.2. 使用 Ansible 在主机上部署策略

使用 Ansible 在主机上部署合规策略后,Ansible 角色将安装 SCAP 客户端并根据所选的合规策略在主机上配置 OpenSCAP 扫描。

前提条件

  • 您已在 Capsule 上启用了 OpenSCAP。如需更多信息,请参阅安装 Capsule 服务器 中的 在 Capsule 服务器上启用 OpenSCAP
  • 您已启用并将操作系统存储库同步到 Satellite,并在主机上启用它们:

    • Red Hat Enterprise Linux 9 for x86_64 - BaseOS 和 Appstream (RPMs)- rhel-9-for-x86_64-baseos-rpmsrhel-9-for-x86_64-appstream-rpms
    • Red Hat Enterprise Linux 8 for x86_64 - BaseOS 和 Appstream (RPMs)- rhel-8-for-x86_64-baseos-rpmsrhel-8-for-x86_64-appstream-rpms
    • Red Hat Enterprise Linux 7 Server 和 Extras (RPMs)- rhel-7-server-rpmsrhel-7-server-extras-rpms
  • 您已启用并将 Satellite 客户端 6 存储库同步到 Satellite,并在主机上启用它。
  • 您已使用 Ansible 部署选项 创建了合规策略

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > All Hosts,然后在您要为 OpenSCAP 报告配置的主机上选择 Edit
  2. OpenSCAP Capsule 列表中,选择您要使用的启用了 OpenSCAP 的 Capsule。
  3. Ansible Roles 选项卡上,添加 foreman.foreman_scap_client Ansible 角色。
  4. 可选:在 Parameters 选项卡中,配置角色的任何 Ansible 变量。
  5. 单击 Submit 以保存您的更改。
  6. 单击 Hosts breadcrumbs 链接,以返回主机索引页面。
  7. 选择您要向其添加策略的主机或主机。
  8. 单击 Select Action
  9. 从列表中选择 Assign Compliance Policy
  10. Assign Compliance Policy 窗口中,为下一个批量操作选择 Remember hosts
  11. 从可用策略列表中选择所需的策略,然后单击 Submit
  12. 单击 Select Action
  13. 从列表中选择 Run all Ansible roles

11.8.3. 使用 Puppet 在主机组中部署策略

使用 Puppet 在主机组中部署合规策略后,Puppet 代理将安装 SCAP 客户端,并根据所选的合规性策略在下一个 Puppet 上的主机上配置 OpenSCAP 扫描。

前提条件

  • 您已在 Capsule 上启用了 OpenSCAP。如需更多信息,请参阅安装 Capsule 服务器 中的 在 Capsule 服务器上启用 OpenSCAP
  • 您已启用并将操作系统存储库同步到 Satellite,并在主机上启用它们:

    • Red Hat Enterprise Linux 9 for x86_64 - BaseOS 和 Appstream (RPMs)- rhel-9-for-x86_64-baseos-rpmsrhel-9-for-x86_64-appstream-rpms
    • Red Hat Enterprise Linux 8 for x86_64 - BaseOS 和 Appstream (RPMs)- rhel-8-for-x86_64-baseos-rpmsrhel-8-for-x86_64-appstream-rpms
    • Red Hat Enterprise Linux 7 Server 和 Extras (RPMs)- rhel-7-server-rpmsrhel-7-server-extras-rpms
  • 您已启用并将 Satellite 客户端 6 存储库同步到 Satellite,并在主机上启用它。
  • 您已使用 Puppet 部署选项 创建了合规策略, 并分配了主机组。

流程

  1. 在 Satellite Web UI 中,进入到 Configure > Host Groups
  2. 点您要为 OpenSCAP 报告配置的主机组。
  3. Environment 列表中,选择包含 foreman_scap_client* Puppet 类的 Puppet 环境。
  4. OpenSCAP Capsule 列表中,选择启用了 OpenSCAP 的 Capsule。
  5. Puppet ENC 选项卡中,添加 foreman_scap_client Puppet 类。
  6. 可选:配置任何 Puppet 类参数
  7. 单击 Submit 以保存您的更改。

11.8.4. 使用 Puppet 在主机上部署策略

使用 Puppet 在主机上部署合规策略后,Puppet 代理将安装 SCAP 客户端,并根据所选的合规策略在下一次 Puppet 的主机上配置 OpenSCAP 扫描。

前提条件

  • 您已在 Capsule 上启用了 OpenSCAP。如需更多信息,请参阅安装 Capsule 服务器 中的 在 Capsule 服务器上启用 OpenSCAP
  • 您已启用并将操作系统存储库同步到 Satellite,并在主机上启用它们:

    • Red Hat Enterprise Linux 9 for x86_64 - BaseOS 和 Appstream (RPMs)- rhel-9-for-x86_64-baseos-rpmsrhel-9-for-x86_64-appstream-rpms
    • Red Hat Enterprise Linux 8 for x86_64 - BaseOS 和 Appstream (RPMs)- rhel-8-for-x86_64-baseos-rpmsrhel-8-for-x86_64-appstream-rpms
    • Red Hat Enterprise Linux 7 Server 和 Extras (RPMs)- rhel-7-server-rpmsrhel-7-server-extras-rpms
  • 您已启用并将 Satellite 客户端 6 存储库同步到 Satellite,并在主机上启用它。
  • 您已使用 Puppet 部署选项 创建了合规策略

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > All Hosts,然后在您要为 OpenSCAP 报告配置的主机上选择 Edit
  2. Environment 列表中,选择包含 foreman_scap_clientforeman_scap_client::params Puppet 类的 Puppet 环境。
  3. OpenSCAP Capsule 列表中,选择您要使用的启用了 OpenSCAP 的 Capsule。
  4. Puppet ENC 选项卡中,添加 foreman_scap_client Puppet 类。
  5. 可选:配置任何 Puppet 类参数
  6. 单击 Hosts breadcrumbs 链接,以返回主机索引页面。
  7. 选择您要向其添加策略的主机或主机。
  8. 单击 Select Action
  9. 从列表中选择 Assign Compliance Policy
  10. Assign Compliance Policy 窗口中,为下一个批量操作选择 Remember hosts
  11. 从可用策略列表中选择所需的策略,然后单击 Submit

11.9. 对需求运行安全合规扫描

主机由分配给主机的合规策略中定义的 CRON 调度定期执行 OpenSCAP 扫描。但是,您也可以随时手动针对所有配置的合规策略在主机上运行扫描。

前提条件

流程

  1. 导航到 Hosts > All Hosts
  2. 点所需主机的主机名。
  3. 在主机详情页面上,展开 Schedule a job 下拉菜单。
  4. 选择 Run OpenSCAP scan

验证

  1. 在主机详情概述中找到 Recent 作业 卡。
  2. 选择 Running 选项卡。除非作业已完成,表 显示所有 OpenSCAP 策略的 Run scan 作业。
  3. Recent jobs 卡中,选择 Finished 选项卡。
  4. 如果作业成功完成,您应该在作业所在行中看到 succeeded 状态。
  5. 可选:点击作业名称来查看调用详情。

11.10. 监控合规性

借助 Satellite,您可以集中进行合规监控和管理。合规仪表板概述了主机合规性,以及查看该策略范围内每个主机的详细信息。合规报告提供了与适用策略相关的每个主机合规性的详细分析。使用这些信息,您可以评估每个主机所带来的风险,并管理使主机处于合规状态所需的资源。通过监控 SCAP 合规性,您可以验证策略合规性并检测合规性中的更改。

11.10.1. 搜索合规性报告

使用 Compliance Reports 搜索字段过滤对任何主机子集的可用报告列表。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Reports
  2. 可选: 要查看可用搜索参数列表,请点空 Search 字段。
  3. Search 字段中输入搜索查询,然后单击 Search。搜索查询不区分大小写。

搜索查询示例

查找超过五个规则失败的所有合规性报告
failed > 5
查找 2023 年 1 月 1 日之后创建的所有合规性报告,以用于包含 prod-的主机名的主机。
host ~ prod- AND date > "Jan 1, 2023"
从一小时前查找 rhel7_audit 合规策略生成的所有报告
"1 hour ago" AND compliance_policy = date = "1 hour ago" AND compliance_policy = rhel7_audit
查找通过 XCCDF 规则的报告
xccdf_rule_passed = xccdf_org.ssgproject.content_rule_firefox_preferences-auto-download_actions
查找没有 XCCDF 规则的报告
xccdf_rule_failed = xccdf_org.ssgproject.content_rule_firefox_preferences-auto-download_actions
查找与 XCCDF 规则不同的结果或不通过的报告
xccdf_rule_othered = xccdf_org.ssgproject.content_rule_firefox_preferences-auto-download_actions

其它信息

  • 您可以使用以下逻辑运算符创建复杂的查询: 而 则没有 。有关逻辑运算符的更多信息,请参阅管理 Red Hat Satellite 中的 Granular Search 支持的 Operator
  • 您不能在搜索查询中使用正则表达式。但是,您可以在单个搜索表达式中使用多个字段。有关所有可用搜索运算符的更多信息,请参阅管理 Red Hat Satellite 中的 支持的 Operator for Granular Search
  • 您可以对搜索添加书签,以重复使用相同的搜索查询。如需更多信息,请参阅管理 Red Hat Satellite 中的 创建书签

11.10.2. 合规性电子邮件通知

Satellite 服务器向订阅合规策略摘要电子邮件通知的所有用户发送 OpenSCAP Summary 电子邮件。有关订阅电子邮件通知的更多信息,请参阅 第 10.2 节 “配置电子邮件通知首选项”

每次运行策略时,Satellite 会根据之前运行检查结果,注意它们之间的任何更改。该电子邮件会根据每个订阅者请求的频率发送,提供每个策略及其最新结果的摘要。

11.10.3. 查看合规策略统计

您可以查看合规策略仪表板,以验证特定策略的合规性报告。合规策略控制面板提供主机合规性的统计信息,以及查看该策略范围内每个主机的报告详细信息的能力。

在查看合规报告时,请考虑优先选择以下主机:

  • 被评估为 Failed的主机
  • 标记为 Never 审计的主机,因为它们的状态为 unknown

前提条件

  • 您的用户帐户具有 view_policies 权限。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Policies
  2. 在所需策略所在的行中,导航到 Actions 列,再单击 Dashboard

11.10.4. 检查每个规则合规结果的主机

您可以检查简化的报告,并使用策略规则列出具有特定合规性结果的主机,如特定规则失败。

前提条件

  • 您的用户帐户具有 view_arf_reportsview_hosts 权限。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Reports
  2. Reported At 列中,导航到所需主机和合规策略的报告,然后单击时间链接。
  3. Satellite 使用扫描结果显示简化的策略规则列表。
  4. 可选:通过检查结果过滤规则。从 Show log messages 下拉列表中,选择以下过滤器之一:

    • 失败和其他 - 查看扫描期间或未检查的规则,
    • 仅失败 - 仅查看失败的规则。
  5. 可选:检查规则的详情。在 Message 列中,单击规则名称旁边的图标。
  6. 在必要规则的行中,导航到 Actions 列,再单击 Hosts failing this rule

11.10.5. 检查主机的合规性故障

您可以检查完整的合规性报告,确定主机对规则是否合规的原因,在某些情况下,请参阅如何修复不合规的情况。

警告

不要在不首先在一个非生产环境中测试的情况下实施任何推荐的补救操作或脚本。补救可能会导致系统无法正常工作。

合规性报告由以下区域组成:

  • 简介
  • 评估特性
  • Compliance 和 Scoring
  • 规则概述

前提条件

  • 您的用户帐户具有 view_arf_reportsview_hosts 权限。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Reports 以列出所有合规性报告。
  2. 在所需主机的行中,导航到 Actions 列,再单击 Full Report 以查看评估报告的完整详情。
  3. 导航到 Evaluation Characteristics 区域,以查看有关针对特定配置文件评估主机的基本详情。
  4. 导航到 Compliance 和 Scoring 区域,以检查评估统计信息和主机合规性分数。
  5. 导航到 Rule Overview 以检查规则。
  6. 可选:取消选择您要隐藏的检查状态,如 通过不可应用或 固定
  7. 可选: 在组规则 下拉菜单中,选择规则分组条件,如 严重性
  8. 可选:在搜索字段中输入搜索字符串,以根据标题过滤规则。在输入时,搜索是区分大小写的,并动态应用。
  9. 点规则的标题检查进一步的结果详情:

    • 规则的描述,其中包含使主机进入合规性的说明(如果可用)。
    • 规则的比率。
    • 在某些情况下,补救脚本。

11.10.6. 删除合规性报告

您可以删除 Satellite 上的合规性报告。

前提条件

  • 您的用户帐户具有 view_arf_reportsdestroy_arf_reports 权限。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Reports
  2. 在 Compliance Reports 窗口中,识别您要删除的策略,并在策略名称右侧选择 Delete
  3. 点击 OK

11.10.7. 删除多个合规性报告

您可以同时删除多个合规策略。但是,在 Satellite Web UI 中,策略会被分页,因此您必须一次删除一个报告页面。如果要删除所有 OpenSCAP 报告,请使用 API 指南中的 删除 OpenSCAP 报告 中的 脚本。

前提条件

  • 您的用户帐户具有 view_arf_reportsdestroy_arf_reports 权限。

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Reports
  2. 在 Compliance Reports 窗口中,选择您要删除的合规性报告。
  3. 在列表的右上角,选择 Delete report
  4. 对您要删除的页面重复这些步骤。

第 12 章 备份 Satellite 服务器和 Capsule 服务器

您可以备份 Satellite 部署,确保在出现灾难时确保 Red Hat Satellite 部署和相关数据的连续性。如果您的部署使用自定义配置,您必须在规划备份和恢复策略时考虑如何处理这些自定义配置。

注意

如果您创建 Satellite 服务器的新实例,请在恢复备份后停用旧实例。克隆的实例不应在生产环境中并行运行。

要创建卫星服务器或胶囊式服务器及所有相关数据的备份,请使用 satellite-maintain backup 命令。强烈建议您备份到独立系统中的独立存储设备。

Satellite 服务在备份过程中不可用。因此,您必须确保其他管理员没有调度其他任务。您可以使用 cron 计划备份。如需更多信息,请参阅 第 12.5 节 “由 Daily Incremental Backups 的每周完整备份示例”

在脱机或快照备份期间,服务处于非活动状态,卫星处于维护模式。来自端口 443 上外部的所有流量都会被防火墙拒绝,以确保不会触发任何修改。

备份包含来自 /root/ssl-build 目录的敏感信息。例如,它可以包含主机名、ssh 密钥、请求文件和 SSL 证书。您必须对备份进行加密或移动至安全位置,以最大程度降低损坏或未经授权访问主机的风险。

传统备份方法

您还可以使用传统的备份方法。如需更多信息,请参阅 在 Red Hat Enterprise Linux 8 中配置基本系统设置 中恢复和恢复 系统

注意

如果您计划使用 satellite-maintain backup 命令创建备份,请不要停止 Satellite 服务。

  • 在创建快照或传统备份时,您必须停止所有服务,如下所示:

    # satellite-maintain service stop
  • 在创建快照或传统备份后启动服务:

    # satellite-maintain service start

12.1. 估算备份的大小

完整备份会创建 PostgreSQL 和 Pulp 数据库文件的未压缩存档,以及 Satellite 配置文件。压缩在创建存档后进行,以减少 Satellite 服务不可用时的时间。

完整备份需要空间来存储以下数据:

  • 解压缩的 Satellite 数据库和配置文件
  • 压缩的 Satellite 数据库和配置文件
  • 预计总空间的额外 20% 以确保备份可靠

流程

  1. 输入 du 命令,以估算包含 Satellite 数据库和配置文件的未压缩目录的大小:

    # du -sh /var/lib/pgsql/data /var/lib/pulp
    100G    /var/lib/pgsql/data
    100G	/var/lib/pulp
    
    # du -csh /var/lib/qpidd /var/lib/tftpboot /etc /root/ssl-build \
    /var/www/html/pub /opt/puppetlabs
    886M  /var/lib/qpidd
    16M   /var/lib/tftpboot
    37M   /etc
    900K  /root/ssl-build
    100K  /var/www/html/pub
    2M    /opt/puppetlabs
    942M  total
  2. 计算存储压缩数据所需的空间量。

    下表描述了备份中包含的所有数据项目的压缩率:

    表 12.1. 备份数据压缩率
    数据类型目录ratio结果示例

    PostgreSQL 数据库文件

    /var/lib/pgsql/data

    80 – 85%

    100 GB → 20 GB

    Pulp RPM 文件

    /var/lib/pulp

    (未压缩)

    100 GB

    配置文件

    /var/lib/qpidd
    /var/lib/tftpboot
    /etc
    /root/ssl-build
    /var/www/html/pub
    /opt/puppetlabs

    85%

    942 MB → 141 MB

    在本例中,压缩备份数据总占用 120 GB。

  3. 要计算您存储备份所需的可用空间量,请计算压缩和未压缩备份数据的预计值总和,再添加一个额外的 20% 以确保备份可靠。

    这个示例需要 201 GB 加上 120 GB 用于未压缩备份数据 321 GB。具有 64 GB 的额外空间,必须为备份位置分配 385 GB。

12.2. 执行卫星服务器或胶囊式服务器的完整备份

Red Hat Satellite 使用 satellite-maintain backup 命令进行备份。

备份 Satellite 服务器有三个主要方法:

  • 离线备份
  • 在线备份
  • 快照备份

    有关每种方法的更多信息,您可以查看每个备份方法的使用语句。

离线备份

# satellite-maintain backup offline --help

在线备份

# satellite-maintain backup online --help

快照备份

# satellite-maintain backup snapshot --help

目录创建

satellite-maintain backup 命令在您指定的备份目录中创建一个时间戳的子目录。satellite-maintain backup 命令不会覆盖备份,因此您必须在从备份或增量备份中恢复时选择正确的目录或子目录。satellite-maintain backup 命令根据需要停止并重启服务。

当您运行 satellite-maintain backup offline 命令时,会创建以下默认备份目录:

  • Satellite 上的 satellite-backup
  • Capsule 上的 Foreman-proxy-backup

如果要设置自定义目录名称,请添加 --preserve-directory 选项并添加目录名称。然后,备份将存储在您在命令行中提供的目录中。如果您使用 --preserve-directory 选项,如果备份失败,则不会删除数据。

请注意,如果您使用本地 PostgreSQL 数据库,postgres 用户需要写入备份目录。

远程数据库

您可以使用 satellite-maintain backup 命令备份远程数据库。

您可以使用在线和离线方法备份远程数据库,但如果您使用离线方法(如快照),satellite-maintain backup 命令执行数据库转储。

前提条件

警告

请求卫星服务器或胶囊式服务器的其他用户保存任何更改,并警告他们在备份期间无法使用 Satellite 服务。确保没有调度与备份相同的时间。

流程

  • 在 Satellite 服务器中输入以下命令:

    # satellite-maintain backup offline /var/satellite-backup
  • 在胶囊服务器上输入以下命令:

    # satellite-maintain backup offline /var/foreman-proxy-backup

12.3. 在不使用 Pulp 内容的情况下执行备份

您可以执行脱机备份,以排除 Pulp 目录的内容。没有 Pulp 内容的备份可用于调试目的,仅用于提供配置文件的访问权限,而无需备份 Pulp 数据库。对于生产环境用例,请不要从不包含 Pulp 内容的目录中恢复。

警告

请求卫星服务器或胶囊式服务器的其他用户保存任何更改,并警告他们在备份期间无法使用 Satellite 服务。确保没有调度与备份相同的时间。

前提条件

流程

  • 要在不使用 Pulp 内容的情况下执行离线备份,请输入以下命令:

    # satellite-maintain backup offline --skip-pulp-content /var/backup_directory

12.4. 执行增量备份

使用这个流程对之前备份后的任何更改执行离线备份。

要执行增量备份,您必须执行完整备份,作为创建序列的第一个增量备份的引用。保留最新的完整备份,以及从中恢复的完整备份序列。

警告

请求卫星服务器或胶囊式服务器的其他用户保存任何更改,并警告他们在备份期间无法使用 Satellite 服务。确保没有调度与备份相同的时间。

前提条件

流程

  1. 要执行完全离线备份,请输入以下命令:

    # satellite-maintain backup offline /var/backup_directory
  2. 要在备份目录中创建目录来存储第一个增量备份,请使用 --incremental 选项输入 satellite-maintain backup 命令:

    # satellite-maintain backup offline --incremental /var/backup_directory/full_backup /var/backup_directory
  3. 要创建第二个增量备份,请使用 --incremental 选项输入 satellite-maintain backup 命令,并包含第一个增量备份的路径来指示下一次递增的起点。这会为备份目录中第二个增量备份创建一个目录:

    # satellite-maintain backup offline --incremental /var/backup_directory/first_incremental_backup /var/backup_directory
  4. 可选: 如果要指向不同版本的备份,并在开始时对这个备份版本进行一系列增量,您可以随时执行此操作。例如,如果要从完整备份而不是第一个或者第二个增量备份中创建新的增量备份,请指向完整备份目录:

    # satellite-maintain backup offline --incremental /var/backup_directory/full_backup /var/backup_directory

12.5. 由 Daily Incremental Backups 的每周完整备份示例

以下脚本将在星期天执行完整备份,然后对以下每个天执行增量备份。每次执行增量备份时都会创建一个新子目录。该脚本需要每日 cron 作业。

#!/bin/bash -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESTINATION=/var/backup_directory
if [[ $(date +%w) == 0 ]]; then
  satellite-maintain backup offline --assumeyes $DESTINATION
else
  LAST=$(ls -td -- $DESTINATION/*/ | head -n 1)
  satellite-maintain backup offline --assumeyes --incremental "$LAST" $DESTINATION
fi
exit 0

请注意,satellite-maintain backup 命令需要 /sbin/usr/sbin 目录位于 PATH 中,-- assumeyes 选项用于跳过确认提示。

12.6. 执行在线备份

仅执行在线备份用于调试目的。

与在线备份相关的风险

在进行在线备份时,如果影响 Pulp 数据库的流程,备份过程的 Pulp 部分会重复,直到它不再被更改。由于 Pulp 数据库的备份是备份 Satellite 的最长时间,因此如果您进行更改,则备份过程会保持重启。

对于生产环境,请使用 snapshot 方法。更多信息请参阅 第 12.7 节 “执行快照备份”。如果要在生产环境中使用在线备份方法,请谨慎操作,并确保备份过程中不会发生任何修改。

警告

请求卫星服务器或胶囊式服务器的其他用户保存任何更改,并警告他们在备份期间无法使用 Satellite 服务。确保没有调度与备份相同的时间。

前提条件

流程

  • 要执行在线备份,请输入以下命令:

    # satellite-maintain backup online /var/backup_directory

12.7. 执行快照备份

您可以执行使用 Pulp 和 PostgreSQL 目录的逻辑卷管理器(LVM)快照的快照备份。从 LVM 快照创建备份可减少备份不一致的风险。

快照备份方法比完整离线备份快,因此减少了 Satellite 停机时间。

要查看 usage 语句,请输入以下命令:

satellite-maintain backup snapshot -h
警告

请求其他 Satellite Server 或 Capsule Server 用户保存任何更改,并警告它们在备份期间无法使用 Satellite 服务。确保没有调度与备份相同的时间。

前提条件

  • 系统将 LVM 用于您快照的目录: /var/lib/pulp//var/lib/pgsql
  • 相关卷组(VG)中的可用磁盘空间是快照大小的三倍。更精确地,VG 必须有足够的空间被成员逻辑卷(LV)保留,以适应新快照。此外,其中一个 LV 必须有足够的可用空间来备份目录。
  • 目标备份目录位于与快照的目录不同的 LV 上。

流程

  • 要执行快照备份,请输入 satellite-maintain backup snapshot 命令:

    # satellite-maintain backup snapshot /var/backup_directory

satellite-maintain backup snapshot 命令在服务处于活跃状态时创建快照,并停止所有可能影响备份的服务。这可缩短维护窗口。成功快照后,所有服务都会重启,并删除了 LVM 快照。

12.8. 执行备份时白名单和跳过步骤

使用 satellite-maintain backup 命令的备份可以按照一系列步骤进行。要跳过备份的一部分,请在命令中添加 --whitelist 选项,并添加您要省略的步骤标签。

流程

  • 要显示可用步骤标签列表,请输入以下命令:

    # satellite-maintain advanced procedure run -h
  • 要跳过备份的步骤,请使用 --whitelist 选项输入 satellite-maintain backup 命令。例如:

    # satellite-maintain backup online --whitelist backup-metadata -y /var/backup_directory

第 13 章 从备份中恢复 Satellite 服务器或胶囊服务器

您可以从您创建的备份数据恢复 Satellite 服务器或胶囊式服务器,作为 第 12 章 备份 Satellite 服务器和 Capsule 服务器 的一部分。这个过程概述了如何在生成备份的同一服务器上恢复备份,并在目标系统上删除备份涵盖的所有数据。如果原始系统不可用,请置备具有相同配置设置和主机名的系统。

13.1. 从全备份中恢复

使用这个流程从完整备份中恢复 Red Hat Satellite 或 Capsule 服务器。当恢复过程完成后,所有进程都在线,所有数据库和系统配置都会恢复到备份时的状态。

前提条件

  • 确保您已恢复到正确的实例。Red Hat Satellite 实例必须具有与原始系统相同的主机名、配置和相同次要版本(X.Y)。
  • 确保已有目标目录。目标目录从存档中包含的配置文件读取。
  • 确保您有足够的空间将这些数据存储在卫星服务器或胶囊的基本系统上,并在恢复后有足够的空间来包含备份中包含的 /etc//var/ 目录中的所有数据。

    要检查目录使用的空间,请输入以下命令:

    # du -sh /var/backup_directory

    要检查可用空间,请输入以下命令:

    # df -h /var/backup_directory

    添加 --total 选项,以从多个目录获取总结果。

  • 确保所有 SELinux 上下文都正确。输入以下命令恢复正确的 SELinux 上下文:

    # restorecon -Rv /

流程

  1. 选择安装 Satellite 或 Capsule 的适当方法:

  2. 将备份数据复制到卫星服务器的本地文件系统。使用 /var//var/tmp/.
  3. 运行恢复脚本。

    # satellite-maintain restore /var/backup_directory

    其中 backup_directory 是时间戳的目录或包含备份数据的子目录。

    恢复过程可能需要很长时间才能完成,因为要复制的数据量。

其它资源

  • 若要进行故障排除,您可以检查 /var/log/foreman/production.log/var/log/messages

13.2. 从增量备份中恢复

使用这个流程从增量备份中恢复 Satellite 或 Capsule 服务器。如果您有多个增量备份分支,请选择您的完整备份以及您要恢复的 分支 的每个增量备份,按时间顺序排列。

当恢复过程完成后,所有进程都在线,所有数据库和系统配置都会恢复到备份时的状态。

流程

  1. 使用 第 13.1 节 “从全备份中恢复” 中的说明恢复最后的完整备份。
  2. 从卫星服务器的本地文件系统中删除完整的备份数据,例如 /var//var/tmp/
  3. 将增量备份数据复制到卫星服务器的本地文件系统中,如 /var//var/tmp/
  4. 按照相同的顺序恢复增量备份:

    # satellite-maintain restore /var/backup_directory/FIRST_INCREMENTAL
    # satellite-maintain restore /var/backup_directory/SECOND_INCREMENTAL

其它资源

  • 若要进行故障排除,您可以检查 /var/log/foreman/production.log/var/log/messages

13.3. 使用虚拟机快照备份和恢复胶囊服务器

如果您的胶囊服务器是虚拟机,您可以从快照中恢复。建议创建从中恢复的每周快照。在出现故障时,您可以安装或配置新的胶囊式服务器,然后从卫星服务器同步数据库内容。

如果需要,部署新的胶囊服务器,确保主机名与之前相同,然后安装 Capsule 证书。您仍然可以将它们放在卫星服务器上,软件包名称以 -certs.tar 结尾,也可以创建新的名称。按照安装 Capsule 服务器 中的步骤,直到您可以在 Satellite Web UI 中确认该胶囊服务器连接到 Satellite 服务器。然后,使用 第 13.3.1 节 “同步外部胶囊” 从 Satellite 同步。

13.3.1. 同步外部胶囊

将外部胶囊与卫星同步。

流程

  1. 要同步外部 Capsule,请在 Satellite Web UI 中选择相关的机构和位置,或者选择 任何机构任何位置
  2. 在 Satellite Web UI 中,导航到 Infrastructure > Capsules,再点击要同步的 Capsule 的名称。
  3. Overview 选项卡上,选择 Synchronize

第 14 章 重命名卫星服务器或名称服务器

要重命名 Satellite 服务器或胶囊服务器,请使用 satellite-change-hostname 脚本。

重要

在更改 Satellite 服务器或 Capsule 服务器的域名时,使用 satellite-change-hostname 更新主机名,以避免网络问题。

14.1. 重命名卫星服务器

卫星服务器的主机名供卫星服务器组件、所有胶囊服务器和注册的主机用于通信。此流程可确保除了重命名 Satellite 服务器外,您还可以更新所有引用以指向新的主机名。

警告

重命名您的 Satellite 服务器主机会关闭该主机上的所有 Satellite 服务。重命名完成后服务会重启。

前提条件

  • 在更改其主机名前备份您的 Satellite 服务器。如果您无法成功重命名,请从备份中恢复。更多信息请参阅 第 12 章 备份 Satellite 服务器和 Capsule 服务器
  • 在 Satellite 服务器上运行主机名和 主机名 -f 命令。如果这两个命令没有返回 Satellite 服务器的 FQDN,则 satellite-change-hostname 脚本将无法完成。

    如果 hostname 命令返回 Satellite 服务器的短名称而不是 FQDN,请使用 hostnamectl set-hostname My_Old_FQDN,然后再使用 satellite-change-hostname 脚本正确设置旧的 FQDN。

  • 如果 Satellite 服务器安装了自定义 SSL 证书,请为主机的新 FQDN 获取新证书。如需更多信息,请参阅 在 连接的网络环境中安装 Satellite 服务器 中的 使用自定义 SSL 证书配置 Satellite 服务器

流程

  1. 在命令行中,运行 satellite-change-hostname 脚本,并提供新的主机名。选择以下任一方法:

    • 如果您的 Satellite 服务器安装了默认自签名 SSL 证书,请输入以下命令:

      # satellite-change-hostname new-satellite \
      --username admin \
      --password password
    • 如果您的 Satellite 服务器安装有自定义 SSL 证书:

      # satellite-change-hostname new-satellite \
      --username admin \
      --password password \
      --custom-cert "/root/ownca/test.com/test.com.crt" \
      --custom-key "/root/ownca/test.com/test.com.key"
  2. 如果您已经为新的 Satellite 服务器主机名创建了自定义 SSL 证书,请运行 Satellite 安装脚本来安装证书。有关安装自定义 SSL 证书的更多信息,请参阅 连接的网络环境中安装 Satellite 服务器 中的 向 Satellite 服务器部署自定义 SSL 证书
  3. 重新注册所有 Satellite 主机。如需更多信息, 请参阅管理主机中的 注册主机
  4. 在所有胶囊服务器中,运行 Satellite 安装脚本以更新对新主机名的引用:

    # satellite-installer \
    --foreman-proxy-foreman-base-url https://new-satellite.example.com \
    --foreman-proxy-trusted-hosts new-satellite.example.com \
    --puppet-server-foreman-url https://new-satellite.example.com
  5. 在本地服务器上,列出所有胶囊式服务器:

    # hammer capsule list
  6. 在 Satellite 服务器中,同步每个 Capsule 服务器的内容:

    # hammer capsule content synchronize \
    --id My_capsule_ID
  7. 如果使用 virt-who 代理,请使用新的主机名更新 virt-who 配置文件。如需更多信息,请参阅在 Red Hat Satellite 中配置虚拟机订阅 中的 修改 virt-who 配置
  8. 如果使用外部身份验证,请在运行 satellite-change-hostname 脚本后重新配置 Satellite 服务器以进行外部身份验证。如需更多信息,请参阅 连接的网络环境中安装 Satellite 服务器 中的 配置 外部身份验证。

14.2. 重命名胶囊式服务器

Capsule 服务器的主机名由 Satellite 服务器组件和注册的所有主机引用。此流程可确保除了重命名胶囊服务器外,您也更新对新主机名的所有引用。

警告

重命名您的胶囊服务器主机会关闭该主机上的所有 Satellite 服务。重命名完成后服务会重启。

前提条件

  • 在重命名前备份您的 Capsule 服务器。如果您无法成功重命名,请从备份中恢复。更多信息请参阅 第 12 章 备份 Satellite 服务器和 Capsule 服务器
  • 在 Capsule 服务器上运行主机名和 主机名 -f 命令。如果这两个命令没有返回 Capsule 服务器的 FQDN,则 satellite-change-hostname 脚本将无法完成。

    如果 hostname 命令返回 Capsule 服务器的短名称,而不是 FQDN,请在尝试使用 satellite-change-hostname 脚本前,使用 hostnamectl set-hostname My_Old_FQDN 来正确设置旧的 FQDN。

流程

  1. 在卫星服务器上,为胶囊服务器生成一个新的证书存档文件。

    • 如果您使用默认 SSL 证书,请输入以下命令:

      # capsule-certs-generate \
      --foreman-proxy-fqdn new-capsule.example.com \
      --certs-tar /root/new-capsule.example.com-certs.tar

      确保输入 .tar 文件的完整路径。

    • 如果您使用自定义 SSL 证书,请为 Capsule Server 创建新的 SSL 证书。如需更多信息,请参阅安装 Capsule 服务器 中的 使用自定义 SSL 证书配置 Capsule 服务器
  2. 在受管主机上,将证书存档文件复制到胶囊服务器。例如,将存档文件复制到 root 用户的主目录:

    # scp /root/new-capsule.example.com-certs.tar root@capsule.example.com:
  3. 在 Capsule 服务器上,运行 satellite-change-hostname 脚本,并提供主机的新名称、Satellite 凭据和证书存档文件名。

    # satellite-change-hostname new-capsule.example.com --username admin \
    --password password \
    --certs-tar /root/new-capsule.example.com-certs.tar

    确保输入 .tar 文件的完整路径。

  4. 如果您为 Capsule 服务器创建了自定义证书,请输入在上一步中返回的 satellite-installer 命令,在 Capsule 服务器上部署证书。如需更多信息,请参阅 安装 Capsule 服务器 中的 将自定义 SSL 证书部署到 Capsule 服务器
  5. 在所有胶囊客户端上,输入以下命令重新安装 bootstrap RPM、重新注册客户端并刷新其订阅。

    您可以使用远程执行功能执行此步骤。如需更多信息,请参阅管理主机中的配置和设置远程作业

    # dnf remove katello-ca-consumer*
    
    # dnf install http://new-capsule.example.com/pub/katello-ca-consumer-latest.noarch.rpm
    
    # subscription-manager register --org="My_Organization" \
    --environment="Library" \
    --force
    
    # subscription-manager refresh
  6. 在 Satellite Web UI 中更新 Capsule 主机名。

    1. 在 Satellite Web UI 中,导航到 Infrastructure > Capsules
    2. 在列表中找到 Capsule Server,然后单击 Edit
    3. 编辑 NameURL 字段,以匹配 Capsule Server 的新主机名,然后单击 Submit
    4. 在 DNS 服务器上,为您的胶囊服务器的新主机名添加记录,并删除之前主机名的记录。

第 15 章 维护 Satellite 服务器

本章提供了有关如何维护卫星服务器的信息,包括有关如何使用审计记录的信息、如何清理未使用的任务以及如何从完整磁盘中恢复 Pulp。

15.1. 手动删除审计记录

您可以使用 foreman-rake audits:expire 命令来随时删除审计记录。

流程

  • 使用 foreman-rake audits:expire 命令删除审计记录:

    # foreman-rake audits:expire days=Number_Of_Days

    这个命令会删除不是 Number_Of_Days 的所有审计记录。

15.2. 自动删除审计记录

您可以使用 Saved audits interval 设置自动删除审计记录。默认情况下,此设置为空,这意味着 Satellite 不会自动删除审计记录。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Settings
  2. General 选项卡中,找到 Saved audits interval 设置。
  3. 将值设为您希望 Satellite 删除审计记录的天数。

15.3. 匿名审计记录

您可以使用 foreman-rake audits:anonymize 命令删除任何用户帐户或 IP 信息,同时维护数据库中的审计记录。您还可以使用 cron 作业来计划在您想要的间隔内对审计记录进行匿名处理。

默认情况下,使用 foreman-rake audits:anonymize 命令匿名记录超过 90 天的审计记录。您可以通过添加 days 选项并添加天数来指定审计记录的天数。

例如,如果您想要对超过七天的审计记录进行匿名处理,请输入以下命令:

# foreman-rake audits:anonymize days=7

15.4. 删除报告记录

在 Satellite 中自动创建报告记录。您可以使用 foreman-rake report:expire 命令随时删除报告。您还可以使用 cron 作业来按您想要的间隔调度报告删除记录。

默认情况下,使用 foreman-rake report:expire 命令删除超过 90 天的报告记录。您可以通过添加 days 选项并添加天数来指定报告记录的天数。

例如,如果要删除超过七天的报告记录,请输入以下命令:

# foreman-rake reports:expire days=7

15.5. 配置强制不使用的任务功能

Satellite 执行常规清理来减少数据库中的空间,并限制磁盘增长率。因此,Satellite 备份可以更快地完成,且整体性能更高。

默认情况下,Satellite 执行 cron 作业,该作业每天在 19:45 处清理任务。Satellite 在清理过程中删除以下任务:

  • 成功运行且早于三十天的任务
  • 所有超过一年的任务

您可以使用以下选项配置清理未使用的任务功能:

  • 要配置 Satellite 运行 cron 作业的时间,请将 --foreman-plugin-tasks-cron-line 参数设置为 cron 格式的时间。例如,要调度在 15:00 每天运行的 cron 作业,请输入以下命令:

    # satellite-installer --foreman-plugin-tasks-cron-line "00 15 * * *"
  • 要配置 Satellite 删除任务的周期,请编辑 /etc/foreman/plugins/foreman-tasks.yaml 文件中的 :rules: 部分。
  • 要在 Satellite 上禁用常规任务清理,请输入以下命令:

    # satellite-installer --foreman-plugin-tasks-automatic-cleanup false
  • 要在 Satellite 上重新启用常规任务清理,请输入以下命令:

    # satellite-installer --foreman-plugin-tasks-automatic-cleanup true

15.6. 删除任务记录

在卫星中自动创建任务记录。您可以使用 foreman-rake foreman_tasks:cleanup 命令随时删除任务。您还可以使用 cron 作业在您想要的间隔内调度任务记录删除。

例如,如果要从成功存储库同步中删除任务记录,请输入以下命令:

# foreman-rake foreman_tasks:cleanup TASK_SEARCH='label = Actions::Katello::Repository::Sync' STATES='stopped'

15.7. 通过 ID 删除任务

您可以通过 ID 删除任务,例如,如果您错误地提交了机密数据。

流程

  1. 使用 SSH 连接到您的 Satellite 服务器:

    # ssh root@satellite.example.com
  2. 可选:查看任务:

    # hammer task info --id My_Task_ID
  3. 删除任务:

    # foreman-rake foreman_tasks:cleanup TASK_SEARCH="id=My_Task_ID"
  4. 可选:确保任务已从 Satellite Server 中删除:

    # hammer task info --id My_Task_ID

    请注意,由于删除了任务,这个命令会返回一个非零退出代码。

15.8. 从完整磁盘中恢复

以下流程描述了如何在其上带有 Pulp 数据库的逻辑卷(LV)时解决这种情况。

流程

  1. 运行 Pulp 任务完成,但不会触发任何新的任务,因为它们可能会因为完整磁盘而失败。
  2. 确保具有 /var/lib/pulp 目录的 LV 具有足够的可用空间。实现这一点的方法如下:

    1. 删除孤立的内容:

      # foreman-rake katello:delete_orphaned_content RAILS_ENV=production

      这每周运行,因此不会释放大量空间。

    2. 尽可能将下载策略从 Immediate 更改为 On Demand,并删除已下载的软件包。具体步骤请查看红帽知识库解决方案 如何将 Satellite 上存储库的同步策略从"Immediate"改为红帽客户门户网站上的"On-Demand "。
    3. 使用 /var/lib/pulp 目录在 LV 上增大文件系统。如需更多信息,请参阅 Red Hat Enterprise Linux 8 中扩展逻辑卷和文件系统 配置和管理逻辑卷

      注意

      如果您使用不写的文件系统(例如 ext3、ext4 或 xfs),您可能需要卸载文件系统,使其不使用。在这种情况下,请完成以下步骤:

      1. 停止 Satellite 服务:

        # satellite-maintain service stop
      2. 在 LV 上增大文件系统。
      3. 启动 Satellite 服务:

        # satellite-maintain service start
  3. 如果某些 Pulp 任务因为完整磁盘而失败,请再次运行它们。

15.9. 在卫星服务器或胶囊服务器的基本操作系统上管理软件包

要在 Satellite Server 或 Capsule Server 基础操作系统上安装和更新软件包,您必须输入 satellite-maintain packages 命令。Satellite 可防止用户使用 yum 安装和更新软件包,因为 yum 也可能会更新与 Satellite Server 或 Capsule Server 相关的软件包,并导致系统不一致。

重要

satellite-maintain packages 命令将在运行它的操作系统上重启一些服务,因为它在安装软件包后运行 satellite-installer 命令。

您可以使用 satellite-maintain package 命令管理软件包,如下所示:

  • 在 Satellite 服务器或 Capsule 服务器中安装软件包:

    # satellite-maintain packages install package_1 package_2
  • 检查 Satellite 服务器或 Capsule 服务器上可用软件包更新:

    # satellite-maintain packages check-update
  • 更新 Satellite 服务器或 Capsule 服务器上的所有软件包:

    # satellite-maintain packages update
  • 更新 Satellite 服务器或 Capsule 服务器上的特定软件包:

    # satellite-maintain packages update package_1 package_2

单独更新软件包可能会导致 Satellite 服务器或 Capsule 服务器上软件包不一致。有关更新 Satellite 服务器上的软件包的更多信息,请参阅 升级和更新 Red Hat Satellite 中的 将 Satellite 服务器更新至下一个次版本

15.10. 重新声明 PostgreSQL 空间

PostgreSQL 数据库可以使用大量磁盘空间,特别是在大量加载部署中。使用这个流程在 Satellite 中重新声明一些此磁盘空间。

流程

  1. 停止除 postgresql 服务外的所有服务:

    # satellite-maintain service stop --exclude postgresql
  2. 切换到 postgres 用户并回收数据库上的空间:

    # su - postgres -c 'vacuumdb --full --all'
  3. 在 vacuum 完成后启动其他服务:

    # satellite-maintain service start

15.11. 从 On Demand 存储库回收空间

如果将 下载策略设置为 按需,则仅当客户端请求它们时,Satellite 会下载软件包。您可以清理这些软件包以回收空间。

注意

空间回收需要现有的存储库。对于已删除的软件仓库,请等待下一个调度的孤立清理或删除孤立的内容:

# foreman-rake katello:delete_orphaned_content

对于单个软件仓库

  • 在 Satellite Web UI 中,导航到 Content > Products
  • 选择一个产品。
  • Repositories 选项卡上,单击存储库名称。
  • Select Actions 列表中,选择 Reclaim Space

对于多个软件仓库

  • 在 Satellite Web UI 中,导航到 Content > Products
  • 选择产品名称。
  • Repositories 选项卡上,选中存储库的复选框。
  • 点击右上角的 Reclaim Space

对于 Capsules

  • 在 Satellite Web UI 中,导航到 Infrastructure > Capsules
  • 选择 Capsule Server。
  • Reclaim space

第 16 章 续订自定义 SSL 证书

本章介绍了如何在 Satellite 服务器和 Capsule 服务器上更新自定义 SSL 证书。

16.1. 在 Satellite 服务器上续订自定义 SSL 证书

使用这个流程为 Satellite 服务器更新自定义 SSL 证书。

前提条件

  • 您必须创建新的证书签名请求(CSR),并将其发送到证书颁发机构以签署证书。在创建新 CSR 前 ,请参阅使用自定义 SSL 证书配置 Satellite 服务器指南,因为服务器证书必须具有 X.509 v3 Key UsageExtended Key Usage 扩展。在返回中,您将收到 Satellite 服务器证书和 CA 捆绑包。

流程

  • 在 Satellite 服务器上部署续订的自定义证书前,请验证自定义 SSL 输入文件。请注意,对于 katello-certs-check 命令正常工作,证书中的通用名称(CN)必须与 Satellite 服务器的 FQDN 匹配:

    # katello-certs-check -t satellite \
    -b /root/satellite_cert/ca_cert_bundle.pem \
    -c /root/satellite_cert/satellite_cert.pem \
    -k /root/satellite_cert/satellite_cert_key.pem

    如果命令成功,它会返回以下 satellite-installer 命令。您可以使用此命令将更新的 CA 证书部署到 Satellite 服务器:

    # satellite-installer --scenario satellite \
    --certs-server-cert "/root/satellite_cert/satellite_cert.pem" \
    --certs-server-key "/root/satellite_cert/satellite_key.pem" \
    --certs-server-ca-cert "/root/satellite_cert/ca_cert_bundle.pem" \
    --certs-update-server \
    --certs-update-server-ca
重要

部署证书后不要删除证书文件。升级 Satellite 服务器时需要它们。

注意

如果因为不同的证书签名请求授权机构生成了新的消费者软件包 katello-ca-consumer-latest.noarch.rpm,则必须更新注册到 Satellite 服务器的所有客户端。

验证

  1. 从本地机器访问 Satellite Web UI。例如: https://satellite.example.com
  2. 在您的浏览器中,查看证书详情以验证部署的证书。

16.2. 在 Capsule 服务器上续订自定义 SSL 证书

使用这个流程为 Capsule 服务器更新自定义 SSL 证书。satellite-installer 命令返回 Capsule -certs-generate 命令对于每个胶囊服务器都是唯一的。您不能在多个胶囊服务器上使用相同的命令。

前提条件

  • 您必须创建新的证书签名请求,并将其发送到证书颁发机构以签署证书。在创建新 CSR 前,请参阅使用自定义 SSL 证书配置 Satellite 服务器 指南,因为 Satellite 服务器证书必须具有 X.509 v3 Key UsageExtended Key Usage 扩展。在返回中,您将收到 Capsule 服务器证书和 CA 捆绑包。

流程

  1. 在 Satellite 服务器上,验证自定义 SSL 证书输入文件:

    # katello-certs-check -t capsule \
    -b /root/capsule_cert/ca_cert_bundle.pem \
    -c /root/capsule_cert/capsule_cert.pem \
    -k /root/capsule_cert/capsule_cert_key.pem
  2. 在 Satellite 服务器上,为您的 Capsule 服务器生成证书存档文件:

    capsule-certs-generate --foreman-proxy-fqdn "capsule.example.com" \
    --certs-tar  "/root/My_Certificates/capsule.example.com-certs.tar" \
    --server-cert "/root/My_Certificates/capsule_cert.pem" \
    --server-key "/root/My_Certificates/capsule_cert_key.pem" \
    --server-ca-cert "/root/My_Certificates/ca_cert_bundle.pem" \
    --certs-update-server
  3. 在 Satellite 服务器上,将证书归档文件复制到您的 Capsule 服务器中:

    # scp /root/My_Certificates/capsule.example.com-certs.tar user@capsule.example.com:

    如果需要,您可以将复制的文件移到适用路径中。

  4. 保留 Capsule- certs-generate 命令返回的 satellite- installer 命令的副本,以将证书部署到您的胶囊服务器。
  5. 使用 Capsule- certs-generate 命令返回的 satellite-installer 命令将证书部署到 Capsule 服务器上:

    # satellite-installer --scenario capsule \
    --foreman-proxy-register-in-foreman "true" \
    --foreman-proxy-foreman-base-url "https://satellite.example.com" \
    --certs-tar-file "/root/My_Certificates/capsule.example.com-certs.tar" \
    --certs-update-server
重要

部署证书后,不要删除 Capsule 服务器上的证书存档文件。升级 Capsule 服务器时需要它们。

注意

如果因为不同的证书签名请求授权而生成了新的消费者软件包 katello-ca-consumer-latest.noarch.rpm,则必须更新注册到 Capsule 服务器的所有客户端。

第 17 章 日志记录和报告问题

本章介绍了如何在 Satellite 中记录和报告问题,包括相关日志文件的信息、如何启用调试日志、创建支持问题单并附加相关的日志 tar 文件,以及如何在 Satellite Web UI 中访问支持问题单。

您可以使用本章中描述的日志文件和其他信息来进行自己的故障排除,或者您可以捕获这些文件和更多文件,以及诊断和配置信息(如果需要进一步帮助)。

有关 Satellite 日志记录设置的更多信息,请使用 satellite-installer--full-help 选项:

# satellite-installer --full-help | grep logging

17.1. 启用调试日志记录

调试日志记录提供了更详细的日志信息,并有助于对 Satellite 及其组件可能出现的问题进行故障排除。在 Satellite CLI 中,启用调试日志来记录卫星的详细调试信息。

流程

  1. 要启用 debug 日志记录,请输入以下命令:

    # satellite-installer --foreman-logging-level debug
  2. 完成调试后,将日志级别重置为默认值:

    # satellite-installer --reset-foreman-logging-level

17.2. 增加日志记录级别以使用调试帮助

默认情况下,Satellite 启用了 :INFO 级别日志记录。您可以在 Satellite 上增加或减少日志级别。

在所有组件中启用 debug 级别日志记录

# hammer admin logging --all --level-debug
# satellite-maintain service restart

为特定组件启用 debug 级别日志记录

# hammer admin logging --components "Component" --level-debug

将 debug 级别日志记录恢复到 INFO

# hammer admin logging --all --level-production
# satellite-maintain service restart

列出所有组件和更改的配置文件

# hammer admin logging --list
-----------|-------------------------------------|-------------------------------------
COMPONENT  | AUTO-DETECTED BY EXISTENCE OF       | DESTINATIONS
-----------|-------------------------------------|-------------------------------------
dhcpd      | /etc/dhcp/dhcpd.conf                | syslog /var/log/dhcpd-debug.log
postgresql | /var/lib/pgsql/data/postgresql.conf | syslog /var/lib/pgsql/data/pg_log/
proxy      | /etc/foreman-proxy/settings.yml     | /var/log/foreman-proxy/proxy.log
qpidd      | /etc/qpid/qpidd.conf                | syslog
rails      | /etc/foreman/settings.yaml          | /var/log/foreman/production.log
tomcat     | /etc/candlepin/candlepin.conf       | /var/log/candlepin/ /var/log/tomcat/
virt-who   | /etc/sysconfig/virt-who             | syslog
-----------|-------------------------------------|-------------------------------------

17.2.1. 为 Hammer 增加日志记录级别

您可以在 ~/.hammer/log/hammer.log 中找到 Hammer 的日志。编辑 /etc/hammer/cli_config.yml 并设置 :log_level:

:log_level: 'debug'

17.2.2. 增加日志记录级别 on Capsule

您可以在 /var/log/foreman-proxy/proxy.log 中找到 Capsule 的日志。取消注释 /etc/foreman-proxy/settings.yml 中的 DEBUG 行:

:log_level: DEBUG

确保之后重启 foreman-proxy 服务:

# systemctl restart foreman-proxy
小心

运行安装程序将恢复此更改。

17.2.3. 为 Candlepin 增加日志记录级别

您可以在 /var/log/candlepin/candlepin.log 中找到 Candlepin.log 的日志。错误也会记录到单独的文件中,以便更轻松地调试 /var/log/candlepin/error.log

扩展 /etc/candlepin/candlepin.conf

log4j.logger.org.candlepin=DEBUG

确保之后重启 tomcat 服务:

# systemctl restart tomcat

如果 candlepin 日志文件过于详细,您可以降低默认的调试级别:

log4j.logger.org.candlepin.resource.ConsumerResource=WARN
log4j.logger.org.candlepin.resource.HypervisorResource=WARN

17.2.4. 增加 Satellite 上的日志记录级别

您可以在 /var/log/foreman/production.log 中找到 Satellite 的日志。

Satellite 将 Apache 的日志存储在:

  • /var/log/httpd/foreman_error.log
  • /var/log/httpd/foreman_access.log
  • /var/log/httpd/foreman_ssl_error.log
  • /var/log/httpd/foreman_ssl_access.log

流程

  1. /etc/foreman/settings.yaml 中设置日志级别:

    :logging:
      :production:
        :type: file
        :layout: pattern
        :level: debug
  2. /etc/foreman/settings.yaml 中启用所选的日志记录器:

    :loggers:
      :ldap:
        :enabled: true
      :permissions:
        :enabled: true
      :sql:
        :enabled: true

    请注意,若要查看某些区域的日志记录,必须设置 debug 日志记录。

  3. 重启 Satellite 服务:

    # satellite-maintain service restart

您可以在 Foreman::Logging.add_loggers 命令中的 /usr/share/foreman/config/application.rb 中找到其默认值的完整日志记录器列表。

17.2.5. 增加日志记录级别 For Qpid Dispatch Router

Qpid 日志到 syslog,可以在 /var/log/messagesjournalctl 中查看。在 /etc/qpid-dispatch/qdrouterd.conf 中启用调试日志记录:

enable: debug+

确保之后重新启动 Qpid Dispatch 路由器:

# systemctl restart qdrouterd
小心

运行安装程序将恢复此更改。

17.2.6. 增加日志记录级别 for Qpid Broker

Qpid 日志到 syslog,可以在 /var/log/messagesjournalctl 中查看。在 /etc/qpid/qpidd.conf 中设置日志级别:

log-enable=debug+

确保之后重启 Qpid Broker:

# systemctl restart qpidd
小心

运行安装程序将恢复此更改。

17.2.7. 为 Redis 增加日志级别

您可以在 /var/log/redis/redis.log 中找到 Redis 的日志。在 /etc/opt/rh/rh-redis5/redis.conf 中设置日志级别:

loglevel debug

确保之后重启 Redis 服务:

# systemctl restart rh-redis5-redis

17.2.8. 为 Postgres 增加日志记录级别

您可以在 /var/lib/pgsql/data/log 中找到 Postgres 的日志。取消注释 /var/lib/pgsql/data/postgresql.conf 中的 log_statement:

log_statement = 'all'

确保之后重启 Satellite 服务:

# satellite-maintain service restart
小心

根据 Satellite 安装的大小,这可能会导致磁盘空间非常快速地填满。仅在绝对需要时才开启。

有关更多调试日志设置,请参阅 Postgresql 文档

17.2.9. 为 Satellite 安装程序增加日志记录级别

您可以在 /var/log/foreman-installer/ 中找到日志文件。要在安装过程中提高 Satellite 安装程序的日志级别:

# satellite-installer --verbose-log-level debug

17.2.10. 为 Pulp 增加日志记录级别

默认情况下,Pulp 日志到 syslog,可以在 /var/log/messagesjournalctl 中查看。将以下配置添加到 /etc/pulp/settings.py 文件中:

LOGGING = {"dynaconf_merge": True, "loggers": {'': {'handlers': ['console'], 'level': 'DEBUG'}}}

确保之后重启 Pulp 服务:

# systemctl restart \
pulpcore-api \
pulpcore-content \
pulpcore-resource-manager \
pulpcore-worker@1 \
pulpcore-worker@2 \
rh-redis5-redis

17.2.11. 为 Puppet 代理增加日志记录级别

您可以提高卫星服务器上 Puppet 代理的日志级别。

流程

  1. 将以下行添加到 /etc/puppetlabs/puppet/puppet.conf 文件中的 [agent] 块中:

    [agent]
        log_level = debug

您可以在 /var/log/puppetlabs/puppet/中找到日志

17.2.12. 为 Puppet 服务器增加日志记录级别

您可以提高卫星服务器上 Puppet 服务器的日志记录级别。

前提条件

流程

  1. 将以下行添加到 /etc/puppetlabs/puppet/puppet.conf 文件中的 [master] 块中:

    [master]
        log_level = debug
  2. 重启 Puppet 服务器:

    # satellite-maintain service restart --only puppetserver

您可以在 /var/log/puppetlabs/puppetserver/ 中找到日志。

17.3. 检索服务状态

流程

  1. 在 Satellite Web UI 中,导航到 Administer > About
  2. Smart Proxies 选项卡上,您可以查看所有胶囊的状态。
  3. Compute Resources 选项卡中,您可以查看附加的计算资源提供程序的状态。
  4. 在后端 系统状态 表中,您可以查看所有后端服务的状态。

CLI 过程

  • 运行 hammer ping 从数据库和 Satellite 服务中获取信息:

    # hammer ping
  • 使用 satellite-maintain 检查 systemd 中运行的服务的状态:

    # satellite-maintain service status
  • 使用 satellite-maintain 执行健康检查:

    $ satellite-maintain health check

17.4. 重启服务

卫星使用一组后端服务来执行任务。您对 Satellite 遇到问题,检查 Satellite 服务的状态。

流程

  • 使用 satellite-maintain 来重启 Satellite 服务:

    # satellite-maintain service restart
提示

如需更多信息,请运行 foreman-maintain --help

17.5. 启用单个日志记录器

您可以为选择性日志记录启用单独的日志记录器。Satellite 使用以下日志记录器:

app
记录 Web 请求和所有常规应用消息。默认值为: true。
audit
记录其他事实统计数据、添加、更新和删除事实数。默认值为: true。
background
从后台处理组件记录信息。
blob

用于审计目的的渲染模板的日志内容。

重要

blob 日志记录器可能包含敏感数据。

dynflow
从 Dynflow 进程记录信息。
ldap
记录高级别 LDAP 查询和 LDAP 操作。默认值:false。
notifications
从通知组件记录信息。
权限
在载入页面时,记录对用户角色、过滤器和权限的查询。默认值:false。
sql
通过 Rails ActiveRecord 进行的 SQL 查询的日志。默认值:false。
Telemetry
记录来自遥测的调试信息。
templates
记录模板呈现器组件的信息。

流程

  1. 启用您想要的单个日志记录器。例如,要启用 sqlldap loggers,请输入以下命令:

    # satellite-installer \
    --foreman-loggers ldap:true \
    --foreman-loggers sql:true
  2. 可选: 要将日志记录器重置为默认值,请输入以下命令:

    # satellite-installer --reset-foreman-loggers

17.6. 配置日志记录到日志或基于文件的日志记录

Satellite 默认使用基于文件的日志记录。您可以使用 satellite-installer 命令来重新配置日志记录。

使用日志配置日志的步骤

  1. 输入以下 satellite-installer 命令,将日志记录配置为 journald 服务:

    # satellite-installer \
    --foreman-logging-layout pattern \
    --foreman-logging-type journald \
    --foreman-proxy-log JOURNAL
  2. 可选: 要检查日志消息,请使用 journalctl 实用程序。例如:

    • journalctl --unit foremanjournalctl --unit foreman-proxy 显示 foremanforeman-proxy 单元的消息
    • journalctl REQUEST=request_ID 显示指定请求的消息

配置基于文件的日志记录的步骤

  1. 输入以下 satellite-installer 命令来配置基于文件的日志记录:

    # satellite-installer \
    --reset-foreman-logging-layout \
    --reset-foreman-logging-type \
    --reset-foreman-proxy-log
  2. 可选: 要检查日志消息,请查看这些文件:

    • /var/log/foreman/production.log
    • /var/log/foreman-proxy.log

其他资源

有关 Journal 的更多信息,请参阅 Red Hat Enterprise Linux 8 配置基本系统设置指南中的 使用命令行查看日志

17.7. Satellite 提供的日志文件目录

Red Hat Satellite 以通知和日志文件的形式提供系统信息。

表 17.1. 用于报告和故障排除的日志文件目录
日志文件目录日志文件内容的描述

/var/log/candlepin

订阅管理

/var/log/foreman-installer

安装程序

/var/log/foreman-maintain

Foreman 维护

/var/log/foreman-proxy

Foreman 代理

/var/log/foreman

Foreman

/var/log/httpd

Apache HTTP 服务器

/var/log/messages

各种其他日志消息

/var/log/puppetlabs/puppet

配置管理

/var/log/rhsm

订阅管理

/var/log/tomcat

Candlepin webservice 日志

您还可以使用 foreman-tail 命令跟踪与 Satellite 相关的许多日志文件。您可以运行 foreman-tail -l 来列出其后面的进程和服务。

17.8. 收集日志信息的工具

您可以从日志文件收集信息,以对 Satellite 进行故障排除。

sosreport
sosreport 命令从 Linux 系统收集配置和诊断信息,如运行的内核版本、载入的模块、运行服务和服务配置文件。此输出存储在位于 /var/tmp/sosreport-XXX-20171002230919.tar.xz的 tar 文件中。如需更多信息,请运行 sosreport --help 或查看 sosreport 是什么以及如何创建它?
重要

集合过程会在收集信息时删除安全信息,如密码、令牌和密钥。但是,tar 文件仍然可以包含有关卫星服务器的敏感信息。红帽建议您将此信息直接发送到预期的接收者,而不是将这些信息发送到公共目标。

17.9. 系统日志元数据

下表列出了 journald 服务在 Satellite 中使用的元数据。您可以使用此元数据来过滤查询。

表 17.2. 系统日志元数据
名称Description

AUDIT_ACTION

执行的审计操作

示例:创建、更新或删除

AUDIT_TYPE

Audit 资源类型

示例:Host、Subnet 或 ContentView

AUDIT_ID

审计资源数据库 ID 作为数字

AUDIT_ATTRIBUTE

audit 资源字段或更新的数据库列

AUDIT_FIELD_OLD

更新操作的旧审计值

AUDIT_FIELD_NEW

更新操作的新审计值

AUDIT_ID

记录审计主题的数据库 ID

AUDIT_ATTRIBUTE

执行操作的属性名称或列

示例:描述或描述

EXCEPTION_MESSAGE

错误信息被记录时的异常

EXCEPTION_CLASS

记录错误时的 Ruby 类

EXCEPTION_BACKTRACE

当记录错误时,后端作为多行字符串异常

LOC_ID

位置数据库 ID

LOC_NAME

位置名称

LOC_LABEL

位置标签

LOGGER

日志记录器名称

要查看默认启用的日志记录器的当前列表,请输入以下命令:

# awk '/add_loggers/,/^$/' /usr/share/foreman/config/application.rb

ORG_ID

机构数据库 ID

ORG_NAME

机构名称

ORG_LABEL

机构标签

REMOTE_IP

客户端的远程 IP 地址

REQUEST (请求)

由 Action Dispatch 模块生成的请求 ID

会话

为每个会话生成的随机 ID 或无会话请求请求

TEMPLATE_NAME

模板名称

TEMPLATE_DIGEST

渲染模板内容的摘要(SHA256)

TEMPLATE_HOST_NAME

渲染模板的主机名(如果存在)

TEMPLATE_HOST_ID

存在时呈现模板的主机数据库 ID

USER_LOGIN

用户登录名称

第 18 章 监控资源

以下章节详细介绍了如何为受管系统配置监控和报告。这包括主机配置、内容视图、合规性、订阅、注册的主机、提升和同步。

18.1. 使用 Red Hat Satellite Content Dashboard

Red Hat Satellite 内容控制面板包含各种小部件,提供主机配置、内容视图、合规性报告、订阅和主机当前注册的、提升和同步以及最新通知的列表。

在 Satellite Web UI 中,导航到 Monitor > Dashboard 以访问内容仪表板。单击小部件并将它拖到不同的位置,可以重新安排仪表板。可用的小部件如下:

主机配置状态

配置状态概述,以及最后一次报告间隔期间与其关联的主机数量。下表显示了可能配置状态的描述。

表 18.1. 主机配置状态
图标状态Description

host state config okay

进行了修改且无错误的主机

在上一次报告间隔中成功执行修改的主机。

host state config error

处于错误状态的主机

在上次报告间隔期间检测到错误的主机。

host state config report

在过去 35 分钟内报告良好主机

在最后 35 分钟内没有执行任何修改的错误。

host state config pending

已发生更改的主机

应用某些资源的主机,但 Puppet 配置为在 noop 模式下运行。

host state config outofsync

没有同步主机

未同步的主机,报告没有在上次报告间隔期间收到。

host state config noreport

没有报告的主机

在上次报告间隔期间没有收集任何报告的主机。

host state config noalert

禁用警报的主机

未被监控的主机。

单击特定的配置状态,以查看与其关联的主机。

主机配置图表
pie 图表显示配置状态的比例以及与之关联的所有主机的百分比。
最新事件

主机生成的消息列表,包括管理信息、产品和订阅更改以及任何错误。

监控本节,了解发送到所有用户的全局通知,并检测任何异常活动或错误。

运行发布(最后 30 分钟)
图显示了在最近一个 puppet 间隔内正在运行的 Puppet 代理的分发,默认为 30 分钟。在这种情况下,每个列代表在 3 分钟期间从客户端接收的一系列报告。
新主机
最近创建的主机的列表。单击主机以了解更多详细信息。
任务状态
所有当前任务的概述信息,按其状态和结果分组。点数字查看对应任务列表。
最新的 Warning/Error 任务
因警告或错误而停止的最新任务列表。点一个任务来查看更多详情。
发现的主机
Discovery 插件在 provisioning 网络中检测到的所有裸机主机列表。
最新的勘误
适用于注册到 Satellite 的主机的所有勘误表列表。
内容视图
Satellite 中所有内容视图的列表及其发布状态。
同步概述
Satellite 中启用的所有产品或存储库及其同步状态的概述。本节列出了所有处于同步队列中的产品,未同步或之前同步。
主机订阅状态

注册到 Satellite 的主机当前使用的订阅概述。订阅是一个购买的证书,用于解锁对主机的软件、升级和安全修复的访问。下表显示了订阅可能的状态。

表 18.2. 主机订阅状态
图标状态Description

host state sub invalid

无效

安装了产品但没有正确订阅的主机。这些主机需要立即关注。

host state sub partial

部分

具有订阅和有效权利的主机,但不使用其全部权利。这些主机应该被监控,以确保它们按预期配置。

host state sub valid

有效

具有有效权利且正在使用其完整权利的主机。

单击订阅类型,以查看与所选类型订阅关联的主机。

订阅状态
当前订阅总数的概述,其中显示有效订阅数、在下一个 120 天后过期的订阅数量,以及最近过期的订阅数。
主机集合
Satellite 中所有主机集合及其状态的列表,包括每个主机集合中的内容主机数量。
virt-who 配置状态

从环境中运行的 virt-who 守护进程收到的报告状态概述。下表显示了可能的状态:

表 18.3. virt-who 配置状态
状态Description

没有报告

没有收到报告,因为 virt-who 配置部署期间发生了错误,或者配置尚未部署,或者 virt-who 在调度的间隔内无法连接到 Satellite。

没有更改

没有收到报告,因为 hypervisor 没有检测到虚拟机上的任何更改,或者 virt-who 在调度的间隔内无法上传报告。如果您添加了虚拟机,但配置处于 No Change 状态,请检查 virt-who 是否正在运行。

确定

报告已被接收,在调度的间隔期间没有任何错误。

总配置

virt-who 配置总数。

点配置状态查看处于此状态的所有配置。

小部件还会列出 Latest configuration Without Change 下的 No Change 状态的三个最新配置。

最新合规性报告
最新合规性报告列表。每个合规性报告显示多个通过(P)、Failed (F)或其它规则(O)的规则。单击主机以了解详细的合规性报告。点策略来了解更多有关该策略的详情。
合规报告明细
Pie 图表根据其状态显示合规性报告的发布。
Red Hat Insights 操作
Red Hat Insights 是一个嵌入在 Satellite 中的工具,用于检查环境并推荐您执行的操作。该操作分为 4 个类别:可用性、稳定性、性能和安全性。
Red Hat Insights 风险概述

表根据风险级别显示操作的分发。风险级别代表这个操作的重要性以及导致实际问题的可能性。可能的风险级别为: Low、Medium、High 和 Critical。

注意

无法更改 Satellite Web UI 中显示的日期格式。

18.1.1. 管理任务

Red Hat Satellite 保留所有计划或执行的任务的完整日志,如存储库同步、应用勘误表和内容视图发布。要查看日志,请导航到 Monitor > Tasks

在 Task 窗口中,您可以搜索特定任务,查看其状态、详情以及自其启动以来已经过的时间。您还可以取消和恢复一个或多个任务。

这些任务使用 Dynflow 引擎来管理。远程任务具有可根据需要调整的超时。

调整超时设置:

  1. 在 Satellite Web UI 中,导航到 Administer > Settings
  2. 在搜索框中输入 %_timeout,然后点 搜索。搜索应返回四个设置,包括描述。
  3. Value 列中,单击数字旁边的图标进行编辑。
  4. 以秒为单位输入所需的值,然后点 Save
注意

在带宽较低时,调整 %_finish_timeout 值可能会有所帮助。在出现高延迟时,调整 %_accept_timeout 值可能会有所帮助。

在任务初始化后,将检查任务中将使用的任何后端服务,如 Candlepin 或 Pulp。如果检查失败,您会收到类似如下的错误:

There was an issue with the backend service candlepin: Connection refused – connect(2).

如果后端服务检查功能导致了任何问题,可以禁用它,如下所示。

禁用检查服务:

  1. 在 Satellite Web UI 中,导航到 Administer > Settings
  2. 在搜索框中输入 check_services_before_actions,然后单击 Search
  3. Value 列中,单击图标来编辑值。
  4. 从下拉菜单中,选择 false
  5. Save

18.2. 配置 RSS 通知

要查看 Satellite 事件通知警报,请单击屏幕右上角的 通知 图标。

默认情况下,Notifications 区域显示 Red Hat Satellite Blog 中发布的 RSS 源事件。

该源每 12 小时刷新一次,通知区域会在有新事件可用时更新。

您可以通过更改 URL 源来配置 RSS 源通知。支持的源格式为 RSS 2.0 和 Atom。有关 RSS 2.0 源结构的示例,请参阅 Red Hat Satellite 博客源。有关 Atom 源结构的示例,请参阅 Foreman 博客源

配置 RSS Feed 通知:

  1. 在 Satellite Web UI 中,导航到 Administer > Settings 并选择 Notifications 选项卡。
  2. 在 RSS URL 行中,点 Value 栏中的编辑图标,然后输入所需的 URL。
  3. 在 RSS 启用行中,点 Value 列中的编辑图标来启用或禁用此功能。

18.3. 监控 Satellite 服务器

审计记录会列出 Satellite 上所有用户所做的更改。此信息可用于维护和故障排除。

流程

  1. 在 Satellite Web UI 中,导航到 Monitor > Audits 以查看审计记录。
  2. 要获取所有审计属性的列表,请使用以下命令:

    # foreman-rake audits:list_attributes

18.4. 监控胶囊式服务器

以下部分演示了如何使用 Satellite Web UI 查找用于维护和故障排除的 Capsule 信息。

18.4.1. 查看常规胶囊信息

在 Satellite Web UI 中,导航到 Infrastructure > Capsules,以查看注册到 Satellite 服务器的 Capsule Servers 表。表中所含的信息回答以下问题:

胶囊式服务器是否正在运行?
这通过 Status 列中的绿色图标表示。红色图标表示非活动胶囊,在胶囊服务器上使用 service foreman-proxy restart 命令将其激活。
胶囊式服务器上启用了哪些服务?
Features 列中,您可以验证示例的 Capsule 是否提供 DHCP 服务或充当 Pulp 镜像。可在安装期间启用或配置胶囊功能。如需更多信息,请参阅安装 Capsule 服务器
胶囊式服务器分配到哪些组织和位置?

可以将胶囊服务器分配到多个组织和位置,但仅显示属于当前选定的组织的胶囊。若要列出所有胶囊,请从左上角的上下文菜单中选择 Any Organization

在更改胶囊配置后,从 Actions 栏的下拉菜单中选择 Refresh,以确保 Capsule 表为最新版本。

单击 Capsule 名称,以查看更多详细信息。在 Overview 选项卡上,您可以找到与 Capsule 表中相同的信息。另外,您可以回答以下问题:

哪些主机由胶囊服务器管理?
Hosts managed 标签旁边显示关联的主机数量。单击数字以查看相关主机的详细信息。
胶囊服务器上有多少个存储空间?
此时会显示由 /var/lib/pulp 中的 Pulp 内容占用的存储空间大小。另外,胶囊上剩余的存储空间也可以确定。

18.4.2. 监控服务

在 Satellite Web UI 中,导航到 Infrastructure > Capsules,再点所选 Capsule 的名称。在 Services 选项卡中,您可以查找有关胶囊服务的基本信息,如 DNS 域列表或 Pulp worker 的数量。页面的外观取决于胶囊服务器上启用的服务。提供更详细的状态信息的服务可以在 Capsule 页面中具有专用标签页。更多信息请参阅 第 18.4.3 节 “监控 Puppet”

18.4.3. 监控 Puppet

在 Satellite Web UI 中,导航到 Infrastructure > Capsules,再点所选 Capsule 的名称。在 Puppet 选项卡中,您可以找到以下内容:

  • Puppet 事件摘要、最新 Puppet 运行概述以及 常规 子选项卡中相关主机的同步状态。
  • 环境子选项卡上的 Puppet 环境 列表。

Puppet CA 选项卡中,您可以找到以下内容:

  • 常规 子选项卡的证书状态概览和自动签名条目数量。
  • 在证书子选项卡上与胶囊关联的 CA 证书 表。您可以在此处检查证书到期数据,或通过单击 Revoke 来取消证书。
  • Autosign 条目子选项卡中的 autosign 条目列表。您可以在此处点击 New 或通过点 Delete 来删除条目。
注意

只有在 Satellite 中启用了 Puppet 时,才会使用 Puppet 和 Puppet CA 选项卡。如需更多信息,请参阅在 Red Hat Satellite 中使用 Puppet 集成管理配置中的启用 Puppet 与 Satellite 集成。

第 19 章 使用 Webhook

Webhook 是一种网页或 Web 应用,用于实时提供其他应用程序的信息。Webhook 仅在事件发生后触发。请求通常包含事件的详细信息。事件会触发回调,如发送确认主机已调配的电子邮件。Webhook 允许您使用 fire-and-forget 消息交换模式,根据卫星内部事件定义对外部 API 的调用。发送请求的应用程序不会等待响应,或忽略它。

webhook 的有效负载是从 Webhook 模板创建的。Webhook 模板使用与 Provisioning 模板相同的 ERB 语法。可用变量:

  • @event_name: 事件的名称。
  • @webhook_id :唯一事件 ID。
  • @payload: Payload data,每个事件类型会有所不同。要访问单个字段,请使用 @payload[:key_name] Ruby hash 语法。
  • @payload[:object]: 数据库操作触发的事件的数据库对象(create、update、delete)。不适用于自定义事件。
  • @payload[:context] :作为哈希(如请求和会话 UUID、远程 IP 地址、用户、机构和位置)的额外信息。

由于 Webhook 使用 HTTP,因此不需要向现有 Web 服务添加新基础架构。

Satellite 中 Webhook 的典型用例是在创建或删除主机时调用监控系统。

Webhook 很有用处,您可以在外部系统中通过其 API 来实现。如果需要运行其他命令或编辑文件,可以使用 Capsules 的 shellhooks 插件。shellhooks 插件允许您在可通过 API 执行的胶囊上定义 shell 脚本。

您可以在不安装 shellhooks 插件的情况下成功使用 webhook。

如需可用事件的列表,请参阅 Available webhook events

19.1. 迁移到 Webhook

传统的 foreman_hooks 插件提供了对 webhook 插件意外提供的模型对象的完整访问权限。

安全模式可用的内容范围以及所有对象和宏都受到 API 稳定性的保证,并完全记录。

Webhook 触发的事件数量大大少于使用 foreman_hooks

Webhook 异步处理,因此,使用系统内部进行篡改的风险最少。在不为每个 webhook 脚本创建有效负载的情况下,无法从 foreman_hooks 迁移。但是,webhook 插件附带了几个示例有效负载模板。您还可以将示例有效负载与 shellhooks 搭配使用,以简化迁移。

必须自定义脚本和有效负载模板才能获得类似结果。

19.2. 安装 Webhook

使用以下步骤安装 Webhook。安装 Webhook 后,您可以将卫星服务器配置为发送 webhook 请求。

流程

  • 使用以下命令安装 Webhook:

    # satellite-installer --enable-foreman-plugin-webhooks
  • 可选:您可以使用以下命令安装 CLI 插件:

    # satellite-installer --enable-foreman-cli-webhooks

19.3. 创建 Webhook 模板

Webhook 模板用于在触发 webhook 时将 HTTP 请求正文生成到配置的目标。使用以下步骤在 Satellite Web UI 中创建 webhook 模板。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Webhook Templates
  2. 单击 Clone a existing templateCreate Template
  3. 输入模板的名称。
  4. 使用编辑器更改模板有效负载。

    必须使用 Satellite 模板语法创建 webhook HTTP 有效负载。webhook 模板可以使用一个名为 @object 的特殊变量来代表事件的主对象。如果某些事件,可以缺少 @object。您可以确定哪些数据实际上可通过 @payload 变量使用。

    如需更多信息, 请参阅管理主机中的模板编写参考 ,以及可用的模板宏和方法,请访问 Satellite 服务器上的 /templates_doc

  5. 可选:输入描述和审计注释。
  6. 分配组织和位置。
  7. Submit

例子

在创建 webhook 模板时,您必须遵循模板的目标应用程序格式。例如,应用程序可以预期带有 Webhook 消息的 "文本" 字段。请参阅目标应用程序的文档,以了解更多有关 webhook 模板格式的信息。

运行远程执行作业

此 webhook 模板定义了带有远程执行作业的 ID 和结果的消息。使用此模板的 Webhook 可以订阅到事件,如 Actions Remote Execution Run Host Job SucceededActions Remote Execution Run Host Job Failed

{
    "text": "job invocation <%= @object.job_invocation_id %> finished with result <%= @object.task.result %>"
}
创建用户

此 webhook 模板定义了包含已创建用户的登录和电子邮件的消息。使用此模板的 Webhook 应订阅到 User Created 事件。

{
    "text": "user with login <%= @object.login %> and email <%= @object.mail %> created"
}

19.4. 创建 Webhook

您可以通过 Satellite Web UI 自定义事件、有效负载、HTTP 身份验证、内容类型和标头。

使用以下步骤在 Satellite Web UI 中创建 Webhook。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Webhooks
  2. Create new
  3. Subscribe to 列表中选择一个事件。
  4. 输入 webhook 的名称。
  5. 输入 目标 URL。Webhook 对预先配置的 URL 发出 HTTP 请求。目标 URL 可以是动态 URL。
  6. 单击 Template 以选择模板。Webhook 模板用于在触发 Webhook 时向 Satellite 服务器生成 HTTP 请求正文。
  7. 输入 HTTP 方法。
  8. 可选:如果您不希望在创建 Webhook 时激活 Webhook,请取消选择 Enabled 标志。
  9. Credentials 标签页。
  10. 可选:如果需要 HTTP 身份验证,请输入 User and Password
  11. 可选: 如果您不想根据系统证书存储或 Satellite CA 验证服务器证书,请取消检查 验证 SSL
  12. Additional 选项卡中,输入 HTTP Content Type。例如,您定义的有效负载上的 application/jsonapplication/xmltext/plain。应用程序不会尝试转换内容以匹配指定的内容类型。
  13. 可选:提供 HTTP 标头作为 JSON。也允许 ERB。

当使用非标准 HTTP 或 HTTPS 端口配置带有端点的 webhook 时,必须分配 SELinux,以便在 连接的网络环境中安装 Satellite 服务器中的在自定义端口上访问 Satellite

19.5. 可用的 Webhook 事件

下表包含 Satellite Web UI 中可用的 webhook 事件列表。操作 事件只在 成功 时触发 Webhook,因此当操作失败时,不会触发 Webhook。

有关有效负载的更多信息,请参阅 Administer > About &gt ; Support > Templates DSL。下表中提供了可用类型的列表。某些事件标记为 自定义,在这种情况下,有效负载是一个对象对象,但 Ruby 哈希(键-值数据结构)不同。

事件名称Descriptionpayload

actions Katello Content View Promote Succeeded

内容视图被成功提升。

Actions::Katello::ContentView::Promote

actions Katello Content View Publish Succeeded

存储库已成功同步。

Actions::Katello::ContentView::Publish

操作远程执行运行主机作业 Succeeded

主机成功执行通用远程执行作业。完成时,所有远程执行作业都会发出此事件。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Katello 勘误安装 Succeeded

使用 Katello 界面安装勘误表。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Katello Group Install Succeeded

使用 Katello 接口安装软件包组。

Actions::RemoteExecution::RunHostJob

actions Remote Execution Run Host Job Katello Package Install Succeeded

使用 Katello 接口安装软件包。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Katello 组删除

使用 Katello 接口删除软件包组。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Katello 软件包删除 Succeeded

使用 Katello 接口删除软件包。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Katello Service Restart Succeeded

使用 Katello 接口重启服务。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Katello 组更新 Succeeded

使用 Katello 接口更新软件包组。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Katello 软件包更新 Succeeded

使用 Katello 接口更新软件包。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Foreman OpenSCAP 运行扫描 Succeeded

运行 OpenSCAP 扫描。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机 Ansible 运行主机成功

运行 Ansible playbook,其中包含为主机定义的所有角色。

Actions::RemoteExecution::RunHostJob

actions Remote Execution Run Host Job Ansible Run Capsule Upgrade Succeeded

在给定的胶囊式服务器主机上升级胶囊。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机 Ansible 配置云连接器 Succeeded

在给定主机上配置云连接器。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Ansible 运行 Insights Plan Succeeded

根据 ID,从 Red Hat Access Insights 运行给定维护计划。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Ansible 运行 Playbook Succeeded

针对给定主机运行 Ansible playbook。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Ansible 启用 Web 控制台 Succeeded

运行 Ansible playbook,以在给定主机上启用 Web 控制台。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Puppet 运行主机 Succeeded

执行单个 Puppet 运行。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Katello 模块流 Action Succeeded

使用 Katello 接口执行模块流操作。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Leapp Pre-upgrade Succeeded

RHEL 7 主机的可升级性检查。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Leapp Remediation Plan Succeeded

使用 Leapp 运行修复计划。

Actions::RemoteExecution::RunHostJob

操作远程执行运行主机作业 Leapp Upgrade Succeeded

为 RHEL 7 主机运行 Leapp 升级作业。

Actions::RemoteExecution::RunHostJob

输入构建

主机进入构建模式。

自定义事件:@ payload[:id] (host id), @payload[:hostname] (host name)。

构建退出

主机构建模式已被取消,它已被成功置备,或者用户手动取消构建。

自定义事件:@ payload[:id] (host id), @payload[:hostname] (host name)。

内容视图 已创建/Updated/Destroyed

内容视图上的常见数据库操作.

Katello::ContentView

域 Created/Updated/Destroyed

域上的常见数据库操作.

Domain

主机 Created/Updated/Destroyed

主机上的常见数据库操作.

主机

hostgroup Created/Updated/Destroyed

hostgroup 上的常见数据库操作。

hostgroup

创建的模型/更新/专用

模型上的常见数据库操作.

model

状态更改

主机的全局主机状态已更改。

自定义事件:@ payload[:id] (host id), @payload[:hostname], @payload[:global_status] (hash)

创建的子网/更新/专用子网

子网上的常见数据库操作.

subnet

模板 Render Performed

已呈现报告模板。

模板

用户 Created/Updated/Destroyed

用户上的常见数据库操作.

用户

19.6. Shellhooks

使用 Webhook 时,您只能将一个 Satellite 事件映射到一个 API 调用。对于高级集成,其中单个 shell 脚本可以包含多个命令,您可以安装一个使用 REST HTTP API 公开可执行文件的 Capsule shellhooks 插件。

然后,您可以将 webhook 配置为到达 Capsule API,以运行预定义的 shellhook。shellhook 是一个可执行脚本,只要它可以执行,就可以使用任何语言编写。例如,shellhook 可以包含命令或编辑文件。

您必须将可执行脚本放在 /var/lib/foreman-proxy/shellhooks 中,且只有字母数字字符和下划线的名称。

您可以通过 Webhook 有效负载将输入传递给 shellhook 脚本。此输入重定向到 shellhook 脚本的标准输入。您可以使用 HTTP 标头将参数传递给 shellhook 脚本,格式为 X-Shellhook-Arg-1X-Shellhook-Arg-99。有关将参数传递给 shellhook 脚本的更多信息,请参阅:

HTTP 方法必须是 POST。示例 URL 为: https://capsule.example.com:9090/shellhook/My_Script

注意

shellhooks 目录不同,URL 必须包含 /shellhook/ (以 singular 为单位)。

您必须为每个连接到 shellhook 的 webhook 启用 Capsule 授权,使其能够授权调用。

标准输出和标准错误输出分别作为具有调试或警告级别的消息重定向到 Capsule 日志。

shellhook HTTPS 调用不会返回值。

有关创建 shellhook 脚本的示例,请参阅 第 19.10 节 “创建 Shellhook 以打印参数”

19.7. 安装 Shellhooks 插件

另外,您可以使用以下命令在用于 shellhooks 的每个胶囊上安装并启用 shellhooks 插件:

# satellite-installer --enable-foreman-proxy-plugin-shellhooks

19.8. 使用 Webhook 将参数传递给 Shellhook 脚本

使用此流程使用 Webhook 将参数传递给 shellhook 脚本。

流程

  • 在创建 Webhook 时,在 Additional 选项卡中,以以下格式创建 HTTP 标头:

    {
      "X-Shellhook-Arg-1": "VALUE",
      "X-Shellhook-Arg-2": "VALUE"
    }

    确保标头具有有效的 JSON 或 ERB 格式。仅传递不包含新行或带引号字符的数据库 ID、名称或标签等安全字段。

    如需更多信息,请参阅 第 19.4 节 “创建 Webhook”

Example

{
  "X-Shellhook-Arg-1": "<%= @object.content_view_version_id %>",
  "X-Shellhook-Arg-2": "<%= @object.content_view_name %>"
}

19.9. 使用 Curl 将参数传递给 Shellhook 脚本

使用 curl 将参数传递给 shellhook 脚本。

流程

  • 使用 curl 执行 shellhook 脚本时,以以下格式创建 HTTP 标头:

    "X-Shellhook-Arg-1: VALUE"
    "X-Shellhook-Arg-2: VALUE"

Example

# curl -sX POST -H 'Content-Type: text/plain' \
-H "X-Shellhook-Arg-1: Version 1.0" \
-H "X-Shellhook-Arg-2: My Content View" \
--data "" https://capsule.example.com:9090/shellhook/My_Script

19.10. 创建 Shellhook 以打印参数

创建一个简单的 shellhook 脚本,该脚本在运行远程执行作业时打印"Hello World!"。

前提条件

流程

  1. 修改 /var/lib/foreman-proxy/shellhooks/print_args 脚本,以将参数打印到标准错误输出,以便您可以在 Capsule 日志中看到它们:

    #!/bin/sh
    #
    # Prints all arguments to stderr
    #
    echo "$@" >&2
  2. 在 Satellite Web UI 中,导航到 Administer > Webhooks
  3. Create new
  4. Subscribe to 列表中,选择 Actions Remote Execution Run Host Job Succeeded
  5. 输入 webhook 的名称。
  6. Target URL 字段中,输入您的 Capsule 服务器的 URL,后跟 :9090/shellhook/print_args

    https://capsule.example.com:9090/shellhook/print_args

    请注意,URL 中的 shellhook 是单数的,这与 shellhooks 目录不同。

  7. Template 列表中,选择 Empty Payload
  8. Credentials 选项卡上,选中 Capsule Authorization
  9. Additional 选项卡中,在 Optional HTTP headers 字段中输入以下文本:

    {
        "X-Shellhook-Arg-1": "Hello",
        "X-Shellhook-Arg-2": "World!"
    }
  10. Submit。现在,您已成功创建了一个 shellhook,它会在每次远程执行作业都成功时将"Hello World!"打印到 Capsule 日志。

验证

  1. 在任何主机上运行远程执行作业。您可以使用 时间 作为命令。如需更多信息 请参阅管理主机中的 执行远程作业
  2. 验证 shellhook 脚本是否已触发,并将"Hello World!"输出到 Capsule 服务器日志:

    # tail /var/log/foreman-proxy/proxy.log

    您应该在日志末尾找到以下行:

    [I] Started POST /shellhook/print_args
    [I] Finished POST /shellhook/print_args with 200 (0.33 ms)
    [I] [3520] Started task /var/lib/foreman-proxy/shellhooks/print_args\ Hello\ World\!
    [W] [3520] Hello World!

第 20 章 搜索和书签

Satellite 对 Satellite Web UI 的大多数页面上具有强大的搜索功能。它允许您搜索 Satellite 管理的所有资源类型。搜索接受自由文本和基于语法的查询,该查询可以使用广泛的输入预测进行构建。搜索查询可以保存为书签以供以后重复使用。

20.1. 构建搜索查询

当您开始输入搜索查询时,将显示用于完成查询当前部分的有效选项列表。您可以从列表中选择一个选项,并使用预测 继续输入查询。要了解搜索引擎如何解释自由文本,请参阅 第 20.2 节 “使用自由文本搜索”

20.1.1. 查询语法

parameter operator value

可用字段、要搜索的资源以及查询的解释方式取决于上下文,即您要执行搜索的页面。例如,Hosts 页面上的字段 "hostgroup" 等同于 Host Groups 页面上的字段 "name"。字段类型还决定可用的运算符和接受的值。

如需所有操作器的列表,请参阅 Operator。有关值格式的描述,请查看

20.1.2. 查询 Operator

下表中列出了可在 参数和值 之间使用的所有操作器。预测查询中可能出现的其他符号和特殊字符(如冒号)没有特殊含义,并被视为自由文本。

表 20.1. 搜索接受的 Operator 的比较
操作符短名称DescriptionExample

=

EQUALS

接受数字、临时或文本值。对于文本,返回完全匹配的确切大小。

hostgroup = RHEL7

!=

不等于

~

喜欢

接受文本或临时值。返回不区分大小写的匹配项.接受以下通配符:_ 表示单个字符,%或 * 代表任意数量字符,包括零。如果没有指定通配符,则字符串将被视为与通配符周围的字符串:%rhel7%

hostgroup ~ rhel%

!~

不喜欢

>

大于

接受数字或临时值。对于 temporal 值,operator > 解释为 "later than",< 解释为 "earlier than"。两个 Operator 都可以与 EQUALS: >= <= 结合使用

registered_at > 10-January-2017
搜索将返回在给定日期后注册的主机,即 2017 年 1 月 10 日和现在之间的主机。

registered_at <= Yesterday
搜索将返回已注册 yesterday 或更早版本的主机。

<

小于

^

IN

将表达式与值列表进行比较,如 SQL 中一样。返回包含或不包含值的匹配项。

release_version !^ 7

!^

NOT IN

HAS 或设置?

 

返回当前或不存在的值。

在 Puppet 类页面上 有 hostgroupset? hostgroup
,搜索将返回分配给至少一个主机组的类。

在仪表板上没有 hostgroupnull? hostgroup
,它带有主机概述,搜索将返回没有分配的主机组的所有主机。

NOT HAS 或 null?

 

可以使用逻辑运算符 AND、OR 和 not 将遵循上述语法的简单查询合并到更复杂的语法中。Operator 的替代表示法也被接受:

表 20.2. 搜索接受的逻辑 Operator
操作符备用声明Example

&

&&

<whitespace>

class = motd AND environment ~ production

或者

|

||

 

errata_status = errata_needed || errata_status = security_needed

not

!

 

hostgroup ~ rhel7 not status.failed

20.1.3. 查询值

文本值

包含空格的文本必须用引号括起。其他空格被解释为 AND 运算符。

示例:

hostgroup = "Web servers"

搜索将返回已分配主机组"Web 服务器"的主机。

hostgroup = Web 服务器

搜索将返回主机组 Web 中的主机,以及任何字段与 %servers% 匹配。

临时值

接受很多日期和时间格式,包括:

  • "2017 年 1 月 10 日"
  • "2017 年 1 月 10 日"
  • 10-January-2017
  • 10/January/2017
  • "2017 年 7 月 10 日"
  • 今天,是的,
警告

避免模糊日期格式,如 02/10/2017 或 10-02-2017。

20.2. 使用自由文本搜索

输入免费文本时,它将在多个字段中搜索。例如,如果您输入"64",则搜索将返回在其名称、IP 地址、MAC 地址和架构中具有该数字的所有主机。

注意

多词查询必须用引号括起,否则空格被解释为 AND 运算符。

由于所有字段都搜索,自由文本搜索结果并不准确,搜索速度可能很慢,特别是在大量主机上。因此,我们建议您避免自由文本,并尽可能使用更具体的基于语法的查询。

20.3. 管理书签

您可以将搜索查询保存为书签以供重复使用。您还可以删除或修改书签。

书签 仅显示创建它们的页面中。在某些页面中,有默认书签可用于通用搜索,例如,所有 活跃 或禁用 的主机。

20.3.1. 创建书签

本节详细介绍了如何将搜索查询保存为书签。您必须在相关页面上保存搜索查询,以便为该页面创建书签,例如,在 Hosts 页面上保存与主机相关的搜索查询。

流程

  1. 在 Satellite Web UI 中,导航到您要创建书签的页面。
  2. Search 字段中,输入您要保存的搜索查询。
  3. 选择搜索按钮右侧的箭头,然后选择 此搜索的书签
  4. Name 字段中输入新书签的名称。
  5. Search query 字段中,确保您的搜索查询正确。
  6. 确保正确设置了 公共复选框

    • 选中 公共复选框,将书签设置为公共,并对所有用户可见。
    • 清除 公共复选框,以将书签设置为私有,并且仅对创建该复选框的用户可见。
  7. Submit

要确认创建,请选择 Search 按钮右侧的箭头来显示书签列表,或者导航到 Administer & gt; Bookmarks,然后选中书签名称的列表。

20.3.2. 删除书签

您可以删除 Bookmarks 页面中的书签。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Bookmarks
  2. 在 Bookmarks 页面上,为您要删除的书签单击 Delete
  3. 确认窗口打开后,单击 OK 以确认删除。

要确认删除操作,请选中 书签 名称的书签列表。

附录 A. 管理设置

本节介绍您可以通过导航到 Administer > Settings 在 Satellite Web UI 中编辑的设置。

A.1. 常规设置

设置默认值Description

管理员电子邮件地址

 

默认管理员电子邮件地址

Satellite URL

 

访问 Satellite 实例的 URL。另请参阅 Provisioning > Unattended URL

每页的条目

20

Satellite 中每个页面显示的记录数

修复 DB 缓存

卫星维护权限和角色的缓存。当设置为 Yes 时,卫星在下次重启时重新创建此缓存。

DB 待定

应在下一次运行安装程序模块运行时执行 foreman-rake db:seed

胶囊请求超时

60

为从 Satellite 到 Capsule (以秒为单位)的 HTTP 请求打开和读取超时。

登录页面页页文本

 

登录页页页脚中显示的文本。

HTTP (S)代理

 

为 Satellite 产品的传出 HTTP (S)连接设置代理。系统范围的代理必须在操作系统级别配置。

除主机外的 HTTP (S)代理

[]

设置不代理请求的主机名。默认排除对本地主机的请求。

显示实验室

是否显示用于访问实验实验功能的菜单(需要重新加载页面)。

在主机中附加域名

如果设置为 Yes,则 Satellite 会在调配新主机时附加域名。

没有同步间隔

30

受管主机定期报告,如果报告间隔的时间在几分钟内超过此持续时间,则主机被视为不同步。您可以通过在 Hosts > All hosts > $host > Edit > Parameters > Add Parameter 处添加 outofsync_interval 参数来覆盖它

Satellite UUID

 

Satellite 实例 ID。唯一标识 Satellite 实例。

默认语言

 

用于新用户的 UI 使用这个语言。

默认时区

 

用于新用户的时区。

实例标题

 

实例标题显示在顶部导航栏上(需要重新加载页面)。

保存的审计间隔

 

保留审计数据的天数(以天为单位)。留空,以禁用审计清理。

新主机详情 UI

Satellite 加载新的 UI 以获取主机详细信息。

A.2. Satellite 任务设置

设置默认值Description

同步任务超时

120

在引发异常前等待同步任务完成的秒数。

启用 dynflow 控制台

启用 dynflow 控制台(/foreman_tasks/dynflow)进行调试。

dynflow 控制台需要 auth

在访问 dynflow 控制台前,用户必须以具有管理权限的身份进行身份验证。

Capsule action retry count

4

在失败前,允许在胶囊上启动任务的次数。

Capsule 操作重试间隔

15

重试之间的时间(以秒为单位)。

允许胶囊批处理任务

在胶囊上启用批量触发任务。

胶囊任务批处理大小

100

如果启用了 foreman_tasks_proxy_batch_trigger,则一个对 Capsule 中包含的任务数量。

对 URL 进行故障排除的任务

 

指向任务故障排除文档的 URL。它应包含一个 %{label} 占位符,它被一个规范化的任务标签(仅限于字母数字字符)。也可以使用 %{version} 占位符。

轮询间隔倍数

1

轮询倍数,用于乘以默认的轮询间隔。您可以使用此功能来防止长时间运行的任务轮询太频繁。

A.3. 模板同步设置

设置默认值Description

associate

New

将模板与 OS、机构和位置关联。

分支

 

Git 仓库中的默认分支。

提交消息

Satellite 用户生成的模板导出

导出模板的自定义提交消息。

dirname

/

Git 存储库中的 目录,其中包含模板。

Filter

 

导入或导出与此正则表达式匹配的名称。不区分大小写。片段不会被过滤。

强制导入

如果设置为 Yes,则在导入过程中会覆盖锁定的模板。

锁定模板

keep,不要锁定新的

如何处理导入的模板锁定。

元数据导出模式

刷新

默认元数据导出模式。

可能的选项:

刷新 重新渲染元数据。

保留现有 元数据。

删除 在没有元数据的情况下导出模板。

negate

拉取导入或导出的过滤器。

prefix

 

字符串作为导入模板的前缀添加。

仓库

 

从中导入或导出模板的目标路径。可以使用不同的协议,例如:

/tmp/dir

git://example.com

https://example.com

ssh://example.com

当导出至 /tmp 时,请注意,生产部署可能配置为使用 私有 tmp

详细程度

为 Rake 任务导入模板选择详细程度。

A.4. 发现的设置

设置默认值Description

发现位置

 

指明将发现的主机放入的默认位置。

发现机构

 

表示将发现的主机添加到的默认组织。

接口事实

discovery_bootif

用于主接口检测的事实名称。

创建绑定接口

如果使用 LLDP 在同一 VLAN 上检测到另一个接口,则自动创建绑定接口。

清理所有事实

在置备过程中清理所有报告的事实(发现事实除外)。

主机名事实

discovery_bootif

用于主机名的事实列表(单独,第一个优先)。

自动置备

使用调配规则自动调配新发现的主机。

重启

置备过程中自动重启或 kexec 发现的主机。

主机名前缀

mac

用于主机名的默认前缀。必须以字母开头.

fact 列

 

要在主机列表中显示的额外事实列(分开)。

突出显示的事实

 

用于组织突出显示部分的事实正则表达式 - 例如 ^(abc|cde)$

存储事实

 

用于组织 storage 部分事实的正则表达式。

软件事实

 

用于组织软件部分事实的正则表达式。

硬件事实

 

用于组织硬件部分事实的正则表达式。

网络事实

 

用于组织 network 部分事实的正则表达式。

IPMI 事实

 

正则表达式,用于组织 智能平台管理接口 (IPMI)部分的事实。

lock PXE

自动生成 预启动执行环境 (PXE)配置,以固定新发现的主机来发现。

锁定的 PXELinux 模板名称

pxelinux_discovery

固定主机以进行发现时要使用的 PXELinux 模板。

锁定的 PXEGrub 模板名称

pxegrub_discovery

在固定主机以进行发现时要使用的 PXEGrub 模板。

锁定的 PXEGrub2 模板名称

pxegrub2_discovery

在固定主机以进行发现时要使用的 PXEGrub2 模板。

强制 DNS

在置备发现的主机时强制创建 DNS 条目。

现有 NIC 中的错误

不要允许发现与置备 网络接口卡 (NIC)的 MAC 匹配的现有受管主机(早期存在)。

名称生成器的类型

事实 + 前缀

发现主机名命名模式.

首选 IPv6

调用发现的节点时,首选 IPv6 到 IPv4。

A.5. 引导磁盘设置

设置默认值Description

iPXE 目录

/usr/share/ipxe

包含 iPXE 镜像的目录的路径。

ISOLINUX 目录

/usr/share/syslinux

包含 ISOLINUX 镜像的目录的路径。

SYSLINUX 目录

/usr/share/syslinux

包含 SYSLINUX 镜像的目录的路径。

Grub2 目录

/var/lib/tftpboot/grub2

包含 grubx64.efishimx64.efi 的目录路径。

主机镜像模板

引导磁盘 iPXE - 主机

用于特定于主机的引导磁盘的 iPXE 模板。

通用镜像模板

引导磁盘 iPXE - 通用主机

用于通用主机引导磁盘的 iPXE 模板。

通用 Grub2 EFI 镜像模板

引导磁盘 Grub2 EFI - 通用主机

Grub2 模板用于通用 可扩展固件接口 (EFI)主机引导磁盘。

ISO 生成命令

genisoimage

生成 ISO 镜像的命令,使用 genisoimagemkisofs

安装介质缓存

为完整主机镜像缓存安装介质文件。

允许 bootdisk 类型

[generic, host, full_host, subnet]

允许的 bootdisk 类型列表。留空以禁用它。

A.6. Red Hat Cloud 设置

设置默认值Description

自动清单上传

启用将主机清单自动上传到红帽云。

自动同步建议

启用从红帽云自动同步 Insights 建议。

模糊处理主机名

模糊处理发送到红帽云的主机名。

模糊处理主机 ipv4 地址

模糊处理发送到红帽云的 IPv4 地址。

RHC 守护进程的 ID

*****

RHC 守护进程 ID.

A.7. 内容设置

设置默认值Description

默认 HTTP 代理

 

用于同步内容的默认 HTTP 代理。

CDN SSL 版本

 

用于与 CDN 通信的 SSL 版本。

默认同步操作系统置备模板

Kickstart 默认

从同步内容创建的操作系统的默认置备模板。

默认同步操作系统完成模板

Kickstart 默认完成

从同步内容创建的新操作系统的默认完成模板。

默认同步操作系统用户数据

Kickstart 默认用户数据

从同步内容创建的新操作系统的默认用户数据。

默认同步操作系统 PXELinux 模板

Kickstart 默认 PXELinux

从同步内容创建的新操作系统的默认 PXELinux 模板。

默认同步 OS PXEGrub 模板

Kickstart default PXEGrub

从同步内容创建的新操作系统的默认 PXEGrub 模板。

默认同步 OS PXEGrub2 模板

Kickstart 默认 PXEGrub2

从同步内容创建的新操作系统的默认 PXEGrub2 模板。

默认同步操作系统 iPXE 模板

Kickstart 默认 iPXE

从同步内容创建的新操作系统的默认 iPXE 模板。

默认同步操作系统分区表

Kickstart 默认

从同步内容创建的新操作系统的默认分区表。

默认同步 OS kexec 模板

发现 Red Hat kexec

从同步内容创建的新操作系统的默认 kexec 模板。

默认同步 OS Atomic 模板

Atomic Kickstart 默认

从同步内容创建的新原子操作系统的默认调配模板。

清单刷新超时

1200

刷新清单(以秒为单位)时的超时。

接受操作超时

20

等待主机获取远程操作的时间(以秒为单位)。

完成操作超时

3600

等待主机完成远程操作的时间(以秒为单位)。

启用订阅连接

可与红帽门户通信以获取订阅。

来自内容视图的可安装勘误表

仅根据主机的内容视图和生命周期环境中的勘误表计算勘误表主机状态。

限制复合内容视图提升

如果启用此项,则无法发布或提升复合内容视图,除非目标环境中包含的内容视图版本存在。

在操作前检查服务

在执行操作前,检查 pulp 和 candlepin 等后端服务的状态?

批处理大小来同步存储库

100

胶囊上应同时同步多少个存储库。较小的数字可能会导致同步时间更长。一个较大的数字会增加 dynflow 负载。

在内容视图提升后同步胶囊

在内容视图提升后是否自动同步胶囊。

默认自定义存储库下载策略

immediate

自定义存储库的默认下载策略。immediateon_demand

默认 Red Hat Repository 下载策略

on_demand

启用的红帽存储库的默认下载策略。immediateon_demand

默认胶囊下载策略

on_demand

胶囊同步的默认下载策略。可以 继承immediateon_demand

Pulp 导出目标文件路径

/var/lib/pulp/katello-export

导出存储库的磁盘上位置。

Pulp 3 导出目标文件路径

/var/lib/pulp/exports

Pulp 3 导出的存储库的磁盘位置。

Pulp 客户端密钥

/etc/pki/katello/private/pulp-client.key

用于 Pulp 服务器身份验证的 SSL 密钥路径。

Pulp 客户端证书

/etc/pki/katello/certs/pulp-client.crt

用于 Pulp 服务器身份验证的 SSL 证书的路径。

同步连接超时

300

同步时连接超时(以秒为单位)。

默认使用远程执行

如果启用,则使用远程执行而不是 katello-agent 进行远程操作。

取消注册时删除主机

使用 subscription-manager 取消注册主机时,同时删除主机记录。也可以删除链接到主机的受管资源,如虚拟机和 DNS 记录。

订阅管理器名称注册事实

 

使用 subscription-manager 注册主机时,请强制为主机名使用指定事实(事实( fact)的形式)。

订阅管理器名称注册事实严格匹配

如果启用此设置,并且设置了并提供了 register_hostname_fact,则注册仅按名称查找新主机,并跳过所有主机名匹配。

默认位置订阅的主机

默认位置

注册后存储了新订阅的主机的默认位置。

即将过期

120

在提醒续订前订阅中剩余的天数。

内容视图依赖默认

新的内容视图的默认依赖项解决值。

主机 Duplicate DMI UUID

[]

如果因为重复的 桌面管理接口 (DMI) UUID 无法注册,请在此处添加以逗号分隔的值。后续注册会为受影响的主机生成唯一的 DMI UUID。

主机配置文件评估

启用新主机注册假设带有匹配主机名的注册配置文件,只要其他主机不使用注册 DMI UUID。

主机配置文件可以在构建中更改

启用主机注册以绕过 Host Profile Assume,只要主机处于构建模式。

主机只能 Re-Register 在构建中

仅在处于构建模式时启用主机重新注册。

主机任务 Workers 池大小

5

池中用于处理执行主机相关任务的 worker 数量。当设置为 0 时,使用默认的队列。需要重启 dynflowd/foreman-tasks 服务。

适用范围批处理大小

50

每个任务处理的主机适用性计算数。

Autosearch

对于支持它的页面,在键入搜索输入时会自动执行搜索。

Autosearch delay

500

如果启用了 Autosearch,则在键入时执行搜索前以毫秒为单位的延迟。

Pulp 批量负载大小

2000

从单个 paged Pulp API 调用中获取的项目数量。

上传没有 Dynflow 的配置集

启用 Katello 来更新主机安装的软件包、启用的存储库和模块清单,而不是在 Dynflow 任务中嵌套,如果 Puma 进程使用太多内存,则请关闭。

孤立的内容保护时间

1440

以分钟为单位的时间,将孤立内容视为孤立的内容。

首选通过 Capsule 注册以进行远程执行

首选使用代理,在使用远程执行时将主机注册到哪个代理。

允许删除公布的内容视图中的存储库

启用删除用户之前在一个或多个内容视图版本中发布的存储库。

A.8. 身份验证设置

设置默认值Description

OAuth 活跃

Satellite 将使用 OAuth 进行 API 授权。

OAuth 消费者密钥

*****

OAuth 消费者密钥。

OAuth 消费者 secret

*****

OAuth 消费者机密。

OAuth 映射用户

Satellite 根据 request-header 中的 username 映射用户。如果禁用此功能,OAuth 请求具有管理员权限。

失败登录尝试限制

30

在指定失败登录尝试次数后,Satellite 会阻止用户从传入的 IP 地址登录 5 分钟。设置为 0 以禁用暴力强制保护。

限制注册的主机名

只有已知胶囊才能访问使用胶囊身份验证的功能。

为 Capsules 需要 SSL

客户端 SSL 证书用于识别胶囊(还应启用:require_ssl )。

可信主机

[]

除了用于访问事实/报告导入器和 ENC 输出之外,要信任的主机名、IPv4、IPv6 地址或子网的列表。

SSL 证书

/etc/foreman/client_cert.pem

Satellite 用于与其代理通信的 SSL 证书路径。

SSL CA 文件

/etc/foreman/proxy_ca.pem

Satellite 用于与其代理通信的 SSL CA 文件路径。

SSL 私钥

/etc/foreman/client_key.pem

Satellite 用于与其代理通信的 SSL 私钥路径。

SSL 客户端 DN env

HTTP_SSL_CLIENT_S_DN

包含来自客户端 SSL 证书的主题 DN 的环境变量。

SSL 客户端验证 env

HTTP_SSL_CLIENT_VERIFY

包含客户端 SSL 证书的验证状态的环境变量。

SSL 客户端证书环境

HTTP_SSL_CLIENT_CERT

包含客户端的 SSL 证书的环境变量。

服务器 CA 文件

 

模板中使用的 SSL CA 文件路径来验证与 Satellite 的连接。

Websocket SSL 密钥

etc/pki/katello/private/katello-apache.key

卫星用来加密 websocket 的私钥文件路径。

Websocket SSL 证书

/etc/pki/katello/certs/katello-apache.crt

Satellite 用来加密 websocket 的证书路径。

Websocket 加密

VNC/SPICE websocket 代理控制台访问加密(需要websockets_ssl_key/cert 设置)。

登录委托退出 URL

 

注销时,将用户重定向到此 URL。也启用 Authorize 登录委派

授权登录授权身份验证源用户 autocreate

外部

外部身份验证源的名称,其中未知的外部经过身份验证的用户(请参阅 Authorize login delegation)被创建。空表示没有自动创建。

授权登录委托

使用 REMOTE_USER HTTP 标头授权登录委派。

授权登录委托 API

使用 REMOTE_USER HTTP 标头授权登录委托用于 API 调用。

空闲超时

60

在指定分钟数后注销闲置用户。

bcrypt 密码成本

9

用于内部 auth-sources 的 bcrypt 密码哈希函数的成本值(4rhacm-rhacm30)。更高的值是安全的,但验证速度较慢,特别是无状态 API 调用和 UI 登录。需要更改密码才能影响现有密码。

BMC 凭证访问

允许通过 ENC YAML 输出和模板中访问 BMC 接口密码。

OIDC JWKs URL

 

OpenID Connect JSON Web 密钥集 (JWKS) URL。在使用 Keycloak 作为 OpenID 供应商时,通常会 https://keycloak.example.com/auth/realms/<realm name>/protocol/openid-connect/certs

OIDC Audience

[]

用于身份验证的 OpenID Connect Audience 的名称。对于 Keycloak,这是客户端 ID。

OIDC 颁发者

 

签发者声明标识发布 JSON Web 令牌 (JWT)的主体,该主体在大多数 OpenID 提供程序时存在于 /.well-known/openid-configuration

OIDC 算法

 

在 OpenID 提供程序中对 JWT 进行编码的算法。

A.9. 电子邮件设置

设置默认值Description

电子邮件地址

 

Satellite 所发送的电子邮件的电子邮件地址。

电子邮件主题前缀

 

要添加到所有传出电子邮件的前缀。

发送欢迎电子邮件

向新用户发送包括用户名和 URL 的欢迎电子邮件。

交付方法

sendmail

用于发送电子邮件的方法。

SMTP 启用 StartTLS auto

SMTP 自动启用 StartTLS。

SMTP OpenSSL 验证模式

默认验证模式

使用 TLS 时,您可以设置 OpenSSL 如何检查证书。

SMTP 地址

 

要连接的 SMTP 地址。

SMTP 端口

25

要连接的 SMTP 端口。

SMTP HELO/EHLO 域

 

HELO/EHLO 域.

SMTP 用户名

 

用于验证的用户名(如果需要)。

SMTP 密码

*****

如果需要,用于身份验证的密码。

SMTP 身份验证

none

如果需要,指定身份验证类型。

Sendmail 参数

-i

将其他选项指定为 sendmail。仅在发送方法设置为 sendmail 时使用。

Sendmail 位置

/usr/sbin/sendmail

sendmail 可执行文件的位置。仅在发送方法设置为 sendmail 时使用。

A.10. 通知设置

设置默认值Description

RSS 启用

拉取 RSS 通知。

RSS URL

https://www.redhat.com/en/rss/blog/channel/red-hat-satellite

从中获取 RSS 通知的 URL。

A.11. 置备设置

设置默认值Description

主机所有者

 

如果空的 Satellite 使用当前用户,则调配的主机上的默认所有者。

root 密码

*****

置备的主机上默认加密的 root 密码。

无人值守 URL

 

主机在构建期间检索模板的 URL。当它以 https、无人值守或 userdata 开始时,无法使用 HTTP 访问控制器。

Safemode 渲染

启用置备模板的安全模式渲染。default 和 recommended 选项是拒绝访问变量以及没有在 Satellite 中列出的任何对象。

当设置为 No 时,任何对象可以被有权使用模板功能的用户访问,可以通过编辑模板、参数或智能变量来访问。这允许用户卫星服务器上完全远程代码执行,从而有效地禁用所有授权。这不是一种安全选择,特别是在大型公司中。

在不构建的情况下进行无人值守访问

启用对无人值守 URL 的访问,而无需使用构建模式。

查询本地名称服务器

Satellite 查询本地配置的解析器,而不是 SOA/NS 权威。

安装过程生命周期

360

安装令牌应有效的时间(以分钟为单位)。设置为 0 以禁用令牌。

SSH 超时

120

SSH 置备超时前的时间(以秒为单位)。

libvirt 默认控制台地址

0.0.0.0

在使用 libvirt 置备新虚拟机时,应该用于控制台侦听地址的 IP 地址。

从构建请求更新 IP

Satellite 使用发出构建请求的 IP 更新主机 IP。

为虚拟机使用短名称

Satellite 使用短主机名而不是 FQDN 来创建新虚拟机。

DNS 超时

[5, 10, 15, 20]

DNS 查找尝试超时列表(以秒为单位),如 dns_lookup 宏和 DNS 记录冲突验证。

清理失败的部署

如果调配脚本以非零退出代码结尾,卫星将删除虚拟机。

名称生成器的类型

基于随机

指定在创建新主机时用来生成主机名的方法。

默认 Random-based 选项会生成一个一个唯一的随机主机名,您可以这样做,但不必使用。这对创建多个主机并不知道如何命名它们的用户很有用。

基于 MAC 的选项仅适用于裸机主机。如果您删除主机并在稍后创建,它会根据 MAC 地址接收相同的主机名。这对回收服务器并希望它们始终获得相同的主机名的用户很有用。

Off 选项禁用名称生成器函数,并将主机名留空。

默认 PXE 全局模板条目

 

全局模板中的默认 PXE 菜单项 - 本地discovery 或 custom,模板 default 使用 blank。

默认 PXE 本地模板条目

 

本地模板中的默认 PXE 菜单项 - 本地local_chain_hd0 或 custom,模板为 default。

iPXE 中间脚本

iPXE 中间脚本

用于无人值守安装的中间 iPXE 脚本。

销毁 host delete 上的相关虚拟机

销毁 host delete 上的相关虚拟机。启用后,链接到主机的虚拟机将在计算资源上被删除。禁用后,虚拟机会在主机被删除时取消链接,这意味着它们保留在计算资源中,并可重新关联或重新导入到 Satellite。这不会自动关闭虚拟机

最大结构化事实

100

结构化子树中的最大密钥数量,统计信息存储在 satellite::dropped_subtree_facts 中。

默认全局注册模板

全局注册

全局注册模板.

默认 'Host 初始配置' 模板

Linux host_init_config default

默认"主机初始配置"模板,在创建新操作系统时自动分配。

全局默认 PXEGrub2 模板

PXEGrub2 全局默认值

全局默认 PXEGrub2 模板。此模板部署到所有配置的 TFTP 服务器。不受升级的影响。

全局默认 PXELinux 模板

PXELinux 全局默认

全局默认 PXELinux 模板。此模板部署到所有配置的 TFTP 服务器。不受升级的影响。

全局默认 PXEGrub 模板

PXEGrub 全局默认值

全局默认 PXEGrub 模板。此模板部署到所有配置的 TFTP 服务器。不受升级的影响。

全局默认 iPXE 模板

iPXE 全局默认值

全局默认 iPXE 模板。此模板部署到所有配置的 TFTP 服务器。不受升级的影响。

本地引导 PXEGrub2 模板

PXEGrub2 默认本地引导

为本地引导选择 PXEGrub2 默认的模板。

本地引导 PXELinux 模板

PXELinux 默认本地引导

为本地引导选择 PXELinux 默认的模板。

本地引导 PXEGrub 模板

PXEGrub 默认本地引导

为本地引导选择 PXEGrub 默认的模板。

本地引导 iPXE 模板

iPXE 默认本地引导

为本地引导选择为 iPXE 默认的模板。

管理 PuppetCA

Satellite 在调配新主机时自动执行证书签名请求。

将 UUID 用于证书

Satellite 将随机 UUID 用于证书签名请求,而不是主机名。

显示不支持的置备模板

显示不支持的自定义模板。启用后,将显示所有可用的模板。禁用后,只会显示红帽支持的模板。

A.12. 事实设置

设置默认值Description

在事实上传时创建新主机

在收到新事实时,Satellite 会创建主机。

位置事实

satellite_location

在 Puppet 运行之后创建的主机放置在此事实指定的位置。

机构事实

satellite_organization

在 Puppet 运行之后创建的主机放置在由此事实指定的组织中。此事实的内容应当是组织的完整标签。

默认位置

默认位置

在 Puppet 运行之后创建的主机没有发送位置事实位于此位置。

默认机构

默认机构

在 Puppet 运行之后创建的主机没有发送组织事实位于此组织中。

从事实更新主机组

Satellite 从其事实中更新主机的主机组。

忽略操作系统的事实

停止从事实更新操作系统。

忽略域的事实

停止从事实更新域值。

从事实更新子网

None

卫星从其事实更新主机的子网。

忽略用于调配的接口事实

停止从事实更新 IP 和 MAC 地址值(影响所有接口)。

忽略具有匹配标识符的接口

[lo,en*v*, usb*, vnet*, macvtap*, ;vdsmdummy;, veth*, tap*, qvb *, qvb*, qvo*, qr-*, qg-*, vlinuxbr*, vovsbr*, br-int]

跳过创建或更新主机网络接口对象,并带有与这些值匹配的标识符。您可以使用 * 通配符来将标识符与索引匹配,如 macvtap*。忽略的接口原始事实仍然存储在数据库中,请参阅 Exclude pattern 设置以了解更多详细信息。

Satellite 中存储的事实的排除模式

[lo,en*v*, usb*, vnet*, macvtap*, ;vdsmdummy;, veth*, tap*, qvb *, qvb*, qvo*, qr-*, qg-*, vlinuxbr*, vovsbr*, br-int,load_averages::*, memory::swap::available*, memory::swap::capacity,memory::swap::used*, memory::system::available*, memory::system::capacity,memory::system::used*, memoryfree _mb ,memoryfree_mb,swapfree _mb, uptime_hours ,uptime_hours,uptime_days]

所有导入的事实(Puppet、Ansible、rhsm)的所有类型的排除模式。这些事实不存储在 satellite 数据库中。您可以使用 * 通配符来匹配索引的名称,如 ignore* 过滤器忽略、ignore123 和 a::ignore,甚至::ignore::b。

A.13. 配置管理设置

设置默认值Description

报告上传时创建新主机

在收到报告时,Satellite 会创建主机。

匹配者继承

在评估主机组、组织和位置的智能类参数时,卫星匹配器将被子级继承。

默认参数查找路径

[FQDN, hostgroup,os,domain]

默认情况下,Satellite 会按照以下顺序评估主机智能类参数。

参数中的策略 ERB

Satellite 在 ENC 输出中的参数值中解析 ERB。

始终显示配置状态

所有主机都显示配置状态,即使未分配 Puppet Capsule。

A.14. 远程执行设置

设置默认值Description

回退到任何胶囊

使用 Remote Execution 搜索主机以查找任何代理。当主机没有子网或者子网没有执行代理时,这非常有用。

启用全局胶囊

在分配给主机的代理之外搜索远程执行代理。搜索仅限于主机的机构和位置。

SSH 用户

root

用于 SSH 的默认用户。您可以通过设置 remote_execution_ssh_user 参数来覆盖每个主机。

有效的用户

root

用于执行脚本的默认用户。如果用户与 SSH 用户不同,则使用 su 或 sudo 来切换用户。

有效的用户方法

sudo

用于切换到有效用户的命令。其中一个 [sudo,dzdo,su]

有效用户密码

*****

有效用户密码。请参阅 Effective User

同步任务模板

运行 db:seed 时是否从磁盘同步模板。

SSH 端口

22

用于 SSH 通信的端口。默认端口 22.您可以通过设置 remote_execution_ssh_port 参数来覆盖每个主机。

通过 IP 连接

主机接口上的 IP 地址是否优先于 FQDN。当 DNS 没有正确解析 FQDN 时,这非常有用。您可以通过设置 remote_execution_connect_by_ip 参数来覆盖每个主机。对于双栈主机,请考虑 remote_execution_connect_by_ip_prefer_ipv6 设置。

首选 IPv6 over IPv4

使用 IP 地址进行连接时,首选使用 IPv6 地址?如果没有设置 IPv6 地址,它将自动回退到 IPv4。您可以通过设置 remote_execution_connect_by_ip_prefer_ipv6 参数来覆盖每个主机。默认情况下,为了兼容,IPv4 优先于 IPv6。

默认 SSH 密码

*****

用于 SSH 的默认密码。您可以通过设置 remote_execution_ssh_password 参数来覆盖每个主机。

默认 SSH 密钥密码短语

*****

用于 SSH 的默认密钥密码短语。您可以通过设置 remote_execution_ssh_key_passphrase 参数来覆盖每个主机。

Worker 池大小

5

池中用于处理远程执行作业的 worker 数量。需要重新启动 dynflowd/satellite-tasks 服务。

清理工作目录

任务完成后是否删除工作目录。您可以通过设置 remote_execution_cleanup_working_dirs 参数来覆盖每个主机。

cockpit URL

 

在何处查找 Web 控制台按钮的 Cockpit 实例。默认情况下,不显示任何按钮。

表格任务模板

运行命令 - SSH 默认值

选择以作业调用形式预先选择的作业模板。

任务调用报告模板

作业 - Invocation report 模板

选择用于为特定远程执行作业生成报告的报告模板。

选择时间

86400

主机要提取作业的时间(以秒为单位)。如果没有在此限制内获取作业,则会取消作业。仅适用于基于 pull-mqtt 的作业。默认为一天。

A.15. Ansible 设置

设置默认值Description

私钥路径

 

使用此选项提供 Ansible 而不是密码的 SSH 私钥的路径。使用 ansible_ssh_private_key_file 主机参数覆盖。

连接类型

ssh

在运行 Ansible playbook 时,默认使用此连接类型。您可以通过添加 ansible_connection 参数在主机上覆盖它。

WinRM 证书验证

validate

在运行 Ansible playbook 时启用或禁用 WinRM 服务器证书验证。您可以通过添加 ansible_winrm_server_cert_validation 参数在主机上覆盖它。

默认详细程度

Disabled

Satellite 在运行 Ansible playbook 时为额外的调试输出添加了此级别的详细程度。

后置备超时

360

在主机完全调配后触发 Ansible 角色任务 playbook 时设置的超时(以秒为单位)。把它设置为您预期主机在重启后就绪的最大时间。

Ansible 报告超时

30

主机应报告超时(以分钟为单位)。

Ansible 禁用同步

在报告没有达到配置的间隔后,禁用主机配置状态转变为 Ansible 的同步。

默认 Ansible 清单报告模板

Ansible - Ansible 清单

卫星使用此模板通过 Ansible 清单调度报告。

要忽略的 Ansible 角色

[]

从 Capsule 导入角色时要排除的角色。预期的输入是逗号分隔的值,您可以使用 * 通配符元字符。例如: foo*, *b*, *bar

Ansible 的胶囊任务批处理大小

 

如果启用了 satellite_tasks_proxy_batch_trigger,则应在一个请求中发送到 Capsule 的任务数量。如果设置,它将覆盖 Ansible 作业的 satellite_tasks_proxy_batch_size 设置。

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.