搜索

内容管理指南

download PDF
Red Hat Satellite 6.10

管理来自红帽和自定义源内容的指南

Red Hat Satellite Documentation Team

摘要

使用本指南来理解和管理 Satellite 6 中的内容。这类内容示例包括 RPM 文件和 ISO 镜像。红帽卫星 6 使用跨应用程序生命周期提升的一组内容视图来管理此内容。本指南演示了如何创建适合您组织和内容视图的应用程序生命周期,这些视图能够在生命周期环境中发挥重要作用。这些内容视图最终形成了在红帽卫星 6 环境中置备和更新主机的基础。

第 1 章 简介

在卫星 6 的上下文中,内容 定义为系统上安装的软件。这包括但不仅限于基础操作系统、中间件服务和最终用户应用程序。使用 Red Hat Satellite 6,您可以在软件生命周期的每个阶段为 Red Hat Enterprise Linux 系统管理各种内容。

Red Hat Satellite 6 管理以下内容:

订阅管理
这让组织提供了一种管理其红帽订阅信息的方法。
内容管理
这为组织提供了一种方式来存储红帽内容,并以各种方式组织它。

1.1. 内容管理类型概述

使用 Red Hat Satellite 6,您可以管理以下红帽内容类型:

RPM 软件包
从与您的红帽订阅相关的仓库导入 RPM 文件。卫星服务器从红帽内容交付网络下载 RPM 文件并在本地存储它们。您可以在内容视图中使用这些软件仓库及其 RPM 文件。
Kickstart 树
为创建系统导入 kickstart 树。新的系统通过网络访问这些 kickstart 树,将其用作安装的基础内容。Red Hat Satellite 6 还包含一些预定义的 kickstart 模板,并能够创建自己的模板,这些模板可用于配置系统并自定义安装。

您还可以在 Satellite 中管理其他类型的自定义内容。例如:

ISO 和 KVM 镜像
下载并管理用于安装和配置的介质。例如,卫星下载,为特定 Red Hat Enterprise Linux 和非红帽操作系统存储和管理 ISO 镜像和客户机镜像。

您可以使用流程为您需要的内容添加自定义内容,例如 SSL 证书和 OVAL 文件。

第 2 章 管理机构

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

单个机构
通过简单的系统管理链进行小企业。在这种情况下,您可以为业务创建一个机构,并为它分配内容。
多个机构
拥有几个较小的业务部门的大公司。例如,有单独的系统管理和软件开发组。在这种情况下,您可以为公司及其拥有的每个业务部门创建组织。这将使系统基础架构在每个独立环境中保持系统。然后,您可以根据每个机构的需求将内容分配给每个机构。
外部机构
为其他组织管理外部系统的公司。例如,公司向客户提供云计算和 Web 托管资源。在这种情况下,您可以为公司自己的系统基础架构创建一个机构,然后为每个外部业务创建一个机构。然后,您可以根据需要为每个机构分配内容。

Red Hat Satellite 6 的默认安装有一个名为 Default_Organization 的默认机构。

新用户

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

2.1. 创建机构

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

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Organizations
  2. 单击新建组织
  3. Name 字段中输入机构的名称。
  4. Label 字段中输入机构的唯一标识符。这用于创建和映射某些资产,如内容存储目录。使用字母、数字、下划线和横线,但不有空格。
  5. 可选:在 Description 字段中输入机构的描述。
  6. Submit
  7. 如果您没有分配机构的主机,请选择您要添加到机构的主机,然后单击 Proceed to Edit
  8. Edit 页面中,分配您要添加到机构的基础架构资源。这包括网络资源、安装介质、kickstart 模板和其他参数。您可以随时返回该页面,方法是导航到 Administer > Organizations,然后选择要编辑的机构。
  9. Submit

CLI 过程

  1. 要创建机构,请输入以下命令:

    # hammer organization create \
    --name "your_organization_name" \
    --label "your_organization_label \
    --description "your_organization_description"
  2. 可选: 要编辑机构,请输入 hammer organization update 命令。例如,以下命令为机构分配一个计算资源:

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

2.2. 设置机构上下文

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

流程

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

CLI 过程

在使用 CLI 时,请将 --organization "your_organization_name"--organization-label "your_organization_label" 作为一个选项包括在内。例如:

# hammer subscription list --organization "Default_Organization"

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

2.3. 创建机构调试证书

如果您需要机构的调试证书,请使用以下步骤。

流程

要为机构创建 debug 证书,请完成以下步骤:

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

为置备模板调试证书

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

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

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

先决条件

  1. 按照 第 2.3 节 “创建机构调试证书” 所述创建并下载机构证书。
  2. 例如,打开 X.509 证书,例如:

    $ vi 'Default Organization-key-cert.pem'
  3. 将 文件的内容从 -----BEGIN RSA PRIVATE KEY----- 复制到 -----END RSA PRIVATE KEY-----,并把它放到 key.pem 文件中。
  4. 将文件内容从 -----BEGIN CERTIFICATE----- 复制到 -----END CERTIFICATE-----,并将其内容复制到 cert.pem 文件中。

流程

要使用浏览器,您必须首先将 X.509 证书转换为浏览器支持的格式,然后导入证书。

对于 Firefox 用户

要在 Firefox 中使用机构调试证书,请完成以下步骤:

  1. 要创建 PKCS12 格式证书,请输入以下命令:

    $ openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in cert.pem -inkey key.pem -out organization_label.pfx -name organization_name
  2. 在 Firefox 浏览器中,导航到 Edit > preferences & gt; Advanced Tab
  3. 选择查看证书,然后点证书选项卡。
  4. 单击 Import,再选择要加载的 .pfx 文件。
  5. 在地址栏中,以以下格式输入 URL 来浏览存储库:

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

对于 CURL 用户

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

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

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

2.5. 删除机构

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

流程

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

CLI 过程

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

    # hammer organization list

    在输出中,记录您要删除的机构的 ID。

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

    # hammer organization delete --id Organization_ID

第 3 章 管理位置

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

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

3.1. 创建位置

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

流程

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

CLI 过程

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

    # hammer location create \
    --parent-id "parent_location_id" \
    --name "your_location_name" \
    --description "your_location_description"

3.2. 创建多个位置

以下示例 Bash 脚本创建三个位置 - 伦敦、Munich 和 Boston - 并将它们分配到示例组织。

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

3.3. 设置位置上下文

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

流程

位置菜单是菜单栏中的第二个菜单项,位于卫星 Web UI 左上。如果您没有选择当前位置,菜单将显示 Any Location。单击 Any 位置,再选择要使用的位置。

CLI 过程

在使用 CLI 时,请将 --location "your_location_name"--location-id" as a 选项包含在内。例如:

# hammer subscription list --location "Default_Location"

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

3.4. 删除位置

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

流程

要删除位置,请完成以下步骤:

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

CLI 过程

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

    # hammer location list

    在输出中,记录您要删除的位置的 ID。

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

    # hammer location delete --id Location ID

第 4 章 管理订阅

Red Hat Satellite 6 可以从 Red Hat Content Delivery Network(CDN)导入内容。Satellite 6 需要订阅清单才能从对应的存储库查找、访问和下载内容。您必须有一个订阅清单,其中包含卫星服务器上每个机构的订阅分配。所有订阅信息可在您的红帽客户门户网站帐户中找到。

在完成本章中的任务前,您必须在客户门户网站中创建订阅清单。

要在客户门户网站中创建、管理和导出订阅清单,请参阅 使用红帽订阅管理指南中的使用 清单

使用本章导入订阅清单,并管理卫星 Web UI 中的清单。

订阅分配和机构

如果您有多个订阅分配,您可以管理多个机构。Satellite 6 要求为卫星服务器中配置的每个组织都分配一个分配。这样做的好处是,每个机构都有单独的订阅,以便您通过自己的红帽帐户支持多个组织。

未来D 的订阅

您可以在订阅分配中使用未来日期的订阅。当您在现有订阅到期日前向内容主机添加未来订阅时,您可以对存储库具有不间断访问权限。

在当前订阅过期前,手动将未来日期的订阅附加到您的内容主机。不要依赖自动附加方法,因为此方法是为不同的目的而设计的,且可能无法正常工作。更多信息请参阅 第 4.6 节 “将订阅附加到内容主机”

4.1. 将订阅清单导入到卫星服务器

使用以下步骤将订阅清单导入到 Satellite 服务器中。

先决条件

  • 您必须有从客户门户网站导出的订阅清单文件。如需更多信息,请参阅 使用红帽订阅管理指南中的使用 清单。

流程

  1. 在卫星 Web UI 中,确保将上下文设置为您要使用的组织。
  2. 导航到 Content > Subscriptions,点 Manage Manifest
  3. 在 Manage Manifest 窗口中,单击 Browse
  4. 导航到包含 Subscription Manifest 文件的位置,然后单击 Open。如果 Manage Manifest 窗口没有自动关闭,点 Close 返回 Subscriptions 窗口。

CLI 过程

  1. 将订阅清单文件从客户端复制到 Satellite 服务器:

    $ scp ~/manifest_file.zip root@satellite.example.com:~/.
  2. root 用户身份登录到卫星服务器,再导入 Subscription Manifest 文件:

    # hammer subscription upload \
    --file ~/manifest_file.zip \
    --organization "organization_name"

现在,您可以启用软件仓库并导入红帽内容。更多信息请参阅 第 5 章 导入内容

4.2. 在 Satellite Web UI 中查找订阅

当您将订阅清单导入到 Satellite 服务器时,清单中的订阅会在 Subscriptions 窗口中列出。如果您有大量订阅,您可以过滤结果以查找特定的订阅。

前提条件

您必须有导入到卫星服务器的订阅清单文件。更多信息请参阅 第 4.1 节 “将订阅清单导入到卫星服务器”

流程

要找到订阅,请完成以下步骤:

  1. 在卫星 Web UI 中,确保将上下文设置为您要使用的组织。
  2. 进入 Content > Subscriptions
  3. 在 Subscriptions 窗口中,点击 Search 字段查看构建搜索查询的搜索条件列表。
  4. 选择搜索条件来显示更多选项。
  5. 构建搜索查询后,点搜索图标。

例如,如果您将光标移到 Search 字段中并选择 expires,然后按空格,则会出现一个另一个列表,包括 >, <, 或 = 字符。如果选择 & gt; 并按空格条,则会出现另一个自动选项列表。您还可以输入自己的条件。

4.3. 在 Satellite Web UI 中将订阅添加到订阅分配

使用以下步骤在 Satellite Web UI 中将订阅添加到订阅分配中。

前提条件

您必须有导入到卫星服务器的订阅清单文件。更多信息请参阅 第 4.1 节 “将订阅清单导入到卫星服务器”

流程

要在订阅分配中添加订阅,请完成以下步骤:

  1. 在卫星 Web UI 中,确保将上下文设置为您要使用的组织。
  2. 进入 Content > Subscriptions
  3. 在 Subscriptions 窗口中,点 Add Subscriptions
  4. 在要添加的每个订阅行的行中,输入 bulk to Allocate to Allocate 列中的数量。
  5. Submit

4.4. 在 Satellite Web UI 中从订阅分配中删除订阅

使用以下步骤在 Satellite Web UI 中从订阅分配中删除订阅。

注意

不能删除清单。如果您从红帽客户门户网站或 Satellite Web UI 中删除清单,则会删除所有内容主机的所有权利。

前提条件

您必须有导入到卫星服务器的订阅清单文件。更多信息请参阅 第 4.1 节 “将订阅清单导入到卫星服务器”

流程

要删除订阅,请完成以下步骤:

  1. 在卫星 Web UI 中,确保将上下文设置为您要使用的组织。
  2. 进入 Content > Subscriptions
  3. 在要删除的每个订阅所在的行中,选择对应的复选框。
  4. 单击 Delete,然后确认删除。

4.5. 更新和刷新订阅清单

每次更改订阅分配时,您必须刷新清单,以反映这些更改。例如,如果您采取以下任一操作,您必须刷新清单:

  • 续订订阅
  • 调整订阅量
  • 购买额外订阅

您可以在 Satellite Web UI 中直接刷新清单。或者,您可以导入包含更改的更新清单。

流程

  1. 在卫星 Web UI 中,确保将上下文设置为您要使用的组织。
  2. 进入 Content > Subscriptions
  3. 在 Subscriptions 窗口中,点 Manage Manifest
  4. 在 Manage Manifest 窗口中,点 Refresh

4.6. 将订阅附加到内容主机

使用激活密钥是置备过程中将订阅附加到内容主机的主要方法。但是,激活密钥无法更新现有主机。如果需要将新的或附加订阅(如将来的订阅)附加到一个主机,请使用以下步骤。

有关更新多个主机的详情,请参考 第 4.7 节 “批量更新内容主机的订阅”

有关激活码的详情请参考 第 9 章 管理激活码

Satellite 订阅

在 Satellite 中,您必须为您要管理的每个 Red Hat Enterprise Linux 主机维护一个 Red Hat Enterprise Linux Satellite 订阅(以前称为 Red Hat Enterprise Linux 智能管理)。

但是,您不需要将 Satellite 订阅附加到每个内容主机。Satellite 订阅无法自动附加到 Satellite 中的内容主机,因为它们不与任何产品证书关联。在内容主机中添加 Satellite 订阅不提供任何内容或存储库访问。如果需要,您可以在清单中添加 Satellite 订阅,以便您自己的记录或跟踪目的。

前提条件

您必须有导入到卫星服务器的订阅清单文件。

流程

  1. 在卫星 Web UI 中,确保将上下文设置为您要使用的组织。
  2. 导航到 Hosts > Content Hosts
  3. 在您要更改的订阅的每个内容主机所在的行中,选择对应的复选框。
  4. Select Action 列表中,选择 Manage Subscriptions
  5. (可选)在 Search 字段中输入键和值来过滤显示的订阅。
  6. 选择您要删除的订阅左侧的复选框,并根据需要点 Add SelectedRemove Selected
  7. 点击 完成 保存更改。

CLI 过程

  1. 以 root 用户身份连接到卫星服务器,然后列出可用的订阅:

    # hammer subscription list \
    --organization-id 1
  2. 为主机附加订阅:

    # hammer host subscription attach \
    --host host_name \
    --subscription-id subscription_id

4.7. 批量更新内容主机的订阅

将这个步骤用于安装后对多个内容主机进行同时的更改。

流程

要更新多个内容主机,请完成以下步骤:

  1. 在卫星 Web UI 中,确保将上下文设置为您要使用的组织。
  2. 导航到 Hosts > Content Hosts
  3. 在您要更改的订阅的每个内容主机所在的行中,选择对应的复选框。
  4. Select Action 列表中,选择 Manage Subscriptions
  5. (可选)在 Search 字段中输入键和值来过滤显示的订阅。
  6. 选中要添加的订阅左侧的复选框,并根据需要点 Add SelectedRemove Selected
  7. 点击 完成 保存更改。

第 5 章 导入内容

本章概述了如何将不同类型的自定义内容导入到 Satellite。如果要向 Satellite 导入 Rpms、文件或不同的内容类型,则本章节中的大流程主要是完成的。

例如,您可以使用以下章节来获取有关特定类型的自定义内容的信息,但底层步骤相同:

5.1. 在 Satellite 中使用产品和存储库

红帽卫星中红帽内容和自定义内容都有相似性:

  • 产品存储库与其存储库之间的关系相同,存储库仍然需要同步。
  • 自定义产品要求客户订阅才能访问,这与红帽产品的订阅类似。Satellite 为您创建的每个自定义产品创建一个订阅。

红帽内容已分为相应的产品。例如,红帽企业 Linux 服务器是卫星中 的产品。该产品的存储库由不同的版本、架构和附加组件组成。对于 Red Hat 软件仓库,在启用存储库后自动创建产品。请查看 第 5.5 节 “启用红帽软件仓库”

其他自定义内容可以组织到产品中。例如,您可以创建一个 EPEL(Extra Packages for Enterprise Linux)产品,并为其添加一个"EPEL 7 x86_64"存储库。

有关创建和打包 RPM 的详情,请查看 Red Hat Enterprise Linux 文档中的 RPM 打包指南

5.2. 导入自定义 SSL 证书

在从外部源同步自定义内容前,您可能需要将 SSL 证书导入到自定义产品中。这可能包含您要同步的上游软件仓库的客户端 certs 和 key 或 CA 证书。

如果您需要 SSL 证书和密钥下载 RPM,您可以将其添加到 Satellite 中。

  1. 在 Satellite Web UI 中,导航到 Content > Content Credentials。在 Content Credentials 窗口中,单击 Create Content Credential
  2. Name 字段中输入 SSL 证书的名称。
  3. Type 列表中,选择 SSL Certificate
  4. Content Credentials Content 字段中,粘贴您的 SSL 证书,或者点击 Browse 上传您的 SSL 证书。
  5. Save

5.3. 创建自定义产品

使用这个步骤创建可以添加软件仓库的自定义产品。要使用 CLI 而不是 Web UI,请参阅 CLI 过程

流程

  1. 在 Satellite Web UI 中,导航到 Content > Products,点 Create Product
  2. Name 字段中输入产品的名称。Satellite 根据您为 Name 输入的内容自动完成 Label 字段。
  3. 可选:在 GPG Key 列表中,选择产品的 GPG 密钥。
  4. 可选:从 SSL CA Cert 列表中选择产品的 SSL CA 证书。
  5. 可选:从 SSL Client Cert 列表中选择产品的 SSL 客户端证书。
  6. 可选:从 SSL Client Key 列表中,选择产品的 SSL 客户端密钥。
  7. 可选:在 Sync Plan 列表中,选择现有的同步计划,或者点击 Create Sync Plan 并为您的产品要求创建同步计划。
  8. Description 字段中输入产品的描述。
  9. Save

CLI 过程

运行以下命令来创建产品:

# hammer product create \
--name "My_Product" \
--sync-plan "Example Plan" \
--description "Content from My Repositories" \
--organization "My_Organization"

5.4. 添加自定义 RPM 软件仓库

使用这个流程在 Satellite 中添加自定义 RPM 软件仓库。要使用 CLI 而不是 Web UI,请参阅 CLI 过程

卫星 Web UI 中的 Products 窗口还提供了一个 Repo Discovery 功能,它从 URL 找到所有存储库,您可以选择要添加到自定义产品中的产品。例如,您可以使用 Repo Discovery 搜索 http://yum.postgresql.org/9.5/redhat/ 并列出不同 Red Hat Enterprise Linux 版本和架构的所有软件仓库。这有助于帮助用户节省从单一源导入多个存储库的时间。

支持自定义 RPM

红帽不支持直接从第三方站点进行上游 RPM。这些 RPM 用于演示同步过程。有关这些 RPM 的任何问题,请联系第三方开发人员。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Products,再选择要使用的产品,然后单击 New Repository
  2. Name 字段中输入存储库的名称。Red Hat Satellite 6 根据您在 名称 输入的内容自动完成 Label 字段。
  3. Type 列表,选择存储库类型。您可以为 RPM 文件(yum)、Docker 镜像(docker)、文件(文件)或其他选择仓库。请注意,如果选择了 yum 内容类型,您可以根据主机的架构和操作系统版本限制存储库是否可供主机使用。
  4. 可选:从 Restrict to architecture 列表中,选择构架。确保选择了 No limits,即默认值,以便无论架构是什么,让存储库可供所有主机使用。
  5. 可选:从 Restrict to OS Version 列表中,选择 OS 版本。确保选择了 No limits,即默认值,以便无论操作系统版本如何,让存储库可供所有主机使用。
  6. URL 字段中,输入要用作源的外部存储库的 URL。卫星支持三种协议: http://https://file://。如果使用 file:// 存储库,则必须将其放在 /var/lib/pulp/sync_imports/ 目录下。
  7. Download Policy 列表中,选择同步卫星服务器执行的类型。请查看 第 5.8 节 “下载策略概述”
  8. 确保 Mirror on Sync 复选框已被选中。这样可确保在同步过程中删除不再属于上游存储库的内容。
  9. Checksum 列表中,选择存储库的 checksum 类型。
  10. 可选: 如果您想要,可以清除 Publish via HTTP 复选框,以禁用通过 HTTP 发布该存储库。
  11. 可选:在 GPG Key 列表中,选择产品的 GPG 密钥。
  12. Save

CLI 过程

  1. 运行以下命令来创建存储库:

    # hammer repository create \
    --name "My_Repository" \
    --content-type "yum" \
    --os-version "My_OS_Version" \
    --arch "My_System_Architecture" \
    --publish-via-http true \
    --url http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/ \
    --gpg-key "My_Repository" \
    --product "My_Product" \
    --organization "My_Organization"

继续 第 5.6 节 “同步软件仓库” 来同步存储库

5.5. 启用红帽软件仓库

如果外部网络访问需要使用 HTTP 代理,请为您的服务器配置默认 HTTP 代理。请参阅添加默认 HTTP 代理

要选择要同步的存储库,您必须首先识别包含存储库的产品,然后根据相关发行版本和基本架构启用该存储库。对于 Red Hat Enterprise Linux 8,您必须同时启用 AppStream 和 BaseOS 软件仓库。

断开连接的 Satellite

如果使用断开连接的 Satellite 服务器,则必须将 Satellite 配置为将内容与本地 CDN 服务器同步,然后才能同步内容。更多信息请参阅 附录 B, 将 Satellite 配置为与本地 CDN 服务器同步内容

仓库版本

将 Red Hat Enterprise Linux 操作系统与 7 Server 软件仓库或 7。X 软件仓库之间的区别在于,7 服务器软件仓库包含所有最新更新,而 Red Hat Enterprise Linux 7。X 软件仓库在下一个次版本发布后停止更新。请注意,Kickstart 软件仓库只有一个次版本。

For Red Hat Enterprise Linux 8 Clients

要置备 Red Hat Enterprise Linux 8 客户端,您需要 Red Hat Enterprise Linux 8 for x86_64 - AppStream(RPMS)Red Hat Enterprise Linux 8 for x86_64 - BaseOS(RPMs) 软件仓库。

