为 Red Hat Developer Hub 安装 Ansible 插件


Red Hat Ansible Automation Platform 2.4

为 Red Hat Developer Hub 安装和配置 Ansible 插件

Red Hat Customer Content Services

摘要

本指南介绍了如何为 Red Hat Developer Hub 安装和配置 Ansible 插件,以便用户可以了解 Ansible,探索策展的集合,以及开发自动化项目。

前言

感谢您对 Red Hat Ansible Automation Platform 的关注。Ansible Automation Platform 是一个商业产品,它可以帮助团队通过增加控制、知识、协调基于 Ansible 的环境来更好地管理多阶的复杂部署环境。

本指南论述了如何为 Red Hat Developer Hub 安装 Ansible 插件。本文档已更新,以包含 Ansible Automation Platform 最新版本的信息。

对红帽文档提供反馈

如果您对本文档有任何改进建议,或发现错误,请通过 https://access.redhat.com 联系技术支持来创建一个请求。

第 1 章 Red Hat Developer Hub 的 Ansible 插件

1.1. Red Hat Developer Hub

Red Hat Developer Hub (RHDH)充当一个开源开发人员平台,旨在构建开发人员门户。

1.2. Red Hat Developer Hub 的 Ansible 插件

Red Hat Developer Hub 的 Ansible 插件提供了一个 Ansible 优先的红帽开发人员 Hub 用户体验,简化了所有技能级别的 Ansible 用户的自动化体验。Ansible 插件提供策展的内容和功能,以加速 Ansible 参与并简化整个机构中 Ansible 用例的采用过程。

Ansible 插件提供:

  • 自定义主页,以及为 Ansible 用户量身定制的导航。
  • 策展 Ansible 学习路径,帮助用户熟悉 Ansible。
  • 用于创建 Ansible playbook 和集合项目的软件模板,遵循最佳实践。
  • 使用建议配置支持开发环境和工具的链接。

1.3. 架构

Red Hat Developer Hub 架构的 Ansible 插件

第 2 章 在 OpenShift Container Platform 中使用 Helm chart 安装 Ansible 插件

以下流程描述了如何使用 Helm Chart 在 Red Hat OpenShift Container Platform 上安装 Red Hat Developer Hub 实例中的 Ansible 插件。

工作流如下:

  1. 下载 Ansible 插件文件。
  2. 在 OpenShift 集群中创建插件 registry,以托管 Ansible 插件。
  3. 在 Helm Chart 中添加插件。
  4. 创建自定义 ConfigMap。
  5. 将自定义 ConfigMap 添加到 Helm Chart 中。
  6. 根据所需和可选配置步骤编辑自定义 ConfigMap 和 Helm Chart。

    注意

    您可以在每次更新到配置后保存对 Helm 和 ConfigMap 的更改。您不必在单个会话中对这些文件进行所有更改。

2.1. 先决条件

2.3. 下载 Ansible 插件文件

  1. Red Hat Ansible Automation Platform 产品软件下载页面 下载 插件的最新 .tar 文件。文件名格式为 ansible-backstage-rhaap-bundle-x.y.z.tar.gz。替换 Ansible 插件发行版本,如 1.0.0,如 x.y.z
  2. 在本地机器上创建一个目录来存储 .tar 文件。

    $ mkdir /path/to/<ansible-backstage-plugins-local-dir-changeme>
  3. 设置环境变量($DYNAMIC_PLUGIN_ROOT_DIR)来代表目录路径。

    $ export DYNAMIC_PLUGIN_ROOT_DIR=/path/to/<ansible-backstage-plugins-local-dir-changeme>
  4. ansible-backstage-rhaap-bundle-<version-number>.tar.gz 内容提取到 $DYNAMIC_PLUGIN_ROOT_DIR

    $ tar --exclude='*code*' -xzf ansible-backstage-rhaap-bundle-x.y.z.tar.gz -C $DYNAMIC_PLUGIN_ROOT_DIR

    替换 Ansible 插件发行版本,如 1.0.0,如 x.y.z

验证

运行 ls 以验证提取的文件是否在 $DYNAMIC_PLUGIN_ROOT_DIR 目录中:

$ ls $DYNAMIC_PLUGIN_ROOT_DIR
ansible-plugin-backstage-rhaap-x.y.z.tgz
ansible-plugin-backstage-rhaap-x.y.z.tgz.integrity
ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
ansible-plugin-backstage-rhaap-backend-x.y.z.tgz.integrity
ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz.integrity

具有 .integrity 文件类型的文件包含插件 SHA 值。SHA 值在插件配置过程中使用。

2.4. 为 Ansible 插件创建 registry

在 OpenShift 集群中设置 registry 以托管 Ansible 插件,并使其可用于在 Red Hat Developer Hub (RHDH)中安装。

流程

  1. 使用凭证登录到 OpenShift Container Platform 实例,以创建新应用程序。
  2. 打开 Red Hat Developer Hub OpenShift 项目。

    $ oc project <YOUR_DEVELOPER_HUB_PROJECT>
  3. 运行以下命令,在 OpenShift 集群中创建插件 registry 构建。

    $ oc new-build httpd --name=plugin-registry --binary
    $ oc start-build plugin-registry --from-dir=$DYNAMIC_PLUGIN_ROOT_DIR --wait
    $ oc new-app --image-stream=plugin-registry

验证

要验证 plugin-registry 是否已成功部署,请在 OpenShift Web 控制台中的 Red Hat Developer Hub 应用程序的 Developer 视角中打开 Topology 视图。

  1. 点插件 registry 查看日志。

    Developer Perspective (开发者视角)

    (1)开发人员 hub 实例

    (2)插件 registry

  2. 单击 terminal 选项卡,再登录容器。
  3. 在终端中,运行 ls 以确认 .tar 文件位于插件 registry 中。

    ansible-plugin-backstage-rhaap-x.y.z.tgz
    ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
    ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz

    版本号和文件名可能会有所不同。

2.5. 所需的配置

2.5.1. 添加 Ansible 插件配置

  1. 在 OpenShift Developer UI 中,导航到 Helmdeveloper-hubActionsUpgradeYaml view
  2. 更新 Helm Chart 配置,以在 Red Hat Developer Hub 实例中添加动态插件。在 YAML 文件中的 plugins 部分,添加您要启用的动态插件。

    global:
      ...
        plugins:
          - disabled: false
            integrity: <SHA512 Integrity key for ansible-plugin-backstage-rhaap plugin>
            package: 'http://plugin-registry:8080/ansible-plugin-backstage-rhaap-x.y.z.tgz'
            pluginConfig:
              dynamicPlugins:
                frontend:
                  ansible.plugin-backstage-rhaap:
                    appIcons:
                      - importName: AnsibleLogo
                        name: AnsibleLogo
                    dynamicRoutes:
                      - importName: AnsiblePage
                        menuItem:
                          icon: AnsibleLogo
                          text: Ansible
                        path: /ansible
          - disabled: false
            integrity: <SHA512 Integrity key for ansible-plugin-scaffolder-backend-module-backstage-rhaap plugin>
            package: >-
              http://plugin-registry:8080/ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
            pluginConfig:
              dynamicPlugins:
                backend:
                  ansible.plugin-scaffolder-backend-module-backstage-rhaap: null
          - disabled: false
            integrity: <SHA512 Integrity key for ansible-plugin-backstage-rhaap-backend plugin>
            package: >-
              http://plugin-registry:8080/ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
            pluginConfig:
              dynamicPlugins:
                backend:
                  ansible.plugin-backstage-rhaap-backend: null
  3. package 部分中,将插件文件名中的 x.y.z 替换为 Ansible 插件的正确版本号。
  4. 对于每个 Ansible 插件,使用对应的 .integrity 文件内容更新完整性值。
  5. 单击 Upgrade

    开发人员 hub pod 重启并安装了插件。

