安装 Red Hat Trusted Application Pipeline


Red Hat Trusted Application Pipeline 1.3

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

Red Hat Customer Content Services

摘要

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

前言

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

RHTAP 包括以下产品:

为了准确查看这些产品的支持版本,请参考 发行注记 中的兼容性和支持列表。

注意

如果您已有 Quay.io 或 ACS 实例,您可以将它集成到您的 RHTAP 部署中。

因为完全可正常工作的 RHTAP 实例涉及上面列出的所有产品,因此安装 RHTAP 会采取一些工作。但是,我们使用安装程序工具自动化此过程的大部分情况。

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

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

在开始安装前,您必须满足以下先决条件:然后您可以完成所有相关安装步骤。

先决条件

  • ClusterAdmin 通过 CLI 和 Web 控制台访问 OpenShift Container Platform (OCP)集群
  • Helm CLI 工具
  • GitHub 帐户

安装步骤

  1. 安装 rhtap-cli
  2. 为 RHTAP 配置 GitHub
  3. (可选)集成 ACS、Quay 或 Jenkins 的实例
  4. 在集群中安装 RHTAP
  5. (可选)安装后集成

以下文档页面详细介绍了每个安装步骤。如果您有先决条件,您已准备好通过创建 GitHub 个人访问令牌来启动安装过程。

第 1 章 安装 rhtap-cli

为最大程度降低安装 RHTAP 的复杂性,我们创建了一个 CLI 工具来自动执行大部分流程。按照此流程中的说明,使用 rhtap-cli 工具。

先决条件

流程

  1. 在 Web 浏览器中,导航到 rhtap-cli 发行 页面。下载适合您的操作系统的捆绑包文件。
  2. 在 CLI 中,解压捆绑包文件。

    $ cd ~/Downloads
    $ tar -xvzf rhtap-cli_<remaining file name>.tar.gz
    Copy to Clipboard Toggle word wrap
  3. (可选)在 $PATH 的位置移动 rhtap-cli

    $ echo $PATH
    <output omitted>:Users/<username>/bin
    $ mv rhtap-cli Users/<username>/bin/.
    Copy to Clipboard Toggle word wrap

验证

要确保成功安装了 CLI 工具,请运行以下命令:您应该会看到 rhtap-cli 的基本帮助输出。

$ rhtap-cli --help
Copy to Clipboard Toggle word wrap

第 2 章 为 RHTAP 配置 GitHub

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

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

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

以下是每个流程的详细说明。

2.1. 创建 GitHub 个人访问令牌

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

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

先决条件

  • GitHub 帐户
  • 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 将您重定向到一个新页面,其中您的令牌可见。确保在您的文件中标记并保存此令牌。

    注意

    如果您计划完成任何可选流程,我们建议创建一个文件(如 ~/install_values.txt),您可以在其中存储这些程序生成的所有值以及此访问令牌。

2.2. 为 RHTAP 创建 GitHub 应用程序

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

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

先决条件

  • GitHub 机构的所有权
  • GitHub 个人访问令牌(来自上一流程)
  • ClusterAdmin 对 OpenShift 集群的访问权限

流程

  1. 在 Web UI 或 CLI 中,登录到您要安装 RHTAP 的 OpenShift 集群。
  2. 在 CLI 中,运行以下命令来开始创建 GitHub 应用程序。将 $TOKEN 替换为您在上一步中创建的令牌。将 $ORG_NAME 替换为您要用于 RHTAP 的 GitHub 组织的名称。将 $APP_NAME 替换为您要用于应用程序的名称。

    $ rhtap-cli integration github-app --create --token="$TOKEN" --org="$ORG_NAME" $APP_NAME
    Copy to Clipboard Toggle word wrap
  3. 此时应打开一个 Web 浏览器窗口。在该窗口中,单击 Create your GitHub App
  4. 按钮将您重定向到 GitHub。如有必要,在 GitHub 中进行身份验证以确认访问。然后,单击 Create GitHub App for <your organization name>
  5. 这时会显示一条新消息,告诉您已成功创建该应用。单击超链接文本,在您的 GitHub 组织中安装新应用。
  6. 该链接会将您重定向到 GitHub。单击绿色 安装 按钮。
  7. 选择您用于 RHTAP 的组织。
  8. 出现提示时,选择 All repositories,以便 RHTAP 可以在您的机构中创建新存储库。单击绿色 安装 按钮。

    注意

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

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

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

流程

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

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

    注意

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

第 3 章 集成预先存在的部署和外部产品

RHTAP 安装了一个产品网络,它们协同工作以形成安全、自动化的 CI/CD 平台。但是,您可能已安装在集群中的两个产品:高级 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 中。

3.1. (可选)集成 ACS

先决条件

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