For Red Hat Enterprise Linux 7 Clients

要置备 Red Hat Enterprise Linux 7 客户端,您需要 Red Hat Enterprise Linux 7 Server(RPMs) 软件仓库。

流程

  1. 在 Satellite Web UI 中,进入 Content > Red Hat Repositories
  2. 要查找存储库,请输入存储库名称,或者将 Recommended Repositories 按钮切换到 on 位置,以查看您所需的存储库列表。
  3. 在 Available Repositories 窗格中,单击存储库以展开存储库集。
  4. 点基础构架和您想要的发行版本旁的 Enable 图标。

CLI 过程

  1. 要搜索您的产品,请输入以下命令:

    # hammer product list --organization "My_Organization"
  2. 列出为产品设置的存储库:

    # hammer repository-set list \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization"
  3. 使用名称或 ID 号启用存储库。包含发行版本,如7Server 和基础架构,如 x86_64。例如:

    # hammer repository-set enable \
    --name "Red Hat Enterprise Linux 7 Server (RPMs)" \
    --releasever "7Server" \
    --basearch "x86_64" \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization"

5.6. 同步软件仓库

流程

  1. 在 Satellite web UI 中,导航到 Content > Products,再选择包含您要同步的存储库的产品。
  2. 选择您要同步的存储库,然后单击 Sync Now

要在 web UI 中查看同步的进度,请导航到 Content > Sync Status 并展开对应的产品或存储库树。

CLI 过程

  • 同步整个产品:

    # hammer product synchronize \
    --name "My_Product" \
    --organization "My_Organization"
  • 单独同步存储库:

    # hammer repository synchronize \
    --name "My_Repository" \
    --product "My Product" \
    --organization "My_Organization"

同步持续时间取决于每个存储库的大小和网络连接速度。下表提供了根据可用的互联网带宽同步内容所需的时长:

 单软件包(10Mb)次发行版本(750Mb)主要版本(6Gb)

256 Kbps

5 mins 27 Secs

6 hrs 49 Mins 36 Secs

2 天 7 Hrs 55 Mins

512 Kbps

2 mins 43.84 Secs

3 个 hrs 24 Mins 48 Secs

1 天 3 Hrs 57 Mins

T1 (1.5 Mbps)

54.33 Secs

1 HR 7 Mins 54.78 Secs

9 Hrs 16 Mins 20.57 Secs

10 Mbps

8.39 Secs

10 mins 29.15 Secs

1 HR 25 Mins 53.96 Secs

100 Mbps

0.84 Secs

1 分钟 2.91 Secs

8 mins 35.4 Secs

1000 Mbps

0.08 Secs

6.29 Secs

51.54 Secs

创建同步计划以确保定期更新。请参阅: 第 5.16 节 “创建同步计划”

5.7. 在机构中同步所有存储库

使用此流程同步机构中的所有存储库。

流程

要同步机构中的所有软件仓库,请在控制台中运行以下 Bash 脚本:

ORG="Your_Organization"

for i in $(hammer --no-headers --csv repository list --organization $ORG | awk -F, {'print $1'})
do
  hammer repository synchronize --id ${i} --organization $ORG --async
done

5.8. 下载策略概述

红帽卫星提供了用于同步 RPM 内容的多个下载策略。例如,您可能希望仅下载内容元数据,同时推迟为以后下载的实际内容。

Satellite Server 具有以下策略:

即时
卫星服务器在同步期间下载所有元数据和软件包。
on Demand
卫星服务器仅在同步期间下载元数据。只有胶囊或直接连接的客户端请求它们时,卫星服务器才会获取并存储文件系统中的软件包。如果将胶囊上的对应存储库设置为 Immediate,则此设置无效,因为卫星服务器强制下载所有软件包。

On Demand 策略充当 Lazy Synchronization 功能,因为它们节省时间同步内容。lazy 同步功能必须只用于 yum 软件仓库。您可以将软件包添加到 Content Views 中,并尽可能提升到生命周期环境。

胶囊服务器提供以下策略:

即时
胶囊服务器在同步期间下载所有元数据和软件包。如果卫星服务器上的对应存储库设置为 On Demand,则不要使用此设置,因为卫星服务器强制下载所有软件包。
on Demand
胶囊服务器仅在同步期间下载元数据。胶囊服务器仅在直接连接的客户端请求时,仅在文件系统中获取和存储软件包。当您使用 On Demand 下载策略时,如果卫星服务器上不可用,则会从卫星服务器下载内容。
继承
胶囊服务器从卫星服务器上的对应存储库继承存储库的下载策略。

5.9. 更改默认下载策略

您可以设置 Satellite 应用到您在所有机构中创建的仓库的默认下载策略。

根据它是红帽还是非红帽自定义软件仓库,Satellite 使用单独的设置。更改默认值不会更改现有设置。

流程

要更改软件仓库的默认下载策略,请完成以下步骤:

  1. 在 Satellite Web UI 中,导航到 Administer > Settings
  2. Content 选项卡。
  3. 根据您的要求更改默认下载策略:

    • 要更改红帽存储库的默认下载策略,请更改 Default Red Hat Repository 下载策略 设置。
    • 要更改自定义存储库的默认下载策略,请更改 Default Custom Repository download 策略设置的值

CLI 过程

  • 要将红帽软件仓库的默认下载策略改为 即时on_demand,请输入以下命令:

    # hammer settings set \
    --name default_redhat_download_policy \
    --value immediate
  • 要将非红帽自定义软件仓库的默认下载策略改为 immediateon_demand 之一,请输入以下命令:

    # hammer settings set \
    --name default_download_policy \
    --value immediate

5.10. 更改存储库的下载策略

您可以为存储库设置下载策略。

流程

  1. 在 Web UI 中,导航到 Content > Products,并点击所需的产品名称。
  2. Repositories 选项卡上,单击所需的存储库名称,找到 Download Policy 字段,然后单击 edit 图标。
  3. 从列表中选择所需的下载策略,然后单击 Save

CLI 过程

  1. 列出机构的存储库:

    # hammer repository list \
    --organization-label organization-label
  2. 将存储库的下载策略改为 即时on_demand:

    # hammer repository update \
    --organization-label organization-label  \
    --product "Red Hat Enterprise Linux Server" \
    --name "Red Hat Enterprise Linux 7 Server Kickstart x86_64 7.5"  \
    --download-policy immediate

5.11. 将内容上传到自定义 RPM 存储库

您可以将单独的 RPM 和源 RPM 上传到自定义 RPM 存储库。您可以使用 Satellite Web UI 或 Hammer CLI 上传 RPM。您必须使用 Hammer CLI 上传源 RPM。

流程

  1. 在 Satellite Web UI 中,点 Content > Products
  2. 点自定义产品的名称。
  3. Repositories 选项卡中,单击自定义 RPM 存储库的名称。
  4. Upload Package 下,点 Browse…​ 并选择您要上传的 RPM。
  5. Upload

要查看此仓库中的所有 RPM,请单击 Content Counts 下的 Packages 旁边的数字。

CLI 过程

  • 输入以下命令上传 RPM:

    # hammer repository upload-content \
    --id repo_ID \
    --path /path/to/example-package.rpm
  • 输入以下命令上传源 RPM:

    # hammer repository upload-content \
    --content-type srpm \
    --id repo_ID \
    --path /path/to/example-package.src.rpm

    上传完成后,您可以使用命令 hammer srpm listhammer srpm info --id srpm_ID 来查看源 RPM 的信息。

5.12. 恢复存储库

如果是存储库崩溃,您可以使用高级同步来恢复它,它有三个选项:

优化同步
同步绕过与上游 RPM 没有检测到的 RPM 的软件仓库。
完成同步
无论所检测到的更改如何同步所有 RPM。如果无法将特定 RPM 下载到本地存储库,则使用此选项,即使它们存在于上游存储库中。
验证内容检查

同步所有 RPM,然后在本地验证所有 RPM 的 checksum。如果 RPM 的 checksum 与上游不同,它会重新下载 RPM。这个选项只与 yum 软件仓库相关。如果您有以下错误之一,则使用这个选项:

  • 特定的 RPM 在与 yum 同步时会导致 404 错误。
  • 软件包与预期的下载错误不匹配,这意味着特定的 RPM 被破坏。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Products
  2. 选择包含已损坏存储库的产品。
  3. 选择您要同步的存储库的名称。
  4. 要执行优化的同步或完整同步,请从 Select Action 菜单中选择 Advanced Sync
  5. 选择所需选项并点 Sync
  6. 要验证 checksum,从 Select Action 菜单中点 Verify Content Checksum。(可选)

CLI 过程

  1. 获取存储库 ID 列表:

    # hammer repository list --organization "My_Organization"
  2. 使用所需选项同步损坏的存储库:

    • 进行优化的同步:

      # hammer repository synchronize --id 1
    • 对于完整的同步:

      # hammer repository synchronize --skip-metadata-check true --id 1
    • 对于验证内容同步:

      # hammer repository synchronize --validate-contents true --id 1

5.13. 添加新 HTTP 代理

使用这个步骤将 HTTP 代理添加到 Satellite。然后,您可以指定哪些 HTTP 代理用于产品、存储库和支持的计算资源。

如果 Satellite 服务器使用代理与 subscription.rhsm.redhat.com 或 subscription.rhn.redhat.com 通信,则代理服务器不能对这些通信执行 SSL 检查。

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

流程

  1. 在 Satellite Web UI 中,导航到 Infrastructure > HTTP Proxies,然后选择 New HTTP Proxy
  2. Name 字段中输入 HTTP 代理的名称。
  3. URL 字段中输入 HTTP 代理的 URL,包括端口号。可用的主机名如下:

    主机名端口协议

    subscription.rhsm.redhat.com

    443

    HTTPS

    subscription.rhn.redhat.com

    443

    HTTPS

    cdn.redhat.com

    443

    HTTPS

    api.access.redhat.com(如果使用 Red Hat Insights)

    443

    HTTPS

    cert-api.access.redhat.com(如果使用 Red Hat Insights)

    443

    HTTPS

  4. 如果您的 HTTP 代理需要身份验证,请输入 UsernamePassword
  5. 可选:在 Test URL 字段中输入 HTTP 代理 URL,然后单击 Test Connection 以确保您可以从 Satellite 连接到 HTTP 代理。
  6. Locations 标签页并添加一个位置。
  7. Organization 标签页并添加一个机构。
  8. Submit

CLI 过程

  • 在 Satellite 服务器中,输入以下命令添加新的 HTTP 代理:

    # hammer http-proxy create --name proxy-name \
    --url proxy-URL:port-number

    如果您的 HTTP 代理需要身份验证,请添加 --username name-- password密码 选项。

如需更多信息,请参阅如何在红帽客户门户网站中的防火墙或代理访问 Red Hat Subscription Manager(RHSM)。

5.14. 更改一个产品的 HTTP 代理策略

要精细控制网络流量,您可以为各个产品设置 HTTP 代理策略。产品的 HTTP 代理策略适用于产品中的所有存储库,除非您为各个存储库设置了不同的策略。

要为独立软件仓库设置 HTTP 代理策略,请参阅 第 5.15 节 “更改存储库的 HTTP 代理策略”

流程

  1. 在 Satellite web UI 中,导航到 Content > Products,再选中您要更改的每个产品旁边的复选框。
  2. Select Action 列表中,选择 Manage HTTP Proxy
  3. 从列表中选择一个 HTTP Proxy Policy

    • 全局默认值 : 使用全局默认代理设置。
    • 没有 HTTP 代理服务器 :即使配置了全局默认代理,也不使用 HTTP 代理。
    • 使用特定的 HTTP 代理 :从列表中选择 HTTP Proxy。您必须将 HTTP 代理添加到 Satellite,然后才能从这个列表中选择代理。更多信息请参阅 第 5.13 节 “添加新 HTTP 代理”
  4. Update

5.15. 更改存储库的 HTTP 代理策略

要精细控制网络流量,您可以为每个存储库设置 HTTP 代理策略。要使用 CLI 而不是 Web UI,请参阅 CLI 过程

要为产品中的所有软件仓库设置相同的 HTTP 代理策略,请参阅 第 5.14 节 “更改一个产品的 HTTP 代理策略”

流程

  1. 在 Satellite Web UI 中,导航到 Content > Products,并点击包含存储库的产品的名称。
  2. Repositories 选项卡中,单击存储库的名称。
  3. 找到 HTTP Proxy 字段并点编辑图标。
  4. 从列表中选择一个 HTTP Proxy Policy

    • 全局默认值 : 使用全局默认代理设置。
    • 没有 HTTP 代理服务器 :即使配置了全局默认代理,也不使用 HTTP 代理。
    • 使用特定的 HTTP 代理 :从列表中选择 HTTP Proxy。您必须将 HTTP 代理添加到 Satellite,然后才能从这个列表中选择代理。更多信息请参阅 第 5.13 节 “添加新 HTTP 代理”
  5. Save

CLI 过程

  • 在 Satellite 服务器中,输入以下命令指定您要使用的 HTTP 代理策略:

    # hammer repository update --id repository-ID \
    --http-proxy-policy policy

    --http-proxy-policy 指定以下选项之一:

    • : 即使配置了全局默认代理,也不使用 HTTP 代理。
    • global_default_http_proxy : 使用全局默认代理设置。
    • use_selected_http_proxy: 指定一个 HTTP 代理,使用 --http-proxy proxy-name--http-proxy-id proxy-ID。要为 Satellite 添加新的 HTTP 代理,请参阅 第 5.13 节 “添加新 HTTP 代理”

5.16. 创建同步计划

同步计划检查并更新计划的日期和时间中的内容。在 Red Hat Satellite 6 中,您可以创建同步计划,并将产品分配给计划。

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

流程

  1. 在 Satellite Web UI 中,导航到 Content > Sync Plans,再点击 New Sync Plan
  2. Name 字段中输入计划的名称。
  3. Description 字段中输入计划的描述。
  4. Interval 列表中,选择要运行计划的时间间隔。
  5. Start DateStart Time 列表中,选择何时开始运行同步计划。
  6. Save
  7. 单击 Products 选项卡,然后单击 Add。选择 Red Hat Enterprise Linux Server 产品并点 Add Selected

CLI 过程

  1. 运行以下命令来创建同步计划:

    # hammer sync-plan create \
    --name "Red Hat Products 2" \
    --description "Example Plan for Red Hat Products" \
    --interval daily \
    --sync-date "2016-02-01 01:00:00" \
    --enabled true \
    --organization "My_Organization"
  2. 为它分配 Red Hat Enterprise Linux Server 产品:

    # hammer product set-sync-plan \
    --name "Red Hat Enterprise Linux Server" \
    --sync-plan "Red Hat Products" \
    --organization "My_Organization"
  3. 查看机构的可用同步计划,以验证是否创建了同步计划:

    # hammer sync-plan list --organization "Default Organization"

5.17. 将 Synchronization Plan 分配给多个产品

使用这个步骤为机构中至少同步并至少包含一个存储库的产品分配同步计划

流程

要为所选产品分配同步计划,请完成以下步骤:

  1. 运行以下 Bash 脚本:

    ORG="My_Organization"
    SYNC_PLAN="daily_sync_at_3_a.m"
    
    hammer sync-plan create --name $SYNC_PLAN --interval daily --sync-date "2023-04-5 03:00:00" --enabled true --organization $ORG
    for i in $(hammer --no-headers --csv --csv-separator="|" product list --organization $ORG --per-page 999 | grep -vi not_synced | awk -F'|' '$5 != "0" { print $1}')
    do
      hammer product set-sync-plan --sync-plan $SYNC_PLAN --organization $ORG --id $i
    done
  2. 执行脚本后,查看已分配同步计划的产品:

    # hammer product list --organization $ORG --sync-plan $SYNC_PLAN

5.18. 限制同步 Concurrency

默认情况下,每个存储库同步作业一次可最多获取 10 个文件。这可针对每个软件仓库调整。

增加限制可能会提高性能,但可能导致上游服务器过载或开始拒绝请求。如果因为上游服务器拒绝请求而看到存储库同步失败,您可能需要尝试降低限制。

为此,通过 CLI:

# hammer repository update --organization $ORG --download-concurrency 5 --id $REPO_ID

5.19. 导入自定义 GPG 密钥

当客户端使用签名的自定义内容时,请确保客户端被配置为使用适当的 GPG 密钥验证 RPM 安装。这有助于确保只安装来自授权源的软件包。

红帽内容已配置了适当的 GPG 密钥,因此不支持红帽存储库的 GPG 密钥管理。

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

先决条件

请确定您有一个 GPG 密钥的副本,用于签署要在 Satellite 中使用和管理的 RPM 内容。大多数 RPM 分发供应商在其网站上提供其 GPG 密钥。您还可以从 RPM 手动提取它:

  1. 将版本特定仓库软件包的副本下载到您的客户端系统中:

    $ wget http://www.example.com/9.5/example-9.5-2.noarch.rpm
  2. 解压 RPM 文件而不安装该文件:

    $ rpm2cpio example-9.5-2.noarch.rpm | cpio -idmv

GPG 密钥相对于 etc/pki/rpm-gpg/RPM-GPG-KEY-EXAMPLE-95 的提取。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Content Credentials,然后在窗口右上角点击 Create Content Credential
  2. 输入存储库的名称,然后从 Type 列表中选择 GPG Key
  3. 将 GPG 密钥粘贴到 Content Credential Contents 字段中,或者点击 Browse 并选择您要导入的 GPG 密钥文件。

    如果您的自定义仓库包含多个 GPG 密钥签名的内容,则必须在 Content Credential Contents 字段中使用每个密钥之间的新行输入所有所需的 GPG 密钥,例如:

    -----BEGIN PGP PUBLIC KEY BLOCK-----
    
    mQINBFy/HE4BEADttv2TCPzVrre+aJ9f5QsR6oWZMm7N5Lwxjm5x5zA9BLiPPGFN
    4aTUR/g+K1S0aqCU+ZS3Rnxb+6fnBxD+COH9kMqXHi3M5UNzbp5WhCdUpISXjjpU
    XIFFWBPuBfyr/FKRknFH15P+9kLZLxCpVZZLsweLWCuw+JKCMmnA
    =F6VG
    -----END PGP PUBLIC KEY BLOCK-----
    
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    
    mQINBFw467UBEACmREzDeK/kuScCmfJfHJa0Wgh/2fbJLLt3KSvsgDhORIptf+PP
    OTFDlKuLkJx99ZYG5xMnBG47C7ByoMec1j94YeXczuBbynOyyPlvduma/zf8oB9e
    Wl5GnzcLGAnUSRamfqGUWcyMMinHHIKIc1X1P4I=
    =WPpI
    -----END PGP PUBLIC KEY BLOCK-----
  4. Save

CLI 过程

  1. 将 GPG 密钥复制到 Satellite 服务器中:

    $ scp ~/etc/pki/rpm-gpg/RPM-GPG-KEY-EXAMPLE-95 root@satellite.example.com:~/.
  2. 将 GPG 密钥上传到 Satellite:

    # hammer gpg create \
    --key ~/RPM-GPG-KEY-EXAMPLE-95 \
    --name "My_Repository" \
    --organization "My_Organization"

第 6 章 管理应用程序生命周期

本章概述了 Satellite 中的应用程序生命周期,以及如何为 Satellite 和 Capsule 创建和删除应用程序生命周期。

6.1. 应用程序生命周期概述

应用程序生命周期 是红帽卫星 6 的内容管理功能的核心概念。应用程序生命周期定义了特定系统及其软件如何进入特定的阶段。例如,应用程序生命周期可能很简单;您可能只有一个开发阶段和生产阶段。在这种情况下,应用程序生命周期可能类似如下:

  • 开发
  • Production

但是,更复杂的应用程序生命周期可能具有进一步的阶段,如用于测试的阶段或 beta 版本。这会在应用程序生命周期中添加额外的阶段:

  • 开发
  • 测试
  • 测试版本
  • Production

红帽卫星 6 提供了自定义每个应用程序生命周期阶段的方法,使其符合您的规格。

应用程序生命周期中的每个阶段在 Red Hat Satellite 6 中称为 环境。每个环境都使用特定的内容集合。红帽卫星 6 将这些内容集合定义为内容视图。每个内容视图都充当一个过滤器,您可以在什么过滤器中定义要包含在特定环境中的软件包。这为您提供了定义指定到各个环境的特定内容集合的方法。

例如,电子邮件服务器可能只需要一个简单应用程序生命周期,其中有一个生产级服务器用于实际用途,而测试服务器用于尝试最新的邮件服务器软件包。当测试服务器通过初始阶段时,您可以将生产级服务器设置为使用新软件包。

另一个例子是软件产品的开发生命周期。要在开发环境中开发新的软件,请在质量保证环境中进行测试,作为测试版本,作为生产级应用程序发布该软件。

图 6.1. Red Hat Satellite 6 应用程序生命周期

Red Hat Satellite 6 应用程序生命周期

6.2. 在应用程序生命周期中提升内容

在应用程序生命周期链中,当内容从一个环境移到下一个环境时,这称为 提升

跨 Satellite 生命周期环境的内容提升示例

每个环境都包含在 Red Hat Satellite 6 中注册的一组系统。这些系统只能访问与其环境相关的存储库。当您将软件包从一个环境提升到下一个环境时,目标环境的存储库会接收新的软件包版本。因此,目标环境中的每个系统都可以更新到新软件包版本。

开发测试Production

example_software-1.1-0.noarch.rpm

example_software-1.0-0.noarch.rpm

example_software-1.0-0.noarch.rpm

在补丁上完成开发后,您可以将 RPM 提升到测试环境,以便质量工程团队可以查看补丁。然后,应用程序生命周期会在每个环境中包含以下软件包版本:

开发测试Production

example_software-1.1-0.noarch.rpm

example_software-1.1-0.noarch.rpm

example_software-1.0-0.noarch.rpm

虽然质量工程团队审查了补丁,但开发团队在 example_software 2.0 上开始工作。这会生成以下应用程序生命周期:

开发测试Production

exampleware-2.0-0.noarch.rpm

