内容管理指南


Red Hat Satellite 6.6

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

Red Hat Satellite Documentation Team

摘要

使用本指南了解和管理 Satellite 6 中的内容。此类内容的示例包括 RPM 文件、ISO 镜像和 Puppet 模块。Red Hat Satellite 6 使用一组在应用程序生命周期中提升的内容视图来管理此内容。本指南演示了如何创建适合您的机构和内容视图的应用程序生命周期,这些视图在生命周期环境中非常满意。这些内容视图最终形成在 Red Hat Satellite 6 环境中置备和更新主机的基础。

第 1 章 简介

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

Red Hat Satellite 6 管理以下内容:

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

1.1. 内容管理类型概述

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

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

您还可以在 Red Hat Satellite 6 中管理自定义内容。例如:

ISO 和 KVM 镜像
下载并管理用于安装和配置的媒体。例如,Satellite 下载、存储和管理特定 Red Hat Enterprise Linux 和非 Red Hat 操作系统的 ISO 镜像和客户机镜像。
Puppet 模块
您可以上传 Puppet 模块和 RPM 内容,以便 Puppet 可以在置备后配置系统状态。用户也可以在调配过程中管理 Puppet 类和参数。
OSTree
您可以导入 OSTree 分支,并将此内容发布到 HTTP 位置。

您可以使用这个流程为任何类型的内容添加自定义内容,如 SSL 证书和 OVAL 文件。

第 2 章 管理机构

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

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

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

新用户

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

2.1. 创建机构

使用这个流程创建机构。

流程

要创建机构,请完成以下步骤:

  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"
    Copy to Clipboard Toggle word wrap
  2. 可选: 要编辑机构,请输入 hammer 机构 update 命令。例如,以下命令为机构分配一个计算资源:

    # hammer organization update \
    --name "your_organization_name" \
    --compute-resource-ids 1
    Copy to Clipboard Toggle word wrap

2.2. 设置机构上下文

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

流程

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

对于 CLI 用户

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

# hammer subscription list --organization "Default_Organization"
Copy to Clipboard Toggle word wrap

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

2.3. 创建机构调试证书

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

流程

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

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

调试置备模板的证书

如果正在下载的证书的组织中尚未存在,则会自动为置备模板下载生成调试证书。

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

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

先决条件

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

    $ vi 'Default Organization-key-cert.pem'
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
  2. 在 Firefox 浏览器中,进入到 Edit > Preferences > Advanced Tab
  3. 选择查看证书,然后点证书选项卡。
  4. Import 并选择要加载的 .pfx 文件。
  5. 在地址栏中,以以下格式输入 URL 来浏览存储库:

    http://satellite.example.com/pulp/repos/organization_label
    Copy to Clipboard Toggle word wrap

    pulp 使用机构标签,因此您必须在 URL 中输入机构标签。

对于 CURL 用户

要将机构调试证书用于 CURL,请输入以下命令:

$ curl -k --cert cert.pem --key key.pem \
http://satellite.example.com/pulp/repos/Default_Organization/Library/content/dist/rhel/server/7/7Server/x86_64/sat-tools/6.6/os/
Copy to Clipboard Toggle word wrap

确保 cert.pemkey.pem 的路径是正确的绝对路径,否则命令会静默失败。

2.5. 删除机构

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

流程

要删除机构,请完成以下步骤:

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

对于 CLI 用户

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

    # hammer organization list
    Copy to Clipboard Toggle word wrap

    从输出中,记下您要删除的机构的 ID。

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

    # hammer organization delete --id Organization_ID
    Copy to Clipboard Toggle word wrap

第 3 章 管理位置

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

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

3.1. 创建位置

使用这个流程创建位置,以便您可以根据位置管理主机和资源。

流程

要创建位置,请完成以下步骤:

  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"
Copy to Clipboard Toggle word wrap

3.2. 创建多个位置

以下示例 Bash 脚本创建三个位置 - London、Munich、Tap - 并将其分配给 Example 组织。

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

for LOC in ${LOCATIONS}
do
  hammer location create --name "${LOC}"
  hammer location add-organization --name "${LOC}" --organization "${ORG}"
done
Copy to Clipboard Toggle word wrap

3.3. 设置位置上下文

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

流程

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

对于 CLI 用户

在使用 CLI 时,将 "your_location_name" or--location -id " your_location_id" 作为选项包括 either-location_id。例如:

# hammer subscription list --location "Default_Location"
Copy to Clipboard Toggle word wrap

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

3.4. 删除位置

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

流程

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

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

对于 CLI 用户

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

    # hammer location list
    Copy to Clipboard Toggle word wrap

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

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

    # hammer location delete --id Location ID
    Copy to Clipboard Toggle word wrap

第 4 章 管理订阅

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

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

要创建、管理和导出订阅清单,请参阅为连接的 Satellite 服务器创建和管理清单

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

订阅分配和机构

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

future-Dated 订阅

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

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

4.1. 将订阅清单导入到 Satellite 服务器中

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

先决条件

  • 您必须有从客户门户网站导出的订阅清单文件。

流程

要导入订阅清单,请完成以下步骤:

  1. 在 Satellite 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:~/.
    Copy to Clipboard Toggle word wrap
  2. root 用户身份登录 Satellite 服务器,再导入订阅清单文件:

    # hammer subscription upload \
    --file ~/manifest_file.zip \
    --organization "organization_name"
    Copy to Clipboard Toggle word wrap

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

4.2. 在 Satellite Web UI 中查找订阅

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

前提条件

  • 您必须有一个订阅清单文件导入到 Satellite 服务器。

流程

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

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

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

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

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

前提条件

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

流程

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

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

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

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

注意

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

前提条件

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

流程

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

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

4.5. 更新和刷新订阅清单

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

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

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

流程

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

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

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

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

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

智能管理订阅

在 Satellite 6 中,您必须为您要管理的每个 Red Hat Enterprise Linux 主机维护 Red Hat Enterprise Linux 智能管理订阅。

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

前提条件

您必须有一个订阅清单文件导入到 Satellite 服务器。

流程

要将订阅附加到内容主机,请完成以下步骤:

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

对于 CLI 用户

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

    # hammer subscription list \
    --organization-id 1
    Copy to Clipboard Toggle word wrap
  2. 为主机附加订阅:

    # hammer host subscription attach \
    --host host_name \
    --subscription-id subscription_id
    Copy to Clipboard Toggle word wrap

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

使用这个流程同时对多个内容主机进行安装后更改。请注意,Satellite 6.6 及之后的版本中弃用了 hammer csv 命令,因此您必须使用 Satellite Web UI 批量更新主机。

流程

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

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

第 5 章 导入红帽内容

本节论述了如何在 Satellite 中使用产品和存储库,并创建同步计划,以确保您的 Satellite 内容与 Red Hat Content delivery 网络(CDN)中的内容保持最新。

5.1. Red Hat Satellite 中的产品

在 Satellite 中,产品 是将多个存储库分组在一起的组织单元。例如,Red Hat Enterprise Linux Server 是 Satellite 中的 产品,该产品的存储库由不同的版本、不同的架构和不同的附加组件组成。使用产品可确保依赖相互的存储库一起同步。对于红帽存储库,会在启用存储库后自动创建产品。

5.2. 内容同步概述

Satellite 服务器将自己的存储库与红帽 CDN 上的存储库同步。这样可确保 Satellite 服务器保留红帽存储库的确切副本。Satellite 服务器获取此存储库信息,并将其存储在 Satellite 服务器的文件系统上。在初始同步后,您可以创建一个同步计划来检查存储库,以确保存储库与 CDN 的存储库保持最新。

您可以使用 ISO 镜像执行初始同步。有关使用内容 ISO 的更多信息,请参阅 附录 E, 将内容 ISO 导入到连接的 Satellite 中

5.3. 禁用全局 HTTP 代理

如果要在不使用配置的代理的情况下同步本地存储库,您可以忽略运行 satellite-installer 工具时设置的全局代理。

流程

要忽略全局 HTTP 代理,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Content > Products,再选择您要更改的产品。
  2. 单击 Repositories 选项卡,再选择您要更改的存储库。
  3. Sync Settings 区域中,导航到 Ignore Global HTTP Capsule。单击编辑图标,选中复选框,然后单击 Save

对于 CLI 用户

# hammer repository update --id Repository_ID --ignore-global-proxy yes
Copy to Clipboard Toggle word wrap

5.4. 下载策略概述

Red Hat Satellite 为同步 RPM 内容提供了多个下载策略。例如,您可能只想下载内容元数据,同时将实际内容推迟到稍后下载。

Satellite 服务器有以下策略:

立即
Satellite 服务器在同步期间下载所有元数据和软件包。
按需
Satellite 服务器仅在同步期间下载元数据。当胶囊或直接连接的客户端请求时,Satellite 服务器只获取并存储在文件系统中。如果将 Capsule 上的对应存储库设置为 Immediate,则此设置无效,因为 Satellite 服务器被强制下载所有软件包。
背景信息
Satellite 服务器会创建一个后台任务,以在初始同步后下载所有软件包。

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

Capsule 服务器提供以下策略:

立即
Capsule 服务器在同步期间下载所有元数据和软件包。如果 Satellite 服务器上对应的存储库被设置为 On Demand,则不要使用此设置,因为 Satellite 服务器被强制下载所有软件包。
按需
Capsule 服务器仅在同步期间下载元数据。当直接连接的客户端请求时,胶囊服务器才会获取文件系统中并存储软件包。当您使用 On Demand 下载策略时,如果内容在胶囊服务器上不可用,则可从 Satellite 服务器下载内容。
背景信息
Capsule 服务器会创建一个后台任务,以在初始同步后下载所有软件包。
继承
胶囊服务器从 Satellite 服务器上的对应存储库中继承存储库的下载策略。

如果 Capsule 已安装或更新 with -enable-foreman-proxy-plugin-pulp,则这些策略不可用。

5.5. 更改默认下载策略

您可以设置 Satellite 应用到您在所有机构中创建的新存储库的默认下载策略。更改默认值不会更改现有设置。

流程

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

  1. 在 Satellite Web UI 中,进入到 Administer > Settings
  2. 单击 Content 选项卡,再找到 Default Repository download policy
  3. Value 字段中,点编辑图标。
  4. 选择所需的下载策略,然后单击 Save

对于 CLI 用户

要将默认下载策略更改为 immediate,on_demand,background,请输入以下命令:

# hammer settings set \
--name default_download_policy \
--value immediate
Copy to Clipboard Toggle word wrap

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

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

流程

要为存储库设置下载策略,请完成以下步骤:

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

对于 CLI 用户

  1. 列出机构的存储库:

    # hammer repository list \
    --organization-label organization-label
    Copy to Clipboard Toggle word wrap
  2. 将存储库的下载策略更改为 immediate,on_demand,background:

    # 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
    Copy to Clipboard Toggle word wrap

5.7. 启用红帽软件仓库

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

断开连接的 Satellite

如果使用断开连接的 Satellite 服务器,您必须配置 Satellite,以便在同步内容前将内容与本地 CDN 服务器同步。更多信息请参阅 附录 B, 配置 Satellite 以与本地 CDN 服务器同步内容

存储库版本控制

将 Red Hat Enterprise Linux 操作系统的发行版本与 7 Server 仓库或 7.X 仓库相关联的不同在于:7 Server 仓库包括所有最新的更新,Red Hat Enterprise Linux 7.X 仓库会在下一个次版本发行后停止获取更新。请注意,Kickstart 软件仓库只有次版本。

对于 Red Hat Enterprise Linux 8 客户端

要置备 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) 存储库。

对于 Red Hat Enterprise Linux 7 客户端

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

