搜索

第 3 章 升级 Red Hat Satellite

download PDF
警告

如果您在高可用性配置中安装了 Satellite 6,请在升级到 Satellite 6.10 前联系红帽支持。

使用以下步骤将现有 Red Hat Satellite 升级到 Red Hat Satellite 6.10:

在升级前,请参阅 第 1.1 节 “先决条件”

3.1. 升级 Satellite 服务器

本节论述了如何将 Satellite 服务器从 6.9 升级到 6.10。

在继续操作前,将您的卫星服务器 6.9.z 更新至最新的 6.9.z 版本。您可以使用以下命令更新到最新的 z-stream。

# satellite-maintain upgrade run --target-version 6.9.z

在升级到 6.10 前,请确保已更新到最新的 z-stream。有关更新 Satellite 服务器的详情请参考 第 5.1 节 “更新 Satellite 服务器”

虽然从 6.9 升级到 6.10 的过程也会将 Pulp 内容迁移,但这可能需要一些时间。您可以按以下流程减少此时间 第 3.1.1 节 “准备将内容迁移到 Pulp 3”

如果您尚未预从 Pulp 2 迁移到 Pulp 3,必须先升级到最新版本的卫星服务器,然后再开始迁移 Pulp 内容。

开始前

  • 请注意,您可以独立于 Satellite 升级胶囊。更多信息请参阅 第 1.4 节 “从 Satellite 升级胶囊”
  • 在升级卫星服务器之前,检查和更新您的防火墙配置。如需更多信息,请参阅 在安装 Satellite Server 中为安装准备 您的环境
  • 确保您没有从客户门户网站或 Satellite Web UI 中删除清单,因为这会移除您的内容主机的所有权利。
  • 在升级前备份并删除所有 Foreman hook。仅在 Satellite 已知后恢复所有 hook,才能在升级完成后工作。请注意,Foreman Hooks 功能已弃用,并将在下一个 Satellite 版本中删除。
  • 如果您编辑了任何默认模板,请通过克隆或导出文件来备份文件。推荐的方法克隆是推荐的方法,因为这会在以后更新或升级过程中被覆盖。要确认模板是否已编辑,您可以在升级前查看其 历史,或者在升级后查看审计日志中的更改。在 Satellite Web UI 中,进入 Monitor > Audits 并搜索模板以查看所做的更改记录。如果您使用导出方法,请通过比较导出的模板和默认模板来恢复您的更改,请手动应用您的更改。
  • Pulp 内容迁移是在升级到 6.10 前在 6.9 中进行的。
  • 确保 /var/lib/pulp/published 有足够的存储空间,以便在开始迁移过程前以加倍。检查 /var/lib/pulp/published 的大小:

    # du -sh /var/lib/pulp/published/
  • 内容迁移可以在线运行,但使用处理器、磁盘和内存资源。同步和内容视图发布操作可能较长。
  • 如果您没有预迁移 Pulp 内容,PULP_CONTENT_PREMIGRATION_BATCH_SIZE 设置定义同时处理的内容单元数。它会影响使用的 RAM 量和 I/O 负载。越低,satellite-maintain 内容准备 的时间也越长。如果您保留了相关的内容,则升级停机时间也更长。

    • 默认值为 1000。
    • 如果系统有硬盘,或者存在有关 I/O 负载的问题,则推荐的值为 50。
    • 不建议使用较低值。
  • 使用以下方法设置 PULP_CONTENT_PREMIGRATION_BATCH_SIZE

    1. 创建目录和文件:

      $ mkdir /etc/systemd/system/pulpcore-worker@.service.d/
      $ vi  /etc/systemd/system/pulpcore-worker@.service.d/settings.conf

      包含内容:

      [Service]
      User=pulp
      Environment=PULP_CONTENT_PREMIGRATION_BATCH_SIZE=1000
    2. 使用以下命令重启 satellite-maintain 服务:

      # systemctl daemon-reload
      # satellite-maintain service restart

      如需更多信息,请参阅准备将内容迁移到 Pulp 3