exampleware-1.1-0.noarch.rpm

exampleware-1.0-0.noarch.rpm

质量工程团队完成对补丁的审查。现在,example_software 1.1 已准备好发布。将 1.1 提升到 Production 环境:

开发测试Production

example_software-2.0-0.noarch.rpm

example_software-1.1-0.noarch.rpm

example_software-1.1-0.noarch.rpm

开发团队在 example_software 2.0 上完成工作,并将其提升到测试环境:

开发测试Production

example_software-2.0-0.noarch.rpm

example_software-2.0-0.noarch.rpm

example_software-1.1-0.noarch.rpm

最后,质量工程团队会检查软件包。成功检查后,将软件包提升到 Production 环境:

开发测试Production

exampleware-2.0-0.noarch.rpm

exampleware-2.0-0.noarch.rpm

exampleware-2.0-0.noarch.rpm

更多信息请参阅 第 7.3 节 “提升内容视图”

6.3. 创建生命周期环境路径

要创建用于开发和发布软件的应用程序生命周期,请使用 Library 环境作为初始环境,以创建环境路径。然后可选择向环境路径添加其他环境。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Lifecycle Environments
  2. New Environment Path 启动新的应用程序生命周期。
  3. Name 字段中输入您的环境的名称。
  4. Description 字段中输入您的环境的描述。
  5. Save
  6. 可选:要将环境添加到环境路径中,点 Add New Environment、完成 NameDescription 字段,并从 Prior Environment 列表中选择前面的环境。

CLI 过程

  1. 要创建路径,请输入 hammer lifecycle-environment create 命令并使用 --prior 选项指定 Library 环境:

    # hammer lifecycle-environment create \
    --name "Environment Path Name" \
    --description "Environment Path Description" \
    --prior "Library" \
    --organization "My_Organization"
  2. 可选: 要在路径中添加环境,请输入 hammer lifecycle-environment create 命令并使用 --prior 选项指定父环境:

    # hammer lifecycle-environment create \
    --name "Environment Name" \
    --description "Environment Description" \
    --prior "Prior Environment Name" \
    --organization "My_Organization"
  3. 要查看生命周期环境的链,请输入以下命令:

    # hammer lifecycle-environment paths --organization "My_Organization"

6.4. 从 Satellite 服务器中删除生命周期环境

使用此流程删除生命周期环境。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Life Cycle Environments
  2. 点您要删除的生命周期环境名称,然后点 Remove Environment
  3. Remove 删除环境。

CLI 过程

  1. 列出您的机构的生命周期环境,并记下您要删除的生命周期环境的名称:

    # hammer lifecycle-environment list --organization "My_Organization"
  2. 使用 hammer Life-environment delete 命令删除环境:

    # hammer lifecycle-environment delete \
    --name "your_environment" \
    --organization "My_Organization"

6.5. 从胶囊服务器中删除生命周期环境

当生命周期环境不再与主机系统或环境不正确添加到胶囊服务器时,您可以从 Capsule Server 中删除生命周期环境。

您可以使用 Satellite Web UI 和 Hammer 从 Capsule 中删除生命周期环境。

流程

  1. 在 Satellite Web UI 中,导航到 Infrastructure > Capsules,然后选择您要从中删除生命周期的胶囊。
  2. 单击 Edit,再单击 Life Cycle Environments 选项卡。
  3. 在右侧菜单中,选择您要从 Capsule 中删除的生命周期环境,然后单击 Submit
  4. 若要同步胶囊的内容,可单击 Overview 选项卡,然后单击 Synchronize
  5. 选择 Optimized SyncComplete Sync

CLI 过程

  1. 从列表中选择您要的胶囊服务器,并记录其 id

    # hammer capsule list
  2. 要验证胶囊服务器的详情,请输入以下命令:

    # hammer capsule info --id capsule_id
  3. 验证当前附加到胶囊服务器的生命周期环境列表,并记录 环境 ID

    # hammer capsule content lifecycle-environments \
    --id capsule_id
  4. 从胶囊服务器中删除生命周期环境:

    # hammer capsule content remove-lifecycle-environment \
    --id capsule_id \
    --lifecycle-environment-id lifecycle_environment_id

    对于您要从胶囊服务器中删除的每个生命周期环境,重复此步骤。

  5. 将卫星服务器环境的内容同步到胶囊服务器:

    # hammer capsule content synchronize \
    --id capsule_id

6.6. 将生命周期环境添加到胶囊服务器

如果您的胶囊服务器启用了内容功能,您必须添加一个环境,以便胶囊可以从卫星服务器同步内容,并向主机系统提供内容。

不要将 Library 生命周期环境分配给您的胶囊服务器,因为它在每次 CDN 更新存储库时触发自动胶囊同步。这可能会在胶囊上消耗多个系统资源、卫星和胶囊之间的网络带宽,以及胶囊上的可用磁盘空间。

您可以在卫星服务器或卫星 Web UI 上使用 Hammer CLI。

流程

  1. 在 Satellite Web UI 中,导航到 Infrastructure > Capsules,然后选择您要为其添加生命周期的胶囊。
  2. 单击 Edit,再单击 Life Cycle Environments 选项卡。
  3. 在左侧菜单中选择您要添加到胶囊的生命周期环境,然后单击 Submit
  4. 要同步胶囊上的内容,请单击 Overview 选项卡,再单击 Synchronize
  5. 选择 Optimized SyncComplete Sync

    有关每种同步类型的定义,请参阅 恢复存储库

CLI 过程

  1. 要显示所有胶囊服务器的列表,请在卫星服务器上输入以下命令:

    # hammer capsule list

    记下您要向其添加生命周期的胶囊 ID。

  2. 使用 ID,验证您的胶囊的详细信息:

    # hammer capsule info --id capsule_id
  3. 要查看您的胶囊服务器可用的生命周期环境,请输入以下命令并记录 ID 和机构名称:

    # hammer capsule content available-lifecycle-environments --id capsule_id
  4. 将生命周期环境添加到您的胶囊服务器:

    # hammer capsule content add-lifecycle-environment \
    --id capsule_id --organization "My_Organization" \
    --lifecycle-environment-id lifecycle-environment_id

    对您要添加到胶囊服务器的每个生命周期环境重复。

  5. 将卫星中的内容同步到 Capsule。

    • 要将 Satellite 服务器环境中的所有内容同步到胶囊服务器,请输入以下命令:

      # hammer capsule content synchronize --id capsule_id
    • 要将 Satellite 服务器中的特定生命周期环境与胶囊服务器同步,请输入以下命令:

      # hammer capsule content synchronize --id external_capsule_id \
      --lifecycle-environment-id lifecycle-environment_id

第 7 章 管理内容视图

红帽卫星 6 使用内容视图从存储库创建自定义存储库。要做到这一点,您必须定义要使用的存储库,然后将某些过滤器应用到内容。这些过滤器包括软件包过滤器、软件包组过滤器、勘误表过滤器和模块流过滤器。您可以使用内容视图来定义特定环境使用的软件版本。例如,生产环境 可能使用包含较旧软件包版本的内容视图,而 开发环境 可能会使用包含较新软件包版本的内容视图。

每个内容视图在每个环境中创建一组存储库,供卫星服务器存储和管理。当您在应用程序生命周期中将内容视图从一个环境提升到下一个环境时,卫星服务器上对应的存储库会更新并发布软件包。

 开发测试Production

内容视图和内容

版本 2 - example_software-1.1-0.noarch.rpm

版本 1 - example_software-1.0-0.noarch.rpm

版本 1 - example_software-1.0-0.noarch.rpm

用于 Testing 和 Production 的软件仓库包含 example_software-1.0-0noarch.rpm 软件包。如果您将 Version 2 的内容视图从 Development 提升到 Testing,则测试会重新生成的存储库,然后包含 example_software-1.1-0.noarch.rpm 软件包:

 开发测试Production

内容视图和内容

版本 2 - example_software-1.1-0.noarch.rpm

Version 2 - example_software-1.1-0.noarch.rpm

版本 1 - example_software-1.0-0.noarch.rpm

这样可保证系统被指定到特定的环境,但在该环境使用新版本的内容视图时接收更新。

创建用于过滤和创建快照的内容视图的一般工作流如下:

  1. 创建内容视图.
  2. 为内容视图添加一个或多个您需要的仓库。
  3. (可选)创建一个或多个过滤器以优化内容视图的内容。
  4. (可选)解析内容视图的任何软件包依赖项。
  5. 发布内容视图。
  6. (可选)将内容视图提升到另一个环境。
  7. 将内容主机附加到内容视图。

如果存储库没有与内容视图关联,文件 /etc/yum.repos.d/redhat.repo 仍为空,且注册到该系统的系统无法接收更新。

主机只能与单个内容视图关联。要将主机与多个内容视图关联,请创建一个复合内容视图。更多信息请参阅 第 7.6 节 “创建复合内容视图”

软件包依赖解析

软件包依赖项是软件包管理的复杂性。有关如何在内容视图中管理软件包依赖项的更多信息,请参阅 第 7.8 节 “解决软件包依赖项”

7.1. 创建内容视图

使用此流程创建简单的内容视图。要使用 CLI 而不是 Web UI,请参阅 CLI 过程

先决条件

虽然您可以确定是否要根据内容视图解析内容视图上的任何软件包依赖项,但可能需要更改默认的卫星设置,以为所有内容视图启用或禁用软件包解析。更多信息请参阅 第 7.8 节 “解决软件包依赖项”

流程

  1. 在 Satellite Web UI 中,导航到 Content > Content Views,再点击 Create New View
  2. Name 字段中输入视图的名称。Satellite 会根据您输入的名称自动完成 Label 字段。
  3. Description 字段中输入视图的描述。
  4. 可选:如果您要在每次发布此内容视图时自动解决依赖项,请选择 Solve Dependencies 复选框。依赖项解决会减慢发布时间,并可能忽略您使用的任何内容视图过滤器。这在解决勘误依赖关系时也会导致错误。
  5. Save 以创建内容视图。
  6. Repository Selection 区域,选择要添加到内容视图的存储库,然后单击 添加存储库
  7. 单击 Publish New Version,然后在 Description 字段中输入有关版本的信息来记录更改。
  8. Save
  9. 可选: 要从您的内容视图版本的 Actions 列表中选择 Regenerate Repository Metadata,在 Yum 存储库上强制生成元数据。

您可以在 Content Views 窗口中查看 Content View。要查看有关内容视图的更多信息,请单击 Content View name。

要将一个主机注册到您的内容视图,请参阅管理主机指南中的注册主机

CLI 过程

  1. 获取存储库 ID 列表:

    # hammer repository list --organization "My_Organization"
  2. 创建 Content View 并添加软件仓库:

    # hammer content-view create \
    --name "Example_Content_View" \
    --description "Example Content View" \
    --repository-ids 1,2 \
    --organization "My_Organization"

    对于 --repository-ids 选项,您可以在 hammer 存储库列表 命令的输出中找到 ID。

  3. 发布视图:

    # hammer content-view publish \
    --name "Example_Content_View" \
    --description "Example Content View" \
    --organization "My_Organization"
  4. 可选: 要将存储库添加到现有 Content View 中,请输入以下命令:

    # hammer content-view add-repository \
    --name "Example_Content_View" \
    --organization "My_Organization" \
    --repository-id repository_ID

Satellite 服务器会创建新版本的视图,并将它发布到 Library 环境中。

7.2. 查看模块流

在 Satellite 中,您可以在 Content Views 中查看存储库的模块流。

流程

要查看内容视图中程序库的模块流,请完成以下步骤:

  1. 在 Satellite Web UI 中,导航到 Content > Content Views,然后选择包含您要查看的模块的 Content View。
  2. Versions 选项卡,选择您要查看的 Content View 版本。
  3. Module Streams 选项卡查看可用于内容视图的模块流。
  4. 使用 Filter 字段优化模块列表。
  5. 要查看模块的相关信息,请单击 模块。

7.3. 提升内容视图

使用此流程在不同生命周期环境中提升内容视图。要使用 CLI 而不是 Web UI,请参阅 CLI 过程

内容视图提升的权限要求

非管理员用户需要两个权限将内容视图提升到环境:

  1. promote_or_remove_content_views
  2. promote_or_remove_content_views_to_environment.

promote_or_remove_content_views 权限限制用户可以提升的 Content Views。

promote_or_remove_content_views_to_environment 权限限制用户可以提升内容视图的环境。

通过这些权限,您可以为用户权限将某些内容视图提升到某些环境,但不能分配给其他环境。例如,您可以限制用户,以便允许用户提升测试环境,但不能提升到生产环境。

您必须为用户分配这两个权限,以允许他们提升内容视图。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Content Views,再选择您要提升的 Content View。
  2. 单击内容视图的 Versions 选项卡。
  3. 选择您要提升和 Actions 列中的版本,单击 Promote
  4. 选择您要提升内容视图的环境,然后单击 Promote Version
  5. 再次单击 提升 按钮。这次选择测试环境 然后单击 Promote Version
  6. 最后再次单击 提升 按钮。选择 Production 环境,然后单击 Promote Version

现在,内容视图的存储库会出现在所有环境中。

CLI 过程

  • 每次使用 hammer 内容查看版本提升内容视图

    # hammer content-view version promote \
    --content-view "Database" \
    --version 1 \
    --to-lifecycle-environment "Development" \
    --organization "My_Organization"
    # hammer content-view version promote \
    --content-view "Database" \
    --version 1 \
    --to-lifecycle-environment "Testing" \
    --organization "My_Organization"
    # hammer content-view version promote \
    --content-view "Database" \
    --version 1 \
    --to-lifecycle-environment "Production" \
    --organization "My_Organization"

    现在,所有环境中都提供了数据库内容。

要将一个主机注册到您的内容视图,请参阅管理主机指南中的注册主机

7.4. 在机构中推广跨所有生命周期环境的内容视图

使用此流程在组织内所有生命周期环境中提升内容视图。

流程

要跨机构内所有生命周期环境升级内容视图版本,请完成以下步骤:

  1. 要在组织内的所有生命周期环境中升级所选内容视图版本库,请运行以下 Bash 脚本:

    ORG="Your_Organization"
    CVV_ID=3
    
    for i in $(hammer --no-headers --csv lifecycle-environment list --organization $ORG | awk -F, {'print $1'} | sort -n)
    do
       hammer content-view version promote --organization $ORG --to-lifecycle-environment-id $i --id $CVV_ID
    done
  2. 显示您的 Content View 版本的信息,以验证它是否已提升到所需的生命周期环境:

    # hammer content-view version info --id 3

7.5. 复合内容视图概述

Composite Content View 组合了几个内容视图中的内容。例如,您可能有单独的内容视图来管理操作系统和一个应用程序。您可以使用 Composite Content View,将两个内容视图的内容合并到新存储库中。原始内容视图的存储库仍然存在,但也会存在用于组合内容的新存储库。

如果要开发支持不同数据库服务器的应用程序。example_application 如下所示:

example_software

Application(应用程序)

数据库

操作系统

四个单独的内容视图示例:

  • Red Hat Enterprise Linux (Operating System)
  • PostgreSQL (Database)
  • MariaDB (Database)
  • example_software (应用程序)

在前面的内容视图中,您可以创建两个 Composite Content Views。

PostgreSQL 数据库的 Composite Content View 示例:

复合内容视图 1 - PostgreSQL 上的 example_software

example_software (应用程序)

PostgreSQL (Database)

Red Hat Enterprise Linux (Operating System)

MariaDB 的 Composite Content View 示例:

复合内容视图 2 - MariaDB 上的 example_software

example_software (应用程序)

MariaDB (Database)

Red Hat Enterprise Linux (Operating System)

然后,每个内容视图都会被单独管理并单独发布。在创建应用版本时,您将发布新版本的 Composite Content Views。在创建 Composite Content View 时,也可以选择 Auto Publish 选项,然后在包含内容视图的内容视图重新发布时,会自动重新发布 Composite Content View。

仓库限制

您不能在 Composite Content Views 中包含多个存储库。例如,如果您试图在 Composite Content View 中使用相同的存储库包含两个内容视图,卫星服务器会报告一个错误。

7.6. 创建复合内容视图

使用此流程来创建复合内容视图。要使用 CLI 而不是 Web UI,请参阅 CLI 过程

流程

  1. 在 Satellite Web UI 中,导航到 Content > Content Views,再点击 Create New View
  2. Name 字段中输入视图的名称。Red Hat Satellite 6 会自动从您输入的名称完成 Label 字段。
  3. Description 字段中输入视图的描述。
  4. 选中 Composite View? 复选框,以创建 Composite Content View。
  5. 可选: 如果您希望在发布内容视图时自动重新发布 Composite Content View,请选择 Auto Publish 复选框。
  6. Save
  7. Add Content Views 区域,选择要添加到 Composite Content View 的内容视图,然后单击 Add Content Views
  8. 单击 Publish New Version,以发布 Composite Content View。在 Description 字段中输入描述信息,然后单击 Save
  9. 单击 Promote,再选择要提升 Composite Content View to 的生命周期环境,输入描述,然后单击 提升版本

CLI 过程

  1. 在创建 Composite Content Views 之前,列出您现有内容视图的版本 ID:

    # hammer content-view version list \
    --organization "My_Organization"
  2. 创建新的 Composite 内容视图。当 --auto-publish 选项被设置为 yes 时,Composite Content View 会在内容视图包含重新发布时自动重新发布:

    # hammer content-view create \
    --composite \
    --auto-publish yes \
    --name "Example_Composite_Content_View" \
    --description "Example Composite Content View" \
    --organization "My_Organization"
  3. 将组件内容视图添加到 Composite Content View。您必须包含 Content View Version ID 并使用 --latest 选项。要将多个组件内容视图包含到 Composite Content View,请为您要包含的每个内容视图重复此步骤:

    # hammer content-view component add \
    --component-content-view-id Content_View_Version_ID \
    --latest \
    --composite-content-view "Example_Composite_Content_View"
  4. 发布 Composite Content View:

    # hammer content-view publish \
    --name "Example_Composite_Content_View" \
    --description "Initial version of Composite Content View" \
    --organization "My_Organization"
  5. 在所有环境中提升 Composite Content View:

    # hammer content-view version promote \
    --content-view "Example_Composite_Content_View" \
    --version 1 \
    --to-lifecycle-environment "Development" \
    --organization "My_Organization"
    # hammer content-view version promote \
    --content-view "Example_Composite_Content_View" \
    --version 1 \
    --to-lifecycle-environment "Testing" \
    --organization "My_Organization"
    # hammer content-view version promote \
    --content-view "Example_Composite_Content_View" \
    --version 1 \
    --to-lifecycle-environment "Production" \
    --organization "My_Organization"

7.7. 内容过滤器概述

内容视图也使用过滤器来包含或限制某些 RPM 内容。如果没有这些过滤器,内容视图包括来自所选存储库的所有内容。

有两种类型的内容过滤器:

表 7.1. 过滤器类型
过滤器类型描述

include

您从没有内容开始,然后选择要从所选存储库中添加的内容。使用此过滤器合并多个内容项目。

exclude

您从所选仓库开始所有内容,然后选择要删除的内容。当您想使用大多数特定内容存储库但排除某些软件包(如 blocklisted 软件包)时,请使用此过滤器。除您选择的内容外,过滤器会使用存储库中的所有内容。

包含和 Exclude Filter Combinations

如果使用 Include 和 Exclude 过滤器的组合,则首先发布内容视图会触发 include 过滤器,则排除过滤器。在这种情况下,选择要包含哪些内容,然后从所含子集中排除哪些内容。

内容类型

过滤也有五种类型:

表 7.2. 内容类型
内容类型描述

软件包

根据软件包的名称和版本号过滤。Package 选项会过滤非模块化 RPM 软件包和勘误表。

软件包组

根据软件包组过滤软件包。软件包组的列表基于添加到内容视图中的存储库。

勘误(按 ID)

选择要添加到过滤器中的特定勘误。勘误列表基于添加到内容视图中的存储库。

勘误(按日期和类型)

选择要添加到过滤器的签发或更新日期范围及勘误类型(修复、增强或安全性)。

模块流

选择是否包含或排除特定的模块流。Module Streams 选项会过滤模块 RPM 和勘误,但不过滤与所选模块流关联的非修改内容。

7.8. 解决软件包依赖项

在 Satellite 中,您可以使用软件包依赖项解析功能来确保软件包在内容视图中具有的任何依赖项作为内容视图的一部分添加到相依存储库中。

您可以选择解析您想要的任何内容视图的软件包依赖项,或者更改默认设置以启用或禁用所有新内容视图的解析软件包依赖项。

在大多数简单且常见情况下,存储库的正确功能不需要依赖项解析,并可省略。请注意,解决软件包依赖项可能非常昂贵,可能会导致内容视图提升造成大量延迟。软件包依赖项解析功能还不考虑在独立于内容视图的系统上安装的软件包,因此即使依赖项被解析启用,也可以使用 Content View 过滤器,它为哪些 satellite-maintain 软件包更新 生成存储库无法保证。因此,在使用复杂的过滤器组合时要小心,即使与依赖项解析结合使用也很有用。

解决软件包依赖项和过滤器

默认情况下,过滤器无法解析过滤器中列出的软件包的任何依赖项。这可能需要一定级别的测试来确定需要哪些依赖项。

如果您添加一个过滤器,排除需要的一些软件包,且 Content View 启用了依赖项解析,卫星会忽略您在过滤器中创建的规则,以改为解析软件包依赖项。

如果您为安全起见创建内容过滤器,为了解决软件包依赖项,卫星可以添加您可能认为不安全的软件包。

流程

要默认解析软件包依赖项,请完成以下步骤:

  1. 在 Satellite Web UI 中,导航到 Administer > Settings,再点击 Content 选项卡。
  2. 找到 Content View Dependency Solving Default,然后选择 Yes

