安装 Red Hat Trusted Application Pipeline


Red Hat Trusted Application Pipeline 1.4

了解如何在集群中安装 Red Hat Trusted Application Pipeline。

Red Hat Customer Content Services

摘要

本文档提供有关如何在集群中安装 Red Hat Trusted Application Pipeline 的信息。

前言

Red Hat Trusted Application Pipeline (RHTAP)不是单个产品。相反,它是组合成构建高度自动化、可自定义和安全的平台的集合,用于构建应用程序。

默认情况下,RHTAP 包括以下产品:

您可以在我们的 发行注记 的兼容和支持列表中,准确看到这些产品的哪些版本 RHTAP 支持。

注意

Red Hat Trusted Application Pipeline 支持这个默认产品组合的许多替代方案。之后在安装过程中,本文档介绍了如何自定义部署以满足您的需要。

因为完全可正常工作的 RHTAP 实例涉及上面列出的所有产品,因此安装 RHTAP 会采取一些工作。但是,我们使用作为容器镜像打包的安装程序工具自动化这个过程。

请注意,RHTAP 安装程序不是管理器:它不支持升级。安装程序生成 RHTAP 的第一个部署。但在安装后,您必须单独管理 RHTAP 中的每个产品。虽然安装程序可以多次运行,但在手动更改产品配置后,可能会无法预测。

此外,安装程序部署的产品还适用于生产环境,但它们的大小适用于概念验证或非常小的团队。对于较大的团队,最可能需要手动重新配置产品,并应按照每个产品记录的步骤进行。

最后,请注意,RHTAP 订阅只包含 Red Hat Developer Hub、Red Hat Trusted Artifact Signer、Red Hat Trusted Profile Analyzer 和 Red Hat Enterprise Contract。RHTAP 安装程序还会部署上面列出的所有其他产品。但是要使用它们,您必须购买一个 OpenShift Plus 的订阅。

安装步骤

要使用安装程序安装 RHTAP,您必须完成以下步骤。

  1. 为 RHTAP 配置 GitHub
  2. (可选)自定义安装
  3. 在集群中安装 RHTAP
  4. (可选)在安装后完成集成

以下文档页面详细介绍了每个安装步骤。

第 1 章 为 RHTAP 配置 GitHub

RHTAP 使用 GitHub 来验证用户。RHTAP 还使用 GitHub 作为它生成的存储库的目的地。

要启用此功能,在集群中安装 RHTAP 之前,您必须首先完成以下步骤来为 RHTAP 配置 GitHub:

  1. 创建 GitHub 个人访问令牌
  2. 创建 GitHub 应用程序
  3. (可选)用于软件目录

1.1. 创建 GitHub 个人访问令牌

在完成此步骤前,您需要拥有可用于 RHTAP 的 GitHub 组织。这可以是您创建的新组织、您已拥有的组织,或者您从当前管理员请求所有权的现有组织。安装 RHTAP 后,此 GitHub 组织可让 RHTAP 用户为其应用程序创建 git 存储库。

一旦您拥有一个机构,就可以按照此流程中的步骤创建个人访问令牌。您需要此令牌来运行后续步骤中涵盖的命令。

先决条件

  • GitHub 机构的所有权

流程

  1. 进入 GitHub 中的 Developer Settings 页面。
  2. 在左侧面板中,在 个人访问令牌 下选择 Tokens (classic)
  3. 在页面横幅下的 Generate new token 下拉菜单中选择 Generate new token (classic)。您可能需要进行身份验证才能继续。
  4. 输入名称,选择过期日期,并在 Select scopes 下选择 repo (这应该自动包含 repo: status 的所有范围到 security_events)。
  5. 选择 Generate token。GitHub 将您重定向到一个新页面,其中您的令牌可见。创建一个名为 private.env 的新文件,并将此令牌保存到该文件中。

    注意

    private.env 对于安装成功至关重要。请确定您创建此文件并将其保存在安全位置。

1.2. 为 RHTAP 创建 GitHub 应用程序

为 RHTAP 创建 GitHub 应用程序使开发人员能够向 Red Hat Developer Hub 进行身份验证,这是其可以与 RHTAP 交互的用户界面(UI)。此 GitHub 应用还允许 RHTAP 访问托管在 GitHub 上的开发人员源代码。

请记住,您必须在您用于 Red Hat Trusted Application Pipeline 的 GitHub 组织中创建并安装新应用程序。然后,RHTAP 可以在该机构中创建新存储库,以充当其构建的应用程序的源代码。