验证

要验证插件是否已安装,请打开 install-dynamic-plugin 容器日志,并检查 Red Hat Developer Hub 中是否可以看到 Ansible 插件:

  1. 在 OpenShift Web 控制台中,打开 Red Hat Developer Hub 应用程序的 Developer 视角。
  2. 选择 Topology 视图。
  3. 选择 Red Hat Developer Hub 部署 pod 来打开一个信息窗格。
  4. 选择信息窗格的 Resources 选项卡。
  5. Pods 部分中,点 View logs 打开 Pod 详情页面
  6. Pod 详情页面中,选择 Logs 选项卡。
  7. 从容器下拉列表中,选择 install-dynamic-plugins 来查看容器日志。
  8. install-dynamic-plugin 容器日志中,搜索 Ansible 插件。

    日志中的示例表示其中一个插件成功安装:

    => Successfully installed dynamic plugin http://plugin-registry-1:8080/ansible-plugin-backstage-rhaap-1.1.0.tgz

    下图显示了容器登录 Pod 详情页面。版本号和文件名可能会有所不同。

    install-dynamic-plugin 的容器日志

2.5.2. 添加 Ansible Development Tools sidecar 容器

加载插件后,在 Red Hat Developer Hub pod 中添加 Ansible Development Container (ansible-devtools-server)作为 sidecar 容器。

2.5.2.1. 在 Red Hat Developer Hub Helm 配置中添加 pull secret

前提条件

Ansible 开发容器下载需要一个红帽客户门户网站帐户和 Red Hat Service Registry 帐户。

流程

  1. 如果需要,创建一个新的 Red Hat Registry Service 帐户
  2. 单击 Account name 列下的令牌名称。
  3. 选择 OpenShift Secret 选项卡,并按照说明将 pull secret 添加到 Red Hat Developer Hub OpenShift 项目中。
  4. 将新 secret 添加到 Red Hat Developer Hub Helm 配置中,将 & lt;your-redhat-registry-pull-secret > 替换为您在 Red Hat Registry Service Account 网站上生成的 secret 的名称:

    upstream:
      backstage:
        ...
        image:
          ...
          pullSecrets:
            - <your-redhat-registry-pull-secret>
        ...

如需更多信息,请参阅 Red Hat Container Registry 文档

2.5.2.2. 添加 Ansible Developer Tools 容器

您必须更新 Helm Chart 配置来添加额外的容器。

流程

  1. 登录 OpenShift UI。
  2. 进入 Helmdeveloper-hubActionsupgradeYaml view 以打开 Helm Chart。
  3. 更新 YAML 文件中的 extraContainers 部分。

    添加以下代码:

    upstream:
      backstage:
        ...
        extraContainers:
          - command:
              - adt
              - server
            image: >-
              registry.redhat.io/ansible-automation-platform-25/ansible-dev-tools-rhel8:latest
            imagePullPolicy: IfNotPresent
            name: ansible-devtools-server
            ports:
              - containerPort: 8000
        ...
    注意

    镜像拉取策略为 imagePullPolicy: IfNotPresent。只有节点上不存在时才拉取镜像。将它更新为 imagePullPolicy: Always,如果总是要使用最新的镜像。

  4. 单击 Upgrade

验证

要验证容器是否正在运行,请检查容器日志:

查看容器日志

2.5.3. 添加自定义 ConfigMap

按照 Red Hat Developer Hub 管理指南中的 将自定义应用程序配置文件添加到 Red Hat OpenShift Container Platform 的步骤创建 Red Hat Developer Hub ConfigMap。以下示例使用一个名为 app-config-rhdh的自定义 ConfigMap

要编辑您的自定义 ConfigMap,请登录 OpenShift UI 并导航到 Select Project (developerHubProj)ConfigMaps{developer-hub}-app-configEditConfigMapsapp-config-rhdh

2.5.4. 配置 Ansible Dev Tools 服务器

Ansible 插件需要 creatorService URL 来使用提供的软件模板调配新项目。

流程

  1. 编辑您在 添加自定义 ConfigMap 中创建的自定义 Red Hat Developer Hub 配置映射 app-config-rhdh
  2. 将以下代码添加到 Red Hat Developer Hub app-config-rhdh.yaml 文件中。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    ...
    data:
      app-config-rhdh.yaml: |-
        ansible:
          creatorService:
            baseUrl: 127.0.0.1
            port: '8000'
    ...

2.5.5. 配置 Ansible Automation Platform 详情

Ansible 插件使用令牌通过控制器 API 查询 Ansible Automation Platform 订阅状态。

注意

无论 Ansible Automation Platform 订阅状态如何,Ansible 插件都可以继续正常工作。

流程

  1. 按照自动化控制器的 添加令牌 部分,使用 自动化控制器中的 "Read"范围创建个人访问令牌(PAT)。
  2. 编辑自定义 Red Hat Developer Hub 配置映射,如 app-config-rhdh
  3. 将您的 Ansible Automation Platform 详情添加到 app-config-rhdh.yaml

    1. 使用自动化控制器 URL 设置 baseURL 密钥。
    2. 使用在第 1 步中创建的生成的令牌值设置 令牌 密钥。
    3. checkSSL 密钥设为 truefalse

      如果 checkSSL 设为 true,Ansible 插件将验证 SSL 证书是否有效。

      data:
        app-config-rhdh.yaml: |
          ...
          ansible:
          ...
            rhaap:
              baseUrl: '<https://MyControllerUrl>'
              token: '<AAP Personal Access Token>'
              checkSSL: true
注意

您需要从外部和未经授权的访问保护 Red Hat Developer Hub 安装。像管理任何其他 secret 一样管理后端身份验证密钥。满足强密码要求,不要将其公开在任何配置文件中,而是仅将其作为环境变量注入配置文件中。

2.5.6. 添加 Ansible 插件软件模板

Red Hat Ansible 为 Red Hat Developer Hub 提供软件模板,以根据 Ansible 最佳实践置备新的 playbook 和集合项目。

流程

  1. 编辑自定义 Red Hat Developer Hub 配置映射,如 app-config-rhdh
  2. 将以下代码添加到 Red Hat Developer Hub app-config-rhdh.yaml 文件中。
data:
  app-config-rhdh.yaml: |
    catalog:
      ...
      locations:
        ...
        - type: url
          target: https://github.com/ansible/ansible-rhdh-templates/blob/main/all.yaml
          rules:
            - allow: [Template]

如需更多信息,请参阅 Red Hat Developer Hub 管理指南中的管理模板 部分。

2.5.7. 配置基于角色的访问控制

Red Hat Developer Hub 提供基于角色的访问控制(RBAC)功能。然后,RBAC 可以应用到 Ansible 插件内容。

分配以下角色:

  • admin:superUsers 组的成员可以在 Ansible 插件的 Create 选项卡中选择模板,以创建 playbook 和集合项目。
  • admin:users 组的成员可以在 Ansible 插件的 Create 选项卡中查看模板。

以下示例将 RBAC 添加到 Red Hat Developer Hub。