流程

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

对于 CLI 用户

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

    # hammer product list --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  2. 列出为该产品设置的存储库:

    # hammer repository-set list \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  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"
    Copy to Clipboard Toggle word wrap

5.8. 同步红帽软件仓库

将存储库与红帽 CDN 的存储库同步。

对于 Web UI 用户

  1. 在 Satellite Web UI 中,进入到 Content > Products,再选择包含您要同步的软件仓库的产品。
  2. 选择您要同步的存储库,然后单击 Sync Now

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

对于 CLI 用户

同步 Red Hat Enterprise Linux Server 产品中启用的软件仓库:

# hammer product synchronize \
--name "Red Hat Enterprise Linux Server" \
--organization "My_Organization"
Copy to Clipboard Toggle word wrap

您还可以单独同步每个存储库。列出产品中的所有存储库,然后使用相应存储库的 ID 号同步。例如:

# hammer repository list \
--product "Red Hat Enterprise Linux Server" \
--organization "My_Organization"
# hammer repository synchronize \
--name "Red Hat Enterprise Linux 7 Server RPMs x86_64 7Server" \
--product "Red Hat Enterprise Linux Server" \
--organization "My_Organization"
Copy to Clipboard Toggle word wrap

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

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

256 Kbps

5 分钟 27 Secs

6 hrs 49 Mins 36 Secs

2 天 Hrs 55 次版本

512 Kbps

2 mins 43.84 Secs

3 个 hrs 24 Mins 48 Secs

1 天 Hrs 57 次版本

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 分钟.15 Secs

1 HR 25 Mins 53.96 Secs

100 Mbps

0.84 secs

1 分钟 2.91 Secs

8 分钟 35.4 Secs

1000 Mbps

0.08 secs

6.29 秒

51.54 secs

创建同步计划,以确保定期更新。

5.9. 同步机构中的所有软件仓库

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

流程

要同步机构中的所有存储库,请在 Satellite 服务器中运行以下 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
Copy to Clipboard Toggle word wrap

5.10. 恢复存储库

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

优化的同步
将存储库同步绕过 RPM,这些 RPM 没有检测到与上游 RPM 的不同。
完全同步
无论检测到的更改是什么,都会同步所有 RPM。如果无法将特定的 RPM 下载到本地存储库,即使它们存在于上游存储库中,则使用此选项。
验证内容同步

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

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

流程

要将特定存储库与高级选项同步,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Content > Products
  2. 选择包含损坏存储库的产品。
  3. 选择您要同步的存储库的名称。
  4. Select Action 菜单中,选择 Advanced Sync
  5. 选择 选项,然后单击 Sync

对于 CLI 用户

  1. 获取存储库 ID 列表:

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

    • 对于优化的同步:

      # hammer repository synchronize --incremental true --id 1
      Copy to Clipboard Toggle word wrap
    • 对于完整的同步:

      # hammer repository synchronize --skip-metadata-check true --id 1
      Copy to Clipboard Toggle word wrap
    • 对于验证内容同步:

      # hammer repository synchronize --validate-contents true --id 1
      Copy to Clipboard Toggle word wrap

5.11. 限制同步速度

您可以控制同步速度,以避免耗尽可用带宽,并防止出现其他性能问题。这可以通过配置 PULP_CONCURRENCYmax_speed 参数来完成。请注意,这些设置会在升级时被覆盖。在升级前备份任何更改的文件,以便能恢复配置。

  1. 要控制并行运行的同步作业数量,请在 /etc/default/pulp_workers 文件中配置 PULP_CONCURRENCY 参数。例如,要将并行运行的作业数量设置为 1,请将 PULP_CONCURRENCY 更改为 1:

    PULP_CONCURRENCY=1
    Copy to Clipboard Toggle word wrap

    默认情况下,在少于 8 个 CPU 的系统中,PULP_CONCURRENCY 设置为 CPU 数量。在超过 8 个 CPU 的系统中,它被设置为 8。

  2. 要设置同步的最大网络速度(以字节/秒为单位),请配置 max_speed 参数。必须为 /etc/pulp/server/plugins.conf.d/ 目录中的每个导入程序单独配置此参数。例如,要将同步 RPM 内容的最大速度设置为每秒 10 字节,请将 /etc/pulp/server/plugins.conf.d/yum_importer.json 文件中的 "max_speed" 参数设置为 10:

    # cat /etc/pulp/server/plugins.conf.d/yum_importer.json
    {
        "proxy_host": null,
        "proxy_port": null,
        "proxy_username": null,
        "proxy_password": null,
        "max_speed": 10
    }
    Copy to Clipboard Toggle word wrap
  3. 编辑后验证文件的语法:

    # json_verify < /etc/pulp/server/plugins.conf.d/yum_importer.json
    JSON is valid
    Copy to Clipboard Toggle word wrap
  4. 重启 satellite-maintain 服务以应用更改:

    # satellite-maintain service restart
    Copy to Clipboard Toggle word wrap

5.12. 创建同步计划

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

流程

要创建同步计划,请完成以下步骤:

  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"
    Copy to Clipboard Toggle word wrap
  2. 为其分配 Red Hat Enterprise Linux 服务器产品:

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

    # hammer sync-plan list --organization "Default Organization"
    Copy to Clipboard Toggle word wrap

5.13. 将同步计划分配给多个产品

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

流程

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

  1. 运行以下 Bash 脚本:

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

    # hammer product list --organization $ORG --sync-plan $SYNC_PLAN
    Copy to Clipboard Toggle word wrap

第 6 章 导入自定义内容

本章概述了如何将不同类型的自定义内容导入到 Satellite。如果要将 ISO、Puppet 模块或不同的内容类型导入 Satellite,它将通过本章中的大程序来完成。

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

6.1. 在 Satellite 中使用自定义产品

Red Hat Satellite 6 中的 Red Hat 内容和自定义内容都有相似点:

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

有关创建和打包 RPM 的更多信息,请参阅 Red Hat Enterprise Linux 文档中的 RPM 打包指南

6.2. 导入自定义 SSL 证书

在创建自定义内容前,请确保导入所需的任何自定义 SSL 证书。

如果需要 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

6.3. 导入自定义 GPG 密钥

在创建自定义内容前,请确保导入所需的任何 GPG 密钥。

先决条件

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

    $ wget http://www.example.com/9.5/example-9.5-2.noarch.rpm
    Copy to Clipboard Toggle word wrap
  2. 提取 RPM 文件而不安装它:

    $ rpm2cpio example-9.5-2.noarch.rpm | cpio -idmv
    Copy to Clipboard Toggle word wrap

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

流程

要导入 GPG 密钥,请完成以下步骤:

  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-----
    Copy to Clipboard Toggle word wrap
  4. 点击 Save

对于 CLI 用户

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

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

    # hammer gpg create \
    --key ~/RPM-GPG-KEY-EXAMPLE-95 \
    --name "My_Repository" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

6.4. 创建自定义产品

使用这个流程创建自定义产品,然后将存储库添加到其中。

流程

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

  1. 在 Satellite Web UI 中,进入到 Content > Products,点 Create Product
  2. Name 字段中输入产品的名称。Red Hat Satellite 6 根据您为 名称 输入的内容自动完成 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"
Copy to Clipboard Toggle word wrap

6.5. 添加自定义 RPM 存储库

使用这个流程在 Satellite 中添加自定义 RPM 存储库。

Satellite 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,再选择要使用的产品,然后点 Create Repository
  2. Name 字段中输入存储库的名称。Red Hat Satellite 6 根据您为 名称 输入的内容自动完成 Label 字段。
  3. Type 列表中,选择存储库的类型。您可以选择 RPM 文件(yum)、Puppet 模块(puppet)或 Docker 镜像的存储库(docker)。
  4. URL 字段中,输入要用作源的外部存储库的 URL。
  5. Download Policy 列表中,选择执行同步 Satellite 服务器的类型。
  6. 确保选择了 Mirror on Sync 复选框。这样可确保在同步过程中删除不再部分上游存储库的内容。
  7. Checksum 列表中,选择存储库的 checksum 类型。
  8. 可选:如果需要,您可以清除 Publish via HTTP 复选框,以禁用通过 HTTP 发布此存储库。
  9. 可选:从 GPG Key 列表中,为产品选择 GPG 密钥。
  10. 点击 Save

如果要立即执行同步,请在产品窗口中单击 Sync Now

对于 CLI 用户

  1. 输入以下命令来创建存储库:

    # hammer repository create \
    --name "My_Repository" \
    --content-type "yum" \
    --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"
    Copy to Clipboard Toggle word wrap
  2. 同步存储库:

    # hammer repository synchronize \
    --name "My_Repository" \
    --product "My Product" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

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

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

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

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

  • 开发
  • Production

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

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

Red Hat Satellite 6 提供了自定义每个应用程序生命周期阶段的方法,使其适合您的规格。

应用程序生命周期中的每个阶段都被称为 Red Hat Satellite 6 中的 环境。每个环境都使用特定的内容集合。Red Hat Satellite 6 将这些内容集合定义为内容视图。每个内容视图充当过滤器,您可以在其中定义要包含在特定环境中的存储库、软件包和 Puppet 模块。这提供了一种方法,供您定义要分配给每个环境的特定内容集合。

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

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

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

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

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

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

Satellite 生命周期阶段的内容提升示例

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

Expand
开发测试Production

example_software-1.1-0.noarch.rpm

example_software-1.0-0.noarch.rpm

example_software-1.0-0.noarch.rpm

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

Expand
开发测试Production

example_software-1.1-0.noarch.rpm

example_software-1.1-0.noarch.rpm

example_software-1.0-0.noarch.rpm

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

Expand
开发测试Production

exampleware-2.0-0.noarch.rpm

exampleware-1.1-0.noarch.rpm

exampleware-1.0-0.noarch.rpm

Quality Engineering 团队完成了对补丁的检查。example_software 1.1 已准备好发布。您可以将 1.1 提升到生产环境

Expand
开发测试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 上完成工作,并将其提升到测试环境:

Expand
开发测试Production

example_software-2.0-0.noarch.rpm

example_software-2.0-0.noarch.rpm

example_software-1.1-0.noarch.rpm

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

Expand
开发测试Production

exampleware-2.0-0.noarch.rpm

exampleware-2.0-0.noarch.rpm

exampleware-2.0-0.noarch.rpm

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

7.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"
    Copy to Clipboard Toggle word wrap
  2. 可选: 要在环境路径中添加环境,请输入 hammer lifecycle-environment create 命令并使用-- prior 选项指定父环境:

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

    # hammer lifecycle-environment paths --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

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

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

流程

要删除生命周期环境,请完成以下步骤:

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

对于 CLI 用户

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

    # hammer lifecycle-environment list --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  2. 使用 hammer lifecycle-environment delete 命令删除环境:

    # hammer lifecycle-environment delete \
    --name "your_environment" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

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

当生命周期环境不再与主机系统或环境相关时,您可以将生命周期环境从 Capsule 服务器中删除。

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

流程

要从 Capsule 服务器中删除生命周期环境,请完成以下步骤:

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

对于 CLI 用户

要从 Capsule 服务器中删除生命周期环境,请完成以下步骤:

  1. 从列表中选择 Capsule Server,并记录其 id

    # hammer capsule list
    Copy to Clipboard Toggle word wrap
  2. 要验证 Capsule 服务器的详情,请输入以下命令:

    # hammer capsule info --id capsule_id
    Copy to Clipboard Toggle word wrap
  3. 验证当前附加到 Capsule 服务器的生命周期环境列表,并记录 环境 ID

    # hammer capsule content lifecycle-environments \
    --id capsule_id
    Copy to Clipboard Toggle word wrap
  4. 从 Capsule 服务器中删除生命周期环境:

    # hammer capsule content remove-lifecycle-environment \
    --id capsule_id \
    --lifecycle-environment-id lifecycle_environment_id
    Copy to Clipboard Toggle word wrap

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

  5. 将内容从 Satellite 服务器的环境同步到 Capsule 服务器:

    # hammer capsule content synchronize \
    --id capsule_id
    Copy to Clipboard Toggle word wrap

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

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

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

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