胶囊注意事项

  • 如果使用 Content Views 来控制对胶囊服务器的基本操作系统的更新,或为胶囊服务器存储库控制更新,您必须发布这些内容视图的更新版本。
  • 请注意,卫星服务器从 6.9 升级到 6.10,仍可使用位于 6.9 的胶囊服务器。
警告

如果实施自定义证书,您必须保留 /root/ssl-build 目录的内容,以及您在其中创建与自定义证书关联的所有源文件的内容。

在升级过程中无法保留这些文件会导致升级失败。如果删除了这些文件,则必须从备份中恢复这些文件,以便进行升级。

升级场景

您无法升级自注册 Satellite。您必须将自注册的 Satellite 迁移到 Red Hat Content Delivery Network(CDN),然后执行升级。要将自注册 Satellite 迁移到 CDN,请参阅在 Satellite 6.10 升级和更新 Red Hat Satellite 指南中的迁移自助注册 Satellite

FIPS 模式

您不能将 Satellite 服务器从没有以 FIPS 模式运行的 RHEL 基础操作系统升级到在 FIPS 模式下运行的 RHEL 基础操作系统。

要在使用 FIPS 模式的 Red Hat Enterprise Linux 基础操作系统中运行 Satellite,您必须使用 FIPS 模式在全新置备的 RHEL 基础操作系统上安装 Satellite。如需更多信息,请参阅 在安装 Satellite Server 中为安装准备 您的环境

3.1.1. 准备将内容迁移到 Pulp 3

为 Pulp 3 准备内容的时间取决于内容的数量和内容视图的数量。对于大型系统,这可能意味着停机几天。为防止这种情况,请在运行最新版本的卫星服务器 6.9 时预迁移 Pulp 内容。这可减少总体升级停机时间。

在迁移到 Pulp 3 时,存储在 /var/lib/pulp/published/ 目录中的数据量可以加倍。确保 /var/lib/pulp 卷上有足够的空间。如果用户运行 satellite-maintain prep-6.10-upgrade,则 /var/lib/pulp/content 中的内容不需要重复。删除 Pulp 2 后,可以声明额外的空间。但是,无法缩小 XFS 卷。可能需要将数据复制到不同的分区,以便将卷大小缩减到以前的值。

在迁移到 Pulp 3 时,存储在 PostgreSQL 数据目录中的数据量可能会显著增加。确保有足够的空间用于迁移。预估测 MongoDB Pulp 2 数据库的大小是 2-3 倍。

预迁移检查

如果您有任何 Composite Content Views,首先对它们执行操作,然后操作内容视图,则应始终是该序列。

使用此流程开始将内容从 Pulp 2 迁移到 Pulp 3。