data:
  app-config-rhdh.yaml: |
    plugins:
    ...
    permission:
      enabled: true
      rbac:
        admin:
          users:
            - name: user:default/<user-scm-ida>
          superUsers:
            - name: user:default/<user-admin-idb>

如需有关权限策略和管理 RBAC 的更多信息,请参阅 Red Hat Developer Hub 授权 指南。

2.6. Ansible 插件的可选配置

2.6.1. 启用 Red Hat Developer Hub 身份验证

Red Hat Developer Hub (RHDH)为多个源控制管理(SCM)系统提供集成。插件需要它来创建存储库。

请参阅 Red Hat Developer Hub 管理指南中的在 Red Hat Developer Hub 中启用身份验证章节

2.6.2. 配置 Ansible 插件可选集成

Ansible 插件提供与 Ansible Automation Platform 和其他可选红帽产品的集成。

要编辑您的自定义 ConfigMap,请登录 OpenShift UI 并导航到 Select Project (developerHubProj)ConfigMaps{developer-hub}-app-config-rhdhapp-config-rhdh

2.6.2.1. 配置 OpenShift Dev Spaces

当为 Ansible 插件配置 OpenShift Dev Spaces 时,用户可以点击 Red Hat Developer Hub 中的目录项视图中的链接,并使用 Dev Spaces 编辑其置备的 Ansible Git 项目。

注意

OpenShift Dev Spaces 是一个单独的产品,它是可选的。该插件将在没有它的情况下正常工作。

它是一个单独的红帽产品,不包括在 Ansible Automation Platform 或 Red Hat Developer Hub 订阅中。

如果 Ansible 插件中没有配置 OpenShift Dev Spaces 链接,则 Ansible 插件登录页面中的 DEVELOP 部分中的 Go to OpenShift Dev Spaces 仪表板 链接会将用户重定向到 Ansible 开发工具主页

先决条件

  • Dev Spaces 安装。请参阅 Red Hat OpenShift Dev Spaces Administration Guide 中的 Installing Dev Spaces 部分

流程

  1. 编辑自定义 Red Hat Developer Hub 配置映射,如 app-config-rhdh
  2. 将以下代码添加到 Red Hat Developer Hub app-config-rhdh.yaml 文件中。

    data:
      app-config-rhdh.yaml: |-
        ansible:
          devSpaces:
            baseUrl: >-
              https://<Your OpenShift Dev Spaces URL>
  3. <Your OpenShft Dev Spaces URL& gt; 替换为您的 OpenShift Dev Spaces URL。
  4. 在 OpenShift Developer UI 中,选择 Red Hat Developer Hub pod。
  5. 打开 Actions
  6. Restart rollout
2.6.2.2. 配置私有自动化中心 URL

私有自动化中心提供了一个集中的内部仓库,用于认证 Ansible 集合、执行环境以及您的机构提供的额外 vetted 内容。

如果没有在 Ansible 插件中配置私有自动化中心 URL,用户会被重定向到 Red Hat Hybrid Cloud Console Automation Hub

注意

私有自动化中心配置是可选的,但推荐使用。Ansible 插件将在没有它的情况下正常工作。

先决条件

  • 私有自动化中心实例。

    有关安装私有自动化中心的更多信息,请参阅 Ansible Automation Platform 文档中的 安装和升级 指南。

流程

  1. 编辑自定义 Red Hat Developer Hub 配置映射,fpr 示例 app-config-rhdh
  2. 将以下代码添加到 Red Hat Developer Hub app-config-rhdh.yaml 文件中。

    data:
      app-config-rhdh.yaml: |-
        ansible:
        ...
          automationHub:
            baseUrl: '<https://MyOwnPAHUrl>'
        ...
  3. <https://MyOwnPAHUrl/& gt; 替换为您的私有自动化中心 URL。
  4. 在 OpenShift Developer UI 中,选择 Red Hat Developer Hub pod。
  5. 打开 Actions
  6. Restart rollout

2.7. 完整示例

2.7.1. Ansible 插件条目的完整的 app-config-rhdh ConfigMap 示例

kind: ConfigMap
...
metadata:
  name: app-config-rhdh
  ...
data:
  app-config-rhdh.yaml: |-
    ansible:
      creatorService:
        baseUrl: 127.0.0.1
        port: '8000'
      rhaap:
       baseUrl: '<https://MyControllerUrl>'
       token: '<AAP Personal Access Token>'
       checkSSL: <true or false>
      # Optional integrations
      devSpaces:
        baseUrl: '<https://MyDevSpacesURL>'
      automationHub:
        baseUrl: '<https://MyPrivateAutomationHubURL>'

    ...
    catalog:
      locations:
        - type: url
          target: https://github.com/ansible/ansible-rhdh-templates/blob/main/all.yaml
          rules:
            - allow: [Template]
    ...

2.7.2. Ansible 插件的完整 Helm Chart 配置示例

global:
  ...
  dynamic:
    ...
    plugins:
      - disabled: false
        integrity: <SHA512 Integrity key for ansible-plugin-backstage-rhaap plugin>
        package: 'http://plugin-registry:8080/ansible-plugin-backstage-rhaap-x.y.z.tgz'
        pluginConfig:
          dynamicPlugins:
            frontend:
              ansible.plugin-backstage-rhaap:
                appIcons:
                  - importName: AnsibleLogo
                    name: AnsibleLogo
                dynamicRoutes:
                  - importName: AnsiblePage
                    menuItem:
                      icon: AnsibleLogo
                      text: Ansible
                    path: /ansible
      - disabled: false
        integrity: <SHA512 Integrity key for ansible-plugin-scaffolder-backend-module-backstage-rhaap plugin>
        package: >-
          http://plugin-registry:8080/ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
        pluginConfig:
          dynamicPlugins:
            backend:
              ansible.plugin-scaffolder-backend-module-backstage-rhaap: null
      - disabled: false
        integrity: <SHA512 Integrity key for ansible-plugin-backstage-rhaap-backend plugin>
        package: >-
          http://plugin-registry:8080/ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
        pluginConfig:
          dynamicPlugins:
            backend:
              ansible.plugin-backstage-rhaap-backend: null
...
upstream:
  backstage:
    ...
    extraAppConfig:
      - configMapRef: app-config-rhdh
        filename: app-config-rhdh.yaml
    extraContainers:
      - command:
          - adt
          - server
        image: >-
          registry.redhat.io/ansible-automation-platform-25/ansible-dev-tools-rhel8:latest
        imagePullPolicy: IfNotPresent
        name: ansible-devtools-server
        ports:
          - containerPort: 8000
...

第 3 章 使用 OpenShift Container Platform 上的 Operator 安装 Ansible 插件

以下流程描述了如何使用 Operator 在 Red Hat OpenShift Container Platform 上安装 Red Hat Developer Hub 实例中的 Ansible 插件。

3.1. 先决条件

3.3. 在 RHDH Operator 自定义资源中添加 Ansible 开发工具的 sidecar 容器

在 Developer Hub pod 中为 Ansible 开发工具添加 sidecar 容器。要做到这一点,您必须修改 Red Hat Developer Hub 部署的基本 ConfigMap。

  1. 在 OpenShift 控制台中,选择 Topology 视图。
  2. 点 developer-hub 实例上的 More actions alsa,然后选择 Edit backstage 以打开 Backstage 详情页面
  3. 选择 YAML 选项卡。
  4. 在编辑窗格中,在 spec.deployment.patch.spec.template.spec 块中添加 containers 块:

    apiVersion: rhdh.redhat.com/v1alpha3
    kind: Backstage
    metadata:
      name: developer-hub
    spec:
      deployment:
        patch:
          spec:
            template:
              spec:
                containers:
                  - command:
                      - adt
                      - server
                    image: registry.redhat.io/ansible-automation-platform-25/ansible-dev-tools-rhel8:latest
                    imagePullPolicy: always
                    ports:
                      - containerPort:8000
                        protocol: TCP
                    terminationMessagePolicy: file
  5. 点击 Save