流程

要将生命周期环境添加到 Capsule 服务器,请完成以下步骤:

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

    有关每个同步类型的定义,请参阅 第 5.10 节 “恢复存储库”

对于 CLI 用户

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

    # hammer capsule list
    Copy to Clipboard Toggle word wrap

    注意您要向其添加生命周期的胶囊的胶囊 ID。

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

    # hammer capsule info --id capsule_id
    Copy to Clipboard Toggle word wrap
  3. 显示可用的生命周期环境,并记录环境 ID:

    # hammer capsule content available-lifecycle-environments \
    --id capsule_id
    Copy to Clipboard Toggle word wrap
  4. 要查看 Capsule 服务器可用的生命周期环境,请输入以下命令并记录 ID 和机构名称:

    # hammer capsule content available-lifecycle-environments --id capsule_id
    Copy to Clipboard Toggle word wrap
  5. 将生命周期环境添加到胶囊服务器中:

    # hammer capsule content add-lifecycle-environment \
    --id capsule_id --organization "My_Organization" \
    --environment-id environment_id
    Copy to Clipboard Toggle word wrap

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

  6. 将内容从 Satellite 同步到 Capsule。

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

      # hammer capsule content synchronize --id capsule_id
      Copy to Clipboard Toggle word wrap
    • 要将特定的生命周期环境从 Satellite 服务器同步到 Capsule 服务器,请输入以下命令:

      # hammer capsule content synchronize --id external_capsule_id \
      --environment-id environment_id
      Copy to Clipboard Toggle word wrap

第 8 章 管理内容视图

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

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

Expand
 开发测试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-0.noarch.rpm 软件包。如果您将 Version 2 的内容视图从 Development 提升到 Testing,则测试的存储库会重新生成,然后包含 example_software-1.1-0.noarch.rpm 软件包:

Expand
 开发测试Production

内容视图版本和内容

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

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

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

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

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

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

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

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

软件包依赖解析

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

8.1. 创建内容视图

使用这个流程创建一个简单的内容视图。

先决条件

虽然您可以解释是否要通过内容视图在内容视图上解析任何软件包依赖项,但您可能希望更改默认的 Satellite 设置,以启用或禁用所有内容视图的软件包解析。更多信息请参阅 第 8.9 节 “解决软件包依赖项”

流程

要创建内容视图,请完成以下步骤:

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

您可以在 Content Views 窗口中查看内容视图。要查看内容视图的更多信息,请点内容视图名称。

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

使用 Hammer CLI 创建内容视图

  1. 获取存储库 ID 列表:

    # hammer repository list --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  2. 创建内容视图并添加存储库:

    # hammer content-view create \
    --name "Example_Content_View" \
    --description "Example Content View" \
    --repository-ids 1,2 \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

    对于 the -repository-ids 选项,您可以在 hammer repository list 命令的输出中找到 ID。

  3. 发布视图:

    # hammer content-view publish \
    --name "Example_Content_View" \
    --description "Example Content View" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  4. 可选: 要在现有内容视图中添加存储库,请输入以下命令:

    # hammer content-view add-repository \
    --name "Example_Content_View" \
    --organization "My_Organization" \
    --repository-id repository_ID
    Copy to Clipboard Toggle word wrap

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

8.2. 查看模块流

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

流程

要在您的内容视图中查看存储库的模块流,请完成以下步骤:

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

8.3. 使用 Puppet 模块创建内容视图

使用这个流程使用一个存储库创建内容视图,且没有过滤器。

先决条件

开始之前,将所需的 Puppet 模块上传到自定义产品内的存储库。有关更多信息,请参阅 Puppet 指南 中的 向 Red Hat Satellite 6 添加 Puppet 模块

流程

要使用 Puppet 模块创建内容视图,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Content > Content Views,再点 Create New View
  2. Name 字段中输入视图的名称。Red Hat Satellite 6 会自动从您输入的名称完成 Label 字段。
  3. Description 字段中,输入视图的描述。
  4. 单击 Save 以完成。
  5. Repository Selection 区域中,选择要添加到内容视图的存储库,然后单击 Add Repositories
  6. 单击 Puppet 模块 选项卡,然后单击添加新模块
  7. 搜索您要添加的模块,然后点 Select a Version
  8. 导航到 Use Latest 的条目,再单击 Actions 列中的 Select Version
  9. 要发布,请单击 Versions 选项卡,再单击 Publish New Version。在 Description 字段中,输入描述来记录更改,然后单击 Save

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

对于 CLI 用户

要在内容视图中添加 Puppet 模块,请输入以下命令:

# hammer content-view puppet-module add \
--content-view cv_name \
--name module_name
Copy to Clipboard Toggle word wrap

8.4. 提升内容视图

使用这个流程在不同生命周期环境中提升内容视图。

内容视图提升的权限要求

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

  1. promote_or_remove_content_views
  2. promote_or_remove_content_views_to_environment.

promote_or_remove_content_views 权限限制用户可以提升的内容视图。

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

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

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

流程

要提升内容视图,请完成以下步骤:

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

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

对于 CLI 用户

  • 使用 hammer content-view 版本提升内容视图,每次提升

    # 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"
    Copy to Clipboard Toggle word wrap

    现在,数据库内容在所有环境中都可用。

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

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

流程

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

  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
    Copy to Clipboard Toggle word wrap
  2. 显示内容视图版本的信息,以验证它是否已提升到所需的生命周期环境中:

    # hammer content-view version info --id 3
    Copy to Clipboard Toggle word wrap

8.6. 复合内容视图概述

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

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

Expand
example_software

Application(应用程序)

数据库

操作系统

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

  • Red Hat Enterprise Linux (操作系统)
  • PostgreSQL (Database)
  • MariaDB (Database)
  • example_software (应用程序)

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

PostgreSQL 数据库的 Composite 内容视图示例:

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

example_software (应用程序)

PostgreSQL (Database)

Red Hat Enterprise Linux (操作系统)

MariaDB 的 Composite 内容视图示例:

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

example_software (应用程序)

MariaDB (Database)

Red Hat Enterprise Linux (操作系统)

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

仓库限制

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

8.7. 创建复合内容视图

流程

要创建 Composite 内容视图,请完成以下步骤:

  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 内容视图。在 Description 字段中,输入描述并单击 Save
  9. 单击 Promote,再选择要提升 Composite Content View 的生命周期环境,输入描述,然后单击 Promote Version

对于 CLI 用户

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

    # hammer content-view version list \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  2. 创建一个新的复合内容视图。当将 --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"
    Copy to Clipboard Toggle word wrap
  3. 向 Composite 内容视图添加组件内容视图。您必须包含内容视图版本 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"
    Copy to Clipboard Toggle word wrap
  4. 发布 Composite 内容视图:

    # hammer content-view publish \
    --name "Example_Composite_Content_View" \
    --description "Initial version of Composite Content View" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  5. 在所有环境中提升复合内容视图:

    # 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"
    Copy to Clipboard Toggle word wrap

8.8. 内容过滤器概述

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

内容过滤器有两种:

Expand
表 8.1. 过滤类型
过滤类型描述

include

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

exclude

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

include 和 Exclude Filter Combinations

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

内容类型

还可过滤四种内容类型:

Expand
表 8.2. 内容类型
内容类型描述

软件包

根据软件包的名称和版本号过滤软件包。

软件包组

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

勘误(按 ID)

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

勘误(按日期和类型)

选择要添加到过滤器中的已发布或更新的日期范围及勘误类型(Bugfix、Enhancement 或 Security)。

8.9. 解决软件包依赖项

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

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

请注意,解析软件包依赖项可能会导致内容视图提升大量延迟。软件包依赖项解析功能不考虑在您的系统上安装的软件包,这些软件包独立于内容视图或解决跨存储库的依赖项。

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

过滤器无法解析过滤器中列出的软件包的所有依赖项。这可能需要一定程度的测试来确定需要哪些依赖项。

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

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

流程

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

  1. 在 Satellite Web UI 中,进入到 Administer > Settings 并点 Content 选项卡。
  2. 找到 内容视图依赖默认, 然后选择 Yes

您还可以设置您想要的默认依赖项解析级别。只有在所需软件包不存在时,您可以选择添加软件包来解决依赖项,或者添加最新的软件包来解析依赖项,即使软件包存在于存储库中。

要设置默认依赖项解析级别,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Administer > Settings 并点 Content 选项卡。
  2. 找到 Content View Dependency Solving Algorithm 并选择以下选项之一:

    • 要添加仅在存储库中不存在依赖项的软件包,请选择 Conservative
    • 要添加解析依赖项的软件包,无论它是否存在于存储库中,请选择 Greedy

8.10. 内容过滤器示例

将以下任何示例与以下流程一起使用,以构建自定义内容过滤器。

示例 1

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

Filter:

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

示例 2

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

Filter:

  • 包含类型:Exclude
  • 内容类型:Err atum (按日期和类型)
  • 过滤器 : 仅选择 BugfixEnhancement 勘误类型,并清除 安全勘误 类型。将 Date Type 设置为 Updated On。将 Start Date 设置为您要限制勘误的日期。将 End Date 留空,以确保过滤任何新的非安全勘误。

示例 3

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

过滤 1:

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

过滤 2:

  • 包含类型:Exclude
  • 内容类型:Err atum (按日期和类型)
  • 过滤器 : 仅选择 BugfixEnhancement 勘误类型,并清除 安全勘误 类型。将 Date Type 设置为 Updated On。将 Start Date 设置为您要限制勘误的日期。将 End Date 留空,以确保过滤任何新的非安全勘误。

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

8.11. 创建内容过滤器

使用这个流程创建内容过滤器。有关如何构建过滤器的示例,请参阅 第 8.10 节 “内容过滤器示例”

流程

要创建内容过滤器,请完成以下步骤:

  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. 单击 Affected repositories 选项卡,以选择使用此过滤器的特定存储库。
  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"
    Copy to Clipboard Toggle word wrap
  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"
    Copy to Clipboard Toggle word wrap
  3. 发布内容视图:

    # hammer content-view publish \
    --name "Example_Content_View" \
    --description "Adding errata filter" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  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"
    Copy to Clipboard Toggle word wrap

第 9 章 在 Satellite 服务器间同步内容

Red Hat Satellite 6.6 使用 Inter-Satellite Synchronization (ISS)来同步内容 Satellite 服务器或 Satellite 服务器上的不同组织。

在以下情况下可以使用 ISS :

  • 如果您连接和断开连接的 Satellite 服务器,并希望将内容从连接的服务器复制到断开连接的服务器。例如,为了安全起见,您需要完全隔离管理基础架构。
  • 如果您要将一些内容从 Satellite 服务器复制到其他 Satellite 服务器,但不是所有内容。例如,您有内容视图,您的 IT 部门在 Satellite 服务器上验证,并且您想要将这些内容视图复制到其他 Satellite 服务器。
  • 如果要将内容视图从一个组织克隆到 Satellite 服务器上的另一个组织。

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

9.1. 导出内容视图版本

您可以从 Satellite 服务器将内容视图版本导出到存档文件,并使用此存档文件在另一个 Satellite 服务器上或另一个 Satellite Server 组织上创建相同的内容视图版本。Satellite 不会导出复合内容视图。导出的存档文件包含以下数据:

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

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

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