流程

  1. 使用以下命令升级 Satellite 服务器前更新文件权限:

    # satellite-maintain prep-6.10-upgrade

    这在高延迟系统中可能需要一些时间。

  2. 使用以下命令查看预备内容的详情:

    # satellite-maintain content migration-stats

    如迁移过程中经常使用此命令,以确定流程所需的时间。它还标识可能导致迁移失败的损坏或缺失的内容。输出类似以下示例:

    Running Retrieve Pulp 2 to Pulp 3 migration statistics
    ============================================
    Retrieve Pulp 2 to Pulp 3 migration statistics:
    ============Migration Summary================
    Migrated/Total RPMs: 0/367633
    Migrated/Total errata: 0/20780140
    Migrated/Total repositories: 0/33924
    Estimated migration time based on yum content: 47 hours, 23 minutes
    Note: ensure there is sufficient storage space for /var/lib/pulp/published to
    double in size before starting the migration process.
    Check the size of /var/lib/pulp/published with 'du -sh /var/lib/pulp/published/'
    Note: ensure there is sufficient storage space for postgresql.
    You will need additional space for your postgresql database.
    The partition holding '/var/opt/rh/rh-postgresql12/lib/pgsql/data/' will need
    additional free space equivalent to the size of your Mongo db database (/var/lib/mongodb/).
    [OK]
  3. 使用以下命令为 Pulp 迁移准备内容:

    # satellite-maintain content prepare

    作为最后一个步骤的一部分,satellite-maintain 内容准备 检查任何内容单元是否未迁移。如果它标识了损坏或缺失的内容,您可能会看到类似如下的内容:

    ============Missing/Corrupted Content Summary================
      WARNING: MISSING OR CORRUPTED CONTENT DETECTED
      Corrupted or Missing Rpm: 1000/104583
      Corrupted or missing content has been detected, you can examine the list of content in /tmp/unmigratable_content-20211025-74422-16cxfae and take action by either:
      1. Performing a 'Verify Checksum' sync under Advanced Sync Options, let it complete, and re-running the migration
      2. Deleting/disabling the affected repositories and running orphan cleanup (foreman-rake katello:delete_orphaned_content) and re-running the migration.
      3. Manually correcting files on the filesystem in /var/lib/pulp/content/ and re-running the migration
      4. Mark currently corrupted or missing content as skipped (foreman-rake katello:approve_corrupted_migration_content). This will skip migration of missing or corrupted content.

    有一些损坏或缺少内容的原因:

    • 迁移期间发生存储库同步或内容视图发布或提升。
    • 由于磁盘 rot 导致 /var/lib/pulp/ 中磁盘上的文件被破坏。
    • 由于过去的事件(如有部分恢复的磁盘丢失)导致 /var/lib/pulp/content/ 中的文件缺少。
    • Satellite 中的子系统(如 Katello 和 Pulp)之间有一些不匹配。如果存储库或内容视图在暂停的 Red Hat Satellite 任务里的步骤被不当删除,则会出现这种情况。运行 foreman-rake katello:correct_repositories COMMIT=true 可以更正此问题。

      作为 satellite-maintain content migration-stats 命令、/tmp/unmigratable_content- 20211025-74422-16cxfae20211120-2149-1j4pmfae 的一部分,查看已损坏或缺失的 RPM 列表。

      有关确定哪些存储库不可数据库的内容所属的的更多信息,请参阅 如何确定要运行 Verify Checksum on reported corrupted RPM 的存储库

      在大多数情况下,当使用按需下载策略将带有 按需 下载内容的 Satellite 配置软件仓库以及缺失或损坏的 RPM 的数量较低,您可以使用以下命令跳过这些内容:

      # foreman-rake katello:approve_corrupted_migration_content

      如果您批准损坏或缺失的内容并进行升级,则升级后的内容不会出现在仓库或内容视图版本中。

      如果上游存储库中存在这些软件包,则在升级后重新同步存储库时会再次添加它们。除非重新发布这些内容视图,否则不会恢复到内容视图。因为这些软件包可能不可用,所以升级过程仅检测到这一事实。

      如果您怀疑迁移过程中发生了存储库同步或内容视图发布或提升,则再次运行 satellite-maintain 内容准备 迁移剩余内容。如果这是您第一次运行 satellite-maintain 内容准备了,红帽建议根据需要运行它,以便 尽量减少破坏或缺少 RPM 的数量。迁移剩余的内容会花费较少的时间。

      注意

      您不能使用 Ctrl + C 终止 satellite-maintain 内容准备过程。如果您尝试使用 Ctrl + C 停止该进程,或者断开连接 SSH 会话,该进程不会终止,但在后台继续。您可以根据需要,使用以下命令来安全地终止进程,以便以后继续。

      # satellite-maintain content prepare-abort

      请注意,satellite-maintain content prepare-abort 可能需要几分钟的时间来终止该进程。在方便时,您可以继续使用 satellite-maintain 内容准备 迁移过程。

  4. 此过程不会确认迁移已完成。您可以使用以下命令来决定该进程的接近程度:

    # satellite-maintain content migration-stats

    在指定迁移时间达到或接近零前的间隔。

  5. 当将卫星服务器从 6.9 升级到 6.10 时,完成 Pulp 内容迁移的最后步骤。

    注意

    如果出现问题,您必须使用以下命令从开始重启迁移过程:

    # satellite-maintain content migration-reset
  6. 当将卫星服务器从 6.9 升级到 6.10 时,完成 Pulp 内容迁移的最后步骤。

3.1.2. 升级连接的 Satellite 服务器