注意

如果要在部署中添加额外的环境变量,您可以在 spec.application.extraEnvs 块中添加它们:

spec:
  application:
    ...
    extraEnvs:
      envs:
        - name: <env_variable_name>
          value: <env_variable_value>

3.4. 下载 Ansible 插件文件

  1. Red Hat Ansible Automation Platform 产品软件下载页面 下载 插件的最新 .tar 文件。文件名格式为 ansible-backstage-rhaap-bundle-x.y.z.tar.gz。替换 Ansible 插件发行版本,如 1.0.0,如 x.y.z
  2. 在本地机器上创建一个目录来存储 .tar 文件。

    $ mkdir /path/to/<ansible-backstage-plugins-local-dir-changeme>
  3. 设置环境变量($DYNAMIC_PLUGIN_ROOT_DIR)来代表目录路径。

    $ export DYNAMIC_PLUGIN_ROOT_DIR=/path/to/<ansible-backstage-plugins-local-dir-changeme>
  4. ansible-backstage-rhaap-bundle-<version-number>.tar.gz 内容提取到 $DYNAMIC_PLUGIN_ROOT_DIR

    $ tar --exclude='*code*' -xzf ansible-backstage-rhaap-bundle-x.y.z.tar.gz -C $DYNAMIC_PLUGIN_ROOT_DIR

    替换 Ansible 插件发行版本,如 1.0.0,如 x.y.z

验证

运行 ls 以验证提取的文件是否在 $DYNAMIC_PLUGIN_ROOT_DIR 目录中:

$ ls $DYNAMIC_PLUGIN_ROOT_DIR
ansible-plugin-backstage-rhaap-x.y.z.tgz
ansible-plugin-backstage-rhaap-x.y.z.tgz.integrity
ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
ansible-plugin-backstage-rhaap-backend-x.y.z.tgz.integrity
ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz.integrity

具有 .integrity 文件类型的文件包含插件 SHA 值。SHA 值在插件配置过程中使用。

3.5. 为 Ansible 插件创建 registry

在 OpenShift 集群中设置 registry 以托管 Ansible 插件,并使其可用于在 Red Hat Developer Hub (RHDH)中安装。

流程

  1. 使用凭证登录到 OpenShift Container Platform 实例,以创建新应用程序。
  2. 打开 Red Hat Developer Hub OpenShift 项目。

    $ oc project <YOUR_DEVELOPER_HUB_PROJECT>
  3. 运行以下命令,在 OpenShift 集群中创建插件 registry 构建。

    $ oc new-build httpd --name=plugin-registry --binary
    $ oc start-build plugin-registry --from-dir=$DYNAMIC_PLUGIN_ROOT_DIR --wait
    $ oc new-app --image-stream=plugin-registry

验证

要验证 plugin-registry 是否已成功部署,请在 OpenShift Web 控制台中的 Red Hat Developer Hub 应用程序的 Developer 视角中打开 Topology 视图。

  1. 点插件 registry 查看日志。

    Developer Perspective (开发者视角)

    (1)开发人员 hub 实例

    (2)插件 registry

  2. 单击 terminal 选项卡,再登录容器。
  3. 在终端中,运行 ls 以确认 .tar 文件位于插件 registry 中。

    ansible-plugin-backstage-rhaap-x.y.z.tgz
    ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
    ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz

    版本号和文件名可能会有所不同。

3.6. 安装动态插件

要安装动态插件,请将它们添加到您的 RHDH 插件设置的 ConfigMap 中(例如 rhaap-dynamic-plugins-config)。

如果您还没有为 RHDH 插件设置创建 ConfigMap 文件,请按照 Red Hat Developer Hub 管理指南中的 将自定义应用程序配置文件添加到 Red Hat OpenShift Container Platform 部分中的步骤 创建一个。

以下流程中使用的 ConfigMap 示例称为 rhaap-dynamic-plugins-config

流程

  1. OpenShift 控制台导航窗格中选择 ConfigMap。
  2. 从列表中选择 rhaap-dynamic-plugins-config ConfigMap。
  3. 选择 YAML 选项卡来编辑 rhaap-dynamic-plugins-config ConfigMap。
  4. data.dynamic-plugins.yaml.plugins 块中,添加插件 registry 的三个动态插件。

    • 对于 完整性 哈希值,请使用与每个插件对应的 $DYNAMIC_PLUGIN_ROOT_DIR 目录中的 .integrity 文件,例如,使用 ansible-plugin-backstage-rhaap-x.y.z.tgz.integrity 用于 ansible-plugin-backstage-rhaap-x.y.z.tgz 插件。
    • x.y.z 替换为正确的插件版本。

      kind: ConfigMap
      apiVersion: v1
      metadata:
       name: rhaap-dynamic-plugins-config
      data:
       dynamic-plugins.yaml: |
         ...
         plugins:
           - disabled: false
             package: 'http://plugin-registry:8080/ansible-plugin-backstage-rhaap-x.y.z.tgz'
             integrity: <SHA512 value> # Use hash in ansible-plugin-backstage-rhaap-x.y.z.tgz.integrity
             pluginConfig:
               dynamicPlugins:
                 frontend:
                   ansible.plugin-backstage-rhaap:
                     appIcons:
                       - importName: AnsibleLogo
                         name: AnsibleLogo
                     dynamicRoutes:
                       - importName: AnsiblePage
                         menuItem:
                           icon: AnsibleLogo
                           text: Ansible
                         path: /ansible
           - disabled: false
             package: >-
               http://plugin-registry:8080/ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
             integrity: <SHA512 value> # Use hash in ansible-plugin-backstage-rhaap-backend-x.y.z.tgz.integrity
             pluginConfig:
               dynamicPlugins:
                 backend:
                   ansible.plugin-backstage-rhaap-backend: null
           - disabled: false
             package: >-
               http://plugin-registry:8080/ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
             integrity: <SHA512 value> # Use hash in ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz.integrity
             pluginConfig:
               dynamicPlugins:
                 backend:
                   ansible.plugin-scaffolder-backend-module-backstage-rhaap: null
           - ...<REDACTED>
  5. 点击 Save
  6. 查看滚动重启的进度:

    1. Topology 视图中,选择部署 pod,再单击 View logs
    2. 从容器列表中选择 install-dynamic-plugins

验证

  1. 在 OpenShift 控制台中,选择 Topology 视图。
  2. 单击部署 Pod 上的 Open URL 图标,在浏览器窗口中打开 Red Hat Developer Hub 实例。

Ansible 插件存在于导航窗格中,如果您选择 Administration,则安装插件将在 Plugins 选项卡中列出。

3.7. 添加自定义 ConfigMap

按照 Red Hat Developer Hub 管理指南中的 将自定义应用程序配置文件添加到 Red Hat OpenShift Container Platform 的步骤创建 Red Hat Developer Hub ConfigMap。以下示例使用一个名为 app-config-rhdh的自定义 ConfigMap