注意事项

  1. 可使用过滤器以某种方式使用过滤器,生成的内容视图有损坏依赖项,且依赖项解析并不总是保证可以解决这个问题。这是因为软件包依赖项解析功能并不考虑在独立于内容视图的系统上安装的软件包。
  2. 内容视图中的软件包可以有冲突的依赖关系。

    例如,想象一个情况:A、B 和 C 是示例软件包,其中软件包 A 依赖于软件包 B 的版本 1.1,软件包 C 依赖于软件包 1.2。B(1.1)和 B(1.2)由在内容视图中解析以满足 A 和 C 的依赖关系而引入。

  3. 如果存储库中的软件包依赖于存储库以外的软件包,且未同步或添加到内容视图中,依赖项解决不会解决该软件包的依赖项。
  4. 如果您在内容视图上使用 exclude 过滤器并开启依赖项,则依赖项将按照优先级解决,即使它们被过滤,也会出现任何必要的软件包。
  5. 依赖项解析和过滤器会显著增加发布时间。

7.9. 内容过滤器示例

按照下方的步骤使用以下任一示例来构建自定义内容过滤器。

示例 1

使用基本 Red Hat Enterprise Linux 软件包创建软件仓库。这个过滤器需要添加到内容视图中的 Red Hat Enterprise Linux 存储库。

filter:

  • 包含类型:Include
  • 内容类型: 软件包组
  • filter: 只选择 Base 软件包组

示例 2

在特定日期之后,创建一个排除所有勘误的存储库,但安全更新除外。如果您要定期执行系统更新,但关键安全更新除外,该更新必须立即应用。这个过滤器需要添加到内容视图中的 Red Hat Enterprise Linux 存储库。

filter:

  • 包含类型:Exclude
  • 内容类型: 勘误(按日期和类型)
  • 过滤: 只选择 程序 错误修复和功能增强 勘误类型,并清除 安全勘误 类型。将 Date Type 设置为 Updated On。将 Start Date 设置为您要限制勘误的日期。将 "结束日期" 留空,以确保过滤任何新的非安全勘误。

示例 3

示例 1 和示例 2,其中您只需要操作系统软件包,并希望排除最新的错误修复和功能增强勘误。这需要两个过滤器附加到同一内容视图。Content View 会首先处理 Include 过滤器,然后是 Exclude 过滤器。

过滤 1:

  • 包含类型:Include
  • 内容类型: 软件包组
  • filter: 只选择 Base 软件包组

过滤 2:

  • 包含类型:Exclude
  • 内容类型: 勘误(按日期和类型)
  • 过滤: 只选择 程序 错误修复和功能增强 勘误类型,并清除 安全勘误 类型。将 Date Type 设置为 Updated On。将 Start Date 设置为您要限制勘误的日期。将 "结束日期" 留空,以确保过滤任何新的非安全勘误。

示例 4

在内容视图中过滤特定的模块流。

过滤 1:

  • 包含类型:Include
  • 内容类型: 模块流
  • filter: 仅选择您想要用于内容视图的特定模块流,例如 ant,然后单击 Add Module Stream

过滤 2:

  • 包含类型:Exclude
  • 内容类型: Package
  • filter: 添加一个规则,以过滤您要从内容视图中排除的任何非模块化软件包。如果您没有过滤软件包,则 Content View 过滤器包含与模块流 ant 关联的所有非单一软件包。添加一个规则来排除所有 * 软件包,或指定您要排除的软件包名称。

有关内容过滤器的工作方式的另一个示例,请参阅以下文章 :"如何将内容过滤器在 Satellite 6 中正常工作"。

7.10. 创建内容过滤器

使用此流程创建内容过滤器。要使用 CLI 而不是 Web UI,请参阅 CLI 过程

有关如何构建过滤器的示例,请参阅 第 7.9 节 “内容过滤器示例”

流程

  1. 在 Satellite Web UI 中,导航到 Content > Content Views 并选择 Content View。
  2. 导航到 Yum Content > Filters,再单击 New Filter
  3. Name 字段中输入过滤器的名称。
  4. Content Type 列表中,选择您要过滤的内容类型。根据您为新过滤器的内容类型选择的内容,会显示不同的选项。
  5. Inclusion Type 列表中,选择 IncludeExclude
  6. Description 字段中输入过滤器的描述,然后点 Save
  7. 根据您为 内容类型 输入的内容,添加规则以创建您想要的过滤器。
  8. 单击 受影响的存储库选项卡,选择哪个特定存储库使用这个过滤器。
  9. 单击 Publish New Version 以发布过滤的存储库。在 Description 字段中输入更改的描述,然后点 Save

您可以在所有环境中提升此内容视图。

CLI 过程

  1. 添加过滤器到内容视图。使用 --inclusion false 选项将过滤器设置为 Exclude 过滤器:

    # hammer content-view filter create \
    --name "Errata Filter" \
    --type erratum --content-view "Example_Content_View" \
    --description "My latest filter" \
    --inclusion false \
    --organization "My_Organization"
  2. 在过滤器中添加规则:

    # hammer content-view filter rule create \
    --content-view "Example_Content_View" \
    --content-view-filter "Errata Filter" \
    --start-date "YYYY-MM-DD" \
    --types enhancement,bugfix \
    --date-type updated \
    --organization "My_Organization"
  3. 发布内容视图:

    # hammer content-view publish \
    --name "Example_Content_View" \
    --description "Adding errata filter" \
    --organization "My_Organization"
  4. 在所有环境中提升视图:

    # hammer content-view version promote \
    --content-view "Example_Content_View" \
    --version 1 \
    --to-lifecycle-environment "Development" \
    --organization "My_Organization"
    # hammer content-view version promote \
    --content-view "Example_Content_View" \
    --version 1 \
    --to-lifecycle-environment "Testing" \
    --organization "My_Organization"
    # hammer content-view version promote \
    --content-view "Example_Content_View" \
    --version 1 \
    --to-lifecycle-environment "Production" \
    --organization "My_Organization"

第 8 章 同步 Satellite 服务器之间的内容

红帽卫星使用卫星服务器间同步(ISS)在两个卫星服务器之间同步内容,包括:

因为不同的 Pulp 版本,Satellite 6.10 和 6.9 (及以下)不兼容导出和导入。您必须在两台服务器上运行相同的 Satellite 版本,才能使用此功能。

8.1. 场景

  • 如果要将一些内容从卫星服务器复制到其他卫星服务器。例如,您有内容视图,您的 IT 部门会消耗来自卫星服务器的内容,而您希望将这些内容视图中的内容复制到其他卫星服务器。
  • 如果要将所有库内容从卫星服务器复制到另一个卫星服务器。例如,您的 IT 部门从库中需要卫星服务器的产品和存储库,并将该机构中的所有产品和存储库复制到另一个卫星服务器。
  • 如果您连接和断开连接的 Satellite 服务器,并希望将内容从连接的服务器复制到断开连接的服务器中。例如,您需要完全隔离您的管理基础架构,以满足安全性或其他目的。

这些场景至少需要两个卫星服务器:一个连接到外界的卫星服务器,其中包含要导出的内容,另一个未用将内容导入到卫星服务器。

您不能使用 ISS 将内容从卫星服务器同步到胶囊服务器。胶囊服务器支持原生同步。如需更多信息,请参阅为 Red Hat Satellite 规划 中的 胶囊服务器概述

8.2. 配置定义

使用 ISS 在两个卫星服务器之间同步内容的方法有多种。

已连接

在连接的场景中,两个卫星服务器可以相互通信。

disconnected

在断开连接的场景中,有以下设置:

  • 两个卫星服务器互相连接。
  • 个卫星服务器连接到互联网,而其他卫星服务器则没有连接到互联网。

    • 这称为非联网卫星服务器。
  • 断开连接的卫星服务器与所有外部网络完全隔离,但可以与连接的卫星服务器通信。

Air-gapped Disconnected

在这个设置中,两台卫星服务器相互隔离。用于接收内容更新的 Satellite 服务器的唯一方法是导入/导出工作流。

8.3. 从连接的卫星服务器导出

8.3.1. 连接卫星服务器作为内容存储

在这种情况下,您有一个连接了卫星服务器,它从外部来源接收内容,如 CDN。其余基础架构完全隔离,包括其他非联网卫星服务器。连接的卫星服务器主要用作更新的内容存储。断开连接的卫星服务器充当主卫星服务器,用于管理隔离网络后所有基础架构的内容。

在连接的卫星服务器上

  1. 确保软件仓库使用即时下载策略,按以下方法之一:

    1. 对于使用 On Demand 的现有仓库,请在存储库详情页面中将下载策略更改为 Immediate
    2. 对于新的软件仓库,请确保在启用 Red Hat 软件仓库前将 Default Red Hat Repository 下载策略设置为 Immediate,并且 Default download 策略 已被设置为 Immediate 用于自定义软件仓库
    3. 如需更多信息,请参阅 第 5.8 节 “下载策略概述”
  2. 启用您要使用的内容(请参阅 第 5.5 节 “启用红帽软件仓库”。)
  3. 同步已启用的内容。
  4. 对于第一个导出,执行完整的库 导出,以便导出所有同步的内容。这会生成内容存档,您可以稍后导入到一个或多个断开连接的 Satellite 服务器中。有关执行完整库导出的更多信息,请参阅 第 8.9 节 “导出库环境”
  5. 以递增方式导出连接的卫星服务器中的所有更新。这会生成更精简的内容存档,其中仅包含来自最新更新集的更改。例如,如果您启用和同步新存储库,下一个导出的内容存档仅包含来自新启用的存储库的内容。有关执行增量库导出的更多信息,请参阅 增量导出

在断开连接的 Satellite 服务器中

  1. 复制您要从连接的卫星服务器中导出的内容存档。
  2. 使用 第 8.10 节 “导入到库环境中” 中概述的步骤将内容导入到机构。然后,您可以根据需要在非联网卫星服务器上使用内容视图或生命周期环境来管理内容。

8.3.2. 连接的卫星服务器,用于管理内容视图版本

在这种情况下,您已连接的卫星服务器是从外部来源(如 CDN)接收内容。其余基础架构完全隔离,包括非联网卫星服务器。但是,连接的卫星服务器不仅用作内容存储,也用于管理内容。CDN 中的更新被策展为内容视图和生命周期环境中。将内容提升到指定的生命周期环境后,即可将内容导出并导入到非联网卫星服务器中。

在连接的卫星服务器上

  1. 确保软件仓库使用即时下载策略,按以下方法之一:

    1. 对于使用 On Demand 的现有仓库,请在存储库详情页面中将下载策略更改为 Immediate
    2. 对于新软件仓库,请确保在启用 RHrepos 前将 Default Red Hat Repository 下载 策略设置为 Immediate,而 Default download 策略 则被设置为 Immediate。如需更多信息,请参阅 第 5.8 节 “下载策略概述”
  2. 启用要使用的任何内容(请参阅 第 5.5 节 “启用红帽软件仓库”。)
  3. 同步已启用的内容。
  4. 当您有新内容重新发布包含此内容的内容视图(请参阅 第 7 章 管理内容视图。) 这应该创建一个新的内容视图版本,以及要导出的内容。
  5. 对于第一个导出,请在您要导出的内容视图版本上执行 完整的版本 导出。更多信息请参阅 第 8.5 节 “导出内容视图版本”。这会生成您可以导入到一个或多个断开连接的 Satellite 服务器的内容存档。
  6. 以递增方式导出连接的卫星服务器中的所有更新。这会生成更精简的内容存档,其中仅包含来自最新更新集的更改。例如,如果您的内容视图有新存储库,则此导出的内容存档仅包含最新的更改。有关在内容视图版本上执行增量导出的详情,请参考 增量导出

在断开连接的 Satellite 服务器中

  1. 从连接的卫星服务器复制导出的内容存档。
  2. 将内容导入到您需要的组织。更多信息请参阅 第 8.8 节 “导入内容视图版本”。这将从导出的内容存档中创建内容视图版本,并适当地导入内容。

8.4. 追踪您的导出

如果您要将内容导出到多个断开连接的 Satellite 服务器,则使用 --destination-server 选项提供整理或维护要导出到给定目的地的版本的记录。更多信息请参阅 第 8.6 节 “追踪您的导出”

这个选项可用于所有内容导出操作。您可以使用 destination-server 进行

  • 查询之前导出到给定目的地的内容。
  • 自动生成增量导出至指定的目标服务器。

8.5. 导出内容视图版本

您可以从卫星服务器导出内容视图的版本到存档文件,并使用此存档文件在其他卫星服务器或另一台卫星服务器组织上创建相同的内容视图版本。卫星没有导出复合内容视图。导出的存档文件包含以下数据:

  • 包含内容视图版本元数据的 JSON 文件
  • 包含在 Content View 版本中包含的所有存储库的存档文件

Satellite 服务器仅导出添加至内容视图版本中的 RPM 和 kickstart 文件。Satellite 不会导出以下内容:

  • Docker 内容
  • 内容视图定义和元数据,如软件包过滤器。

先决条件

要导出内容视图,请确保要导出的 Satellite 服务器满足以下条件:

  • 确保导出目录有可用的存储空间来容纳导出。
  • 确保 /var/lib/pulp/exports 目录有与导出过程中创建的临时文件大小相等的存储空间。
  • 确保将下载策略设置为 Immediate,用于您导出的 Content View 中所有存储库。更多信息请参阅 第 5.8 节 “下载策略概述”
  • 确保您同步您导出到所需日期的产品。
  • 确保导出内容的用户具有 Content Exporter 角色。

导出内容视图版本:

  1. 列出可用于导出的 Content View 版本:

    # hammer content-view version list \
    --organization=export-org \
     --content-view=view
    
    ---|----------|---------|-------------|-----------------------
    ID | NAME     | VERSION | DESCRIPTION | LIFECYCLE ENVIRONMENTS
    ---|----------|---------|-------------|-----------------------
    5  | view 3.0 | 3.0     |             | Library
    4  | view 2.0 | 2.0     |             |
    3  | view 1.0 | 1.0     |             |
    ---|----------|---------|-------------|----------------------

导出内容视图版本

获取所需版本的版本号。以下示例目标为导出版本 1.0。

# hammer content-export complete version \
--content-view=view --version=1.0 \
--organization=export-21527
  1. 验证包含导出版本的内容视图的存档是否在导出目录中:

    # ls -lh /var/lib/pulp/exports/export-21527/view/1.0/2021-02-25T18-59-26-00-00/
  2. 您需要所有三个文件,例如 tar.gz 存档文件,toc.jsonmetadata.json 才能成功导入内容。

使用块导出

在很多情况下,导出的存档内容可以是几 GB 大小。您可能想要将其分成较小的大小或块。您可以将 --chunk-size-gb 选项与 hammer content-export 命令一起使用以解决此问题。以下示例使用 --chunk-size-gb=2 将存档分成 2 GB 块。

# hammer content-export complete version --content-view=view --version=1.0 --organization=export-21527 --chunk-size-gb=2

# ls -lh  /var/lib/pulp/exports/export-21527/view/1.0/2021-02-25T21-15-22-00-00/

8.6. 追踪您的导出

将内容导入到多个卫星服务器时,--destination-server 选项对于保持跟踪导出内容以及从何处解析内容特别有用。

您可以使用此标志让导出卫星服务器在特定服务器中跟踪内容。--destination-server 选项用于指示您将内容导入到的目标服务器。以下示例使用 --destination-server=mirror1 将内容导出到 mirror1。该存档在导出卫星服务器上创建。但是,每个导出的记录也被维护。这在递增导出时非常有用。

# hammer content-export complete version \
--content-view=view --version=1.0 \
--organization=export-21527 \
--destination-server=mirror1

增量导出

在存储空间和资源上导出完整版本可能非常昂贵。具有多个 Red Hat Enterprise Linux 树的内容视图版本可以占据卫星服务器上的几 GB 空间。

您可以使用 扩展导出功能 来帮助降低基础架构的需求。增量导出 仅导出之前导出的版本更改的内容。通常,增量更改小于完整导出。ln 表示,因为版本 1.0 已经导出,并且命令版本 2.0 用于导出。要使用增量导出,请完成以下步骤。

# hammer content-export incremental version \
 --content-view=view \
 --version=2.0 \
 --organization=export-21527

# ls -lh /var/lib/pulp/exports/export-21527/view/2.0/2021-02-25T21-45-34-00-00/

8.7. 检查导出

您可以查询之前通过 hammer content-export list 命令创建的导出。

hammer content-export list --organization=export-21527

---|--------------------|-----------------------------------------------------------------------|-------------|----------------------|-------------------------|-------------------------|------------------------
ID | DESTINATION SERVER | PATH                                                                  | TYPE        | CONTENT VIEW VERSION | CONTENT VIEW VERSION ID | CREATED AT              | UPDATED AT
---|--------------------|-----------------------------------------------------------------------|-------------|----------------------|-------------------------|-------------------------|------------------------
1  |                    | /var/lib/pulp/exports/export-21527/view/1.0/2021-02-25T18-59-26-00-00 | complete    | view 1.0             | 3                       | 2021-02-25 18:59:30 UTC | 2021-02-25 18:59:30 UTC
2  |                    | /var/lib/pulp/exports/export-21527/view/1.0/2021-02-25T21-15-22-00-00 | complete    | view 1.0             | 3                       | 2021-02-25 21:15:26 UTC | 2021-02-25 21:15:26 UTC
3  |                    | /var/lib/pulp/exports/export-21527/view/2.0/2021-02-25T21-45-34-00-00 | incremental | view 2.0             | 4                       | 2021-02-25 21:45:37 UTC | 2021-02-25 21:45:37 UTC
---|--------------------|-----------------------------------------------------------------------|-------------|----------------------|-------------------------|-------------------------|------------------------

8.8. 导入内容视图版本

您可以使用 hammer content-export 命令输出的存档来创建与导出的 Content View 版本相同的内容视图版本。有关导出内容视图版本的详情,请参考 第 8.5 节 “导出内容视图版本”

当您导入内容视图版本时,它具有相同的主版本和次版本号,并包含相同的软件包和勘误表库。如果导入的组织中不存在自定义存储库、产品和内容视图,则自动创建它们。

先决条件

要导入内容视图,请确保从中导入的 Satellite 服务器满足以下条件:

  1. 导出的存档必须位于 /var/lib/pulp/imports 下的目录中。
  2. 目录必须具有 pulp:pulp 权限,以便 Pulp 能够在该目录中读取和写入 .json 文件。
  3. 如果导出存档中有任何红帽存储库,导入机构的清单必须包含导出中包含的产品的订阅。
  4. 导入内容视图版本的用户必须具有 'Content Importer' 角色。

流程

  1. 将存档文件与导出的 Content View 版本复制到卫星服务器上的 /var/lib/pulp/imports 目录中。
  2. 将存档文件的 user:group 权限设置为 pulp:pulp

    # chown -R pulp:pulp /var/lib/pulp/imports/2021-02-25T21-15-22-00-00/
  3. 验证权限更改:

    # ls -lh  /var/lib/pulp/imports/2021-02-25T21-15-22-00-00/
  4. 要将 Content View 版本导入到 Satellite 服务器,请输入以下命令:

    # hammer content-import version --organization=import-20639 \
                                    --path=/var/lib/pulp/imports/2021-02-25T21-15-22-00-00/

    请注意,您必须输入完整路径 /var/lib/pulp/imports/<path>。相对路径不起作用。

  5. 要验证您是否成功导入了 Content View version,列出您的机构的 Content Views:

    # hammer content-view version list --content-view=view \
                                       --organization=import-20639
    ---|----------|---------|-------------|-----------------------
    ID | NAME     | VERSION | DESCRIPTION | LIFECYCLE ENVIRONMENTS
    ---|----------|---------|-------------|-----------------------
    7  | view 1.0 | 1.0     |             | Library
    ---|----------|---------|-------------|-----------------------

8.9. 导出库环境

您可以将组织的 Library 环境中所有 Yum 存储库的内容导出到卫星服务器的存档文件中,并使用此存档文件在其他卫星服务器或另一个卫星服务器组织中创建相同的存储库。导出的存档文件包含以下数据:

  • 包含内容视图版本元数据的 JSON 文件
  • 包含来自组织的 Library 环境的所有存储库的存档文件。

Satellite 服务器仅导出包括在内容视图版本中的 RPM 和 kickstart 文件。Satellite 不会导出以下内容:

  • Docker 内容

先决条件

要导出机构的 Library 生命周期环境的内容,请确保要导出的 Satellite 服务器满足以下条件:

  • 确保导出目录有可用的存储空间来容纳导出。
  • 确保 /var/lib/pulp/exports 目录有与导出过程中创建的临时文件大小相等的存储空间。
  • 确保为您导出的 Library 生命周期环境中的所有存储库将下载策略设置为 Immediate。更多信息请参阅 第 5.8 节 “下载策略概述”
  • 确保您同步您导出到所需日期的产品。

导出机构库内容:

使用机构名称或 ID 导出。

# hammer content-export complete library --organization=export-21527
  1. 验证包含导出版本的内容视图的存档是否在导出目录中:

    # ls -lh /var/lib/pulp/exports/export-21527/Export-Library/1.0/2021-03-02T03-35-24-00-00
    total 68M
    -rw-r--r--. 1 pulp pulp 68M Mar  2 03:35 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335.tar.gz
    -rw-r--r--. 1 pulp pulp 333 Mar  2 03:35 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335-toc.json
    -rw-r--r--. 1 root root 443 Mar  2 03:35 metadata.json
  2. 您需要所有三个文件,如 tar.gztoc.jsonmetadata.json 文件才能导入。
  3. 在 组织中创建一个新的内容视图 Export-Library。此内容视图包含属于此机构的所有存储库。此内容视图的新版本会自动发布并导出。

使用块导出

在很多情况下,导出的存档内容可能为几 GB 大小。如果要将其分成较小的大小或块。您可以直接使用导出命令中的 --chunk-size-gb 标志来处理此功能。在以下示例中,您可以看到如何指定 --chunk-size-gb=2 以以 2 GB 块分割存档。

# hammer content-export complete library --organization=export-21527 --chunk-size-gb=2
[.....................................................................................................................................................................................................................................] [100%]
Generated /var/lib/pulp/exports/export-21527/Export-Library/2.0/2021-03-02T04-01-25-00-00/metadata.json