对可访问公共互联网的 Satellite 服务器使用这个步骤

警告

如果您通过手动自定义配置文件,或者使用 Hiera 等工具,当安装脚本升级或更新期间运行时,这些更改会被覆盖。您可以将 --noop 选项与 satellite-installer 脚本一起使用以测试是否有更改。如需更多信息,请参阅红帽知识库解决方案 如何在升级过程中使用 noop 选项检查 Satellite 配置文件的更改。

升级 Satellite 服务器

  1. 创建备份。

    • 在虚拟机上执行快照。
    • 在物理机器上创建备份。

      有关备份的更多信息,请参阅《 管理红帽卫星 6.9 指南》中的备份卫星服务器和胶囊服务器

  2. 可选: 如果您在 /etc/ zones.conf 或 /etc /dhcp/dhcpd.conf 文件中手动编辑 DNS 或 DHCP 配置,备份配置文件,因为安装程序只支持一个域或子网,因此可能需要从这些备份中恢复更改。
  3. 可选:如果您手动编辑 DNS 或 DHCP 配置文件且不想覆盖更改,请输入以下命令:

    # satellite-installer --foreman-proxy-dns-managed=false \
    --foreman-proxy-dhcp-managed=false
  4. 在 Satellite Web UI 中,导航到 Hosts > Discovered hosts。在 Discovered Hosts 页面上,关闭电源,然后删除发现的主机。在 Select an Organization 菜单中,选择每个机构,再重复该过程以关闭并删除发现的主机。当升级完成后,请注意重新引导这些主机。
  5. 确保 apache::purge_configs: false 条目在 Satellite 6.9/Capsule 6.9 服务器中的 /etc/foreman-installer/custom-hiera.yaml 文件中不存在或被注释掉。
  6. 确保启用了 Satellite Maintenance 存储库:

    # subscription-manager repos --enable \
    rhel-7-server-satellite-maintenance-6-rpms
  7. 检查可用版本以确认您要列出的版本:

    # satellite-maintain upgrade list-versions
  8. 使用健康检查选项来确定系统是否已准备好升级。在提示时,输入 hammer admin 用户凭证以使用 hammer 凭证配置 satellite-maintain。这些更改应用到 /etc/foreman-maintain/foreman-maintain-hammer.yml 文件。

    # satellite-maintain upgrade check --target-version 6.10

    在执行升级前,查看结果并解决所有突出显示的错误条件。

  9. 由于升级时间较长,请使用 屏幕 等实用程序暂停并重新附加通信会话。然后,您可以检查升级进度,而无需持续连接到命令 shell。有关使用 screen 命令的更多信息,请参阅 Red Hat 知识库 中的 如何使用 screen 命令?

    如果您丢失了运行 upgrade 命令的命令 shell,您可以看到 /var/log/foreman-installer/satellite.log 文件中的日志信息,以检查进程是否已成功完成。

  10. 执行升级:

    # satellite-maintain upgrade run --target-version 6.10
  11. 检查内核软件包是否最后一次更新:

    # rpm -qa --last | grep kernel
  12. 可选: 如果自上次重启以来发生内核更新,请重启系统:

    # reboot
  13. 如果使用 BASH shell,在成功或失败升级后,请输入:

    # hash -d satellite-maintain service 2> /dev/null
  14. 如果您已经将内容从 Pulp 2 迁移到 Pulp 3,请删除所有 Pulp 2 内容。

    # satellite-maintain content remove-pulp2

    这将删除 Pulp 2 RPM、/var/lib/pulp/content/ 中的内容、mongo 数据库和 Pulp 3 数据库中迁移内容。

3.1.3. 升级断开连接的 Satellite 服务器

如果您的 Satellite 服务器没有连接到 Red Hat Content Delivery Network,请使用这个步骤。