要编辑您的自定义 ConfigMap,请登录 OpenShift UI 并导航到 Select Project (developerHubProj)ConfigMaps{developer-hub}-app-configEditConfigMapsapp-config-rhdh

3.8. 配置 Ansible Dev Tools 服务器

Ansible 插件需要 creatorService URL 来使用提供的软件模板调配新项目。

流程

  1. 编辑您在 添加自定义 ConfigMap 中创建的自定义 Red Hat Developer Hub 配置映射 app-config-rhdh
  2. 将以下代码添加到 Red Hat Developer Hub app-config-rhdh.yaml 文件中。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    ...
    data:
      app-config-rhdh.yaml: |-
        ansible:
          creatorService:
            baseUrl: 127.0.0.1
            port: '8000'
    ...

3.9. 配置 Ansible Automation Platform 详情

Ansible 插件使用令牌通过控制器 API 查询 Ansible Automation Platform 订阅状态。

注意

无论 Ansible Automation Platform 订阅状态如何,Ansible 插件都可以继续正常工作。

流程

  1. 按照自动化控制器的 添加令牌 部分,使用 自动化控制器中的 "Read"范围创建个人访问令牌(PAT)。
  2. 编辑自定义 Red Hat Developer Hub 配置映射,如 app-config-rhdh
  3. 将您的 Ansible Automation Platform 详情添加到 app-config-rhdh.yaml

    1. 使用自动化控制器 URL 设置 baseURL 密钥。
    2. 使用在第 1 步中创建的生成的令牌值设置 令牌 密钥。
    3. checkSSL 密钥设为 truefalse

      如果 checkSSL 设为 true,Ansible 插件将验证 SSL 证书是否有效。

      data:
        app-config-rhdh.yaml: |
          ...
          ansible:
          ...
            rhaap:
              baseUrl: '<https://MyControllerUrl>'
              token: '<AAP Personal Access Token>'
              checkSSL: true
注意

您需要从外部和未经授权的访问保护 Red Hat Developer Hub 安装。像管理任何其他 secret 一样管理后端身份验证密钥。满足强密码要求,不要将其公开在任何配置文件中,而是仅将其作为环境变量注入配置文件中。

3.10. 添加 Ansible 插件软件模板

Red Hat Ansible 为 Red Hat Developer Hub 提供软件模板,以根据 Ansible 最佳实践置备新的 playbook 和集合项目。

流程

  1. 编辑自定义 Red Hat Developer Hub 配置映射,如 app-config-rhdh
  2. 将以下代码添加到 Red Hat Developer Hub app-config-rhdh.yaml 文件中。
data:
  app-config-rhdh.yaml: |
    catalog:
      ...
      locations:
        ...
        - type: url
          target: https://github.com/ansible/ansible-rhdh-templates/blob/main/all.yaml
          rules:
            - allow: [Template]

如需更多信息,请参阅 Red Hat Developer Hub 管理指南中的管理模板 部分。

3.11. 配置基于角色的访问控制

Red Hat Developer Hub 提供基于角色的访问控制(RBAC)功能。然后,RBAC 可以应用到 Ansible 插件内容。

分配以下角色:

  • admin:superUsers 组的成员可以在 Ansible 插件的 Create 选项卡中选择模板,以创建 playbook 和集合项目。
  • admin:users 组的成员可以在 Ansible 插件的 Create 选项卡中查看模板。

以下示例将 RBAC 添加到 Red Hat Developer Hub。

data:
  app-config-rhdh.yaml: |
    plugins:
    ...
    permission:
      enabled: true
      rbac:
        admin:
          users:
            - name: user:default/<user-scm-ida>
          superUsers:
            - name: user:default/<user-admin-idb>

如需有关权限策略和管理 RBAC 的更多信息,请参阅 Red Hat Developer Hub 授权 指南。

3.12. Ansible 插件的可选配置

3.12.1. 启用 Red Hat Developer Hub 身份验证

Red Hat Developer Hub (RHDH)为多个源控制管理(SCM)系统提供集成。插件需要它来创建存储库。

请参阅 Red Hat Developer Hub 管理指南中的在 Red Hat Developer Hub 中启用身份验证章节

3.12.2. 配置 Ansible 插件可选集成

Ansible 插件提供与 Ansible Automation Platform 和其他可选红帽产品的集成。

要编辑您的自定义 ConfigMap,请登录 OpenShift UI 并导航到 Select Project (developerHubProj)ConfigMaps{developer-hub}-app-config-rhdhapp-config-rhdh

3.12.2.1. 配置 OpenShift Dev Spaces

当为 Ansible 插件配置 OpenShift Dev Spaces 时,用户可以点击 Red Hat Developer Hub 中的目录项视图中的链接,并使用 Dev Spaces 编辑其置备的 Ansible Git 项目。

注意

OpenShift Dev Spaces 是一个单独的产品,它是可选的。该插件将在没有它的情况下正常工作。

它是一个单独的红帽产品,不包括在 Ansible Automation Platform 或 Red Hat Developer Hub 订阅中。

如果 Ansible 插件中没有配置 OpenShift Dev Spaces 链接,则 Ansible 插件登录页面中的 DEVELOP 部分中的 Go to OpenShift Dev Spaces 仪表板 链接会将用户重定向到 Ansible 开发工具主页

先决条件

  • Dev Spaces 安装。请参阅 Red Hat OpenShift Dev Spaces Administration Guide 中的 Installing Dev Spaces 部分

流程

  1. 编辑自定义 Red Hat Developer Hub 配置映射,如 app-config-rhdh
  2. 将以下代码添加到 Red Hat Developer Hub app-config-rhdh.yaml 文件中。

    data:
      app-config-rhdh.yaml: |-
        ansible:
          devSpaces:
            baseUrl: >-
              https://<Your OpenShift Dev Spaces URL>
  3. <Your OpenShft Dev Spaces URL& gt; 替换为您的 OpenShift Dev Spaces URL。
  4. 在 OpenShift Developer UI 中,选择 Red Hat Developer Hub pod。
  5. 打开 Actions
  6. Restart rollout
3.12.2.2. 配置私有自动化中心 URL

私有自动化中心提供了一个集中的内部仓库,用于认证 Ansible 集合、执行环境以及您的机构提供的额外 vetted 内容。

如果没有在 Ansible 插件中配置私有自动化中心 URL,用户会被重定向到 Red Hat Hybrid Cloud Console Automation Hub

注意

私有自动化中心配置是可选的,但推荐使用。Ansible 插件将在没有它的情况下正常工作。

先决条件

  • 私有自动化中心实例。

    有关安装私有自动化中心的更多信息,请参阅 Ansible Automation Platform 文档中的 安装和升级 指南。

流程

  1. 编辑自定义 Red Hat Developer Hub 配置映射,fpr 示例 app-config-rhdh
  2. 将以下代码添加到 Red Hat Developer Hub app-config-rhdh.yaml 文件中。

    data:
      app-config-rhdh.yaml: |-
        ansible:
        ...
          automationHub:
            baseUrl: '<https://MyOwnPAHUrl>'
        ...
  3. <https://MyOwnPAHUrl/& gt; 替换为您的私有自动化中心 URL。
  4. 在 OpenShift Developer UI 中,选择 Red Hat Developer Hub pod。
  5. 打开 Actions
  6. Restart rollout

3.13. Ansible 插件条目的完整的 app-config-rhdh ConfigMap 示例

kind: ConfigMap
...
metadata:
  name: app-config-rhdh
  ...