# ls -lh /var/lib/pulp/exports/export-21527/Export-Library/2.0/2021-03-02T04-01-25-00-00/

增量导出

在空间和资源方面,导出库内容可能非常昂贵。具有多个 RHEL 树的组织可能会占据卫星服务器上的几 GB 空间。

卫星服务器提供 提供额外导出功能,以帮助进行此场景。增量导出 仅导出从之前导出更改的内容。它们通常小于完整的导出。在以下示例中,我们将逐步导出从 Library 生命周期环境中所有存储库之前导出的更改。

# hammer content-export incremental library --organization=export-21527
[............................................................................................................................................................................................................] [100%]
Generated /var/lib/pulp/exports/export-21527/Export-Library/3.0/2021-03-02T04-22-14-00-00/metadata.json
# ls -lh /var/lib/pulp/exports/export-21527/Export-Library/3.0/2021-03-02T04-22-14-00-00/
total 172K
-rw-r--r--. 1 pulp pulp 161K Mar  2 04:22 export-436882d8-de5a-48e9-a30a-17169318f908-20210302_0422.tar.gz
-rw-r--r--. 1 pulp pulp  333 Mar  2 04:22 export-436882d8-de5a-48e9-a30a-17169318f908-20210302_0422-toc.json
-rw-r--r--. 1 root root  492 Mar  2 04:22 metadata.json
  1. 因为之前导出之间没有改变,因此在组织的库环境中更改更改会非常小。

8.10. 导入到库环境中

您可以使用 hammer content-export 命令输出的存档导入到另一个机构的 Library 生命周期环境,以了解有关从 Library 环境中导出内容的更多信息,请参阅 第 8.9 节 “导出库环境”

先决条件

要导入到组织的库生命周期环境,请确保想导入的 Satellite 服务器满足以下条件:

  1. 导出的存档必须位于 /var/lib/pulp/imports 下的目录中。
  2. 目录必须具有 pulp:pulp 权限,以便 Pulp 能够在该目录中读取和写入 .json 文件。
  3. 如果导出存档中有任何红帽存储库,导入机构的清单必须包含导出中包含的产品的订阅。
  4. 导入内容的用户必须具有 'Content Importer' 角色。

流程

  1. 将存档文件与导出的 Content View 版本复制到卫星服务器上的 /var/lib/pulp/imports 目录中。
  2. 将存档文件的权限设置为 pulp:pulp

    # chown -R pulp:pulp /var/lib/pulp/imports/2021-03-02T03-35-24-00-00
    # ls -lh /var/lib/pulp/imports/2021-03-02T03-35-24-00-00
    total 68M
    -rw-r--r--. 1 pulp pulp 68M Mar  2 04:29 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335.tar.gz
    -rw-r--r--. 1 pulp pulp 333 Mar  2 04:29 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335-toc.json
    -rw-r--r--. 1 pulp pulp 443 Mar  2 04:29 metadata.json
  3. 在您要导入的卫星服务器上,创建/启用与导出内容相同的名称和标签。
  4. 在卫星 Web UI 中,导航到 Content > Products,单击 Yum 内容选项卡,再添加导出的 Content View 版本中包含的同一 Yum 内容。
  5. 确定您要导入的机构。
  6. 要将 Library 内容导入到 Satellite Server,请输入以下命令:

    # hammer content-import library --organization=import-32158 \
                                    --path=/var/lib/pulp/imports/2021-03-02T03-35-24-00-00
    [............................................................................................................................................................................................................] [100%]

    请注意,您必须输入完整路径 /var/lib/pulp/imports/<path>。相对路径不起作用。

  7. 要验证您导入了库内容,请检查 Product 和 Repositories 的内容。目标组织中创建名为 Import-Library 的新内容视图。此内容视图用于促进库内容导入。

8.11. 导出存储库

您可以从卫星服务器在组织的 Library 环境中导出存储库的内容。您可以使用此存档文件在另一个卫星服务器或另一个卫星服务器组织中创建相同的存储库。

您可以从 Satellite 服务器导出以下内容:

  • RPM 软件仓库
  • Kickstart 软件仓库
  • Ansible 软件仓库
  • 文件软件仓库

您无法从卫星服务器导出 Docker 内容。

导出包含以下数据:

  • 包含存储库元数据的两个 JSON 文件。
  • 一个或多个存档文件,其中包含来自机构的库环境的存储库的内容。

您需要所有文件 tar.gztoc.jsonmetadata.json 才能导入。

先决条件

要导出存储库的内容,请确保要从中导出卫星服务器,满足以下条件:

  • 确保导出目录有足够的可用空间来容纳导出。
  • 确保 /var/lib/pulp/exports 目录有足够的空闲存储空间,相当于为导出过程中创建的临时文件大小导出。
  • 确保将下载策略设置为 Immediate,用于您导出的 Library 生命周期环境中的库。更多信息请参阅 第 5.8 节 “下载策略概述”
  • 确保您同步您导出到所需日期的产品。

导出存储库

  1. 使用存储库名称或 ID 导出。

    # hammer content-export complete repository \
     --organization="My_Organization" \
     --product="My_Product" \
     --name="My_Repository"
  2. 可选:验证导出的存档是否在导出目录中:

    # ls -lh /var/lib/pulp/exports/My_Organization/Export-My_Repository/1.0/2021-03-02T03-35-24-00-00
    total 68M
    -rw-r--r--. 1 pulp pulp 68M Mar  2 03:35 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335.tar.gz
    -rw-r--r--. 1 pulp pulp 333 Mar  2 03:35 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335-toc.json
    -rw-r--r--. 1 root root 443 Mar  2 03:35 metadata.json

使用 Chunking 导出存储库

在很多情况下,导出的内容存档可能为几 GB 大小。如果要将其分成较小的大小,您可以在 export 命令中使用 --chunk-size-gb 参数,并以 GB 为单位的整数值限制大小。

  1. 将内容导出到一个有限大小的归档块中,如 2 GB:

    # hammer content-export complete repository \
    --chunk-size-gb=2 \
    --organization="My_Organization" \
    --product="My_Product" \
    --name="My_Repository"
    
    Generated /var/lib/pulp/exports/My_Organization/Export-My_Repository/1.0/2021-03-02T03-35-24-00-00/metadata.json
  2. 可选:查看导出的数据:

    # ls -lh /var/lib/pulp/exports/My_Organization/Export-My_Repository/1.0/2021-03-02T03-35-24-00-00/

8.12. 以方式导出存储库

在系统资源方面,导出存储库可能非常昂贵。典型的 Red Hat Enterprise Linux 树可占用卫星服务器上的几 GB 空间。

在这种情况下,您可以使用 Incremental Export 只导出上一个导出之后更改的内容。增量导出通常会导致存档文件小于完整导出。

以下示例显示库生命周期环境中存储库的增量导出。

流程

  1. 创建一个增量导出:

    # hammer content-export incremental repository \
     --organization="My_Organization" \
     --product="My_Product" \
     --name="My_Repository"
    
    Generated /var/lib/pulp/exports/My_Organization/Export-My_Repository/3.0/2021-03-02T03-35-24-00-00/metadata.json
  2. 可选:查看导出的数据:

    # ls -lh /var/lib/pulp/exports/My_Organization/Export-My_Repository/3.0/2021-03-02T03-35-24-00-00/
    total 172K
    -rw-r--r--. 1 pulp pulp  20M Mar  2 04:22 export-436882d8-de5a-48e9-a30a-17169318f908-20210302_0422.tar.gz
    -rw-r--r--. 1 pulp pulp  333 Mar  2 04:22 export-436882d8-de5a-48e9-a30a-17169318f908-20210302_0422-toc.json
    -rw-r--r--. 1 root root  492 Mar  2 04:22 metadata.json

8.13. 导入存储库

您可以使用 hammer content-export 命令输出在另一个机构中导入存储库的存档。有关导出存储库内容的更多信息,请参阅 第 8.11 节 “导出存储库”

先决条件

要将存储库导入到组织的库生命周期环境,请确保要导入的 Satellite 服务器满足以下条件:

  • 导出文件必须位于 /var/lib/pulp/imports 下的目录中。
  • 目录必须具有 pulp:pulp 所有权,以便 Pulp 能够在该目录中读取和写入 .json 文件。
  • 如果导出包含任何红帽存储库,导入机构的清单必须包含导出中包含的产品的订阅。
  • 导入内容的用户必须具有 Content Importer 角色。

流程

  1. 将导出文件复制到卫星服务器上的 /var/lib/pulp/imports 目录中。
  2. 将导出文件的所有权设置为 pulp:pulp

    # chown -R pulp:pulp /var/lib/pulp/imports/2021-03-02T03-35-24-00-00
    # ls -lh /var/lib/pulp/imports/2021-03-02T03-35-24-00-00
    total 68M
    -rw-r--r--. 1 pulp pulp 68M Mar  2 04:29 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335.tar.gz
    -rw-r--r--. 1 pulp pulp 333 Mar  2 04:29 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335-toc.json
    -rw-r--r--. 1 pulp pulp 443 Mar  2 04:29 metadata.json
  3. 确定您要导入的机构。
  4. 要将 Library 内容导入到 Satellite Server,请输入以下命令:

    # hammer content-import repository \
    --organization="My_Organization" \
    --path=/var/lib/pulp/imports/2021-03-02T03-35-24-00-00

    请注意,您必须输入完整路径 /var/lib/pulp/imports/My_Exported_Repo_Dir。相对路径不起作用。

  5. 要验证您导入了存储库,请检查 Product 和 Repository 的内容。

8.14. 导入/导出清单

表 8.1. Export
意图命令

完全导出内容视图版本

Hammer content-export complete version --content-view="My_Content_View" --version=1.0 --organization="My_Organization"

逐步导出内容视图版本(假设您已导出了某个版本)

Hammer content-export incremental version --content-view="My_Content_View" --version=2.0 --organization="My_Organization"

完全导出仓库

Hammer content-export complete repository --product="My_Product" --name="My_Repository" --organization="My_Organization"

逐步导出存储库(假设您已导出了一些内容)

Hammer content-export incremental repository --product="My_Product" --name="My_Repository" --organization="My_Organization"

完全导出机构库

Hammer 内容导出完整库 --organization="My_Organization"

逐步导出组织的库(假设您已导出内容)

Hammer 内容导出增量库 --organization="My_Organization"

导出提升到 Dev 环境的内容视图版本

Hammer content-export 完整版本 --content-view="My_Content_View" --organization="My_Organization" --lifecycle-environment="Dev"

在较小的块中导出内容视图(2-GB slab)

Hammer content-export complete version --content-view="My_Content_View" --version=1.0 --organization="My_Organization" --chunk-size-gb=2

获取导出列表

Hammer content-export list --content-view="My_Content_View" --organization="My_Organization"

表 8.2. Import
意图命令

导入到内容视图版本

Hammer content-import version --organization="My_Organization" --path="/var/lib/pulp/imports/My_Exported_Repo_Dir"

导入存储库

Hammer content-import repository --organization="My_Organization" --path="/var/lib/pulp/imports/My_Exported_Repo_Dir"

导入到组织的库

Hammer content-import library --organization="My_Organization" --path="/var/lib/pulp/imports/My_Exported_Repo_Dir"

第 9 章 管理激活码

激活码提供了一种自动注册系统并订阅附加的方法。您可以创建多个密钥,并将它们与不同的环境和内容视图相关联。例如,您可以使用 Red Hat Enterprise Linux 工作站订阅创建基本激活码,并将其与特定环境中的内容视图相关联。

您可以在内容主机注册过程中使用激活码来提高流程的速度、简单性和一致性。请注意,激活密钥仅在主机注册时使用。如果对激活码进行了更改,它仅适用于将来使用已发送的激活码注册的主机。不会对现有主机进行更改。

激活码可以为内容主机定义以下属性:

  • 关联的订阅和订阅附加行为
  • 可用产品和存储库
  • 生命周期环境和内容视图
  • 主机集合成员资格
  • 系统目的

主机创建与注册之间的内容视图冲突

置备主机时,Satellite 使用您在主机组或主机设置中设置的内容视图中的置备模板和其他内容。注册主机后,激活密钥的 Content View 将覆盖主机组或主机设置中的原始内容视图。然后,卫星将激活密钥中的 Content View 用于后续任务,例如重建主机。

在重建主机时,请确保设置了您要在激活密钥中使用的内容视图,而不是在主机组或主机设置中使用。

将 Same Activation Key 与多个内容主机搭配使用

如果包含足够订阅,则可以将相同的激活码应用到多个内容主机。但是,激活密钥只为内容主机设置初始配置。将内容主机注册到组织后,可以手动将该组织的内容附加到内容主机。

将多个激活码用于内容主机

内容主机可以关联多个激活密钥,它们组合用于定义主机设置。如果设置有冲突,则最后指定的激活码优先。您可以通过设置主机组参数来指定优先级顺序,如下所示:

$ hammer hostgroup set-parameter \
--name kt_activation_keys \
--value name_of_first_key, name_of_second_key,... \
--hostgroup hostgroup_name

9.1. 创建激活码

您可以使用激活码来定义在注册过程中将特定的订阅附加到主机。要添加到激活密钥的订阅必须在关联的内容视图中可用。

订阅管理器会根据以下因素的不同附加订阅:

  • 是否有与激活码关联的订阅?
  • auto-attach 选项是否已启用?
  • 对于 Red Hat Enterprise Linux 8 主机:激活码中是否设置了系统目的?

请注意,Satellite 会自动为主机上安装的产品附加订阅。对于默认情况下没有列出在 Red Hat Enterprise Linux 中安装的产品(如延长更新支持(EUS)订阅)的订阅,请使用指定所需订阅的激活码,并禁用自动附加。

根据前面的因素,有三种可能使用激活码订阅的情况:

  1. 自动附加订阅的激活码。

    如果没有指定和自动附加订阅,则使用激活密钥搜索主机,从与激活密钥关联的内容视图提供的内容视图提供的最佳订阅。这与输入 subscription-manager --auto-attach 命令类似。对于 Red Hat Enterprise Linux 8 主机,您可以将激活码配置为在注册的过程中在主机上设置系统目的,以增强自动订阅附加。

  2. 为自动附加提供自定义订阅集的激活码。

    如果指定订阅并且启用了自动附加,则使用激活密钥的主机从激活密钥中指定的列表中选择最适合的订阅。在激活码中设置系统目的不会影响这种情况。

  3. 带有准确的订阅集的激活码。

    如果指定订阅并且禁用了自动附加,则使用该激活密钥的主机将与激活密钥中指定的所有订阅相关联。在激活码中设置系统目的不会影响这种情况。

自定义产品

如果自定义产品(通常包含不是由红帽提供的内容)被分配给一个激活码,无论自动附加设置是什么,这个产品总是为注册的内容主机启用。

流程

要创建激活码,请完成以下步骤。要使用 CLI 而不是 Web UI,请参阅 CLI 过程

  1. 在 Satellite Web UI 中,导航到 Content > Activation keys,再点击 Create Activation Key
  2. Name 字段中输入激活码的名称。
  3. 如果要设置限制,请清除 Unlimited hosts 复选框,然后在 Limit 字段中输入您可以使用该激活密钥注册的最大系统数量。如果您希望没有限制的主机使用激活密钥注册,请确保选中了 Unlimited Hosts 复选框。
  4. Description 字段中输入激活密钥的描述。
  5. Environment 列表中,选择要使用的环境。
  6. Content View 列表中,选择要使用的内容视图。如果要使用已弃用的 Katello Agent 而不是 Remote Execution,则 Content View 必须包含 Satellite Tools 6.10 存储库,因为它包含 katello-agent 软件包。
  7. Save
  8. 可选: 对于 Red Hat Enterprise Linux 8 主机,在 System Purpose 部分中,您可以使用系统目的配置激活码,以便在注册过程中在主机上设置,以增强订阅自动附加。

CLI 过程

  1. 创建激活码:

    # hammer activation-key create \
    --name "My_Activation_Key" \
    --unlimited-hosts \
    --description "Example Stack in the Development Environment" \
    --lifecycle-environment "Development" \
    --content-view "Stack" \
    --organization "My_Organization"
  2. 可选: 对于 Red Hat Enterprise Linux 8 主机,输入以下命令在注册期间使用系统目的在主机上设置激活码,以增强订阅自动附加。

    # hammer activation-key update \
    --organization "My_Organization" \
    --name "My_Activation_Key" \
    --service-level "Standard" \
    --purpose-usage "Development/Test" \
    --purpose-role "Red Hat Enterprise Linux Server" \
    --purpose-addons "addons"
  3. 获取您的订阅 ID 列表:

    # hammer subscription list --organization "My_Organization"
  4. 将 Red Hat Enterprise Linux 订阅 UUID 附加到激活码中:

    # hammer activation-key add-subscription \
    --name "My_Activation_Key" \
    --subscription-id ff808181533518d50152354246e901aa \
    --organization "My_Organization"
  5. 列出与激活码关联的产品内容:

    # hammer activation-key product-content \
    --name "My_Activation_Key" \
    --organization "My_Organization"
  6. 覆盖 Satellite 工具 6.10 仓库的默认自动启用状态。默认状态设置为 disabled。要启用,请输入以下命令:

    # hammer activation-key content-override \
    --name "My_Activation_Key" \
    --content-label rhel-7-server-satellite-tools-6.10-rpms \
    --value 1 \
    --organization "My_Organization"

9.2. 更新与激活码关联的订阅

使用这个步骤更改与激活码关联的订阅。要使用 CLI 而不是 Web UI,请参阅 CLI 过程

请注意,对激活码的更改仅适用于更改后置备的机器。要更新现有内容主机上的订阅,请参阅 第 4.7 节 “批量更新内容主机的订阅”

流程

  1. 在 Satellite Web UI 中,导航到 Content > Activation keys,再点击激活码的名称。
  2. 点击 Subscriptions 选项卡。
  3. 要删除订阅,选择 List/Remove,然后选择要删除的订阅左侧的复选框,然后单击 Remove Selected
  4. 要添加订阅,选择 Add,然后选中要添加的订阅左侧的复选框,然后单击 Add Selected
  5. Repository Sets 选项卡,并检查存储库的状态设置。
  6. 要启用或禁用存储库,请选中存储库的复选框,然后使用 Select Action 列表更改状态。
  7. 单击 Details 选项卡,选择此激活密钥的 Content View,然后单击 Save

CLI 过程

  1. 列出激活码当前包含的订阅:

    # hammer activation-key subscriptions \
    --name My_Activation_Key \
    --organization "My_Organization"
  2. 从激活码中删除所需的订阅:

    # hammer activation-key remove-subscription \
    --name "My_Activation_Key" \
    --subscription-id ff808181533518d50152354246e901aa \
    --organization "My_Organization"

    对于 --subscription-id 选项,您可以使用 UUID 或订阅 ID。

  3. 将新订阅附加到激活码中:

    # hammer activation-key add-subscription \
    --name "My_Activation_Key" \
    --subscription-id ff808181533518d50152354246e901aa \
    --organization "My_Organization"

    对于 --subscription-id 选项,您可以使用 UUID 或订阅 ID。

  4. 列出与激活码关联的产品内容:

    # hammer activation-key product-content \
    --name "My_Activation_Key" \
    --organization "My_Organization"
  5. 覆盖所需存储库的默认自动启用状态:

    # hammer activation-key content-override \
    --name "My_Activation_Key" \
    --content-label content_label \
    --value 1 \
    --organization "My_Organization"

    对于 --value 选项,在启用时输入 10 代表 disable。

9.3. 使用激活码进行主机注册

您可以使用激活码完成以下任务:

  • 通过红帽卫星 6 在调配期间注册新主机。Red Hat Satellite 6 中的 kickstart 虚拟机模板包含用于使用创建主机时定义的激活密钥注册主机的命令。
  • 注册现有的 Red Hat Enterprise Linux 主机。将 Red Hat Subscription Manager 配置为使用 Satellite Server 进行注册,并在运行 subscription-manager register 命令时指定激活码。

流程

要将激活码用于带有现有 Red Hat Enterprise Linux 7 主机到 Satellite 服务器的主机,请完成以下步骤:

  1. 为您的 Satellite 服务器下载使用者 RPM。它位于主机的 Web 服务器上的 pub 目录中。例如,对于带有主机名 satellite.example.com 的 Satellite 服务器,请在主机上输入以下命令来注册:

    # rpm -Uvh http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm

    此 RPM 安装用于访问卫星服务器上的存储库所需的证书,并将 Red Hat Subscription Manager 配置为使用服务器 URL。

  2. 在主机上,输入以下命令使用激活码将主机注册到 Satellite:

    # subscription-manager register --activationkey="My_Activation_Key" \
    --org="My_Organization"
  3. 要在 Satellite 服务器上查看机构的主机列表,请输入以下命令:

    # hammer host list --organization "My_Organization"

多个激活码

在注册内容主机时,您可以使用多个激活码。然后,您可以为特定订阅集合创建激活码,并根据内容主机要求合并它们。例如,以下命令在带有 VDC 和 OpenShift 订阅的机构中注册了内容主机:

# subscription-manager register --org="My_Organization" \
--activationkey="ak-VDC,ak-OpenShift"

设置冲突

如果激活码中有冲突设置,则最右侧的键具有优先权。

  • 有冲突的设置:Service Level, Release Version, Environment, Content View, 和 Product Content
  • 没有冲突的设置,主机会发生冲突: SubscriptionsHost Collections
  • 影响密钥本身行为而非主机配置的设置: 内容主机限制和 Auto-Attach

9.4. 启用自动附加

当在激活密钥上启用了自动附加并且有与密钥关联的订阅时,订阅管理服务根据当前安装的产品、架构以及服务级别等一组条件选择并附加最匹配的相关订阅。

您可以启用自动附加,并且没有与密钥关联的订阅。当您不希望虚拟机消耗物理订阅时,这种密钥通常用于注册虚拟机,而是从虚拟机监控程序继承基于主机的订阅。如需更多信息,请参阅在 Red Hat Satellite 中配置虚拟机订阅