对 hammer content-view version export 命令的更改

新的 hammer content-view 版本导出hammer content-view 版本导入命令 与之前版本的 Satellite 中的命令不同。hammer content-view 版本 export-legacy 命令仍可使用旧功能。旧功能具有以下新功能:

  1. 您可以直接从连接的 Satellite 服务器修补断开连接的 Satellite 服务器。Hammer content-view 版本 export-legacy 会导出 CDN 结构,因此您不必从红帽客户门户网站使用 DVD ISO。
  2. 当导出包含非yum 内容的内容视图时,hammer content-view 版本 export-legacy 会跳过非yum 内容并导出内容视图,而 hammer 内容视图 版本导出 会提示您删除非yum 存储库并失败。

有关使用旧功能的更多信息,请参阅 Satellite 6.4 内容管理 指南中的在 Satellite 服务器间同步 内容。

先决条件

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

  • 确保导出目录有可用的存储空间来容纳导出。
  • 确保 /var/lib/pulp/ 目录有与导出过程中为临时文件导出的存储库大小相等的存储空间。
  • 确保 /var/cache/pulp 目录具有与导出期间创建的临时文件所导出的存储库大小的两倍等效的存储空间。
  • 确保您在内容视图中为所有存储库将下载策略设置为 Immediate。如需更多信息,请参阅 第 5.4 节 “下载策略概述”
  • 确保您在存储库设置页面中清除您导入的存储库的 Mirror on Sync 复选框。
  • 确保您同步了您导出到所需日期的产品。

要导出内容视图版本:

  1. 列出内容视图,以确定您要导出的内容视图版本的 ID:

    # hammer content-view version list \
    --organization "Default Organization"
    Copy to Clipboard Toggle word wrap
  2. 导出内容视图的版本。使用 --export-dir 选项指定要存储导出的目录,以及您使用-- id 选项导出的内容视图版本的 ID。pulp_export_destination 设置无法正常工作。

    # hammer content-view version export --export-dir export_directory \
    --id content_view_version_ID
    Copy to Clipboard Toggle word wrap
  3. 验证包含内容视图导出的版本的存档是否位于导出目录中:

    # ls export_directory
    export-1.tar
    Copy to Clipboard Toggle word wrap

9.2. 导入内容视图版本

您可以使用 hammer content-view version export 命令的输出的存档来创建与导出的内容视图版本相同的内容视图版本。有关导出内容视图版本的更多信息,请参阅 第 9.1 节 “导出内容视图版本”

当您导入内容视图版本时,它具有相同的主版本和次版本号,其中包含具有相同软件包和勘误的相同存储库。您可以通过更改位于导出的存档中的 json 文件中的 主版本 和次要设置来自定义版本号。

先决条件

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

  • 如果要在断开连接的环境中将内容视图导入到 Satellite,您必须将 Satellite 配置为将内容与本地 CDN 服务器同步,然后同步您导出的 CV 的内容。更多信息请参阅 附录 B, 配置 Satellite 以与本地 CDN 服务器同步内容
  • 确保您在内容视图中为所有存储库将下载策略设置为 Immediate。如需更多信息,请参阅 第 5.4 节 “下载策略概述”
  • 确保您在存储库设置页面中清除您导入的存储库的 Mirror on Sync 复选框。

流程

  1. 将带有导出的内容视图版本的存档文件复制到您要导入的 Satellite 服务器上的 /var/lib/pulp/katello-export 目录中。
  2. 在要导入的 Satellite 服务器上,创建一个与导出的内容视图相同的名称和标签的内容视图。如需更多信息,请参阅 使用 Hammer CLI 创建内容视图
  3. 确保启用导出的内容视图版本中产品的存储库,其中包括:如需更多信息,请参阅 第 5.7 节 “启用红帽软件仓库”
  4. 在 Satellite Web UI 中,导航到 Content > Products,点 Yum content 选项卡,并添加导出的 Content View 版本包含的同一 Yum 内容。
  5. BZ#1745081 被解决前,进入 /var/lib/pulp/katello-export 目录:

    # cd /var/lib/pulp/katello-export
    Copy to Clipboard Toggle word wrap
  6. 要将 Content View 版本导入到 Satellite 服务器,请输入以下命令:

    # hammer content-view version import \
    --export-tar /var/lib/pulp/katello-export/exported_CV_archive.tar \
    --organization-id Your_Organization_ID
    Copy to Clipboard Toggle word wrap

    请注意,直到 BZ#1745081 被解决前,您必须输入完整路径 /var/lib/pulp/katello-export/。相对路径无法正常工作。

  7. 要验证您是否成功导入 Content View 版本,请列出您的机构的 Content Views :

    # hammer content-view version list --organization "Your_Organization"
    Copy to Clipboard Toggle word wrap

第 10 章 管理激活码

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

您可以在内容主机注册过程中使用激活码来提高流程的速度、简单性和一致性。

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

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

请注意,只有主机注册时才会使用激活码。如果对激活密钥进行了更改,它将只适用于将来使用已修改的激活密钥注册的主机。不会对现有主机进行更改。

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

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

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

将相同的激活码与多个内容主机一起使用

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

在内容主机中使用多个激活码

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

$ hammer hostgroup set-parameter \
--name kt_activation_keys \
--value name_of_first_key, name_of_second_key,... \
--hostgroup hostgroup_name
Copy to Clipboard Toggle word wrap

10.1. 创建激活码

您可以使用激活码定义在注册期间附加到主机的特定订阅集合。您添加到激活码的订阅必须在关联的内容视图中可用。

订阅管理器根据以下因素的不同而有所不同:

  • 是否有与激活码关联的订阅?
  • 是否启用 auto-attach 选项?

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

  1. 没有指定订阅的激活码。

    如果没有指定和自动附加订阅,使用激活密钥的主机从与激活密钥关联的内容视图提供的最佳订阅中搜索最适合的订阅。这与输入 subscription-manager --auto-attach 命令类似。

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

    如果指定了订阅并启用了 auto-attach,则使用激活码的主机从激活密钥中指定的列表中选择最适合的订阅。

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

    如果指定了订阅并禁用 auto-attach,则使用该激活码的主机将与激活密钥中指定的所有订阅相关联。

自定义产品

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

流程

要创建激活码,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Content > Activation keys,再点 Create Activation Key
  2. Name 字段中输入激活码的名称。
  3. 如果要设置限制,请清除 Unlimited hosts 复选框,然后在 Limit 字段中输入您可以使用激活码注册的最大系统数量。如果您希望无限主机使用激活码进行注册,请 确保选中了 ADD Hosts 复选框。
  4. Description 字段中,输入激活密钥的描述。
  5. Environment 列表中,选择要使用的环境。
  6. Content View 列表中,选择要使用的内容视图。如果要使用这个激活码注册主机,Content View 必须包含 Satellite Tools 存储库,因为它需要安装 katello-agent
  7. 单击 Save,并在 Activation Keys 窗口中显示您的新激活密钥时,单击要编辑的名称。

对于 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"
    Copy to Clipboard Toggle word wrap
  2. 获取您的订阅 ID 列表:

    # hammer subscription list --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  3. 将 Red Hat Enterprise Linux 订阅 UUID 附加到激活码:

    # hammer activation-key add-subscription \
    --name "My_Activation_Key" \
    --subscription-id ff808181533518d50152354246e901aa \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  4. 列出与激活码关联的产品内容:

    # hammer activation-key product-content \
    --name "My_Activation_Key" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  5. 覆盖 Red Hat Satellite Tools 6.6 存储库的默认 auto-enable 状态。默认状态设置为 disabled。要启用,请输入以下命令:

    # hammer activation-key content-override \
    --name "My_Activation_Key" \
    --content-label rhel-7-server-satellite-tools-6.6-rpms \
    --value 1 \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

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

您可以使用 Web UI 或 Hammer 命令行工具更改与激活码关联的订阅。

请注意,对激活码的更改仅适用于更改后置备的机器。要更新现有内容主机上的订阅,请参阅 第 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"
    Copy to Clipboard Toggle word wrap
  2. 从激活码中删除所需的订阅:

    # hammer activation-key remove-subscription \
    --name "My_Activation_Key" \
    --subscription-id ff808181533518d50152354246e901aa \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

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

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

    # hammer activation-key add-subscription \
    --name "My_Activation_Key" \
    --subscription-id ff808181533518d50152354246e901aa \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

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

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

    # hammer activation-key product-content \
    --name "My_Activation_Key" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  5. 覆盖所需存储库的默认 auto-enable 状态:

    # hammer activation-key content-override \
    --name "My_Activation_Key" \
    --content-label content_label \
    --value 1 \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

    对于 --value 选项,输入 1 代表启用,输入 0 代表禁用。

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

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

  • 通过 Red Hat Satellite 6 在置备过程中注册新主机。Red Hat Satellite 6 中的 kickstart 自定义模板包含使用创建主机时定义的激活密钥注册主机的命令。
  • 注册现有的 Red Hat Enterprise Linux 主机。将 Red Hat Subscription Manager 配置为使用 Satellite 服务器注册,并在运行 subscription-manager register 命令时指定激活码。

流程

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

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

    # rpm -Uvh http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
    Copy to Clipboard Toggle word wrap

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

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

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

    # hammer host list --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  4. 将主机注册到 Satellite 服务器后,在主机上安装 katello-agent 软件包,以便它可以报告回 Satellite 服务器:

    # yum install katello-agent
    Copy to Clipboard Toggle word wrap

    Red Hat Satellite Tools 6.6 存储库提供此软件包。

多个激活码

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

# subscription-manager register --org="My_Organization" \
--activationkey="ak-VDC,ak-OpenShift"
Copy to Clipboard Toggle word wrap

设置冲突

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

  • 有冲突的设置:Service Level, Release Version, Environment, Content View, 和 Product Content
  • 没有冲突的设置,主机会与它们组成: SubscriptionsHost Collections
  • 影响密钥本身和主机配置的行为的设置: 内容主机限制和 自动附加

10.4. 启用自动附加

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

您可以启用自动附加功能,且没有与该密钥关联的订阅。当您不希望虚拟机消耗物理订阅时,这种密钥通常用于注册虚拟机,而是从 hypervisor 继承基于主机的订阅。如需更多信息,请参阅在 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
Copy to Clipboard Toggle word wrap

10.5. 设置服务级别

您可以配置激活码,为使用激活密钥创建的新主机定义默认服务级别。设置默认服务级别只选择要附加到主机的匹配订阅。例如,如果激活密钥上的默认服务级别设置为 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
Copy to Clipboard Toggle word wrap

第 11 章 管理勘误

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

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

当将软件仓库与红帽的 Content Delivery Network (CDN)同步时,Red Hat Satellite 6 会导入这个勘误信息。Red Hat Satellite 6 还提供了检查和过滤勘误表的工具,允许精确更新管理。这样,您可以选择相关的更新,并通过 Content Views 传播到所选内容主机。

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

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

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

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

11.1. 检查可用的勘误

以下流程描述了如何查看和过滤可用的勘误以及如何显示所选公告的元数据。

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

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

      parameter operator value
      Copy to Clipboard Toggle word wrap

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

      type = security and package_name = kernel
      Copy to Clipboard Toggle word wrap

      Enter 键开始搜索。

  3. 点您要检查的 勘误 ID

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

对于 CLI 用户

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

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

    # hammer erratum info --id erratum_ID
    Copy to Clipboard Toggle word wrap
  • 您可以使用-- search 选项输入查询来搜索 勘误。例如,要查看所选产品的适用勘误,其中包含指定错误的排序,以便在上面显示安全勘误:

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