data:
  app-config-rhdh.yaml: |-
    ansible:
      creatorService:
        baseUrl: 127.0.0.1
        port: '8000'
      rhaap:
       baseUrl: '<https://MyControllerUrl>'
       token: '<AAP Personal Access Token>'
       checkSSL: <true or false>
      # Optional integrations
      devSpaces:
        baseUrl: '<https://MyDevSpacesURL>'
      automationHub:
        baseUrl: '<https://MyPrivateAutomationHubURL>'

    ...
    catalog:
      locations:
        - type: url
          target: https://github.com/ansible/ansible-rhdh-templates/blob/main/all.yaml
          rules:
            - allow: [Template]
    ...

第 4 章 Ansible 插件订阅警告信息

在以下情况下,Ansible 插件在用户界面中显示订阅警告横幅:

4.1. 无法连接到 Ansible Automation Platform

以下警告表示没有配置自动化控制器详情,或者控制器实例 API 无法查询订阅状态。

Unable to connect to Ansible Automation Platform
Verify that Ansible Automation Platform is reachable and correctly configured in the Ansible plug-ins.
To get help, please refer to the Ansible plug-ins installation guide.
修复步骤
  1. 验证 Ansible Automation Platform 是否可从 ConfigMap 的 rhaap 部分中访问并正确配置。
  2. 确保为您的环境正确设置了 checkSSL 密钥。
  3. 更正配置详情后,重启 Red Hat Developer Hub pod 以启动订阅查询。

4.2. 无法向 Ansible Automation Platform 进行身份验证

以下警告表示 Ansible 插件无法与 Ansible Automation Platform 进行身份验证来查询订阅状态。

Unable to authenticate to Ansible Automation Platform
Verify that the authentication details for Ansible Automation Platform are correctly configured in the Ansible plug-ins.
For help, please refer to the Ansible plug-ins installation guide.
修复步骤
  1. 验证 Ansible 插件中配置的自动化控制器个人访问令牌(PAT)是否正确。如需更多信息,请参阅 自动化控制器用户指南Applications 部分。
  2. 更正身份验证详情后,重启 Red Hat Developer Hub pod 以启动订阅查询。

4.3. 无效的 Ansible Automation Platform 配置

以下警告表示 Ansible Automation Platform 配置部分无效或不完整。

Invalid resource for Ansible Automation Platform
Verify that the resource url for Ansible Automation Platform are correctly configured in the Ansible plug-ins.
For help, please refer to the Ansible plug-ins installation guide.
修复步骤
  1. 验证 Ansible 插件 ConfigMap 的 rhaap 部分是否已正确配置,并且包含所有必要的条目。如需更多信息,请参阅配置 Ansible Automation Platform 详情
  2. 更正配置后,重启 Red Hat Developer Hub pod 以启动订阅查询。

4.4. Ansible Automation Platform 订阅不合规

以下警告表示 Ansible 插件已成功检索 Ansible Automation Platform 订阅状态。但是,订阅不符合要求。

Subscription non-compliant
The connected Ansible Automation Platform subscription is out of compliance.
Contact your Red Hat account team to obtain a new subscription entitlement.
Learn more about account compliance.
修复步骤
  1. 请联系您的红帽客户团队以获取新的订阅权利。
  2. 了解有关 帐户合规性 的更多信息。
  3. 当订阅合规时,重启 Red Hat Developer Hub pod 以启动新的订阅查询。

4.5. 无效的 Ansible Automation Platform 订阅

以下警告表示 Ansible 插件已成功检索 Ansible Automation Platform 订阅状态。但是,对于 Ansible Automation Platform,订阅类型无效。

Invalid subscription
The connected Ansible Automation Platform subscription is invalid.
Contact your Red Hat account team, or start an Ansible Automation Platform trial.
修复步骤
  1. 请联系您的红帽客户团队以获取新的订阅权利或启动 Ansible Automation Platform 试用
  2. 更新订阅后,重启 Red Hat Developer Hub pod 以启动新的订阅查询。

第 5 章 在 OpenShift Container Platform 上的 Helm 安装中升级 Ansible 插件

要升级 Ansible 插件,您必须使用最新的 Ansible 插件文件更新 plugin-registry 应用程序。

5.1. 下载 Ansible 插件文件

  1. Red Hat Ansible Automation Platform 产品软件下载页面 下载 插件的最新 .tar 文件。文件名格式为 ansible-backstage-rhaap-bundle-x.y.z.tar.gz。替换 Ansible 插件发行版本,如 1.0.0,如 x.y.z
  2. 在本地机器上创建一个目录来存储 .tar 文件。

    $ mkdir /path/to/<ansible-backstage-plugins-local-dir-changeme>
  3. 设置环境变量($DYNAMIC_PLUGIN_ROOT_DIR)来代表目录路径。

    $ export DYNAMIC_PLUGIN_ROOT_DIR=/path/to/<ansible-backstage-plugins-local-dir-changeme>
  4. ansible-backstage-rhaap-bundle-<version-number>.tar.gz 内容提取到 $DYNAMIC_PLUGIN_ROOT_DIR

    $ tar --exclude='*code*' -xzf ansible-backstage-rhaap-bundle-x.y.z.tar.gz -C $DYNAMIC_PLUGIN_ROOT_DIR

    替换 Ansible 插件发行版本,如 1.0.0,如 x.y.z

验证

运行 ls 以验证提取的文件是否在 $DYNAMIC_PLUGIN_ROOT_DIR 目录中:

$ ls $DYNAMIC_PLUGIN_ROOT_DIR
ansible-plugin-backstage-rhaap-x.y.z.tgz
ansible-plugin-backstage-rhaap-x.y.z.tgz.integrity
ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
ansible-plugin-backstage-rhaap-backend-x.y.z.tgz.integrity
ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz.integrity

具有 .integrity 文件类型的文件包含插件 SHA 值。SHA 值在插件配置过程中使用。

5.2. 更新插件 registry

使用最新的 Ansible 插件文件在 OpenShift 集群中重建插件 registry 应用。

先决条件

  • 您已下载了 Ansible 插件文件。
  • 您已设置了环境变量,如$DYNAMIC_PLUGIN_ROOT_DIR,以表示您存储了 .tar 文件的本地目录的路径。

流程

  1. 使用凭证登录到 OpenShift Container Platform 实例,以创建新应用程序。
  2. 打开 Red Hat Developer Hub OpenShift 项目。

    $ oc project <YOUR_DEVELOPER_HUB_PROJECT>
  3. 运行以下命令,以更新 OpenShift 集群中的插件 registry 构建。命令假定 $DYNAMIC_PLUGIN_ROOT_DIR 代表您的 .tar 文件的目录。如果您选择了不同的环境变量名称,请在命令中替换它。

    $ oc start-build plugin-registry --from-dir=$DYNAMIC_PLUGIN_ROOT_DIR --wait
    $ oc start-build plugin-registry --from-dir=$DYNAMIC_PLUGIN_ROOT_DIR --wait
  4. 当 registry 启动时,输出会显示以下信息:

    Uploading directory "/path/to/dynamic_plugin_root" as binary input for the build …
    Uploading finished
    build.build.openshift.io/plugin-registry-1 started

验证

验证 plugin-registry 是否已更新。

  1. 在 OpenShift UI 中,单击 Topology
  2. 单击 redhat-developer-hub 图标,以查看插件 registry 的 pod。
  3. 点插件 registry pod 的 View logs
  4. 打开 Terminal 选项卡,再运行 ls 来查看 插件 registry 中的 .tar 文件。
  5. 验证新 .tar 文件是否已上传。