auto-attach 会被默认启用。如果要强制附加与激活密钥关联的所有订阅,请禁用该选项。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Activation Keys
  2. 点您要编辑的激活码名称。
  3. 点击 Subscriptions 选项卡。
  4. Auto-Attach 旁边的编辑图标。
  5. 选择或清除复选框以启用或禁用自动附加。
  6. Save

CLI 过程

  • 输入以下命令在激活码中启用自动附加:

    # hammer activation-key update --name "My_Activation_Key" \
    --organization "My_Organization" --auto-attach true

9.5. 设置服务级别

您可以配置激活码,为使用该激活密钥创建的新主机定义默认服务级别。设置默认服务级别仅选择要附加到主机的匹配订阅。例如,如果激活密钥中的默认服务级别被设置为 Premium(Premium)服务级别,则只会在注册后将具有高级服务级别的订阅附加到主机。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Activation Keys
  2. 点您要编辑的激活码名称。
  3. Service Level 旁边的编辑图标。
  4. 从列表中选择所需的服务级别。列表中仅包含可用于激活密钥的服务级别。
  5. Save

CLI 过程

  • 输入以下命令在激活码中将默认服务级别设置为 Premium:

    # hammer activation-key update --name "My_Activation_Key" \
    --organization "My_Organization" --service-level premium

第 10 章 使用 Convert2RHEL 将主机转换为 Red Hat Enterprise Linux

Convert2RHEL 支持将 Red Hat Enterprise Linux 衍生版本转换为可支持的 Red Hat Enterprise Linux 状态,同时保留现有的应用程序和配置。

转换过程与 Red Hat Enterprise Linux 的次版本升级类似,每个系统中的 RPM 软件包都会被替换。Red Hat Enterprise Linux 中没有的第三方软件包和非红帽软件包不会被替换。

Convert2RHEL 删除不必要的软件包,如徽标或已知在转换过程中出现问题的软件包,并使用 rhel-release 软件包替换 CentOS-release 软件包。它将系统订阅到 Red Hat Satellite,并替换由 CentOS 签名的所有软件包。对于 Satellite,它还为红帽订阅管理订阅系统。

执行此操作所需的时间可能会根据需要替换的软件包数量、网络速度、存储速度和类似变量的不同而有所不同。

在转换前,使用全局注册模板来注册并订阅您的系统。如需更多信息,请参阅管理主机中的使用全局注册模板将主机注册到 Red Hat Satellite

要使用 convert2RHEL 将主机转换为 Red Hat Enterprise Linux,您必须完成以下步骤:

先决条件

  • 您必须已完成 准备 RHEL 转换 中列出的步骤。
  • 如果您提供机构 ID 和激活码来注册和订阅您的系统,则必须在 Red Hat Satellite 中创建了一个激活码。对于 Satellite,您还可以在 Red Hat Subscription Manager 中创建激活码。如需更多信息,请参阅本指南中的 管理激活码,以及 Red Hat Subscription Manager 文档中的了解 激活码
  • 确保您有上传到 Satellite 的订阅清单,并确保有足够的 Red Hat Enterprise Linux 订阅进行转换。
  • 如果您提供机构 ID 和激活码来注册和订阅您的系统,则必须在 Red Hat Satellite 或 Red Hat Subscription Manager 中创建激活码。如需更多信息,请参阅本指南中的 管理激活码,以及 Red Hat Subscription Manager 文档中的了解 激活码
  • 确保您有上传到 Satellite 的订阅清单,并确保有足够的 Red Hat Enterprise Linux 订阅进行转换。
  • 您打算使用卫星服务器访问 Red Hat Enterprise Linux 软件包,则必须使用机构 ID 和激活码来运行 convert2rhel

10.1. 安装 Convert2RHEL

以下流程使 Convert2RHEL 可用于您要转换的主机。

流程

  1. 在 Satellite Web UI 中,进入到 Content > Products,点 Create Product
  2. Name 字段中输入产品的名称。卫星会根据 Name 的条目自动完成 Label 字段。
  3. 可选:在 GPG Key 列表中,选择产品的 GPG 密钥。
  4. 可选:从 SSL CA Cert 列表中选择产品的 SSL CA 证书。
  5. 您不需要完成 SSL Client CertSSL Client Key
  6. 可选:在 Sync Plan 列表中,选择现有的同步计划,或者点击 Create Sync Plan 为您的产品要求创建同步计划。
  7. Description 字段中输入产品的描述。
  8. Save
  9. 单击 Repositories 选项卡。
  10. 要添加存储库,请单击 New Repository
  11. Name 字段中输入存储库的名称。
  12. Type 列表,将内容类型设置为 Yum。
  13. 不要限制架构或操作系统版本。
  14. 使用 https://cdn.redhat.com/content/public/convert2rhel/7/x86_64/os/ 作为上游 URL。
  15. 禁用验证 SSL 复选框。
  16. 可选:在 GPG Key 列表中,选择产品的 GPG 密钥。
  17. 可选:从 SSL CA Cert 列表中选择产品的 SSL CA 证书。

    您不需要完成 SSL Client CertSSL Client Key

  18. Save
  19. 单击新存储库旁边的复选框,然后单击 立即同步

10.2. 为主机创建激活码

使用此流程为要使用的主机创建激活码。

流程

  1. 在 Satellite Web UI 中,进入 Content &gt ; Red Hat Repositories
  2. 启用 Red Hat Enterprise Linux 7 Server 软件仓库。
  3. 在 Satellite Web UI 中,进入到 Content > Activation keys,点 Create Activation Key
  4. Name 字段中输入主机激活密钥的名称。
  5. 如果要设置限制,请清除 Unlimited hosts 复选框,然后在 Limit 字段中输入您可以使用该激活密钥注册的最大系统数量。如果您希望没有限制的主机使用激活密钥注册,请确保选中了 Unlimited Hosts 复选框。
  6. Description 字段中输入激活密钥的描述。
  7. Environment 列表中,选择要使用的环境。
  8. Content View 列表中,选择要使用的内容视图。
  9. Save
  10. 如果没有启用 SCA:

    1. 单击订阅选项卡然后单击添加 子菜单。
    2. 单击您之前创建的订阅旁边的复选框。
    3. 单击 Add Selected
  11. 如果启用了CA:

    1. Repository Sets 选项卡中,请确保只启用命名的存储库。

10.3. 准备主机组

使用此流程准备主机组来转换 CentOS 7 机器。

流程

  1. 在 Satellite Web UI 中,进入 Configure > Host groups,点 Create Host Group
  2. Name 字段中输入主机组的名称。
  3. Description 字段中输入主机组的描述。
  4. Lifecycle Environment 字段中,选择 Library
  5. 可选:在 Content view 字段中输入 Content view 的值。
  6. 对于第 7 - 10 步,红帽不推荐为此情境设置值,因为它们可能会以非预期方式修改主机。
  7. 可选:在 Puppet Environment 字段中,选择 Puppet Environment 的值。
  8. Deploy on 字段可以安全地忽略。
  9. 可选:在 Puppet Capsule 字段中,选择为此胶囊配置的 Puppet 服务器的名称。
  10. 可选:在 Puppet CA Capsule 字段中,选择为此胶囊配置的 Puppet Server CA。
  11. 切换到 Activation Keys 选项卡。
  12. 可选:在 OpenSCAP Capsule 字段中,选择 OpenSCAP Capsule 用于获取 SCAP 内容并上传 ARF 报告。
  13. Submit
  14. 切换到 Activation Keys 选项卡。
  15. Activation Keys 字段中输入产品激活码的名称。
  16. Submit

10.4. 注册主机以进行转换

使用这个步骤将 CentOS 主机注册到 Satellite。

流程

  1. 在 Satellite web UI 中,进入 Hosts > All Hosts,点 Register Host
  2. Host Group 字段中,选择您要用作转换模板的主机组。
  3. 可选,在 Operating System 字段中选择您要转换的 Operating System。
  4. 可选:在 Capsule 字段中,选择所需的 capsule。
  5. 可选: 使用 Setup Insights 字段选择是否在转换主机上安装 Red Hat Insights。
  6. 可选:使用 Remote execution 字段选择是否在转换主机上安装 SSH。
  7. 可选:在 Token 生命周期(小时) 字段中,设置生命周期。默认值为四小时。如果需要更多时间在主机上运行命令,请增加 Token Lifetime 的值。
  8. 可选:如果主机可能不信任 Satellite CA,请检查 Insecure 复选框。
  9. 可选: 在 Remote Execution Interface 字段中,如果主机具有多个接口且远程执行必须使用单一接口,请选择适当的网络接口。
  10. Activation Key(s) 字段中输入内容激活码的名称。
  11. Generate Command

当在要转换的主机上运行命令时,它会在 Hosts > All Hosts 中注册。如果主机订阅状态警告 Unknown 订阅状态,则可以忽略它。

10.5. 使用 Convert2RHEL 转换主机

使用以下步骤执行转换。

流程

  1. 在 Satellite web UI 中,进入 Hosts > All Hosts,选择您要转换的目标主机。您可以使用 Search 字段来过滤主机列表。
  2. Select Action 列表中,选择 Schedule Remote Job
  3. Job category 字段中,选择 Convert to RHEL
  4. Job template 字段中,验证作业模板 是否已设置为 RHEL
  5. Job Invocation 页面上,定义主要作业设置。

    Search Query 字段显示您执行的任何搜索的名称,或者已选择的主机列表。

  6. Activation Key 字段中,输入主机激活码。
  7. 可选:如果要配置其他方面,点 Show Advanced Fields
  8. Submit
  9. 请注意:

    • 转换可能需要一些时间。
    • 在转换过程中,主机会重启。
    • 重启后,新的 OS 事实会发送到 Satellite。
    • 完成后,主机的操作系统更改为 Red Hat Enterprise Linux,订阅状态会变为绿色。

第 11 章 管理勘误

作为红帽质量控制和发布过程的一部分,我们为客户提供了每个官方红帽 RPM 版本的更新。红帽将相关软件包组编译到 勘误 中,并提供更新描述的公告。公告类型有三种(按重要程度排列):

安全公告
描述在软件包中找到的固定安全问题。问题的安全影响可以是 Low、Moderate、Important 或 Critical。
程序错误修复建议
描述软件包的程序错误修复。
产品增强公告
描述软件包中添加的功能增强和新功能。

当与红帽的内容交付网络(CDN)同步存储库时,红帽卫星 6 会导入这个勘误信息。红帽卫星 6 还提供了检查和过滤勘误表的工具,允许对勘误表进行精确更新管理。这样,您可以选择相关的更新,并通过 Content Views 传播它们到所选内容主机。

勘误根据它们所包含的最重要的公告类型进行标记。因此,标记为产品增强 公告 的勘误只能包含增强更新,而 程序错误修复 咨询勘误可同时包含程序错误修正和增强,安全公告 中可以包含所有三种类型。

在 Red Hat Satellite 中,有两个关键字来描述与可用内容主机的勘误关系:

如果适用
一个适用于一个或多个内容主机的勘误,这意味着它会更新内容主机上存在的软件包。虽然这些勘误会应用到内容主机,在其状态变为 Installable 之前,勘误还不能安装。可安装的勘误可自动适用。
可安装
适用于一个或多个内容主机的勘误,并可在内容主机上安装。可安装勘误表可从生命周期环境和相关内容视图提供给内容主机,但尚未安装。

本章介绍了如何管理勘误表并将其应用到一台主机或多个主机。

11.1. 检查可用的勘误

以下流程描述了如何查看和过滤可用的勘误以及如何显示所选公告的元数据。要使用 CLI 而不是 Web UI,请参阅 CLI 过程

流程

  1. 导航到 Content > Errata 以查看可用勘误列表。
  2. 使用页面顶部的过滤工具来限制显示勘误表的数量:

    • 从列表中选择要检查的存储库。所有 软件仓库都被默认选择。
    • Applicable 复选框会被默认选中,以只查看所选仓库中的适用勘误。选中 Installable 复选框,以仅查看标记为可安装的勘误表。
    • 要搜索勘误表,在 Search 字段中输入查询,格式为:

      parameter operator value

      有关可用于搜索的参数列表,请参阅 表 11.1 “可用于勘误搜索的参数”。在管理 红帽卫星中的 支持的 Operator 中用于 Granular Search,找到适用 Operator 的列表。自动建议在您选择的情况下可以正常工作。您还可以将查询与使用 and 运算符合并。例如,只显示与内核软件包相关的安全公告,请输入:

      type = security and package_name = kernel

      Enter 键开始搜索。

  3. 点击您要检查 的勘误 ID

    • Details 选项卡包含更新软件包的描述以及更新提供的重要修复和增强文档。
    • Content Hosts 选项卡中,您可以将勘误应用到所选内容主机,如 第 11.7 节 “将勘误应用到多个主机” 所述。
    • Repositories 选项卡列出已包含勘误的存储库。您可以根据环境和内容视图过滤存储库,并通过存储库名称搜索它们。

CLI 过程

  • 要查看所有机构都可用的勘误,请输入以下命令:

    # hammer erratum list
  • 要查看特定勘误的详情,请输入以下命令:

    # hammer erratum info --id erratum_ID
  • 您可以使用 --search 选项输入查询来搜索勘误。例如,要查看包含指定错误的所选产品的适用勘误,以便在 top 上显示安全勘误,请输入以下命令:

    # hammer erratum list \
    --product-id 7 \
    --search "bug = 1213000 or bug = 1207972" \
    --errata-restrict-applicable 1 \
    --order "type desc"
表 11.1. 可用于勘误搜索的参数
参数描述示例

错误

按照 Bugzilla 编号搜索。

bug = 1172165

CVE

按照 CVE 号搜索。

cve = CVE-2015-0235

id

按照勘误表 ID 搜索。Auto-suggest 系统根据类型显示可用 ID 列表。

id = RHBA-2014:2004

发布日期

按照问题日期搜索。您可以指定具体日期,如 "Feb16,2015" 或使用关键字,如 "Yesterday" 或 "1 hour ago"。可使用 "<" 和 ">" 运算符指定时间范围。

发布 < "Jan 12,2015"

package

按照完整的软件包构建名称搜索。Auto-suggest 系统在键入时显示可用软件包的列表。

package = glib2-2.22.5-6.el6.i686

package_name

按照软件包名称搜索。Auto-suggest 系统在键入时显示可用软件包的列表。

package_name = glib2

严重性

按照安全更新解决的问题的严重性搜索。指定 CriticalImportantModerate (中度)。

重要性 = Critical

title

按照公告标题搜索。

title ~ openssl

type

按照公告类型搜索。指定 安全性错误修正 或功能增强

type = bugfix

已更新

按照最后一次更新的日期搜索。您可以使用与 issued 参数 相同的格式

updated = "6 days ago"

11.2. 订阅勘误通知

您可以为 Satellite 用户配置电子邮件通知。用户收到适用和可安装的勘误表、内容视图提升通知或同步存储库后的通知。有关更多信息,请参阅管理 Red Hat Satellite中的配置电子邮件通知

11.3. 仓库解析的限制

使用 Satellite 时,使用向内容视图增量更新来解决一些存储库依赖关系问题。但是,存储库级别的依赖项解析仍将存在问题。

当存储库更新可用时,如果现有存储库软件包中有旧版本,卫星会检索最新的软件包来解决依赖项。这可在安装软件包时产生其他依赖项解析问题。

示例情境

客户端上的存储库具有带有依赖项 example_repository-libs-1.0 的软件包 example_repository-1.0。存储库还包含另一个软件包 example_tools-1.0

安全勘误会随软件包 example_tools-1.1 一起可用。example_tools-1.1 软件包需要 example_repository-libs-1.1 软件包作为依赖项。

在增量内容视图更新后,example_tools-1.1example_tools-1.0example_repository-libs-1.1 现在位于存储库中。存储库也具有软件包 example_repository-1.0example_repository-libs-1.0。请注意,内容视图的增量更新没有添加软件包 example_repository-1.1。因为您可以使用 yum 安装所有这些软件包,所以不会检测到潜在的问题。但是,当客户端安装 example_tools-1.1 软件包时,会发生依赖项解析问题,因为无法安装 example_repository-libs-1.0example_repository-libs-1.1

当前没有解决此问题的方法。当在基本 RPM 集合和应用的勘误集合之间的主 Y 版本的时间范围越大,出现依赖性问题的机会就越大。

11.4. 为勘误创建内容视图过滤器

您可以使用内容过滤器来限制勘误表。这种过滤器包括:

  • id - 选择特定的勘误以允许您的生成的仓库。
  • 日期范围 - 定义日期范围,并包括该日期范围内发布的一系列勘误表。
  • 类型 - 选择要包含的勘误表类型,如程序漏洞修复、改进和安全更新。

创建内容过滤器,以在特定日期之后排除勘误。这样可保证您在应用程序生命周期中的生产系统保持在一个特定时间点上保持最新状态。然后,您可以修改过滤器的开始日期,以在测试环境中新勘误测试新软件包在应用程序生命周期中的兼容性。

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

先决条件

流程

  1. 在 Satellite Web UI 中,导航到 Content > Content Views,然后选择您要用于应用勘误表的 Content View。
  2. 导航到 Yum Content > Filters,再单击 New Filter
  3. Name 字段中输入 Errata Filter
  4. 内容类型 列表中,选择 Erratum - Date and Type
  5. Inclusion Type 列表中,选择 Exclude
  6. Description 字段中输入 Exclude errata items from YYYY-MM-DD
  7. Save
  8. 对于 勘误类型,选中您要排除的勘误表类型的复选框。例如,选择 EnhancementBugfix 复选框,清除 Security 复选框,以便在特定日期后排除功能增强和程序错误修复勘误,但包括所有安全勘误。
  9. 对于 Date Type,选择两个复选框之一:

    • Issued On 是勘误的发布日期。
    • 更新了 On,了解勘误最后一次更新的日期。
  10. 选择 Start Date,以排除在所选日期或之后的所有勘误。
  11. "结束日期" 字段留空。
  12. Save
  13. 单击 Publish New Version 以发布生成的存储库。
  14. Description 字段中输入 Adding errata filter
  15. Save

    当内容视图完成发布时,请注意 Content 列中会从初始存储库中报告软件包和勘误表的数量。这意味着,过滤器已成功排除了上一年中的所有非安全勘误。

  16. Versions 选项卡。
  17. 单击 published version 右侧的 Promote
  18. 选择您要提升内容视图版本的环境。
  19. Description 字段中输入提升的描述。
  20. 单击 Promote Version 以在所需环境中提升此内容视图版本。

CLI 过程

  1. 为勘误创建过滤器:

    # hammer content-view filter create --name "Filter Name" \
    --description "Exclude errata items from the YYYY-MM-DD" \
    --content-view "CV Name" --organization "Default Organization" \
    --type "erratum"
  2. 创建过滤规则以排除您要设置 的开始日期或之后 的所有勘误:

    # hammer content-view filter rule create --start-date "YYYY-MM-DD" \
    --content-view "CV Name" --content-view-filter="Filter Name" \
    --organization "Default Organization" --types=security,enhancement,bugfix
  3. 发布内容视图:

    # hammer content-view publish --name "CV Name" \
    --organization "Default Organization"
  4. 将内容视图提升到 生命周期环境,以便包括的勘误可供该生命周期环境可用:

    # hammer content-view version promote \
    --content-view "CV Name" \
    --organization "Default Organization" \
    --to-lifecycle-environment "Lifecycle Environment Name"

11.5. 在事件内容视图中添加勘误

如果勘误可用但不可安装,您可以创建一个增量内容视图版本,将勘误表添加到您的内容主机。例如,如果内容视图是 1.0 版本,则将变为 Content View version 1.1,且发布时,它将变为 Content View version 2.0。

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

流程

  1. 在 Satellite Web UI 中,导航到 Content > Errata
  2. Errata 列表中,点击您要应用的勘误表的名称。
  3. 选择您要将勘误表应用到的内容主机,然后单击 Apply to Hosts。这会创建到内容视图的增量更新。
  4. 如果要将勘误表应用到内容主机,请在 发布复选框后立即选中 Apply Errata to Content Hosts

    注意

    BZ#1459807 已解决前,如果您将不可安装勘误表应用到代理服务器的主机,则在 发布复选框后请不要立即选择"应用勘误表到"内容主机 "。

    相反,点 Confirm 后,等待勘误表内容视图提升,以及等待 Capsule 同步任务完成。然后,勘误将标记为" 可安装 ",然后再次使用流程来应用它。

  5. Confirm 以应用勘误。

CLI 过程

  1. 列出勘误及其对应的 ID:

    # hammer erratum list
  2. 列出不同的内容视图版本以及对应的 ID:

    # hammer content-view version list
  3. 将单个勘误应用于内容查看版本。您可以在以逗号分开的列表中添加更多 ID。

    # hammer content-view version incremental-update \
    --content-view-version-id 319 --errata-ids 34068b

11.6. 将勘误应用到主机

使用这些流程来查看并应用勘误到主机。

先决条件

  • 将红帽卫星存储库与红帽提供的最新勘误表同步。更多信息请参阅 第 5.6 节 “同步软件仓库”
  • 将主机注册到 Satellite 服务器上的环境和内容视图。如需更多信息,请参阅管理 主机 指南中的 注册主机
  • 配置主机以进行远程执行。有关运行远程执行作业的更多信息 请参阅管理主机指南中的配置和设置远程作业
注意

如果主机已配置为接收弃用的 Katello Agent 的内容更新,请改为迁移到远程执行。如需更多信息,请参阅 管理主机 指南中的 从 Katello Agent 迁移到远程执行

要将勘误应用到 RHEL 8 主机,请完成以下步骤:

  1. 在 Satellite 中,列出主机的所有勘误:

    # hammer host errata list \
    --host client.example.com
  2. 查找勘误所属的模块流:

    # hammer erratum info --id ERRATUM_ID
  3. 在主机上更新模块流:

    # yum update Module_Stream_Name

For Red Hat Enterprise Linux 7