bug

按照 Bugzilla 号搜索。

bug = 1172165

cve

按照 CVE 编号搜索。

cve = CVE-2015-0235

id

按照勘误表 ID 搜索。auto-suggest 系统在您键入时显示可用 ID 列表。

id = RHBA-2014:2004

发布日期

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

发布日期:"Jan 12,2015"

package

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

package = glib2-2.22.5-6.el6.i686

package_name

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

package_name = glib2

严重性

按照安全更新所修复的问题的严重性搜索。指定 CriticalImportantModerate

severity = Critical

title

按照公告标题搜索。

title ~ openssl

type

按照公告类型搜索。指定 security, bugfix, 或 enhancement

type = bugfix

已更新

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

updated = "6 days ago"

11.2. 订阅勘误通知

您可以为 Satellite 用户配置电子邮件通知。用户收到适用和可安装勘误表摘要、内容视图提升的通知或在同步存储库后收到相关通知。如需更多信息,请参阅 管理 Red Hat Satellite 指南中的 配置电子邮件通知 部分。https://access.redhat.com/documentation/zh-cn/red_hat_satellite/6.6/html/administering_red_hat_satellite/chap-red_hat_satellite-administering_red_hat_satellite-users_and_roles#sect-Red_Hat_Satellite-Administering_Red_Hat_Satellite-Creating_and_Managing_Users-Configuring_Email_Notifications

11.3. 仓库依赖解析的限制