5.3. 为 Helm 安装更新 Ansible 插件版本号

流程

  1. 登录您的 OpenShift Container Platform 实例。
  2. 在 OpenShift Developer UI 中,导航到 Helmdeveloper-hubActionsUpgradeYaml view
  3. 更新 Ansible 插件版本号及关联的 .integrity 文件值。

    ...
    global:
    ...
        plugins:
          - disabled: false
            integrity: <SHA512 value>
            package: 'http://plugin-registry:8080/ansible-plugin-backstage-rhaap-x.y.z.tgz'
            pluginConfig:
              dynamicPlugins:
                frontend:
                  ansible.plugin-backstage-rhaap:
                    appIcons:
                      - importName: AnsibleLogo
                        name: AnsibleLogo
                    dynamicRoutes:
                      - importName: AnsiblePage
                        menuItem:
                          icon: AnsibleLogo
                          text: Ansible
                        path: /ansible
          - disabled: false
            integrity: <SHA512 value>
            package: >-
              http://plugin-registry:8080/ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
            pluginConfig:
              dynamicPlugins:
                backend:
                  ansible.plugin-scaffolder-backend-module-backstage-rhaap: null
          - disabled: false
            integrity: <SHA512 value>
            package: >-
              http://plugin-registry:8080/ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
            pluginConfig:
              dynamicPlugins:
                backend:
                  ansible.plugin-backstage-rhaap-backend: null
  4. 单击 Upgrade

    开发人员 hub pod 重启并安装了插件。

验证

  1. 在 OpenShift UI 中,单击 Topology
  2. 确保 Red Hat Developer Hub 实例可用。

第 6 章 在 OpenShift Container Platform 上安装 Operator 上升级 Ansible 插件

要升级 Ansible 插件,您必须使用最新的 Ansible 插件文件更新 plugin-registry 应用程序。

6.1. 下载 Ansible 插件文件

  1. Red Hat Ansible Automation Platform 产品软件下载页面 下载 插件的最新 .tar 文件。文件名格式为 ansible-backstage-rhaap-bundle-x.y.z.tar.gz。替换 Ansible 插件发行版本,如 1.0.0,如 x.y.z
  2. 在本地机器上创建一个目录来存储 .tar 文件。

    $ mkdir /path/to/<ansible-backstage-plugins-local-dir-changeme>
  3. 设置环境变量($DYNAMIC_PLUGIN_ROOT_DIR)来代表目录路径。

    $ export DYNAMIC_PLUGIN_ROOT_DIR=/path/to/<ansible-backstage-plugins-local-dir-changeme>
  4. ansible-backstage-rhaap-bundle-<version-number>.tar.gz 内容提取到 $DYNAMIC_PLUGIN_ROOT_DIR

    $ tar --exclude='*code*' -xzf ansible-backstage-rhaap-bundle-x.y.z.tar.gz -C $DYNAMIC_PLUGIN_ROOT_DIR

    替换 Ansible 插件发行版本,如 1.0.0,如 x.y.z

验证

运行 ls 以验证提取的文件是否在 $DYNAMIC_PLUGIN_ROOT_DIR 目录中:

$ ls $DYNAMIC_PLUGIN_ROOT_DIR
ansible-plugin-backstage-rhaap-x.y.z.tgz
ansible-plugin-backstage-rhaap-x.y.z.tgz.integrity
ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
ansible-plugin-backstage-rhaap-backend-x.y.z.tgz.integrity
ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz.integrity

具有 .integrity 文件类型的文件包含插件 SHA 值。SHA 值在插件配置过程中使用。

6.2. 更新插件 registry

使用最新的 Ansible 插件文件在 OpenShift 集群中重建插件 registry 应用。

先决条件

  • 您已下载了 Ansible 插件文件。
  • 您已设置了环境变量,如$DYNAMIC_PLUGIN_ROOT_DIR,以表示您存储了 .tar 文件的本地目录的路径。

流程

  1. 使用凭证登录到 OpenShift Container Platform 实例,以创建新应用程序。
  2. 打开 Red Hat Developer Hub OpenShift 项目。

    $ oc project <YOUR_DEVELOPER_HUB_PROJECT>
  3. 运行以下命令,以更新 OpenShift 集群中的插件 registry 构建。命令假定 $DYNAMIC_PLUGIN_ROOT_DIR 代表您的 .tar 文件的目录。如果您选择了不同的环境变量名称,请在命令中替换它。

    $ oc start-build plugin-registry --from-dir=$DYNAMIC_PLUGIN_ROOT_DIR --wait
    $ oc start-build plugin-registry --from-dir=$DYNAMIC_PLUGIN_ROOT_DIR --wait
  4. 当 registry 启动时,输出会显示以下信息:

    Uploading directory "/path/to/dynamic_plugin_root" as binary input for the build …
    Uploading finished
    build.build.openshift.io/plugin-registry-1 started

验证

验证 plugin-registry 是否已更新。

  1. 在 OpenShift UI 中,单击 Topology
  2. 单击 redhat-developer-hub 图标,以查看插件 registry 的 pod。
  3. 点插件 registry pod 的 View logs
  4. 打开 Terminal 选项卡,再运行 ls 来查看 插件 registry 中的 .tar 文件。
  5. 验证新 .tar 文件是否已上传。

6.3. 为 Operator 安装更新 Ansible 插件版本号

流程

  1. 登录您的 OpenShift Container Platform 实例。
  2. 在 OpenShift UI 中,打开您在安装过程中添加 Ansible 插件的 ConfigMap。本例使用名为 rhaap-dynamic-plugins-config 的 ConfigMap 文件。
  3. 使用更新的 Ansible 插件的版本号更新 x.y.z
  4. 使用从对应的 Ansible 插件 .tar 文件中对应的 .integrity 值更新每个插件的完整性值。

    kind: ConfigMap
    apiVersion: v1
    metadata:
     name: rhaap-dynamic-plugins-config
    data:
     dynamic-plugins.yaml: |
       ...
       plugins: # Update the Ansible plug-in entries below with the updated plugin versions
         - disabled: false
           package: 'http://plugin-registry:8080/ansible-plugin-backstage-rhaap-x.y.z.tgz'
           integrity: <SHA512 value> # Use hash in ansible-plugin-backstage-rhaap-x.y.z.tgz.integrity
    	 ...
         - disabled: false
           package: >-
             http://plugin-registry:8080/ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
           integrity: <SHA512 value> # Use hash in ansible-plugin-backstage-rhaap-backend-x.y.z.tgz.integrity
           ...
         - disabled: false
           package: >-
             http://plugin-registry:8080/ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
           integrity: <SHA512 value> # Use hash in ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz.integrity
    	 ...
  5. 点击 Save

    开发人员 hub pod 重启并安装了插件。

验证

  1. 在 OpenShift UI 中,单击 Topology
  2. 确保 Red Hat Developer Hub 实例可用。

第 7 章 从 OpenShift Container Platform 上的 Helm 安装中卸载 Ansible 插件

要卸载 Ansible 插件,您必须从 Red Hat Developer Hub 中删除任何使用 ansible:content:create 操作的软件模板,并从 OpenShift 中的 Helm Chart 中删除插件配置。

7.1. 卸载 Helm Chart 安装