流程

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

    1. 按照 此处 前提条件的说明创建 API 令牌。将令牌保存到 ~/install_values.txt 中。
    2. 按照 这里 的说明来配置您的端点。将 URL 保存到 ~/install_values.txt 中。
  2. 在 CLI 中,登录到您要安装 RHTAP 的 OpenShift 集群。
  3. 运行 integration 命令。将 $ENDPOINT 替换为您的 ACS 中央端点 URL,将 $TOKEN 替换为您的 ACS API 令牌。

    rhtap-cli integration acs --endpoint="$ENDPOINT" --token="$TOKEN"
    Copy to Clipboard Toggle word wrap

3.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. ~/install_values.txt 文件中,使用以下格式的标签和创建 Docker 配置值,使用您的用户名和 auth 令牌的适当: {"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 显示访问令牌。还要标记此令牌并将其保存到 ~/install_values.txt 中。
  14. 在 CLI 中,运行以下命令来集成您的 Quay 实例。将 $DOCKERCONFIGJSON 替换为 Docker 配置值。将 $API_TOKEN 替换为您刚才生成的令牌。将 $URL 替换为 Quay 实例的地址(如果您还没有在集群中安装 Quay,则为 https://quay.io)。https://quay.io

    $ rhtap-cli integration quay --dockerconfigjson="$DOCKERCONFIGJSON" --token="$API_TOKEN" --url="$URL"
    Copy to Clipboard Toggle word wrap

3.3. (可选)集成 GitLab

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

先决条件

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

流程

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

    $ rhtap-cli integration gitlab --token="$API_TOKEN" --host="$URL"
    Copy to Clipboard Toggle word wrap

3.4. (可选)集成 Jenkins

先决条件

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

流程

  1. 在 CLI 中,运行 integration 命令。将 $API_TOKEN 替换为您的 Jenkins API 令牌,将 $URL 替换为 Jenkins 实例 URL,$USERNAME 替换为您的 Jenkins 用户 ID。

    $ rhtap-cli integration jenkins --token="$API_TOKEN" --url="$URL" --username="$USERNAME"
    Copy to Clipboard Toggle word wrap

3.5. (可选)集成 JFrog Artifactory

先决条件

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

流程

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

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

    $ rhtap-cli integration artifactory --url="$ARTIFACTORY_URL" --dockerconfigjson="$ARTIFACTORY_DOCKERCONFIGJSON" --token="$ARTIFACTORY_API_TOKEN"
    Copy to Clipboard Toggle word wrap
注意

如果您的 CLI 没有打印关于 config.json 文件的信息,您可以按如下方式创建其内容:{ "auths": { "<URL for your JFrog instance>":{ "auth": "<base64 format of username:password>", "email": "" }}}

3.6. (可选)集成 Bitbucket

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

先决条件

  • 您必须具有 Bitbucket 用户名。查找用户名:

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

流程

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

    $ rhtap-cli integration bitbucket --username="$username" --app-password="$access_token" --host="$URL"
    Copy to Clipboard Toggle word wrap

第 4 章 在集群中安装 RHTAP

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

但是,如果您 fork了软件目录,或者集成 ACS 或 Quay,您必须首先自定义名为 config.yaml 的文件。这并不困难。

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

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

如果您 fork了软件目录,或者集成 ACS 或 Quay,您应该自定义 config.yaml,它被默认嵌入在 rhtap-cli 中。自定义此文件可确保 RHTAP 安装程序可以正确响应您对这些程序所做的工作。

流程

  1. 在 CLI 中,创建一个新目录。

    $ mkdir tmp
    Copy to Clipboard Toggle word wrap
  2. 将安装图表提取到新目录中。

    $ rhtap-cli installer --extract=tmp
    Copy to Clipboard Toggle word wrap
  3. 创建该目录中现在存在的 config.yaml 的副本。

    $ cp tmp/config.yaml tmp/my-config.yaml
    Copy to Clipboard Toggle word wrap
  4. 使用您的首选文本编辑器,根据您完成的可选步骤更改文件内容:

    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. 如果您集成了 ACS 或 Quay,请将相关 启用字段的值 更改为 false。以下示例显示您需要对 ACS 所做的更改。

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

      如果您尝试集成 ACS 或 Quay,但没有自定义 config.yaml,RHTAP 仍会安装和使用这些产品的新实例。您必须 自定义 config.yaml 才能使 rhtap-cli 集成 命令生效。

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

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

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

先决条件

  • 您必须已以 ClusterAdmin 用户身份登录到 OCP 集群。
  • 您必须确保集群中已安装了以下 Operator:

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

流程

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

    注意

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

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

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

第 5 章 安装后集成

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

5.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.5 文档中的说明将 Quay 集成到 ACS 中。

5.2. 其他集成

如果您将其他工具集成到 RHTAP 中,您必须配置它们,以便它们可以运行 RHTAP 提供的构建管道:

Expand
如果您集成然后

Bitbucket

请参阅 设置 Bitbucket 以了解安全集成 文档。

Jenkins

查看 为安全集成设置 Jenkins 文档。





更新于 2024-12-16

法律通告

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

© 2025 Red Hat