在 Satellite 6 中解决存储库依赖项会有很多挑战。这是个已知问题。如需更多信息,请参阅 BZ86_64-08169 , BZ [--40420,BZ &&08169, 和 BZ to29462。使用 Satellite 时,使用内容视图的增量更新可解决某些存储库依赖项问题。但是,在仓库级别,依赖项解析仍然会出现问题。

当存储库更新以新依赖项可用时,Satellite 会检索软件包的最新版本以解决依赖项,即使现有存储库软件包中有旧版本也是如此。这可在安装软件包时创建更多依赖项解析问题。

示例情境

客户端上的存储库具有软件包 example_repository-1.0,其依赖项为 example_repository-libs-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 - 选择允许进入您生成的软件仓库的特定勘误。
  • date Range- 定义日期范围,并包括该日期范围内发布的一组勘误。
  • type - 选择要包括的勘误类型,如 bug 修复、功能增强和安全更新。

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

先决条件

流程

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

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

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

  16. 单击 Versions 选项卡。
  17. 单击已发布版本右侧的 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"
    Copy to Clipboard Toggle word wrap
  2. 创建一个过滤器规则,以排除您要设置的 Start Date 或之后的所有勘误:

    # 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
    Copy to Clipboard Toggle word wrap
  3. 发布内容视图:

    # hammer content-view publish --name "CV Name" \
    --organization "Default Organization"
    Copy to Clipboard Toggle word wrap
  4. 将内容视图提升到生命周期环境,以便包含的勘误可用于那个生命周期环境:

    # hammer content-view version promote \
    --content-view "CV Name" \
    --organization "Default Organization" \
    --to-lifecycle-environment "Lifecycle Environment Name"
    Copy to Clipboard Toggle word wrap

11.5. 将勘误添加到增量内容视图

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

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

    注意

    BZ":{ "59807 被解决前,如果您对注册到 Capsule 服务器的主机应用不可安装的勘误,请不要在 发布复选框后立即选择 Apply errata to Content Hosts

    相反,在单击 Confirm 后,等待 errata Content View 被提升,并使 Capsule 同步任务完成。然后,勘误被标记为 Installable,您可以再次使用该流程应用它。

  5. Confirm 以应用勘误。

对于 CLI 用户

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

    # hammer erratum list
    Copy to Clipboard Toggle word wrap
  2. 列出不同的 content-view 版本和对应的 ID:

    # hammer content-view version list
    Copy to Clipboard Toggle word wrap
  3. 将单个勘误应用到 content-view 版本。您可以在以逗号分隔的列表中添加更多 ID。

    # hammer content-view version incremental-update \
    --content-view-version-id 319 --errata-ids 34068b
    Copy to Clipboard Toggle word wrap

11.6. 将勘误应用到主机

使用这些步骤来查看并将勘误表应用到主机。

先决条件

对于 Red Hat Enterprise Linux 8

要将勘误应用到 RHEL 8 主机,您可以在 Satellite 服务器上运行远程执行作业或更新主机。有关运行远程执行作业的更多信息 请参阅管理主机指南中的 在主机上运行作业。

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

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

    # hammer host errata list \
    --host client.example.com
    Copy to Clipboard Toggle word wrap
  2. 查找勘误所属的模块流:

    # hammer erratum info --id ERRATUM_ID
    Copy to Clipboard Toggle word wrap
  3. 在主机上,更新模块流:

    # yum update Module_Stream_Name
    Copy to Clipboard Toggle word wrap

对于 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
    Copy to Clipboard Toggle word wrap
  2. 将最新的勘误应用到主机。确定要使用勘误 ID 的勘误:

    # hammer host errata apply --host "Host Name" \
    --errata-ids ERRATUM_ID1,ERRATUM_ID2...
    Copy to Clipboard Toggle word wrap

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

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

先决条件

流程

  1. 导航到 Content > Errata
  2. 点您要应用的勘误的名称。
  3. 单击 Content Hosts 选项卡。
  4. 选择您要将勘误表应用到的主机,然后单击 Apply to Hosts
  5. 单击 Confirm

对于 CLI 用户

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

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

    # hammer erratum list \
    --errata-restrict-installable true \
    --organization "Default Organization"
    Copy to Clipboard Toggle word wrap
  2. 选择您要使用的勘误,并列出这个勘误适用的主机:

    # hammer host list \
    --search "applicable_errata = ERRATUM_ID" \
    --organization "Default Organization"
    Copy to Clipboard Toggle word wrap
  3. 将勘误应用到单个主机:

    # hammer host errata apply \
    --host client.example.com \
    --organization "Default Organization" \
    --errata-ids ERRATUM_ID1,ERRATUM_ID2...
    Copy to Clipboard Toggle word wrap
  4. 以下 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
    Copy to Clipboard Toggle word wrap

    这个命令将带有 Errata _ID 的所有主机识别为适用的勘误,然后将勘误应用到每个主机。

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

    # hammer task list
    Copy to Clipboard Toggle word wrap
  6. 查看所选任务的状态:

    # hammer task progress --id task_ID
    Copy to Clipboard Toggle word wrap

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

要将所选勘误应用到主机集合,请输入以下命令:

# hammer host-collection erratum install \
--errata "erratum_ID1,erratum_ID2,..." \
--name "host_collection_name"\
--organization "Your_Organization"
Copy to Clipboard Toggle word wrap

第 12 章 管理 OSTree 内容

ostree 是一个管理可引导、不可变、版本化的文件系统树的工具。您可以在构建系统上使用自定义 OSTree 内容,然后将 OSTree 存储库导出到静态 HTTP。Red Hat Enterprise Linux Atomic Server 使用由 RPM 文件组成的 OSTree 内容,作为使操作系统保持最新状态的方法。

您可以使用 Red Hat Satellite 6 从 OSTree 存储库同步和管理 OSTree 分支。

在 Satellite Server 6.6 中,OSTree 管理工具默认启用。如果您有启用该工具的原因,请输入以下命令:

# satellite-installer --katello-enable-ostree=true
Copy to Clipboard Toggle word wrap

12.1. 选择要同步的红帽 OSTree 内容

Red Hat CDN 提供 OSTree 内容供您选择和同步。

流程

要查找和同步 OSTree 内容,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Content > Red Hat Repositories
  2. 从列表中选择 OSTree 内容类型。
  3. 在 Available Repositories 窗格中,找到您要使用的 OSTree repisotry 集,例如,Red Hat Enterprise Linux Atomic Host 产品组中设置的 Red Hat Enterprise Linux Atomic Host Trees
  4. Enable 图标启用您要使用的存储库。
  5. 导航到 Content > Products,再单击要使用的产品,如 Red Hat Enterprise Linux Atomic Host
  6. 选择此存储库的上游同步策略。默认情况下,Satellite 仅同步最新的 OSTree 分支。

    1. 单击您要同步的存储库。
    2. Upstream Sync Policy 菜单中,选择以下策略之一来同步此存储库的 OSTree 分支:

      • latest Only - 仅同步最新的 OSTree 分支。
      • 所有 History - 同步所有 OSTree 分支。
      • custom- 同步 自定义 OSTree 分支数。在以下字段中输入所需数字。
    3. 点击 Save
  7. Select Action 菜单中,选择 Sync Now

查看同步状态

  • 在 Satellite Web UI 中,进入到 Content > Sync Status 并展开,例如 Red Hat Enterprise Linux Atomic Host

对于 CLI 用户

  1. 在 Red Hat Enterprise Linux Server 产品中搜索 ostree 软件仓库:

    # hammer repository-set list \
    --product "Red Hat Enterprise Linux Atomic Host" \
    --organization "My_Organization" | grep "ostree"
    Copy to Clipboard Toggle word wrap
  2. 为 Red Hat Enterprise Linux Atomic Host 或您要使用的任何产品启用 ostree 存储库:

    # hammer repository-set enable \
    --product "Red Hat Enterprise Linux Atomic Host" \
    --name "Red Hat Enterprise Linux Atomic Host (Trees)" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  3. 为产品找到并同步存储库:

    # hammer repository list \
    --product "Red Hat Enterprise Linux Atomic Host" \
    --organization "My_Organization"
    # hammer repository synchronize \
    --name "Red Hat Enterprise Linux Atomic Host Trees" \
    --product "Red Hat Enterprise Linux Atomic Host" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

12.2. 导入自定义 OSTree 内容

除了从红帽 CDN 导入 OSTree 内容外,您还可以从其他源导入内容。这需要一个公布的 HTTP 位置才可以导入 OSTree。

流程

要导入自定义 OSTree 内容,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Content > Products,再点 Create Product
  2. Name 字段中输入 OSTree 内容的名称。这会自动填充 Label 字段。
  3. 可选:在 GPG Key 字段中,为整个产品输入 GPG 密钥。
  4. Sync Plan 菜单中,选择要与产品关联的同步计划。
  5. Description 字段中,输入产品的描述,然后单击 Save
  6. 产品创建完成后,单击 Create Repository
  7. Name 字段中输入存储库的名称。这会自动填充 Label 字段。
  8. Type 列表中,选择 ostree
  9. URL 字段中输入要用作源的 registry 的 URL。例如 http://www.example.com/rpm-ostree/
  10. Upstream Sync Policy 菜单中,选择以下策略之一来同步此存储库的 OSTree 分支:

    • latest Only - 仅同步最新的 OSTree 分支。
    • 所有 History - 同步所有 OSTree 分支。
    • custom- 同步 自定义 OSTree 分支数。在以下字段中输入所需数字。
  11. 点击 Save
  12. 存储库创建完成后,选择新存储库,再单击 Sync Now 以启动同步过程。

查看同步状态:

  • 在 Satellite Web UI 中,进入到 Content > Sync Status 并展开您要查看的条目。

对于 CLI 用户

  1. 创建自定义 OSTree 内容 产品:

    # hammer product create \
    --name "Custom OSTree Content" \
    --sync-plan "Example_Plan" \
    --description "OSTree Content" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  2. 为 OSTree 创建存储库:

    # hammer repository create \
    --name "Custom OSTree" \
    --content-type "ostree" \
    --url "http://www.example.com/rpm-ostree/" \
    --product "OSTree Content" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  3. 同步存储库:

    # hammer repository synchronize \
    --name "Custom OStree" \
    --product "OSTree Content" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

12.3. 使用内容视图管理 OSTree 内容

使用内容视图管理应用程序生命周期中的 OSTree 分支。此过程使用与 RPM 和 Puppet 模块使用的相同发布和提升方法。

流程

要为 OSTree 创建内容视图并添加存储库,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Content > Content Views,再点 Create New View
  2. Name 字段中输入视图的纯文本名称。这会自动填充 Label 字段。
  3. Description 字段中,输入 OSTree Content View 的描述。
  4. 如果要使用 Composite 内容视图,请选中 Composite View 复选框。
  5. 单击 Save 以完成。
  6. 导航到 OSTree Content 选项卡,然后单击 Add
  7. 选择要使用的 OSTree 存储库。单击 Add Repository,将来自此存储库的 OSTree 内容添加到内容视图。
  8. 导航到 Versions,再单击 Publish New Version
  9. Description 字段中,输入版本的描述,然后单击 Save

您也可以单击 Promote,以在应用生命周期的不同环境中提升此内容视图。

对于 CLI 用户

  1. 获取存储库 ID 列表:

    # hammer repository list --organization "_My_Organization_"
    Copy to Clipboard Toggle word wrap
  2. 创建内容视图并添加存储库:

    # hammer content-view create \
    --name "OSTree" \
    --description "OSTree for Red Hat Enterprise Linux Atomic Host" \
    --repository-ids 5 \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  3. 发布视图:

    # hammer content-view publish \
    --name "OSTree" \
    --description "Example Content View for the OSTree" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

第 13 章 管理容器镜像

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

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

13.1. 导入容器镜像

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

此流程使用存储库发现来查找容器镜像并将其导入为存储库。有关手动创建产品和存储库的详情,请参考 第 6 章 导入自定义内容

流程

要导入容器镜像仓库并将其与产品关联,请完成以下步骤:

  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"
    Copy to Clipboard Toggle word wrap
  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"
    Copy to Clipboard Toggle word wrap
  3. 同步存储库:

    # hammer repository synchronize \
    --name "RHEL7" \
    --product "Red Hat Container Catalog" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

13.2. 管理容器名称模式

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

限制

如果使用 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 %>
    Copy to Clipboard Toggle word wrap
  5. 点击 Save

13.3. 管理容器 Registry 身份验证

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

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

流程

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

  1. 在 Satellite Web UI 中,进入到 Content > Lifecycle Environments,再选择您要管理身份验证的生命周期环境。
  2. 要允许在此生命周期环境中未经身份验证的访问容器,请选中 Unauthenticated Pull 复选框。要限制未经身份验证的访问,请清除 Unauthenticated Pull 复选框。
  3. 点击 Save

第 14 章 管理 ISO 镜像

您可以使用 Red Hat Satellite 6 从红帽的 Content Delivery Network 或其他源存储 ISO 镜像。您还可以上传其他文件,如虚拟机镜像,并将它们发布到存储库中。

14.1. 从红帽导入 ISO 镜像

Red Hat Content Delivery Network 为某些产品提供 ISO 镜像。导入此内容的过程与为 RPM 内容启用软件仓库的步骤类似。

流程

要导入 Red Hat ISO 镜像,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Content > Red Hat Repositories
  2. Search 字段中输入镜像名称,例如 Red Hat Enterprise Linux 7 Server (ISOs)
  3. 在 Available Repositories 窗口中,展开 Red Hat Enterprise Linux 7 Server (ISOs)
  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 服务器产品:

    # hammer repository-set list \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization" | grep "file"
    Copy to Clipboard Toggle word wrap
  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"
    Copy to Clipboard Toggle word wrap
  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"
    Copy to Clipboard Toggle word wrap

14.2. 导入单个 ISO 镜像和文件

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

  1. 创建自定义产品。
  2. 为产品添加文件存储库。
  3. 上传文件到存储库。

流程

要导入自定义 ISO 镜像,请完成以下步骤:

  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"
    Copy to Clipboard Toggle word wrap
  2. 创建存储库:

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

    # hammer repository upload-content \
    --path ~/bootdisk.iso \
    --name "My_ISOs" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

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

在 Satellite 中,您可能需要管理和分发 SSH 密钥和源代码文件或更大文件(如虚拟机镜像和 ISO 文件)。为实现此目的,Red Hat Satellite 中的自定义产品包括用于自定义文件类型的软件仓库。这提供了一种通用方法,来将任意文件整合到产品中。

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

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

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

流程

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

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

要为自定义产品创建软件仓库,请完成以下步骤:

  1. 在 Products 窗口中,选择要为其创建存储库的产品的名称。
  2. 单击 Repositories 选项卡,然后单击 New Repository
  3. Name 字段中输入存储库的名称。Red Hat Satellite 6 根据名称自动完成 Label 字段。
  4. Type 列表中,选择 文件
  5. Upstream URL 字段中,输入要用作源的上游存储库的 URL。
  6. 如果要验证上游存储库的 SSL 证书是否由可信 CA 签名,请选择 Verify SSL 复选框。
  7. Upstream Username 字段中,如果需要进行身份验证,请输入 upstream 存储库的用户名。如果存储库不需要身份验证,请清除此字段。
  8. Upstream Password 字段中,输入上游存储库的对应密码。如果存储库不需要身份验证,请清除此字段。
  9. 点击 Save

对于 CLI 用户

  1. 创建自定义产品

    # hammer product create \
    --name "My File Product" \
    --sync-plan "Example Plan" \
    --description "My files" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
    Expand
    表 15.1. hammer product create 命令的可选参数
    选项描述

    --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"
    Copy to Clipboard Toggle word wrap
    Expand
    表 15.2. hammer repository create 命令的可选参数
    选项描述

    --checksum-type sha_version

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

    --download-policy policy_name

    yum 仓库的下载策略(即 'immediate'、'on_demand' 或 'background')。

    --gpg-key gpg_key_name

    要搜索的关键名称

    --gpg-key-id gpg_key_id

    GPG 密钥数字标识符

    --mirror-on-sync boolean

    在同步时,必须从源镜像此仓库,并在同步时删除过时的 RPM?设置为 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。

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

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

流程

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

  1. 确保启用了 Server 和 Satellite Tools 存储库:

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-satellite-tools-6.6-rpms
    Copy to Clipboard Toggle word wrap
  2. 安装 Pulp 清单软件包:

    # satellite-maintain packages install python-pulp-manifest
    Copy to Clipboard Toggle word wrap
  3. 在 HTTP 服务器的公共文件夹中创建一个您要用作文件类型存储库的目录:

    # mkdir my_file_repo
    Copy to Clipboard Toggle word wrap
  4. 将文件添加到目录或创建测试文件:

    # touch my_file_repo/test.txt
    Copy to Clipboard Toggle word wrap
  5. 输入 Pulp Manifest 命令来创建清单:

    # pulp-manifest my_file_repo
    Copy to Clipboard Toggle word wrap
  6. 验证清单是否已创建:

    # ls my_file_repo
    PULP_MANIFEST test.txt
    Copy to Clipboard Toggle word wrap

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

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

  1. 确保 Satellite 服务器中存在自定义产品。
  2. 在 Satellite Web UI 中,进入到 Content > Products
  3. 选择产品的名称。
  4. 单击 Repositories 选项卡,再选择 New Repository
  5. Name 字段中输入存储库的名称。Red Hat Satellite 6 根据您输入名称的内容自动完成此字段。
  6. Type 列表中,选择存储库的内容类型。
  7. Upstream URL 字段中,输入要用作源的存储库的本地目录,格式为 file:///my_file_repo
  8. 选中 Verify SSL 复选框,以检查存储库的 SSL 证书或清除 Verify SSL 复选框。
  9. 可选:在 Upstream Username 字段中,输入您需要的上游用户名。
  10. 可选:在 Upstream Password 字段中,为您的上游用户名输入对应的密码。
  11. 选择 Save 保存此存储库条目。

更新文件类型存储库

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

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

15.3. 创建远程文件类型存储库

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

使用这个流程在远程服务器的目录中配置存储库。要在安装了 Satellite 服务器的基本系统的目录中创建文件类型存储库,请参阅 第 15.2 节 “在本地目录中创建自定义文件类型存储库”

先决条件

在创建远程文件类型存储库前,请确保满足以下条件:

  • 您已在 Satellite 或 Red Hat CDN 中注册了 Red Hat Enterprise Linux 7 服务器。
  • 您的服务器具有 Red Hat Enterprise Linux Server 和 Satellite Tools 存储库的权利。
  • 已安装 HTTP 服务器。有关配置 Web 服务器的更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南中的 Apache HTTP 服务器

流程

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

  1. 在远程服务器中,确保启用服务器和 Satellite 工具存储库:

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-satellite-tools-6.6-rpms
    Copy to Clipboard Toggle word wrap
  2. 安装 Pulp 清单软件包:

    # yum install python-pulp-manifest
    Copy to Clipboard Toggle word wrap
  3. 在 HTTP 服务器的公共文件夹中创建一个您要用作文件类型存储库的目录:

    # mkdir /var/www/html/pub/my_file_repo
    Copy to Clipboard Toggle word wrap
  4. 将文件添加到目录或创建测试文件:

    # touch /var/www/html/pub/my_file_repo/test.txt
    Copy to Clipboard Toggle word wrap
  5. 输入 Pulp Manifest 命令来创建清单:

    # pulp-manifest /var/www/html/pub/my_file_repo
    Copy to Clipboard Toggle word wrap
  6. 验证清单是否已创建:

    # ls /var/www/html/pub/my_file_repo
    PULP_MANIFEST test.txt
    Copy to Clipboard Toggle word wrap

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

要从远程文件类型存储库导入文件,请完成以下步骤:

  1. 确保 Satellite 服务器中存在自定义产品,或创建自定义产品。如需更多信息,请参阅 第 15.1 节 “在 Red Hat Satellite 中创建自定义文件类型存储库”
  2. 在 Satellite Web UI 中,进入到 Content > Products
  3. 选择产品的名称。
  4. 单击 Repositories 选项卡,再选择 New Repository
  5. Name 字段中输入存储库的名称。Red Hat Satellite 6 根据您输入名称的内容自动完成此字段。
  6. Type 列表中,选择 文件
  7. Upstream URL 字段中,输入要用作源的上游存储库的 URL。
  8. 如果要验证上游存储库的 SSL 证书是否由可信 CA 签名,请选择 Verify SSL 复选框。
  9. Upstream Username 字段中,如果需要进行身份验证,请输入 upstream 存储库的用户名。如果存储库不需要身份验证,请清除此字段。
  10. Upstream Password 字段中,输入上游存储库的对应密码。如果存储库不需要身份验证,请清除此字段。
  11. 点击 Save
  12. 要更新文件类型存储库,请导航到 Content > Products。选择包含您要更新的软件仓库的产品名称。
  13. 在产品窗口中,选择您要更新的存储库的名称。
  14. Select Action 菜单中,选择 Sync Now

访问发布该存储库的 URL 来查看文件。

流程

要将文件上传到自定义文件类型存储库,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Content > Products
  2. 按名称选择自定义产品。
  3. 按名称选择文件类型存储库。
  4. Browse 搜索并选择您要上传的文件。
  5. 单击 Upload,将所选文件上传到 Satellite 服务器。
  6. 访问发布该存储库的 URL 以查看该文件。

对于 CLI 用户

# hammer repository upload-content \
--name "My Files" \
--organization "My_Organization" \
--path example_file
Copy to Clipboard Toggle word wrap

--path 选项可以表示文件、文件的目录或文件通配表达式。globs 必须使用单引号或双引号转义。

您可以使用 curl -O 将文件下载到客户端,如果选择了 Publish via HTTP 存储库选项,则可以通过 HTTP 将文件下载到客户端。

先决条件

流程

要从自定义文件类型存储库下载文件到主机,请完成以下步骤:

  1. 在 Satellite Web UI 中,进入到 Content > Products
  2. 按名称选择自定义产品。
  3. 按名称选择文件类型存储库。
  4. 检查是否已启用 通过 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         |
    ---|----------|-----------------|--------------|----
    Copy to Clipboard Toggle word wrap
  2. 显示存储库信息。

    # hammer repository info --name "My Files" --product "My File Product" --organization-id 1
    Copy to Clipboard Toggle word wrap

    如果启用了 HTTP,输出类似如下:

    Publish Via HTTP:   yes
    Published At:       http://satellite.example.com/pulp/isos/uuid/
    Copy to Clipboard Toggle word wrap

    如果没有启用 HTTP,输出类似如下:

    Publish Via HTTP:   no
    Published At:       https://satellite.example.com/pulp/isos/uuid/
    Copy to Clipboard Toggle word wrap
  3. 在客户端上,以适合 HTTP 或 HTTPS 的格式输入命令:

    对于 HTTP:

    # curl -O satellite.example.com/pulp/isos/uuid/my_file
    Copy to Clipboard Toggle word wrap

    对于 HTTPS:

    # curl -O --cert ./Default\ Organization-key-cert.pem --cacert katello-server-ca.crt satellite.example.com/pulp/isos/uuid/my_file
    Copy to Clipboard Toggle word wrap

第 16 章 管理自定义 Puppet 内容

在 Satellite 中,如果要使用 Puppet 模块包含主机状态配置,您可以使用 Puppet 模块创建自定义产品来达到此目的。

16.1. 创建自定义 Puppet 存储库

创建自定义 Puppet 模块存储库的流程与创建自定义内容的步骤相同,但创建存储库时除外,您可以选择 puppet 类型。您必须创建一个产品,然后添加自定义存储库。

流程

  1. 在 Satellite Web UI 中,进入到 Content > Products,然后点击您要使用的产品。
  2. 单击 Create Repository
  3. Name 字段中输入存储库的名称。Red Hat Satellite 6 根据您为 名称 输入的内容自动完成 Label 字段。
  4. Type 列表中,选择 puppet
  5. URL 字段中,输入要用作源的外部存储库的 URL。您可以使用存储库源来同步自己的 Puppet 模块。
  6. 点击 Save

对于 CLI 用户

  1. 输入以下命令来创建 Puppet 模块存储库:

    # hammer repository create \
    --name "PostgreSQL Puppet Modules" \
    --content-type "puppet" \
    --product "PostgreSQL" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

16.2. 管理单个 Puppet 模块

如果要创建一个包含 RPM 内容和 Puppet 模块的自定义产品,来使用自定义 RPM 内容安装和配置服务器,请使用 第 16.1 节 “创建自定义 Puppet 存储库” 中的流程,然后使用以下流程上传 Puppet 模块。

支持自定义 RPM

红帽不支持 Puppet Forge 中的模块。对于这些模块的任何问题,请联系模块开发人员。

先决条件

  1. 在 Puppet Forge 网站中,下载您要使用的模块,例如 https://forge.puppetlabs.com/puppetlabs/postgresql
  2. 在您的网页浏览器中,点 download latest tar.gz 以保存到本地文件系统。

流程

  1. 在 Satellite Web UI 中,进入到 Content > Products,再选择包含您要管理的 Puppet 存储库的产品。
  2. 在存储库窗口中,单击新的 Puppet 存储库,它将显示该存储库的详细信息页面。
  3. 导航到 Upload Puppet Module 区域,再单击 Browse,再选择新下载并提取的 Puppet 模块,然后单击 Upload

要从产品管理和删除 Puppet 模块,请完成以下步骤:

  1. 在 Puppet 模块存储库的窗口中,导航到窗口右上角的 Content Counts 区域。在 Puppet 模块 行中,单击为 Puppet 模块显示的数字值。
  2. 在 Puppet Module 存储库窗口的 Manage Puppet Modules 中,选择您要管理的模块,然后单击 Select Action,然后执行操作,或者选择 Remove Puppet Modules

对于 CLI 用户

  1. 将 Puppet 模块复制到 Satellite 服务器的文件系统中:

    $ scp ~/puppet_module.tar.gz root@satellite.example.com:~/.
    Copy to Clipboard Toggle word wrap
  2. 将 Puppet 模块导入到 Puppet 模块存储库:

    # hammer repository upload-content \
    --path ~/puppet_module.tar.gz \
    --name "My Puppet Modules" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

16.3. 同步 Puppet 存储库

除了创建上传的 Puppet 模块的存储库外,卫星服务器也可以同步完整的 Puppet 模块存储库。在本例中,Satellite 服务器同步整个 Puppet Forge 存储库。

支持自定义 RPM

红帽不支持 Puppet Forge 中的模块。模块用于演示同步过程。对于这些模块的任何问题,请联系模块开发人员。

流程

  1. 在 Satellite Web UI 中,进入到 Content > Products,再点 Create Product
  2. Name 字段中输入产品的名称。Red Hat Satellite 6 根据您为 名称 输入的内容自动完成 Label 字段。
  3. 可选:从 GPG Key 列表中,为产品选择 GPG 密钥。
  4. 可选:从 Sync Plan 列表中,为产品选择一个同步计划。
  5. Description 字段中,输入产品的描述。
  6. 点击 Save
  7. 单击 Create Repository,它显示新存储库的表单。
  8. Name 字段中输入存储库的名称。Red Hat Satellite 6 根据您输入 的名称 自动完成此字段。
  9. Type 列表中,选择 puppet
  10. URL 字段中,输入 http://forge.puppetlabs.com/
  11. Save
  12. 选择新的 Puppet 存储库,然后单击 Sync Now 将所有模块从 Puppet Forge 导入到卫星服务器。这可能需要很长时间。

对于 CLI 用户

  1. 创建产品:

    # hammer product create \
    --name "Puppet Forge" \
    --sync-plan "Example Plan" \
    --description "All modules from Puppet Forge" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap
  2. 创建 Puppet Forge 存储库:

    # hammer repository create \
    --name "Puppet Forge Modules" \
    --content-type "puppet" \
    --product "Puppet Forge" \
    --organization "My_Organization" \
    --url http://forge.puppetlabs.com/
    Copy to Clipboard Toggle word wrap
  3. 同步存储库:

    # hammer repository synchronize \
    --name "Puppet Forge Modules" \
    --product "Puppet Forge" \
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

Puppet Forge 存储库包含多个第千个模块,并且可能需要很长时间才能同步。

16.4. 从 Git 存储库同步 Puppet 模块

Red Hat Satellite 6 包含一个称为 pulp-puppet-module-builder 的实用程序,您可以在其他系统上安装 pulp-puppet-tools RPM。此工具会签出 Git 存储库,构建所有模块,并以 Satellite 6 可以同步的结构发布它们。种常见的方法是在卫星服务器本身上运行 实用程序,发布到本地目录,并对该目录进行同步。例如:

# mkdir /modules
# chmod 755 /modules
# pulp-puppet-module-builder \
--output-dir=/modules \
--url=git@mygitserver.com:mymodules.git \
--branch=develop
Copy to Clipboard Toggle word wrap

本例从 git@mygitserver.com:mymodules.git 检查 Git 存储库的 develop 分支,并将其发布到 /modules。添加此目录作为 Satellite 服务器上新存储库的 URL (file:///modules)。

在远程 HTTP 服务器上发布 Puppet 模块

相同的进程也适用于在远程 HTTP 服务器上发布模块。例如,如果您使用 webserver.example.com 作为标准 Web 主机来发布 Puppet 模块。

# mkdir /var/www/html/modules/
# chmod 755 /var/www/html/modules/
# pulp-puppet-module-builder \
--output-dir=/var/www/html/modules/ \
--url=git@mygitserver.com:mymodules.git \
--branch=develop
Copy to Clipboard Toggle word wrap

在 Satellite 服务器上,将存储库的 URL 设置为 http://webserver.example.com/modules/

使用 Web UI 从 Git 存储库同步 Puppet 模块

使用以下步骤从 Git 存储库同步 Puppet 模块。

流程

  1. 创建自定义产品,再单击创建存储库
  2. Type 列表中,选择 puppet
  3. URL 字段中,输入外部 Git 存储库的 URL,以用作源,格式为 file:///modules

对于 CLI 用户

  1. 创建 Puppet Forge 存储库:

    # hammer repository create \
    --name "Modules from Git" \
    --content-type "puppet" \
    --product "MyProduct" \
    --organization "My_Organization" \
    --url file:///modules
    Copy to Clipboard Toggle word wrap

附录 A. 将 NFS 共享用于内容存储

您的环境需要足够的硬盘空间才能实现内容存储。在某些情况下,使用 NFS 共享来存储此内容会很有用。本附录介绍了如何在 Satellite 服务器的内容管理组件上挂载 NFS 共享。

重要

不要在 NFS 共享中挂载完整的 /var/lib/pulp。为 /var/lib/pulp 文件系统使用高带宽、低延迟存储。Red Hat Satellite 具有很多 I/O 密集型操作,因此高延迟、低带宽存储可能会遇到性能下降的问题。仅将 NFS 共享用于 /var/lib/pulp/content 目录。

  1. 创建 NFS 共享。这个示例使用 nfs.example.com:/satellite/content 的共享。确保此共享为 Satellite 服务器及其 apache 用户提供适当的权限。
  2. 停止 Satellite 主机上的 satellite-maintain 服务:

    # satellite-maintain service stop
    Copy to Clipboard Toggle word wrap
  3. 确保 Satellite 服务器安装了 nfs-utils 软件包:

    # satellite-maintain packages install nfs-utils
    Copy to Clipboard Toggle word wrap
  4. 您需要将 /var/lib/pulp/content 的现有内容复制到 NFS 共享。首先,将 NFS 共享挂载到临时位置:

    # mkdir /mnt/temp
    # mount -o rw nfs.example.com:/satellite/content /mnt/temp
    Copy to Clipboard Toggle word wrap

    /var/lib/pulp/content 的现有内容复制到临时位置:

    # cp -r /var/lib/pulp/content/* /mnt/temp/.
    Copy to Clipboard Toggle word wrap
  5. 为共享上所有文件的权限设置为使用 apache 用户。这个用户的 ID 通常为 48。
  6. 卸载临时存储位置:

    # umount /mnt/temp
    Copy to Clipboard Toggle word wrap
  7. 删除 /var/lib/pulp/content 的现有内容:

    # rm -rf /var/lib/pulp/content/*
    Copy to Clipboard Toggle word wrap
  8. 编辑 /etc/fstab 文件并添加以下行:

    nfs.example.com:/satellite/content    /var/lib/pulp/content   nfs    rw,hard,intr,context="system_u:object_r:httpd_sys_rw_content_t:s0"
    Copy to Clipboard Toggle word wrap

    这使得挂载在系统重启后持久保留。确保包含 SELinux 上下文。

  9. 启用挂载:

    # mount -a
    Copy to Clipboard Toggle word wrap
  10. 确认 NFS 共享挂载到 var/lib/pulp/content

    # df
    Filesystem                         1K-blocks     Used Available Use% Mounted on
    ...
    nfs.example.com:/satellite/content 309506048 58632800 235128224  20% /var/lib/pulp/content
    ...
    Copy to Clipboard Toggle word wrap

    另外,确认现有内容存在于 var/lib/pulp/content 上的挂载中:

    # ls /var/lib/pulp/content
    Copy to Clipboard Toggle word wrap
  11. 在 Satellite 主机上启动 satellite-maintain 服务:

    # satellite-maintain service start
    Copy to Clipboard Toggle word wrap

Satellite 服务器现在使用 NFS 共享来存储内容。运行内容同步(请参阅 第 5.2 节 “内容同步概述”)以确保 NFS 共享按预期工作。

在断开连接的环境中,您必须确保 Satellite 服务器包含所需的内容,以置备具有最新安全更新、勘误表和软件包的系统。要做到这一点,请按照以下流程从红帽客户门户网站下载内容 ISO 镜像,并将其导入到本地 CDN 服务器。您可以在 Satellite 服务器的基本操作系统或 Satellite 可通过 HTTP 访问的系统中托管本地 CDN 服务器。接下来,您必须配置 Satellite 服务器,以将内容与本地 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 的同一系统上不需要。CDN 可以托管在同一断开连接的网络中的不同系统上,只要它可以通过 HTTP 进行访问。

  6. 在您要用作本地 CDN 服务器的系统上,创建一个可通过 httpd 访问的本地目录。例如: /var/www/html/pub/sat-import/

    # mkdir -p /var/www/html/pub/sat-import/
    Copy to Clipboard Toggle word wrap
  7. 创建挂载点,并在那个位置临时挂载 ISO 镜像:

    # mkdir /mnt/iso
    # mount -o loop /root/isos/first_iso /mnt/iso
    Copy to Clipboard Toggle word wrap
  8. 将第一个 ISO 镜像的内容递归复制到本地目录中:

    # cp -ruv /mnt/iso/* /var/www/html/pub/sat-import/
    Copy to Clipboard Toggle word wrap
  9. 如果您不打算使用挂载的二进制 DVD ISO 镜像,请卸载并删除挂载点:

    # umount /mnt/iso
    # rmdir /mnt/iso
    Copy to Clipboard Toggle word wrap
  10. 为每个 ISO 镜像重复上述步骤,直到将内容 ISO 镜像中的所有数据复制到 /var/www/html/pub/sat-import/ 中。
  11. 确保目录的 SELinux 上下文正确:

    # restorecon -rv /var/www/html/pub/sat-import/
    Copy to Clipboard Toggle word wrap
  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 软件仓库不是由 Content ISO 镜像提供。要在断开连接的 Satellite 中使用 Kickstart 软件仓库,您必须为您要使用的 Red Hat Enterprise Linux 版本下载一个二进制 DVD ISO 文件,并将 Kickstart 文件复制到 Satellite。

流程

  1. 访问红帽客户门户网站 https://access.redhat.com/ 并登录。
  2. 在窗口的左上角,单击 Downloads
  3. 找到并点击要使用的 Red Hat Enterprise Linux 版本,如 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 镜像复制到 Satellite 服务器。
  6. 在 Satellite 服务器上,创建一个挂载点,并将 ISO 镜像临时挂载到该位置:

    # mkdir /mnt/iso
    # mount -o loop rhel-8.1-x86_64-dvd.iso /mnt/iso
    Copy to Clipboard Toggle word wrap
  7. 为 AppStream 和 BaseOS 创建 Kickstart 目录:

    # mkdir /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart
    
    # mkdir /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart
    Copy to Clipboard Toggle word wrap

    请注意,如果您使用 Red Hat Enterprise Linux 7,则必须在一个目录 /var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/x86_64/kickstart/ 中创建并完成所有步骤。

  8. 在列出文件 /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/listing/var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/listing 中,使用新行附加 kickstart

    kickstart
    Copy to Clipboard Toggle word wrap
  9. 在列出文件 /var/www/html/pub/sat-import/content/dist/rhel8/listing 中,附加与新行一起使用的操作系统 ISO 的版本号。例如,对于 RHEL 8.1 二进制 ISO,使用新行添加 8.1

    8.1
    Copy to Clipboard Toggle word wrap
  10. 从 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
    Copy to Clipboard Toggle word wrap

    请注意,对于 BaseOS,还必须复制 /mnt/iso/images/ 目录的内容。

  11. 从 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
    Copy to Clipboard Toggle word wrap
  12. 打开 /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo 文件进行编辑。
  13. [general] 部分中,进行以下更改:

    • packagedir = AppStream/Packages 更改为 packagedir = Packages
    • repository = AppStream 更改为 repository = .
    • variant = AppStream 改为 variant = BaseOS
    • variant = AppStream,BaseOS 改为 variants = BaseOS
  14. [tree] 部分中,将 variant = AppStream,BaseOS 改为 variants = BaseOS
  15. [variant-BaseOS] 部分中,进行以下更改:

    • packages = BaseOS/Packages 更改为 packages = Packages
    • repository = BaseOS 更改为 repository = .
  16. 删除 [media][variant-AppStream] 部分。
  17. 保存并关闭该文件。
  18. 验证 /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
    Copy to Clipboard Toggle word wrap
  19. 打开 /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo 文件进行编辑。
  20. [general] 部分中,进行以下更改:

    • packagedir = AppStream/Packages 更改为 packagedir = Packages
    • repository = AppStream 更改为 repository = .
    • variant = AppStream,BaseOS 改为 variants = AppStream
  21. [tree] 部分中,将 variant = AppStream,BaseOS 改为 variants = AppStream
  22. [variant-AppStream] 部分中,进行以下更改:

    • packages = AppStream/Packages 更改为 packages = Packages
    • repository = AppStream 更改为 repository = .
  23. 删除文件中的以下部分:[checksums] , [images-x86_64], [images-xen], [media], [stage2], [variant-BaseOS]
  24. 保存并关闭该文件。
  25. 验证 /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
    Copy to Clipboard Toggle word wrap
  26. 如果您不打算使用挂载的二进制 DVD ISO 镜像,请卸载并删除目录:

    # umount /mnt/iso
    # rmdir /mnt/iso
    Copy to Clipboard Toggle word wrap
  27. 在 Satellite Web UI 中,启用 Kickstart 存储库。

附录 D. 将 Satellite 恢复到红帽 CDN 下载内容

如果您的环境从断开连接断开连接,您可以重新配置一个断开连接的 Satellite 来直接从 Red Hat 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

现在,Satellite 服务器被配置为在下次同步存储库时从 CDN 下载内容。

附录 E. 将内容 ISO 导入到连接的 Satellite 中

即使 Satellite 服务器可以直接连接到红帽客户门户网站,您可以从本地挂载的内容 ISO 执行初始同步。从内容 ISO 完成初始同步后,您可以通过网络连接切回到下载内容。要达到此目的,请从红帽客户门户网站下载 Red Hat Satellite 的内容 ISO,并将其导入到 Satellite 服务器中。对于带宽限制的位置,使用 On Demand后台 下载策略可能比下载和导入内容 ISO 更高效。

重要

您只能为 Red Hat Enterprise Linux 8 导入内容 ISO 镜像,因为来自 CDN 的 repodata checksum 与 Red Hat Enterprise Linux 7 的内容 ISO 镜像中的 repodata checksum 不匹配。

请注意,如果您同步了 Red Hat Enterprise Linux ISO,Red Hat Enterprise Linux 的所有次版本也会同步。您需要 Satellite 上有足够的存储来考虑这一点。

重要

如果您的 Satellite 服务器连接到互联网,则不需要此部分。

这个示例步骤从内容 ISO 镜像执行 Red Hat Enterprise Linux 8 存储库的第一个同步。

流程

  1. 登录到红帽客户门户 https://access.redhat.com/
  2. 在窗口的左上角,单击 Downloads 并选择 Red Hat Satellite
  3. 点 Content ISOs 选项卡。本页列出了您的订阅中所有可用的产品。
  4. 单击产品名称的链接,如 RHEL 8 (x86_64),以显示下载 ISO 镜像的链接。
  5. 下载 ISO 镜像。
  6. 在服务器上,创建一个目录来充当所有所需 Satellite 内容 ISO 镜像的临时存储。这个示例使用 /tmp/isos/rhel8

    # mkdir -p /tmp/isos/rhel8
    Copy to Clipboard Toggle word wrap
  7. 在工作站中,将 ISO 文件复制到 Satellite 服务器中:

    $ scp ~/Downloads/iso_file root@satellite.example.com:/tmp/isos/rhel8
    Copy to Clipboard Toggle word wrap
  8. 在 Satellite 服务器上,创建一个目录来充当 ISO 的挂载点:

    # mkdir /mnt/iso
    Copy to Clipboard Toggle word wrap
  9. 创建用于存储 ISO 镜像的工作目录:

    # mkdir /mnt/rhel8
    Copy to Clipboard Toggle word wrap
  10. 临时挂载第一个 ISO 镜像:

    # mount -o loop /tmp/isos/iso_file /mnt/iso
    Copy to Clipboard Toggle word wrap
  11. 将第一个 ISO 的内容递归复制到工作目录中:

    # cp -ruv /mnt/iso/* /mnt/rhel8/
    Copy to Clipboard Toggle word wrap
  12. 卸载 ISO 镜像:

    # umount /mnt/iso
    Copy to Clipboard Toggle word wrap
  13. 为每个 ISO 重复上述步骤,直到将内容 ISO 镜像中的所有数据复制到 /mnt/rhel8 中。
  14. 如果需要,删除用作挂载点的空目录:

    # rmdir /mnt/iso
    Copy to Clipboard Toggle word wrap
  15. 如果需要,删除临时工作目录及其内容以重新获得空间:

    # rm -rf /tmp/isos/
    Copy to Clipboard Toggle word wrap
  16. 设置目录及其内容的所有者和 SELinux 上下文,使其与 /var/lib/pulp 相同:

    # chcon -R --reference /var/lib/pulp  /mnt/rhel8/
    # chown -R apache:apache /mnt/rhel8/
    Copy to Clipboard Toggle word wrap
  17. 创建或编辑 /etc/pulp/content/sources/conf.d/local.conf 文件。将以下文本附加到文件中:

    [rhel-8-server]
    enabled: 1
    priority: 0
    expires: 3d
    name: Red Hat Enterprise Linux 8
    type: yum
    base_url: file:///mnt/rhel8/content/dist/rhel/server/8/x86_64/os/
    Copy to Clipboard Toggle word wrap

    base_url 路径在内容 ISO 中可能会有所不同。base_url 中指定的目录必须包含 repodata 目录,否则同步会失败。要同步多个存储库,请在配置文件 /etc/pulp/content/sources/conf.d/local.conf 中为每个存储库创建一个单独的条目。

  18. 在 Satellite Web UI 中,进入到 Content > Red Hat Repositories 并启用以下软件仓库:

    • Red Hat Enterprise Linux 8 for x86_64 - BaseOS RPMs 8
    • Red Hat Enterprise Linux 8 for x86_64 - AppStream RPMs 8
  19. Content > Sync Status 下,选择要同步的存储库,然后点 Synchronize Now

请注意,Satellite Web UI 并不指明正在使用的源。如果本地源出现问题,Satellite 通过网络拉取内容。要监控进程,在 Satellite 上输入以下命令:

# journalctl -f -l SYSLOG_IDENTIFIER=pulp | grep -v worker[\-,\.]heartbeat
Copy to Clipboard Toggle word wrap

以上命令会显示交互式日志。首先,Satellite 服务器连接到红帽客户门户以下载和处理存储库元数据。然后载入本地存储库。如果出现任何错误,请在 Satellite Web UI 中取消同步并验证您的配置。

同步成功后,您可以通过从 /etc/pulp/content/sources/conf.d/local.conf 中删除其条目来分离本地源。

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部