要将勘误应用到 RHEL 7 主机,请完成以下步骤:

  1. 在 Satellite Web UI 中,导航到 Hosts > Content Hosts 并选择您要应用勘误的主机。
  2. 导航到 Errata 选项卡,以查看勘误表列表。
  3. 选择要应用的勘误,然后点 Apply Selected。在确认窗口中,点 Apply
  4. 在任务更新与所选勘误关联的所有软件包完成后,点击 Details 选项卡来查看更新的软件包。

CLI 过程

要将勘误应用到 RHEL 7 主机,请完成以下步骤:

  1. 列出主机的所有勘误:

    # hammer host errata list \
    --host client.example.com
  2. 将最新的勘误应用于主机。使用勘误 ID 识别要应用的勘误。

    使用远程执行

    # hammer job-invocation create \
    --feature katello_errata_install \
    --inputs errata=ERRATUM_ID1,ERRATUM_ID2 \
    --search-query "name = client.example.com"

    使用 Katello Agent (已弃用)

    # hammer host errata apply --host "client.example.com" \
    --errata-ids ERRATUM_ID1,ERRATUM_ID2...

11.7. 将勘误应用到多个主机

使用这些流程来查看并应用勘误到多个 RHEL 7 主机。

先决条件

  • 将红帽卫星存储库与红帽提供的最新勘误表同步。更多信息请参阅 第 5.6 节 “同步软件仓库”
  • 将主机注册到 Satellite 服务器上的环境和内容视图。如需更多信息,请参阅管理 主机 指南中的 注册主机
  • 配置主机以进行远程执行。有关运行远程执行作业的更多信息 请参阅管理主机指南中的配置和设置远程作业
注意

如果主机已配置为接收弃用的 Katello Agent 的内容更新,请改为迁移到远程执行。如需更多信息,请参阅 管理主机 指南中的 从 Katello Agent 迁移到远程执行

流程

  1. 进入 Content > Errata
  2. 点击您要应用的勘误名称。
  3. 单击 Content Hosts 选项卡。
  4. 选择您要应用勘误表的主机,然后单击 应用至主机
  5. 单击 Confirm

CLI 过程

虽然 CLI 没有与 Web UI 相同的工具,但您可以使用 CLI 命令复制类似的步骤。

  1. 列出所有可安装的勘误:

    # hammer erratum list \
    --errata-restrict-installable true \
    --organization "Default Organization"
  2. 将其中一个勘误应用到多个主机:

    使用远程执行

    # hammer job-invocation create \
    --feature katello_errata_install \
    --inputs errata=ERRATUM_ID \
    --search-query "applicable_errata = ERRATUM_ID"

    使用 Katello Agent (已弃用)

    确定您要使用的勘误,并列出此勘误适用于的主机:

    # hammer host list \
    --search "applicable_errata = ERRATUM_ID" \
    --organization "Default Organization"

    以下 Bash 脚本向有这个勘误的每个主机应用一个勘误:

    for HOST in hammer --csv --csv-separator "|" host list --search "applicable_errata = ERRATUM_ID" --organization "Default Organization" | tail -n+2 | awk -F "|" '{ print $2 }' ;
    do
      echo "== Applying to $HOST ==" ; hammer host errata apply --host $HOST --errata-ids ERRATUM_ID1,ERRATUM_ID2 ;
    done

    这个命令使用 errata _ID 将所有主机标识为适用勘误,然后将勘误应用到每个主机。

  3. 要查看成功应用了勘误,请在以下命令输出中找到对应的任务:

    # hammer task list
  4. 查看所选任务的状态:

    # hammer task progress --id task_ID

11.8. 将勘误应用到主机集合

使用远程执行

# hammer job-invocation create \
--feature katello_errata_install \
--inputs errata=ERRATUM_ID1,ERRATUM_ID2,... \
--search-query "host_collection = HOST_COLLECTION_NAME"

使用 Katello Agent (已弃用)

# hammer host-collection erratum install \
--errata "erratum_ID1,erratum_ID2,..." \
--name "host_collection_name"\
--organization "Your_Organization"

第 12 章 管理容器镜像

使用 Red Hat Satellite 6,您可以从各种源导入容器镜像,并使用 Content Views 将它们分发到外部容器。

有关容器的详情,请参阅 Red Hat Enterprise Linux Atomic Host 7 中的容器入门

12.1. 导入容器镜像

您可以从 Red Hat Registry 或其他镜像 registry 中导入容器镜像仓库。

此流程使用存储库发现功能来查找容器镜像,并将它们导入为存储库。有关手动创建产品和存储库的更多信息,请参阅 第 5 章 导入内容

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

流程

  1. 在 Satellite Web UI 中,导航到 Content > Products,再点击 Repo Discovery
  2. Repository Type 列表,选择 Container Images
  3. Registry to Discover 字段中输入要从中导入镜像的 registry URL。
  4. Registry Username 字段中输入与容器镜像 registry 的用户名对应的名称。
  5. Registry Password 字段中,输入与您输入的用户名对应的密码。
  6. Registry Search Parameter 字段中,输入您要用来过滤搜索的任何搜索条件,然后点 Discover
  7. 可选: 要进一步重新定义 Discovered Repository 列表,在 Filter 字段中输入您要使用的其他搜索条件。
  8. Discovered Repository 列表中,选择您要导入的任何存储库,然后单击 Create Selected
  9. 可选:如果希望创建一个产品,在 Product 列表中选择 New Product
  10. Name 字段中输入产品名称。
  11. 可选:在 Repository NameRepository Label 列中,您可以编辑存储库名称和标签。
  12. 单击 Run Repository Creation
  13. 当存储库创建完成后,您可以点击每个新存储库来查看更多信息。
  14. 可选: 要过滤您导入到存储库的内容,请点击存储库,然后导航到 Limit Sync Tags。点击以编辑,并添加您要限制与 Satellite 同步的内容的任何标签。
  15. 进入 Content > Products 并选择您的产品名称。
  16. 选择新存储库,然后点 Sync Now 以启动同步过程。

要查看同步的进度,请导航到 Content > Sync Status 并展开存储库树。

同步完成后,您可以点击 Container Image Manifests 来列出可用的清单。在列表中,您还可以删除您不需要的任何清单。

CLI 过程

  1. 创建自定义 Red Hat Container Catalog 产品:

    # hammer product create \
    --name "Red Hat Container Catalog" \
    --sync-plan "Example Plan" \
    --description "Red Hat Container Catalog content" \
    --organization "My_Organization"
  2. 为容器镜像创建存储库:

    # hammer repository create \
    --name "RHEL7" \
    --content-type "docker" \
    --url "http://registry.access.redhat.com/" \
    --docker-upstream-name "rhel7" \
    --product "Red Hat Container Catalog" \
    --organization "My_Organization"
  3. 同步存储库:

    # hammer repository synchronize \
    --name "RHEL7" \
    --product "Red Hat Container Catalog" \
    --organization "My_Organization"

12.2. 管理容器名称模式

当您使用 Satellite 创建和管理容器时,容器通过 Satellite 生命周期环境的 Content View version 和不同阶段移动时,容器名称在每个阶段更改。例如,如果您将容器镜像与上游存储库的名称 ssh 同步,则当将其添加到 Satellite 产品和机构时,作为内容视图的一部分发布,容器镜像可以具有以下名称: my_organization_production-custom_spin-my_product-custom_ssh。这在要拉取容器镜像时可能会造成问题,因为容器 registry 只能包含一个容器名称的实例。为了避免 Satellite 命名约定出现问题,您可以设置注册表名称模式来覆盖默认名称,以确保以后使用容器名称是明确的。

限制

如果使用 registry 名称模式来管理容器命名规则,因为 registry 命名模式必须全局生成唯一名称,您可能会遇到命名冲突问题。例如:

  • 如果您设置了 repository.docker_upstream_name registry 名称模式,则无法发布或将具有相同存储库名称的容器内容提升内容视图到 Production 生命周期。
  • 如果设置 lifecycle_environment.name registry 名称模式,这可以防止创建具有相同名称的第二个容器存储库。

在为容器定义 registry 命名模式时,您必须谨慎。

流程

要使用 registry 名称模式管理容器命名,请完成以下步骤:

  1. 在 Satellite Web UI 中,导航到 Content > Lifecycle Environments,然后创建生命周期环境,或选择要编辑的生命周期环境。
  2. Container Image Registry 区域中,点 Registry Name Pattern 区域右侧的编辑图标。
  3. 使用变量和示例列表来决定您需要的 registry 名称模式。
  4. Registry Name Pattern 字段中输入您要使用的 registry 名称模式。例如,使用 repository.docker_upstream_name

    <%= repository.docker_upstream_name %>
  5. Save

12.3. 管理容器 Registry 身份验证

默认情况下,用户必须进行身份验证才能访问卫星中的容器镜像。

您可以指定您是否希望用户进行身份验证以在生命周期环境中访问 Satellite 中的容器镜像。例如,您可能希望允许用户从 Production 生命周期访问容器镜像,而无需进行身份验证,并将 DevelopmentQA 环境的访问权限限制为经过身份验证的用户。

流程

要管理用于从 Satellite 访问容器镜像的身份验证设置,请完成以下步骤:

  1. 在 Satellite Web UI 中,导航到 Content > Lifecycle Environments,然后选择您要管理验证的生命周期环境。
  2. 要允许对这个生命周期环境中容器的未经身份验证的访问,请选择 Unauthenticated Pull 复选框。要限制未经身份验证的访问,请清除 Unauthenticated Pull 复选框。
  3. Save

12.4. 使用 Katello Container Registries

Podman 和 Docker 可用于从 Katello 容器 registry 中获取内容。

智能代理上的容器 registry

在带有内容的胶囊上,Container Gateway Capsule 插件充当容器 registry。它将从 Katello 中缓存身份验证信息,并将传入的请求代理到 Pulp。容器网关在带有内容的胶囊上默认。

流程

登录到容器 registry:

podman login satellite.example.com

列出容器镜像:

podman search satellite.example.com/

拉取容器镜像:

podman pull satellite.example.com/my-image:<optional_tag>

第 13 章 管理 ISO 镜像

您可以使用 Red Hat Satellite 6 存储 ISO 镜像,可以是从红帽内容交付网络或其他来源。您还可以上传其他文件,如虚拟机镜像,并将它们发布到存储库中。

13.1. 从红帽导入 ISO 镜像

Red Hat Content Delivery Network 为特定产品提供 ISO 镜像。导入此内容的步骤与为 RPM 内容启用存储库的步骤类似。

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

流程

  1. 在 Satellite Web UI 中,进入 Content > Red Hat Repositories
  2. 在搜索字段中输入 镜像名称,例如: Red Hat Enterprise Linux 7 Server(ISO)
  3. 在 Available Repositories 窗口中,展开 Red Hat Enterprise Linux 7 Server(ISO)
  4. 对于 x86_64 7.2 条目,单击 Enable 图标,为镜像启用存储库。
  5. 进入 Content > Products 并点 Red Hat Enterprise Linux Server
  6. 单击 Red Hat Enterprise Linux Server 窗口的 Repositories 选项卡,然后点 Red Hat Enterprise Linux 7 Server ISOs x86_64 7.2
  7. 在 Red Hat Enterprise Linux 7 Server ISOs x86_64 7.2 窗口右上角,单击 Select Action,然后选择 Sync Now

查看同步状态

  • 在 Web UI 中,导航到 Content > Sync Status 并展开 Red Hat Enterprise Linux Server

CLI 过程

  1. 找到用于 文件 仓库的 Red Hat Enterprise Linux Server 产品:

    # hammer repository-set list \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization" | grep "file"
  2. 为 Red Hat Enterprise Linux 7.2 Server ISO 启用 文件 仓库:

    # hammer repository-set enable \
    --product "Red Hat Enterprise Linux Server" \
    --name "Red Hat Enterprise Linux 7 Server (ISOs)" \
    --releasever 7.2 \
    --basearch x86_64 \
    --organization "My_Organization"
  3. 找到并同步产品中的存储库:

    # hammer repository list \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization"
    # hammer repository synchronize \
    --name "Red Hat Enterprise Linux 7 Server ISOs x86_64 7.2" \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization"

13.2. 导入独立 ISO 镜像和文件

使用这个步骤手动将 ISO 内容和其他文件导入到卫星服务器。要导入文件,您可以在 Web UI 中完成以下步骤或使用 Hammer CLI。但是,如果要上传的文件大小大于 15 MB,则必须使用 Hammer CLI 将其上传到存储库。

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

流程

  1. 在 Satellite Web UI 中,导航到 Content > Products,然后在 Products 窗口中点击 Create Product
  2. Name 字段中输入一个名称来标识产品。此名称填充 Label 字段。
  3. GPG Key 字段中,输入该产品的 GPG 密钥。
  4. Sync Plan 列表中,选择产品的同步计划。
  5. Description 字段中输入产品的描述。
  6. Save
  7. 在 Products 窗口中,单击新产品,然后单击 Create Repository
  8. Name 字段中输入存储库的名称。这会自动填充 Label 字段。
  9. Type 列表,选择 文件
  10. Upstream URL 字段中,输入要用作源的 registry 的 URL。在 Upstream UsernameUpstream Password 字段中添加对应的用户名和密码。
  11. Save
  12. 点新存储库。
  13. 导航到 Upload File,再单击 Browse
  14. 选择 .iso 文件并单击 Upload

CLI 过程

  1. 创建自定义产品:

    # hammer product create \
    --name "My_ISOs" \
    --sync-plan "Example Plan" \
    --description "My_Product" \
    --organization "My_Organization"
  2. 创建存储库:

    # hammer repository create \
    --name "My_ISOs" \
    --content-type "file" \
    --product "My_Product" \
    --organization "My_Organization"
  3. 将 ISO 文件上传到存储库:

    # hammer repository upload-content \
    --path ~/bootdisk.iso \
    --id repo_ID \
    --organization "My_Organization"

第 14 章 管理自定义文件类型内容

在 Satellite 中,您可能需要管理和分发 SSH 密钥和源代码文件或更大文件(如虚拟机镜像和 ISO 文件)。为了达到此目的,红帽卫星中的自定义产品包括自定义文件类型的存储库。这提供了一种通用方法,用于将任意文件纳入一个产品中。

您可以上传文件到存储库,并从上游卫星服务器同步文件。当您将文件添加到自定义文件类型存储库时,您可以使用普通的 Satellite 管理功能,比如将特定版本添加到内容视图,以提供版本控制并在各种胶囊服务器上提供文件存储库。客户端必须使用 curl -O 通过 HTTP 或 HTTPS 下载文件。

您只能在自定义产品中在卫星服务器中创建文件类型存储库,但对创建文件类型存储库有灵活性。您可以在安装 Satellite 的系统上的目录中创建独立的文件类型存储库,或者在远程 HTTP 服务器上创建,然后将该目录的内容同步到卫星。如果您有多个要添加到 Satellite 仓库的文件,此方法很有用。

14.1. 在 Red Hat Satellite 中创建自定义文件类型存储库

创建自定义文件类型存储库的步骤与创建任何自定义内容的步骤相同,但创建存储库时除外,您可以选择 文件类型。您必须创建一个产品,然后添加自定义存储库。

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

流程

要创建自定义产品,请完成以下步骤:

  1. 在 Satellite Web UI 中,导航到 Content & gt; Products,点 Create Product 并输入以下详情:
  2. Name 字段中输入产品的名称。Satellite 根据您为 Name 输入的内容自动完成 Label 字段。
  3. 可选:在 GPG Key 列表中,选择产品的 GPG 密钥。
  4. 可选:在 Sync Plan 列表中,为产品选择一个同步计划。
  5. Description 字段中输入产品的描述,然后单击 Save

要为自定义产品创建存储库,请完成以下步骤:

  1. 在 Products 窗口中,选择要为其创建库的产品的名称。
  2. 单击 Repositories 选项卡,然后单击 New Repository
  3. Name 字段中输入存储库的名称。Satellite 根据名称自动完成 Label 字段。
  4. Type 列表,选择 文件
  5. Upstream URL 字段中输入要用作源的上游存储库的 URL。
  6. 如果要验证上游存储库的 SSL 证书是否由可信 CA 签名,请选择 Verify SSL 复选框。
  7. Upstream Username 字段中,如果需要进行身份验证,请为上游存储库输入用户名。如果存储库不需要身份验证,请清除此字段。
  8. Upstream Password 字段中输入上游存储库对应的密码。
  9. 可选:在 Upstream Authentication Token 字段中,提供上游存储库用户的令牌以进行身份验证。如果存储库不需要身份验证,请将此字段留空。
  10. 可选:检查 Mirror on Sync 复选框,使其在同步过程中使用此存储库镜像源存储库。默认值为 true (检查)。
  11. 可选:在 HTTP Proxy Policy 字段中,选择所需 HHTP 代理。默认值为 Global Default
  12. 可选:检查 通过 HTTP 发布的存储库,在同步期间使用 HTTP 发布 此存储库。默认值为 true (检查)。
  13. 可选:在 GPG Key 字段中,选择存储库的 GPG 密钥。
  14. 可选: 在 SSL CA Cert 字段中,选择存储库的 SSL CA 证书。
  15. 可选: 在 SSL Client cert 字段中,选择存储库的 SSL Client Certificate。
  16. 可选:在 SSL Client Key 字段中,为存储库选择 SSL Client Key。
  17. Save

CLI 过程

  1. 创建自定义产品

    # hammer product create \
    --name "My File Product" \
    --sync-plan "Example Plan" \
    --description "My files" \
    --organization "My_Organization"
    表 14.1. hammer 产品创建命令 的可选参数
    选项描述

    --gpg-key gpg_key_name

    要搜索的密钥名称

    --gpg-key-id gpg_key_id

    GPG 密钥数字识别符

    --sync-plan sync_plan_name

    要搜索的同步计划名称

    --sync-plan-id sync_plan_id

    同步计划数字标识符

  2. 创建文件类型存储库

    # hammer repository create \
    --name "My Files" \
    --content-type "file" \
    --product "My File Product" \
    --organization "My_Organization"
    表 14.2. hammer 仓库的可选参数 创建命令
    选项描述

    --checksum-type sha_version

    软件仓库校验和,支持当前 'sha1' 和 'sha256'

    --download-policy policy_name

    下载 yum 仓库的策略("immediate"或"on_demand")。

    --gpg-key gpg_key_name

    要搜索的密钥名称

    --gpg-key-id gpg_key_id

    GPG 密钥数字识别符

    --mirror-on-sync boolean

    同步时,必须把这个存储库从源和过时的 RPM 进行镜像(mirror)?设置为 truefalse,yesno,10。

    --publish-via-http boolean

    是否必须使用 HTTP 发布?设置为 truefalse,yesno,10。

    --upstream-username repository_username

    身份验证需要上游存储库用户

    --upstream-password repository_password

    上游存储库用户的密码

    --url source_repo_url

    源存储库的 URL

    --verify-ssl-on-sync boolean

    必须为 Katello 验证上游 URL 的 SSL 证书是否由可信 CA 签名?设置为 truefalse,yesno,10。

14.2. 在 Local 目录中创建自定义文件类型存储库

您可以使用 pulp-manifest 命令,从文件目录创建自定义文件类型存储库。然后您可以将文件同步到卫星服务器。将文件添加到文件类型存储库时,您可以像任何其他存储库一样处理文件。

使用这个步骤在安装 Satellite 的基础系统的目录中配置存储库。要在远程服务器的目录中创建文件类型存储库,请参考 第 14.3 节 “创建远程文件类型存储库”

流程

要在本地目录中创建文件类型存储库,请完成以下步骤:

  1. 确定启用了 Server 和 Satellite Tools 6.10 软件仓库。

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-satellite-tools-6.10-rpms
  2. 安装 Pulp 清单软件包:

    # satellite-maintain packages install python3-pulp_manifest

    请注意,该命令可停止 Satellite 服务并重新运行 satellite-installer。另外,为了避免停止服务导致的停机,您可以使用以下内容:

    # subscription-manager repos --enable rhel-7-server-satellite-capsule-6.10-rpms
    # satellite-maintain packages unlock
    # yum install install python-pulp-manifest -y
    # satellite-maintain packages lock
    # subscription-manager repos --disable rhel-7-server-satellite-capsule-6.10-rpms

    这会在不停机的情况下安装该软件包。

  3. 创建您要用作 HTTP 服务器公共文件夹中的文件类型存储库的目录:

    # mkdir my_file_repo
  4. 将文件添加到目录中或创建测试文件:

    # touch my_file_repo/test.txt
  5. 输入 Pulp Manifest 命令创建清单:

    # pulp-manifest my_file_repo
  6. 验证已创建了清单:

    # ls my_file_repo
    PULP_MANIFEST test.txt

从文件类型存储库导入文件

要从本地目录中从文件类型存储库导入文件,请完成以下步骤:

  1. 确保卫星服务器中存在自定义产品。
  2. 在 Satellite web UI, 中,进入到 Content > Products
  3. 选择产品的名称。
  4. 单击 Repositories 选项卡,再选择 New Repository
  5. Name 字段中输入存储库的名称。卫星会根据您为 Name 输入的内容自动完成此字段。
  6. Type 列表,选择存储库的内容类型。
  7. Upstream URL 字段中,输入存储库作为源的本地目录,格式为 file:///my_file_repo
  8. 选中 Verify SSL 复选框,以选中存储库的 SSL 证书或清除 Verify SSL 复选框。
  9. 可选:在 Upstream Username 字段中输入您需要的上游用户名。如果存储库不需要身份验证,请清除此字段。
  10. 可选:在 Upstream Password 项中输入上游用户名对应的密码。
  11. 可选:在 Upstream Authentication Token 字段中,提供上游存储库用户的令牌以进行身份验证。如果存储库不需要身份验证,请将此字段留空。
  12. 可选:检查 Mirror on Sync 复选框,使其在同步过程中使用此存储库镜像源存储库。默认值为 true (检查)。
  13. 可选:在 HTTP Proxy Policy 字段中,选择所需 HHTP 代理。默认值为 Global Default
  14. 可选:检查 通过 HTTP 发布的存储库,在同步期间使用 HTTP 发布 此存储库。默认值为 true (检查)。
  15. 可选:在 GPG Key 字段中,选择存储库的 GPG 密钥。
  16. 可选: 在 SSL CA Cert 字段中,选择存储库的 SSL CA 证书。
  17. 可选: 在 SSL Client cert 字段中,选择存储库的 SSL Client Certificate。
  18. 可选:在 SSL Client Key 字段中,为存储库选择 SSL Client Key。
  19. 选择 Save 保存此存储库条目。