警告
  • 如果您自定义了配置文件,可以手动或使用 Hiera 等工具,在升级或更新期间输入 satellite-maintain 命令时,这些更改会被覆盖。您可以将 --noop 选项与 satellite-installer 命令一起使用,以检查在升级或更新期间应用的更改。如需更多信息,请参阅红帽知识库解决方案 如何在升级过程中使用 noop 选项检查 Satellite 配置文件中的更改
  • hammer 导入和导出命令已被 hammer content-importhammer content-export 工具替代。

    如果您有使用 hammer content-view 版本导出hammer content-view 版本 export-legacyhammer 仓库导出 或其相应的导入命令的脚本,则必须调整它们以使用 hammer content-export 命令及其相应的导入命令。

  • 如果实施自定义证书,您必须保留 /root/ssl-build 目录的内容,以及您在其中创建与自定义证书关联的所有源文件的内容。

    在升级过程中无法保留这些文件会导致升级失败。如果删除了这些文件,则必须从备份中恢复这些文件,以便进行升级。

开始前

  • 在升级 Satellite 服务器前,请检查和更新防火墙配置。如需更多信息,请参阅 从断开连接的网络安装卫星服务器中的端口和防火墙要求
  • 确保您没有从客户门户网站或 Satellite Web UI 中删除清单,因为这会移除您的内容主机的所有权利。
  • 在升级前备份并删除所有 Foreman hook。只有在升级完成后,才会在 Satellite 已知后重新恢复 hook。
警告

如果实施自定义证书,您必须保留 /root/ssl-build 目录的内容,以及您在其中创建与自定义证书关联的所有源文件的内容。

在升级过程中无法保留这些文件会导致升级失败。如果删除了这些文件,则必须从备份中恢复这些文件,以便进行升级。

升级断开连接的 Satellite 服务器

  1. 创建备份。

    • 在虚拟机上执行快照。
    • 在物理机器上创建备份。
  2. 可以使用预升级脚本来检测冲突并列出在 Satellite 服务器中具有重复条目的主机,这些条目可在升级后取消注册和删除。此外,它还将检测未分配给组织的主机。如果在 Hosts > All hosts 下列出主机,且没有机构关联,并且如果具有相同名称的内容主机已关联,则内容主机将自动取消注册。可通过在升级前将此类主机与机构关联来避免这种情况。

    运行预升级检查脚本,获取升级后可以删除的主机列表。如果找到任何未关联的主机,请在升级前将它们与机构关联。

    # foreman-rake katello:upgrade_check
  3. 可选: 如果您在 /etc/ zones.conf 或 /etc /dhcp/dhcpd.conf 文件中手动编辑 DNS 或 DHCP 配置,备份配置文件,因为安装程序只支持一个域或子网,因此可能需要从这些备份中恢复更改。
  4. 可选:如果您手动编辑 DNS 或 DHCP 配置文件且不想覆盖更改,请输入以下命令:

    # satellite-installer --foreman-proxy-dns-managed=false \
    --foreman-proxy-dhcp-managed=false
  5. 可选: 如果将 PostgreSQL 用作外部数据库,请在 PostgreSQL 服务器上安装 rh-postgresql12-postgresql-evr 软件包,该软件包可从 rhel-7-server-satellite-6.10-rpms 存储库中获取:

    # yum install rh-postgresql12-postgresql-evr
  6. 在 Satellite Web UI 中,导航到 Hosts > Discovered hosts。如果发现主机可用,请关闭它们,然后删除 Discovered hosts 页面中的所有条目。依次选择所有其他组织,使用机构设置菜单,并根据需要重复此操作。在升级完成后重启这些主机。
  7. 确保 apache::purge_configs: false 条目在 Satellite 6.9/Capsule 6.9 服务器中的 /etc/foreman-installer/custom-hiera.yaml 文件中不存在或被注释掉。
  8. 确保所有外部胶囊服务器都分配给一个组织,否则可能会因为主机取消通知更改而取消注册。
  9. 删除旧的软件仓库:

    # rm /etc/yum.repos.d/*
  10. 停止 satellite-maintain 服务。

    # satellite-maintain service stop