流程

  1. 在 Red Hat Developer Hub 中,删除使用 ansible:content:create 操作的任何软件模板。
  2. 在 OpenShift Developer UI 中,导航到 Helmdeveloper-hubActionsUpgradeYaml view
  3. 删除 plugins 部分下的 Ansible 插件配置。

    ...
    global:
    ...
        plugins:
          - disabled: false
            integrity: <SHA512 value>
            package: 'http://plugin-registry:8080/ansible-plugin-backstage-rhaap-x.y.z.tgz'
            pluginConfig:
              dynamicPlugins:
                frontend:
                  ansible.plugin-backstage-rhaap:
                    appIcons:
                      - importName: AnsibleLogo
                        name: AnsibleLogo
                    dynamicRoutes:
                      - importName: AnsiblePage
                        menuItem:
                          icon: AnsibleLogo
                          text: Ansible
                        path: /ansible
          - disabled: false
            integrity: <SHA512 value>
            package: >-
              http://plugin-registry:8080/ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
            pluginConfig:
              dynamicPlugins:
                backend:
                  ansible.plugin-scaffolder-backend-module-backstage-rhaap: null
          - disabled: false
            integrity: <SHA512 value>
            package: >-
              http://plugin-registry:8080/ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
            pluginConfig:
              dynamicPlugins:
                backend:
                  ansible.plugin-backstage-rhaap-backend: null
  4. 删除 extraContainers 部分。

    upstream:
      backstage: |
        ...
        extraContainers:
          - command:
              - adt
              - server
            image: >-
              registry.redhat.io/ansible-automation-platform-25/ansible-dev-tools-rhel8:latest
            imagePullPolicy: IfNotPresent
            name: ansible-devtools-server
            ports:
              - containerPort: 8000
        image:
          pullPolicy: Always
          pullSecrets:
            - ...
            - rhdh-secret-registry
        ...
  5. 单击 Upgrade
  6. 编辑自定义 Red Hat Developer Hub 配置映射,如 app-config-rhdh
  7. 删除 ansible 部分。

    data:
      app-config-rhdh.yaml: |
        ...
        ansible:
          analytics:
            enabled: true
          devSpaces:
            baseUrl: '<https://MyOwnDevSpacesUrl/>'
          creatorService:
            baseUrl: '127.0.0.1'
            port: '8000'
          rhaap:
            baseUrl: '<https://MyAapSubcriptionUrl>'
            token: '<TopSecretAAPToken>'
            checkSSL: true
          automationHub:
            baseUrl: '<https://MyOwnPAHUrl/>'
  8. 重启 Red Hat Developer Hub 部署。
  9. 删除 plugin-registry OpenShift 应用。

    oc delete all -l app=plugin-registry

第 8 章 在 OpenShift Container Platform 上卸载 Operator 安装

要从安装中删除动态插件,您必须编辑引用 Ansible 的 ConfigMap。

更新 ConfigMap 时,部署会自动重新加载。您不需要手动重新加载部署。

8.1. 从 ConfigMap 中删除 Ansible 插件

流程

  1. 打开您引用 Ansible 插件的自定义 ConfigMap。在本例中,ConfigMap 名称为 rhaap-dynamic-plugins-config
  2. plugins: block 中找到动态插件。

    • 要禁用插件,请将这三个插件的 disabled 属性更新为 true
    • 要删除插件,请从 plugins: 块中删除引用插件的行:

      kind: ConfigMap
      apiVersion: v1
      metadata:
       name: rhaap-dynamic-plugins-config
      data:
       dynamic-plugins.yaml: |
         ...
         plugins: # Remove the Ansible plug-ins entries below the ‘plugins’ YAML key
           - disabled: false
             package: 'http://plugin-registry:8080/ansible-plugin-backstage-rhaap-x.y.z.tgz'
             integrity: <SHA512 value>
      	 ...
           - disabled: false
             package: >-
               http://plugin-registry:8080/ansible-plugin-backstage-rhaap-backend-x.y.z.tgz
             integrity: <SHA512 value>
             ...
           - disabled: false
             package: >-
               http://plugin-registry:8080/ansible-plugin-scaffolder-backend-module-backstage-rhaap-x.y.z.tgz
             integrity: <SHA512 value>
      	 ...
  3. 点击 Save

8.2. 从自定义 Red Hat Developer Hub ConfigMap 中删除 Ansible Automation Platform 和 Dev Spaces

流程

  1. 打开自定义 Red Hat Developer Hub ConfigMap,在其中为模板添加配置并连接到 Ansible Automation Platform 和 Dev Spaces。在本例中,Red Hat Developer Hub ConfigMap 名称是 app-config-rhdh

    kind: ConfigMap
    apiVersion: v1
    metadata:
     name: rhdh-app-config
    data:
     app-config-custom.yaml: |
       ...
       catalog:
         ...
         locations: # Remove the YAML entry below the 'locations' YAML key
           - type: url
             target: https://github.com/ansible/ansible-rhdh-templates/blob/main/all.yaml
             rules:
               - allow: [Template]
         ...
       # Remove the entire 'ansible' YAML key and all sub-entries
       ansible:
         devSpaces:
           baseUrl: '<https://YOUR_DEV_SPACES_URL>'
         creatorService:
           baseUrl: '127.0.0.1'
           port: '8000'
         rhaap:
           baseUrl: '<https://YOUR_AAP_URL>'
           token: <REDACTED>
           checkSSL: false
  2. 删除 location : 块中的 url,以从 RHDH 实例中删除模板。
  3. 删除 ansible: 块,以删除 Ansible 特定的配置。
  4. 点击 Save

8.3. 卸载 sidecar 容器

要从 developer-hub pod 中删除 Ansible 开发工具的 sidecar 容器,您必须修改 Red Hat Developer Hub 部署的基本 ConfigMap。

流程

  1. 在 OpenShift 控制台中,选择 Topology 视图。
  2. 点 developer-hub 实例上的 More actions alsa,然后选择 Edit backstage 来编辑基本 ConfigMap。
  3. 选择 YAML 选项卡。
  4. 在编辑窗格中,从 spec.deployment.patch.spec.template.spec 块中删除 sidecar 容器的 containers 块:

    ...
    spec:
      deployment:
        patch:
          spec:
            template:
              spec:
                containers:
                  - command:
                      - adt
                      - server
                    image: ghcr.io/ansible/community-ansible-dev-tools:latest
                    imagePullPolicy: always
                    ports:
                      - containerPort:8000
                        protocol: TCP
                    terminationMessagePolicy: file
  5. 点击 Save

第 9 章 Red Hat Developer Hub 数据遥测捕获

Red Hat Developer Hub (RHDH)使用 backstage-plugin-analytics-provider-segment 插件向红帽发送遥测数据,该插件默认启用。这包括 Ansible 插件的遥测数据。

红帽收集并分析以下数据以改进 Red Hat Developer Hub 体验:

  • 页面访问的事件,然后单击链接或按钮。
  • 系统相关信息,如区域设置、时区、用户代理,包括浏览器和操作系统详情。
  • 页面相关信息,如标题、类别、扩展名称、URL、路径、引用和搜索参数。
  • 匿名 IP 地址,记录为 0.0.0.0。
  • 匿名用户名哈希,这是唯一标识符,仅用于识别 RHDH 应用的唯一用户数量。
  • Ansible 插件反馈表单中提供的反馈和发送。

使用 Red Hat Developer Hub,您可以禁用或自定义遥测数据收集功能。如需更多信息,请参阅 Red Hat Developer Hub 管理指南中的 遥测数据收集 部分。

法律通告

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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.