更新文件类型存储库

要更新文件类型存储库,请完成以下步骤:

  1. 在 Satellite web UI, 中,进入到 Content > Products
  2. 选择产品的名称。
  3. 选择您要更新的存储库的名称。
  4. Select Action 菜单中,选择 Sync Now
  5. 访问发布库的 URL,以查看文件。

14.3. 创建远程文件类型存储库

您可以使用 pulp-manifest 命令从卫星服务器外部的文件目录创建自定义文件类型存储库。然后,您可以通过 HTTP 或 HTTPS 将文件与卫星服务器同步。将文件添加到文件类型存储库时,您可以像任何其他存储库一样处理文件。

使用这个流程在远程服务器上的目录中配置存储库。要在安装了 Satellite 服务器的基本系统的目录中创建文件类型存储库,请参阅 第 14.2 节 “在 Local 目录中创建自定义文件类型存储库”

先决条件

在创建远程文件类型存储库前,请确保存在以下条件:

  • 您有 Red Hat Enterprise Linux 7 服务器注册到 Satellite 或 Red Hat CDN。
  • 您的服务器对 Red Hat Enterprise Linux Server 和 Satellite Tools 6.10 软件仓库有权利。
  • 已安装 HTTP 服务器。有关配置 Web 服务器的更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南中的 Apache HTTP 服务器

流程

要在远程目录中创建文件类型存储库,请完成以下步骤:

  1. 在您的远程服务器中,确保启用了 Server 和 Satellite Tools 6.10 软件仓库。

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-satellite-tools-6.10-rpms
  2. 安装 Pulp 清单软件包:

    # yum install python3-pulp_manifest
  3. 创建您要用作 HTTP 服务器公共文件夹中的文件类型存储库的目录:

    # mkdir /var/www/html/pub/my_file_repo
  4. 将文件添加到目录中或创建测试文件:

    # touch /var/www/html/pub/my_file_repo/test.txt
  5. 输入 Pulp Manifest 命令创建清单:

    # pulp-manifest /var/www/html/pub/my_file_repo
  6. 验证已创建了清单:

    # ls /var/www/html/pub/my_file_repo
    PULP_MANIFEST test.txt

从远程文件类型存储库导入文件

要从远程文件类型仓库中导入文件,请完成以下步骤:

  1. 确保卫星服务器中存在自定义产品,或创建自定义产品。如需更多信息,请参阅。 第 14.1 节 “在 Red Hat Satellite 中创建自定义文件类型存储库”
  2. 在 Satellite web UI, 中,进入到 Content > Products
  3. 选择产品的名称。
  4. 单击 Repositories 选项卡,再选择 New Repository
  5. Name 字段中输入存储库的名称。红帽卫星 6 根据您在 名称 中输入的内容自动完成此字段。
  6. Type 列表,选择 文件
  7. Upstream URL 字段中输入要用作源的上游存储库的 URL。
  8. 如果要验证上游存储库的 SSL 证书是否由可信 CA 签名,请选择 Verify SSL 复选框。
  9. Upstream Username 字段中,如果需要进行身份验证,请为上游存储库输入用户名。如果存储库不需要身份验证,请清除此字段。
  10. Upstream Password 字段中输入上游存储库对应的密码。
  11. 可选:在 Upstream Authentication Token 字段中,提供上游存储库用户的令牌以进行身份验证。如果存储库不需要身份验证,请将此字段留空。
  12. 可选:检查 Mirror on Sync 复选框,使其在同步过程中使用此存储库镜像源存储库。默认值为 true (检查)。
  13. 可选:在 HTTP Proxy Policy 字段中,选择所需 HHTP 代理。默认值为 Global Default
  14. 可选:检查 通过 HTTP 发布的存储库,在同步期间使用 HTTP 发布 此存储库。默认值为 true (检查)。
  15. 可选:在 GPG Key 字段中,选择存储库的 GPG 密钥。
  16. 可选: 在 SSL CA Cert 字段中,选择存储库的 SSL CA 证书。
  17. 可选: 在 SSL Client cert 字段中,选择存储库的 SSL Client Certificate。
  18. 可选:在 SSL Client Key 字段中,为存储库选择 SSL Client Key。
  19. Save
  20. 要更新文件类型仓库,进入到 Content > Products。选择包含您要更新的存储库的产品名称。
  21. 在产品窗口中,选择您要更新的存储库的名称。
  22. Select Action 菜单中,选择 Sync Now

访问发布库的 URL,以查看文件。

14.4. 在 Red Hat Satellite 中上传文件到自定义文件类型库

使用此流程将文件上传到自定义文件类型存储库。

流程

  1. 在 Satellite web UI, 中,进入到 Content > Products
  2. 按名称选择自定义产品。
  3. 按名称选择文件类型存储库。
  4. 点击 Browse 搜索并选择您要上传的文件。
  5. 单击 Upload,将所选文件上传到卫星服务器。
  6. 访问发布库的 URL,以查看该文件。

CLI 过程

# hammer repository upload-content \
--id repo_ID \
--organization "My_Organization" \
--path example_file

--path 选项可以指明文件、文件目录或文件的通配表达式。通配必须通过单引号或双引号进行转义。

14.5. 将文件下载到红帽卫星中的自定义文件类型存储库的主机

您可以使用 curl -O 通过 HTTPS 将文件下载到客户端,如果选择了 Publish via HTTP 存储库选项,则可以选择通过 HTTP 下载文件。

先决条件

流程

  1. 在 Satellite web UI, 中,进入到 Content > Products
  2. 按名称选择自定义产品。
  3. 按名称选择文件类型存储库。
  4. 检查是否启用了 Publish via HTTP。如果没有,则需要证书使用 HTTPS。
  5. 复制发布存储库的 URL。

CLI 过程

  1. 列出文件类型存储库。

    # hammer repository list --content-type file
    ---|----------|-----------------|--------------|----
    ID | NAME     | PRODUCT         | CONTENT TYPE | URL
    ---|----------|-----------------|--------------|----
    7  | My Files | My File Product | file         |
    ---|----------|-----------------|--------------|----
  2. 显示存储库信息。

    # hammer repository info --name "My Files" --product "My File Product" --organization-id 1

    如果启用了 HTTP,输出类似如下:

    Publish Via HTTP:   yes
    Published At:       http://satellite.example.com/pulp/isos/uuid/

    如果没有启用 HTTP,输出类似如下:

    Publish Via HTTP:   no
    Published At:       https://satellite.example.com/pulp/isos/uuid/
  3. 在客户端中,为 HTTP 或 HTTPS 输入适当的格式的命令:

    对于 HTTP:

    # curl -O satellite.example.com/pulp/isos/uuid/my_file

    对于 HTTPS:

    # curl -O --cert ./Default\ Organization-key-cert.pem --cacert katello-server-ca.crt satellite.example.com/pulp/isos/uuid/my_file

附录 A. 将 NFS 共享用于内容存储

您的环境需要足够的硬盘空间来满足内容存储。在某些情况下,使用 NFS 共享来存储此内容非常有用。本附录演示了如何将 NFS 共享挂载到卫星服务器的内容管理组件上。

重要

/var/lib/pulp 文件系统使用高带宽、低延迟存储。红帽卫星具有许多 I/O 密集型操作,因此,高延迟和低带宽存储可能会遇到性能下降的问题。

  1. 创建 NFS 共享。这个示例在 nfs.example.com:/satellite/pulp 处使用共享。确保此共享为卫星服务器及其 apache 用户提供适当的权限。
  2. 在 Satellite 主机上停止 satellite-maintain 服务:

    # satellite-maintain service stop
  3. 确定安装 nfs-utils 软件包:

    # satellite-maintain packages install nfs-utils
  4. 您需要将 /var/lib/pulp 的现有内容复制到 NFS 共享。首先,将 NFS 共享挂载到临时位置:

    # mkdir /mnt/temp
    # mount -o rw nfs.example.com:/satellite/pulp /mnt/temp

    /var/lib/pulp 的现有内容复制到临时位置:

    # cp -r /var/lib/pulp/* /mnt/temp/.
  5. 为共享中的所有文件设置权限,以使用 pulp 用户。
  6. 卸载临时存储位置:

    # umount /mnt/temp
  7. 删除 /var/lib/pulp 的现有内容:

    # rm -rf /var/lib/pulp/*
  8. 编辑 /etc/fstab 文件并添加以下行:

    nfs.example.com:/satellite/pulp    /var/lib/pulp   nfs    rw,hard,intr,context="system_u:object_r:pulpcore_var_lib_t:s0"

    这使得挂载在系统重启后会保留。确保包含 SELinux 上下文。

  9. 启用挂载:

    # mount -a
  10. 确认 NFS 共享挂载至 var/lib/pulp

    # df
    Filesystem                         1K-blocks     Used Available Use% Mounted on
    ...
    nfs.example.com:/satellite/pulp 309506048 58632800 235128224  20% /var/lib/pulp
    ...

    另外,确认 var/lib/pulp 上的挂载中是否存在现有内容:

    # ls /var/lib/pulp
  11. 在 Satellite 主机上启动 satellite-maintain 服务:

    # satellite-maintain service start

Satellite 服务器现在使用 NFS 共享来存储内容。运行内容同步以确保 NFS 共享按预期工作。更多信息请参阅 第 5.6 节 “同步软件仓库”

附录 B. 将 Satellite 配置为与本地 CDN 服务器同步内容

在断开连接的环境中,您必须确保卫星服务器包含所需的内容,以使用最新的安全更新、勘误表和软件包置备系统。要做到这一点,请按照以下步骤从红帽客户门户网站下载内容 ISO 镜像,并将其导入到本地 CDN 服务器。您可以在卫星服务器的基础操作系统上托管本地 CDN 服务器,或者托管卫星通过 HTTP 访问的系统。接下来,您必须将卫星服务器配置为与本地 CDN 服务器同步内容。

流程

  1. 登录到红帽客户门户网站 https://access.redhat.com
  2. 在窗口的左上角,单击 Downloads 并选择 Red Hat Satellite
  3. Content ISOs 选项卡。本页列出了您的订阅中所有可用的产品。
  4. 点击产品名称的链接,如 Red Hat Enterprise Linux 7 Server(x86_64) 以下载 ISO 镜像。
  5. 将所有 Satellite 内容 ISO 镜像复制到您要用作本地 CDN 服务器的系统中。例如,Satellite 服务器上的 /root/isos 目录。

    请注意,将内容存储在不安装 Satellite 的同一系统中。只要卫星服务器能通过 HTTP 访问卫星服务器,便可在同一断开连接的网络中托管 CDN。

  6. 在您要用作本地 CDN 服务器的系统中,创建一个可通过 httpd 访问的本地目录。例如: /var/www/html/pub/sat-import/:

    # mkdir -p /var/www/html/pub/sat-import/
  7. 创建一个挂载点,并在该位置临时挂载 ISO 镜像:

    # mkdir /mnt/iso
    # mount -o loop /root/isos/first_iso /mnt/iso
  8. 将第一个 ISO 镜像的内容递归复制到本地目录:

    # cp -ruv /mnt/iso/* /var/www/html/pub/sat-import/
  9. 如果您没有计划使用挂载的二进制 DVD ISO 镜像,请卸载并删除挂载点:

    # umount /mnt/iso
    # rmdir /mnt/iso
  10. 为每个 ISO 镜像重复以上步骤,直到将 Content ISO 镜像中的所有数据复制到 /var/www/html/pub/sat-import/ 中。
  11. 确定 目录的 SELinux 上下文正确:

    # restorecon -rv /var/www/html/pub/sat-import/
  12. 在 Satellite Web UI 中,导航到 Content > Subscriptions
  13. 单击 Manage Manifest
  14. 编辑 Red Hat CDN URL 字段,以指向使用新创建的目录作为本地 CDN 服务器的系统的主机名,例如:

    http://server.example.com/pub/sat-import/

  15. 单击 Update,然后将清单上传到 Satellite。

附录 C. 导入 Kickstart 存储库

Kickstart 软件仓库不是由内容 ISO 镜像提供。要在断开连接的 Satellite 中使用 Kickstart 软件仓库,您必须下载您要使用的 Red Hat Enterprise Linux 版本的二进制 DVD ISO 文件,并将 Kickstart 文件复制到 Satellite。

为 Red Hat Enterprise Linux 7 导入 Kickstart 软件仓库,完成 第 C.1 节 “为 Red Hat Enterprise Linux 7 导入 Kickstart 存储库”

要为 Red Hat Enterprise Linux 8 导入 Kickstart 软件仓库,完成 第 C.2 节 “为 Red Hat Enterprise Linux 8 导入 Kickstart 存储库”

C.1. 为 Red Hat Enterprise Linux 7 导入 Kickstart 存储库

要为 Red Hat Enterprise Linux 7 导入 Kickstart 软件仓库,请在 Satellite 中完成以下步骤。

流程

  1. 访问红帽客户门户网站 https://access.redhat.com/ 并登录。
  2. 在窗口的左上角点击 Downloads
  3. Red Hat Enterprise Linux 7 的右侧,点 Versions 7 and below
  4. Version 列表中,选择 Red Hat Enterprise Linux 7 所需版本,如 7.7。
  5. 在 Download Red Hat Enterprise Linux 窗口中,找到 ISO 镜像的二进制 DVD 版本,例如: Red Hat Enterprise Linux 7.7 Binary DVD,然后点击 Download Now
  6. 下载完成后,将 ISO 镜像复制到卫星服务器。
  7. 在卫星服务器上,创建一个挂载点,并在该位置临时挂载 ISO 镜像:

    # mkdir /mnt/iso
    # mount -o loop rhel-binary-dvd.iso /mnt/iso
  8. 创建 Kickstart 目录:

    # mkdir --parents \
    /var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/x86_64/kickstart/
  9. 从 ISO 镜像复制 kickstart 文件:

    # cp -a /mnt/iso/* /var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/x86_64/kickstart/
  10. 在列出文件中添加以下条目:

    /var/www/html/sat-import/content/dist/rhel/server/7/listing 文件中,附加一个新行的版本号。例如,对于 RHEL 7.7 ISO,请附加 7.7

    /var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/listing 文件中,附加带有新行的架构。例如,x86_64

    /var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/x86_64/listing 文件,使用新行附加 kickstart

  11. 从 ISO 镜像复制 .treeinfo 文件:

    # cp /mnt/iso/.treeinfo \
    /var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/x86_64/kickstart/treeinfo
  12. 如果您没有计划使用挂载的二进制 DVD ISO 镜像,请卸载并删除目录:

    # umount /mnt/iso
    # rmdir /mnt/iso
  13. 在卫星 Web UI 中,启用 Kickstart 存储库。

C.2. 为 Red Hat Enterprise Linux 8 导入 Kickstart 存储库

要为 Red Hat Enterprise Linux 8 导入 Kickstart 软件仓库,请在 Satellite 中完成以下步骤。

流程

  1. 访问红帽客户门户网站 https://access.redhat.com/ 并登录。
  2. 在窗口的左上角点击 Downloads
  3. 单击 Red Hat Enterprise Linux 8
  4. 在 Download Red Hat Enterprise Linux 窗口中,找到 ISO 镜像的二进制 DVD 版本,例如: Red Hat Enterprise Linux 8.1 Binary DVD,然后点击 Download Now
  5. 下载完成后,将 ISO 镜像复制到卫星服务器。
  6. 在卫星服务器上,创建一个挂载点,并在该位置临时挂载 ISO 镜像:

    # mkdir /mnt/iso
    # mount -o loop rhel-binary-dvd.iso /mnt/iso
  7. Create directories for Red Hat Enterprise Linux 8 AppStream and BaseOS Kickstart repositories:

    # mkdir --parents \
    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart
    
    # mkdir --parents \
     /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart
  8. 从 ISO 镜像复制 kickstart 文件:

    # cp -a /mnt/iso/AppStream/* \
    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart
    
    # cp -a /mnt/iso/BaseOS/* /mnt/iso/images/ \
    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart

    请注意,对于 BaseOS,还必须复制 /mnt/iso/images/ 目录的内容。

  9. 在列出文件中添加以下条目:

    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/listing 文件,附加有新行的 kickstart

    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/listing 文件中,附加带有新行的 kickstart

    /var/www/html/pub/sat-import/content/dist/rhel8/listing 文件中,附加一个新行的版本号。例如,对于 RHEL 8.1 二进制 ISO,请附加 8.1

  10. 从 ISO 镜像复制 .treeinfo 文件:

    # cp /mnt/iso/.treeinfo \
    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo
    
    # cp /mnt/iso/.treeinfo \
    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo
  11. 打开 /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo 文件进行编辑。
  12. [general] 部分进行以下更改:

    • packagedir = AppStream/Packages 改为 packagedir = Packages
    • repository = AppStream 更改为 repository = .
    • 变体 = AppStream 更改为 变体 = BaseOS
    • 变体 = AppStream,BaseOS 改为 variants = BaseOS
  13. [tree] 部分中,将 变体 = AppStream,BaseOS 更改为 variants = BaseOS
  14. [variant-BaseOS] 部分,进行以下更改:

    • 软件包 = BaseOS/Packages to packages = Packages
    • repository = BaseOS 更改为 repository =。
  15. 删除 [media][variant-AppStream] 部分。
  16. 保存并关闭该文件。
  17. 验证 /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo 文件的格式如下:

    [checksums]
    images/efiboot.img = sha256:9ad9beee4c906cd05d227a1be7a499c8d2f20b3891c79831325844c845262bb6
    images/install.img = sha256:e246bf4aedfff3bb54ae9012f959597cdab7387aadb3a504f841bdc2c35fe75e
    images/pxeboot/initrd.img = sha256:a66e3c158f02840b19c372136a522177a2ab4bd91cb7269fb5bfdaaf7452efef
    images/pxeboot/vmlinuz = sha256:789028335b64ddad343f61f2abfdc9819ed8e9dfad4df43a2694c0a0ba780d16
    
    [general]
    ; WARNING.0 = This section provides compatibility with pre-productmd treeinfos.
    ; WARNING.1 = Read productmd documentation for details about new format.
    arch = x86_64
    family = Red Hat Enterprise Linux
    name = Red Hat Enterprise Linux 8.1.0
    packagedir = Packages
    platforms = x86_64,xen
    repository = .
    timestamp = 1571146127
    variant = BaseOS
    variants = BaseOS
    version = 8.1.0
    
    [header]
    type = productmd.treeinfo
    version = 1.2
    
    [images-x86_64]
    efiboot.img = images/efiboot.img
    initrd = images/pxeboot/initrd.img
    kernel = images/pxeboot/vmlinuz
    
    [images-xen]
    initrd = images/pxeboot/initrd.img
    kernel = images/pxeboot/vmlinuz
    
    [release]
    name = Red Hat Enterprise Linux
    short = RHEL
    version = 8.1.0
    
    [stage2]
    mainimage = images/install.img
    
    [tree]
    arch = x86_64
    build_timestamp = 1571146127
    platforms = x86_64,xen
    variants = BaseOS
    
    [variant-BaseOS]
    id = BaseOS
    name = BaseOS
    packages = Packages
    repository = .
    type = variant
    uid = BaseOS
  18. 打开 /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo 文件进行编辑。
  19. [general] 部分进行以下更改:

    • packagedir = AppStream/Packages 改为 packagedir = Packages
    • repository = AppStream 更改为 repository = .
    • 变体 = AppStream,BaseOS 改为 variants = AppStream
  20. [tree] 部分中,将 变体 = AppStream,BaseOS 改为 variants = AppStream
  21. [variant-AppStream] 部分进行以下更改:

    • 更改 软件包 = AppStream/Packages to packages = Packages
    • repository = AppStream 更改为 repository = .
  22. 从文件中删除以下部分: [checksums], [images-x86_64], [images-xen], [media], [stage2], [variant-BaseOS].
  23. 保存并关闭该文件。
  24. 验证 /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo 文件是否具有以下格式:

    [general]
    ; WARNING.0 = This section provides compatibility with pre-productmd treeinfos.
    ; WARNING.1 = Read productmd documentation for details about new format.
    arch = x86_64
    family = Red Hat Enterprise Linux
    name = Red Hat Enterprise Linux 8.1.0
    packagedir = Packages
    platforms = x86_64,xen
    repository = .
    timestamp = 1571146127
    variant = AppStream
    variants = AppStream
    version = 8.1.0
    
    [header]
    type = productmd.treeinfo
    version = 1.2
    
    [release]
    name = Red Hat Enterprise Linux
    short = RHEL
    version = 8.1.0
    
    [tree]
    arch = x86_64
    build_timestamp = 1571146127
    platforms = x86_64,xen
    variants = AppStream
    
    [variant-AppStream]
    id = AppStream
    name = AppStream
    packages = Packages
    repository = .
    type = variant
    uid = AppStream
  25. 如果您没有计划使用挂载的二进制 DVD ISO 镜像,请卸载并删除目录:

    # umount /mnt/iso
    # rmdir /mnt/iso
  26. 在卫星 Web UI 中,启用 Kickstart 存储库。

附录 D. 恢复 Satellite 从红帽 CDN 下载内容

如果您的环境无法连接,您可以重新配置断开连接的 Satellite 来直接从红帽 CDN 下载内容。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Subscriptions
  2. 单击 Manage Manifest
  3. 编辑 Red Hat CDN URL 字段以指向 Red Hat CDN URL:

    https://cdn.redhat.com

  4. Save

现在,卫星服务器已配置为在下次同步存储库时从 CDN 下载内容。

法律通告

Copyright © 2023 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.