另请注意,这个过程会指示您拉取并开始运行安装程序容器镜像。此安装程序允许您自动执行剩余的安装过程。

先决条件

  • GitHub 个人访问令牌(来自上一流程)
  • 您工作站上的容器管理工具,如 PodmanDocker
  • registry.redhat.io的有效凭证
  • ClusterAdmin 对 OpenShift 集群的访问权限

流程

  1. 在 CLI 中,向 registry.redhat.io 进行身份验证。

    $ podman login registry.redhat.io
    Copy to Clipboard Toggle word wrap
  2. 拉取安装程序镜像。

    $ podman pull registry.redhat.io/rhtap-cli/rhtap-cli-rhel9:latest
    Copy to Clipboard Toggle word wrap
  3. 启动 rhtap-cli 容器镜像。

    $ podman run \
            -it \
            --entrypoint=bash \
            --publish 8228:8228 \
            --rm \
            rhtap-cli:latest
    Copy to Clipboard Toggle word wrap
  4. 在运行的容器中,以 ClusterAdmin 用户身份登录 OpenShift 集群。

    bash-5.1$ oc login https://api.<input omitted>.openshiftapps.com:443 --username cluster-admin --password <input omitted>
    Copy to Clipboard Toggle word wrap
  5. 运行以下命令以开始创建 GitHub 应用。将 $GH_TOKEN 替换为您在上一步中创建的令牌。将 $GH_ORG_NAME 替换为您要用于 RHTAP 的 GitHub 组织的名称。将 $GH_APP_NAME 替换为您要用于应用程序的名称。

    bash-5.1$ rhtap-cli integration github-app --create --token="$GH_TOKEN" --org="$GH_ORG_NAME" $GH_APP_NAME
    Copy to Clipboard Toggle word wrap
  6. 此命令的输出包括 URL。在工作站上使用 Web 浏览器来导航到此地址。出现提示时,单击 Create your GitHub App
  7. 按钮将您重定向到 GitHub。如有必要,在 GitHub 中进行身份验证以确认访问。然后,单击 Create GitHub App for <your organization name>
  8. 您的浏览器中会显示一条新消息,告诉您已成功创建该应用。单击超链接文本,在您的 GitHub 组织中安装新应用。
  9. 该链接会将您重定向到 GitHub。单击绿色 安装 按钮。
  10. 选择您用于 RHTAP 的组织。
  11. 出现提示时,选择 All repositories,以便 RHTAP 可以在您的机构中创建新存储库。单击绿色 安装 按钮。

    注意

    您可能希望将此 GitHub 页面保持打开,但您可以在不中断安装的情况下关闭它。在页面横幅中,您可以在安装后使用链接来访问 RHTAP (以 https://backstage-developer-hub-rhtap…​开始)。

1.3. (可选)用于查找 RHTAP 目录存储库

RHTAP 为用户提供一组软件模板,供开发人员更快地构建应用程序。您可能希望自定义这些模板,根据您的用户的特定需求对其进行定制。要启用此自定义,您必须分叉包含默认模板的存储库。在安装过程的后续阶段中,您可以将 RHTAP 配置为在自定义分叉中查找软件模板,而不是在默认存储库中。

流程

  1. 在 Web 浏览器中,导航到 RHTAP 软件目录存储库
  2. 在页面标题下,选择 Fork 并分叉存储库。

    1. 取消选中"仅复制 主分支 "的框。
  3. fork 就绪后,复制其地址。标签,并将它保存到 private.env 中。
  4. 在新分叉中,在横幅下,单击 main 来打开下拉菜单。在 Tags 下,选择与您正在使用的 RHTAP 版本对应的版本。

    注意

    务必不时更新您的分叉,因此来自上游存储库的更新可以让您的 RHTAP 实例受益。

第 2 章 自定义安装

RHTAP 安装程序部署了一个产品网络,它们协同工作以形成安全、自动化的 CI/CD 平台。但是,您可能已安装了其中的两个产品: Advanced Cluster Security (ACS)和 Quay。如果您已有其中任何一个产品的实例,您可以将它们集成到 RHTAP 的安装中。集成可节省时间并防止数据丢失。如果您有这些产品的实例,且没有 集成它们,则安装程序只在新命名空间中创建新实例。

此外,您还可使用 RHTAP 部署中的某些替换方式替换三个产品。下表为这些产品命名、其目的以及您可以使用的其他产品。

Expand
产品用途可能的替代

GitHub

源代码存储库

  • GitLab
  • Bitbucket

Tekton

CI 管道

  • Jenkins
  • GitHub 操作
  • GitLab CI

CI 管道替换符合 SLSA 构建 L2。只有 Tekton 符合构建 L3。

Quy

用于工件的 registry

Artifactory

请注意,当您将替代供应商用于 Git、CI 和 registry 集成时,RHTAP 还会在 Red Hat Developer Hub 中为这些产品安装插件。大多数都是技术预览或社区插件。这意味着 替换默认产品可能会带来安全风险,不建议在生产环境中使用。如需更多信息,请参阅我们的 发行注记 中的插件表和有关插件的 RHDH 文档

另外请注意,要自定义安装,您必须在 rhtap-cli 容器中运行所有相关命令,该容器以 ClusterAdmin 用户身份登录集群。

以下流程解释了如何通过集成预先存在的实例和外部产品来自定义 RHTAP 安装。

2.1. (可选)集成 ACS

先决条件

  • 管理员对 ACS 实例的访问权限

流程

  1. 在集成 ACS 实例前,您需要 API 令牌和中央端点 URL。

    1. 按照 此处 前提条件的说明创建 API 令牌。将令牌保存到 private.env 中。
    2. 按照 这里 的说明来配置您的端点。将 URL 保存到 private.env 中。
  2. rhtap-cli 容器中,运行 integration 命令。将 $ACS_ENDPOINT 替换为您的 ACS 中央端点 URL,将 $ACS_TOKEN 替换为您的 ACS API 令牌。

    bash-5.1$ rhtap-cli integration acs --endpoint="$ACS_ENDPOINT" --token="$ACS_TOKEN"
    Copy to Clipboard Toggle word wrap

2.2. (可选)集成 Quay

在此过程中,您可以从 Quay 实例获取两个值。然后,您可以将实例集成到 RHTAP 中。

先决条件

注意

我们建议在 Quay 中使用 机器人帐户 进行此流程。这样,一旦安装了 RHTAP,多个用户可以向 Quay 中的机构命名空间进行身份验证。

流程

  1. 在您的 Web 浏览器中,登录 Quay。在横幅右侧,选择您的用户名并从下拉菜单中选择 帐户设置
  2. 在您的用户设置页面中,在 Docker CLI Password 下选择 Generate Encrypted Password。在弹出窗口中输入您的密码进行验证。
  3. 接下来,仍在弹出窗口中,选择 Docker Configuration > View [username]-auth.json。复制字符串,但不使用引号,如下所示 "auth":
  4. private.env 文件中,使用以下格式的标签并创建 Docker 配置值,使用您的用户名和 auth 令牌,其中 appropriate: {"auths": {"quay.io": {"auth": "[auth token]","email": ""}}}
  5. 返回到 Quay UI,返回到 默认的 Repositories 页面。在右侧,在 Users 和 Organizations 下选择您要用于 RHTAP 的 Quay 组织。
  6. 在左侧的标签页中,选择 Applications
  7. 单击 Create New Application。将您的应用程序命名为。
  8. 点应用程序的名称。
  9. 在左侧的选项卡中,选择 Generate Token
  10. 从令牌权限选项中,选择 View all visible repositories
  11. Generate Access Token。
  12. 单击 Authorize Applicaiton
  13. UI 显示访问令牌。另外,标记此令牌并将其保存到 private.env 中。
  14. rhtap-cli 容器中,运行以下命令来集成 Quay 实例。将 $QUAY_DOCKERCONFIGJSON 替换为 Docker 配置值。将 $QUAY_TOKEN 替换为您刚才生成的令牌。将 $QUAY_URL 替换为 Quay 实例的地址(如果您还没有在集群中安装 Quay,则为 https://quay.io)。https://quay.io

    bash-5.1$ rhtap-cli integration quay --dockerconfigjson='$QUAY_DOCKERCONFIGJSON' --token="$QUAY_TOKEN" --url="$QUAY_URL"
    Copy to Clipboard Toggle word wrap
注意

确保将 $QUAY_DOCKERCONFIGJSON 值放在单引号内。

2.3. (可选)集成 Bitbucket

如果要使用 Bitbucket 云来托管您的源代码,请完成以下步骤。

先决条件

  • Bitbucket 用户名;查找您的用户名:

    1. 在 Bitbucket 中的边栏上,单击您的个人资料图片,然后选择 View profile
    2. 在侧边栏中,选择 Settings。系统在帐户设置中显示您的用户名。
  • 应用程序密码

流程

  1. rhtap-cli 容器中,运行 integration 命令。将 $BB_USERNAME 替换为您的 Bitbucket 用户名,将 $BB_TOKEN 替换为您的 Bitbucket 访问令牌。如果您要与自定义 Bitbucket 主机集成,请将 $BB_URL 替换为您的 Bitbucket 主机 URL。如果使用默认的 bitbucket.org 主机,您可以删除 the- host 选项。

    bash-5.1$ rhtap-cli integration bitbucket --username="$BB_USERNAME" --app-password="$BB_TOKEN" --host="$BB_URL"
    Copy to Clipboard Toggle word wrap

2.4. (可选)GitHub Actions

如果要使用 GitHub Actions 作为替代 CI 供应商,则不需要在安装前完成任何其他步骤。您所做的 GitHub 应用程序为 RHTAP 启用此 CI 功能。

2.5. (可选)集成 GitLab

如果要使用 GitLab 托管源代码,或作为 CI 供应商,请完成以下步骤。

先决条件

  • 您必须具有创建和管理 GitLab 作业所需的权限。
  • 您必须具有 GitLab API 令牌
  • 如果您计划与自定义 GitLab 主机集成,则必须有一个主机 URL。如果没有指定 GitLab 主机 URL,系统默认为 gitlab.com

流程

  1. rhtap-cli 容器中,运行 integration 命令。将 $GL_API_TOKEN 替换为 GitLab API 令牌。如果您要与自定义 GitLab 主机集成,请将 $GL_URL 替换为 GitLab 主机 URL。如果使用默认的 gitlab.com 主机,您可以删除 the- host 选项。

    bash-5.1$ rhtap-cli integration gitlab --token="$GL_API_TOKEN" --host="$GL_URL"
    Copy to Clipboard Toggle word wrap

2.6. (可选)集成 Jenkins

先决条件

  • 您必须具有创建和管理 Jenkins 任务所需的权限。
  • 您必须具有用于访问 Jenkins、Jenkins 用户 ID 和 API 令牌的 URL。

流程

  1. rhtap-cli 容器中,运行 integration 命令。将 $JK_API_TOKEN 替换为您的 Jenkins API 令牌,将 $JK_URL 替换为 Jenkins 实例 URL,$JK_USERNAME 替换为您的 Jenkins 用户 ID。

    bash-5.1$ rhtap-cli integration jenkins --token="$JK_API_TOKEN" --url="$JK_URL" --username="$JK_USERNAME"
    Copy to Clipboard Toggle word wrap

2.7. (可选)集成 JFrog Artifactory

先决条件

  • 对 Artifactory 实例的管理员访问权限
  • 要与 RHTAP 搭配使用的 Artifactory 中的存储库

流程

  1. 在 Artifactory UI 中,点您要使用的存储库旁边的绿色 设置客户端/CI Tool 按钮。
  2. 选择 Docker Client
  3. 按照 UI 说明在 CLI 中进行身份验证。

    1. UI 生成令牌以用作密码。确保将其保存在 private.env 中。
    2. 当您在 CLI 中登录 JFrog 时,您应该会收到一条消息,指出您的密码已存储在一个位置,如 ~/.docker/config.json。如果没有看到此消息,则此流程中的后续步骤解释了什么操作。
  4. rhtap-cli 容器中,运行 integration 命令。将 AF_URL 的值设置为实例的 URL (如 "https://myusername.jfrog.io")。将 AF_DOCKERCONFIGJSON 的值设置为存储您的密码的文件内容。将 AF_API_TOKEN 的值设置为 JFrog 生成的令牌。

    bash-5.1$ rhtap-cli integration artifactory --url="$AF_URL" --dockerconfigjson='$AF_DOCKERCONFIGJSON' --token="$AF_API_TOKEN"
    Copy to Clipboard Toggle word wrap
注意

确保将 $AF_DOCKERCONFIGJSON 值放在单引号内。另外,如果您的 CLI 没有打印 config.json 文件的信息,您可以按如下所示创建其内容: { "auths": { "<URL for your JFrog instance>":{ "auth": "<base64 format of username:password>", "email": "" }}}

第 3 章 在集群中安装 RHTAP

配置了 GitHub 后,就可以在集群中安装 RHTAP。实际安装过程非常简单。

但是,如果您执行了 任何 可选流程,则必须在安装 RHTAP 前自定义名为 config.yaml 的文件。这并不困难,

以下流程解释了如何完成这两个进程。

3.1. (可选)自定义 config.yaml

如果您分叉了软件目录,或运行可选 的集成 命令,您应该自定义 config.yaml,它位于安装程序的主目录中。自定义此文件可确保 RHTAP 安装程序能够正确响应您在这些过程中所做的工作。

先决条件

  • 正在运行的安装程序容器,以 ClusterAdmin 用户身份登录到您的 OCP 集群。

流程

  1. rhatp-cli 容器中,创建 config.yaml 文件的副本:

    bash-5.1$ cp config.yaml my-config.yaml
    Copy to Clipboard Toggle word wrap
  2. 使用 vi 文本编辑器,根据您已完成的可选步骤更改 /rhtap-cli/config.yaml 的内容:

    bash-5.1$ vi my-config.yaml
    Copy to Clipboard Toggle word wrap
    1. 如果您分叉了软件目录,请将 catalogURL 更改为 fork 的 URL,如下例所示。

      redHatDeveloperHub:
            enabled: &rhdhEnabled true
            namespace: *installerNamespace
            properties:
              catalogURL: https://github.com/<your username>/tssc-sample-templates/blob/release/all.yaml
      Copy to Clipboard Toggle word wrap
    2. 如果您运行 rhtap-cli 集成 命令,请将相关 启用字段的值 更改为 false。如果您将替代主机用于源代码,则不需要此项。但是,您所做的 任何其他 集成都需要在此文件中进行更改。以下示例显示集成预先存在的 ACS 实例所需的更改。

      redHatAdvancedClusterSecurity:
            enabled: &rhacsEnabled false
            namespace: rhtap-acs
      Copy to Clipboard Toggle word wrap
      注意

      如果您试图在产品外集成或预先存在的实例,但没有自定义 config.yaml,RHTAP 仍然安装和使用其默认产品。您必须 自定义 config.yaml 才能使 rhtap-cli 集成 命令生效。

  3. 进行适当的更改后,保存新的 my-config.yaml 文件。

3.2. 使用 rhtap-cli deploy 命令安装 RHTAP

如果您配置了 GitHub,如有必要自定义 config.yaml,则可以安装 RHTAP。

先决条件

  • 正在运行的安装程序容器,以 ClusterAdmin 用户身份登录到您的 OCP 集群。
  • 集群中尚未安装以下 Operator:

    • 高级集群安全性
    • AMQ Streams
    • Crunch-Data PostgreSQL
    • Developer Hub
    • Keycloak
    • OpenShift GitOps
    • OpenShift Pipelines
    • Quy
    • 可信工件签名程序

流程

  1. rhatp-cli 容器中,运行安装命令。如果您没有对 config.yaml 进行任何更改,只需运行 rhtap-cli deploy 即可。但是,如果您 确实 自定义该文件,请运行以下命令,并将 $CONFIG 变量替换为自定义文件的路径。

    注意

    完成安装需要大约十五分钟。

    bash-5.1$ rhtap-cli deploy --config=$CONFIG
    Copy to Clipboard Toggle word wrap
  2. 安装完成后,请确保将 rhtap-cli deploy 命令的输出保存到 private.env 文件中。通过这个输出,您可以访问已安装的新产品实例。
  3. 现在,您可以访问 RHTAP 实例!

    1. 创建 GitHub 应用程序后,您可能已打开新的 GitHub 应用程序页面,如我们的备注所建议。在这种情况下,您可以使用该页面的横幅中的链接访问 RHTAP。
    2. 否则,导航到 Applications 页面上的 Authorized GitHub Apps 选项卡。单击您为 RHTAP 创建的应用程序的名称。同样,在此页面的横幅中,您可以找到访问 RHTAP 的链接,该链接以 https://backstage-developer-hub-rhtap…​ 开始。

第 4 章 安装后集成

安装 RHTAP 后,完成下列任务以确保 RHTAP 正常工作。

4.1. (可选)将 Quay 集成到 ACS

如果您使用自己的 Quay 实例而不是 Quay.io,或者计划在 Quay 中使用私有存储库,您必须将 Quay 集成到 ACS 中。这样可确保 ACS 可以访问您在 Quay 中使用的存储库。

流程

  1. 进入您的 ACS 实例。如果在安装 RHTAP 之前没有 ACS,您可以在 rhtap-cli deploy 命令的输出中找到访问详情,您可以在安装过程结束时将其保存到 ~/install_values.txt 中。
  2. 按照 Red Hat Advanced Cluster Security for Kubernetes 4.6 文档中的说明将 Quay 集成到 ACS 中。





更新于 2025-02-14

法律通告

Copyright © 2025 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

© 2025 Red Hat