有关额外步骤的更多信息,请参阅 第 5.2 更新断开连接的 Satellite 服务器

  1. 可选:如果您应用了自定义 Apache 服务器配置,请注意,当执行升级时自定义配置会恢复到安装默认值。

    要预览升级过程中应用更改,请使用 --noop (无操作)选项输入 satellite-installer 命令。在以下步骤中输入 satellite-maintain upgrade 命令时,这些更改会被应用。

    1. 将以下行添加到 /etc/httpd/conf/httpd.conf 配置文件:

      Include /etc/httpd/conf.modules.d/*.conf
    2. 重新启动 httpd 服务。

      # systemctl restart httpd
    3. 启动 postgresqlrh-mongodb34-mongod 数据库服务。

      # systemctl start postgresql
      # systemctl start rh-mongodb34-mongod
    4. 使用 --noop 选项输入 satellite-installer 命令:

      # satellite-installer --scenario satellite --verbose --noop

      查看 /var/log/foreman-installer/satellite.log,以预览升级过程中应用的更改。找到 +++--- 符号来指示配置文件的更改。虽然使用 --noop 选项进入 satellite-installer 命令时不会应用任何更改,但模块中的一些 Puppet 资源会应用,并可能会显示失败消息。

    5. 停止 satellite-maintain 服务:

      # satellite-maintain service stop
  2. 由于升级时间较长,请使用 屏幕 等实用程序暂停并重新附加通信会话。然后,您可以检查升级进度,而无需持续连接到命令 shell。有关使用 screen 命令的更多信息,请参阅 Red Hat 知识库 中的 如何使用 screen 命令?

    如果您丢失了运行 upgrade 命令的命令 shell,您可以在 /var/log/foreman-installer/satellite.log 中看到日志,以检查进程是否成功完成。

  3. 检查可用版本以确认您要列出的版本:

    # satellite-maintain upgrade list-versions
  4. 使用健康检查选项来确定系统是否已准备好升级。在提示时,输入 hammer admin 用户凭证以使用 hammer 凭证配置 satellite-maintain。这些更改应用到 /etc/foreman-maintain/foreman-maintain-hammer.yml 文件。

    # satellite-maintain upgrade check --target-version 6.10 \
    --whitelist="repositories-validate,repositories-setup"

    在执行升级前,查看结果并解决所有突出显示的错误条件。

  5. 执行升级:

    # satellite-maintain upgrade run --target-version 6.10 \
    --whitelist="repositories-validate,repositories-setup"
    警告

    如果您在包含配置子目录 的目录中 运行命令,您将遇到以下错误:

    ERROR: Scenario (config/satellite.yaml) was not found, can not continue.

    在这种情况下,请更改目录,例如更改为 root 用户的主目录,然后再次运行此命令。

    如果因为丢失或过时的软件包而导致脚本失败,则必须单独下载并安装。如需更多信息,请参阅从断开连接的 网络安装 Satellite 服务器中的 解决 Package Dependency Errors 部分。

  6. 如果使用 BASH shell,在成功或失败升级后,请输入:

    # hash -d satellite-maintain service 2> /dev/null
  7. 如果您已经将内容从 Pulp 2 迁移到 Pulp 3,请删除所有 Pulp 2 内容:

    # satellite-maintain content remove-pulp2

    这将删除 Pulp 2 软件包上传并同步的 Pulp 2 软件包、/var/lib/pulp/content/、MongoDB 和迁移内容( Pulp 3 数据库中)。

  8. 检查内核软件包是否最后一次更新:

    # rpm -qa --last | grep kernel
  9. 可选: 如果自上次重启以来发生内核更新,停止 satellite-maintain 服务并重启系统:

    # satellite-maintain service stop
    # reboot
  10. 可选:如果您手动编辑 DNS 或 DHCP 配置文件,请使用您所做的备份来检查和恢复 DNS 和 DHCP 配置文件所需的任何更改。
  11. 如果您在上一步中进行更改,请重新启动 satellite-maintain 服务。

    # satellite-maintain service restart
  12. 如果您已安装了 OpenSCAP 插件,但没有可用的默认 OpenSCAP 内容,请输入以下命令。

    # foreman-rake foreman_openscap:bulk_upload:default
  13. 在 Satellite Web UI 中,进入 Configure > Discovery Rules,并将所选机构和位置与发现规则关联。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.