5.2. 在 Red Hat OpenShift Container Platform Web 控制台中配置自动化控制器


您可以使用以下说明在 Red Hat OpenShift Container Platform 上配置自动化控制器 Operator,指定自定义资源,并使用外部数据库部署 Ansible Automation Platform。

自动化控制器配置可以通过自动化控制器 extra_settings 或部署后直接在用户界面中进行。但请注意,在 extra_settings 中进行的配置优先于用户界面中进行的设置。

注意

删除自动化控制器实例时,关联的 PVC 不会被自动删除。如果新部署的名称与前一名称相同,这可能会导致迁移期间出现问题。因此,建议您在在同一命名空间中部署新自动化控制器实例前手动删除旧的 PVC。如需更多信息,请参阅 查找和删除 PVC

5.2.1. 先决条件

  • 您已在 Operator Hub 中安装了 Red Hat Ansible Automation Platform 目录。
  • 对于自动化控制器,必须在集群上配置默认 StorageClass,以便 Operator 动态创建所需的 PVC。如果配置了外部 PostgreSQL 数据库,则不需要此项。
  • 对于 Hub,支持 ReadWriteMany 的 StorageClass 必须在集群中可用,才能动态创建内容、redis 和 api pod 所需的 PVC。如果不是集群中的默认 StorageClass,您可以在创建 AutomationHub 对象时指定它。

5.2.1.1. 配置控制器镜像拉取策略

使用这个流程在自动化控制器上配置镜像拉取策略。

流程

  1. 登录到 Red Hat OpenShift Container Platform。
  2. 进入 Operators Installed Operators
  3. 选择 Ansible Automation Platform Operator 部署。
  4. 选择 Automation Controller 选项卡。
  5. 对于新实例,点 Create AutomationController

    1. 对于现有实例,您可以通过点 WWN 图标,然后编辑 AutomationController 来编辑 YAML 视图。
  6. 单击 advanced Configuration。在 Image Pull Policy 下,点单选按钮选择

    • Always
    • Never
    • IfNotPresent
  7. 要显示 Image Pull Secrets 下的选项,点箭头。

    1. Add Image Pull Secret 旁边的 + 输入值。
  8. 要在 Web 容器资源要求下拉列表中显示字段,点箭头。

    1. Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage
  9. 要在 Task container resource requirements 下拉列表中显示字段,点箭头。

    1. Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage
  10. 要显示 EE Control Plane 容器资源要求 下拉列表下的字段,点箭头。

    1. Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage
  11. 要在 PostgreSQL init 容器资源要求下显示字段(使用受管服务) 下拉列表,点箭头。

    1. Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage
  12. 要显示 Redis 容器资源要求下拉列表下的字段,点箭头。

    1. Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage
  13. 要显示 PostgreSQL 容器资源要求下的字段(使用受管实例)* 下拉列表,点箭头。

    1. Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage
  14. 要显示 PostgreSQL 容器存储要求(使用受管实例时) 下拉列表,点箭头。

    1. Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage
  15. 在 Replicas 下,输入实例副本数量。
  16. Remove used secrets on instance removal 下,选择 truefalse。默认值为 false。
  17. Preload instance with data upon creation 下,选择 truefalse。默认值为 true。

5.2.1.2. 配置控制器 LDAP 安全性

您可以通过以下选项之一为自动化控制器配置 LDAP SSL 配置:

  • 自动化控制器用户界面。
  • 平台网关用户界面。如需了解更多步骤,请参阅 访问管理和身份验证指南中的 配置 LDAP 身份验证 部分。
  • 以下流程步骤。

流程

  1. 在 Ansible Automation Platform 命名空间中创建 secret,为 bundle-ca.crt 文件(文件名必须是 bundle-ca.crt):

    $ oc create secret -n aap generic bundle-ca-secret --from-file=bundle-ca.crt
    Copy to Clipboard Toggle word wrap
    注意

    此操作的目标文件名必须是 bundle-ca.crt,secret 名称应为 bundle-ca-secret

  2. bundle_cacert_secret 添加到 Ansible Automation Platform 客户资源中:

    ...
    spec:
      bundle_cacert_secret: bundle-ca-secret
    ...
    Copy to Clipboard Toggle word wrap

    验证

    您可以运行以下命令来验证预期的证书:

    oc get deployments -l 'app.kubernetes.io/component=aap-gateway'
    Copy to Clipboard Toggle word wrap
    oc exec -it deployment.apps/<gateway-deployment-name-from-above> -- openssl x509 -in /etc/pki/tls/certs/ca-bundle.crt -noout -text
    Copy to Clipboard Toggle word wrap

5.2.1.3. 配置自动化控制器 Operator 路由选项

Red Hat Ansible Automation Platform Operator 安装表单允许您在高级配置下进一步配置自动化控制器 operator 路由选项。

流程

  1. 登录到 Red Hat OpenShift Container Platform。
  2. 进入到 Operators Installed Operators
  3. 选择 Ansible Automation Platform Operator 部署。
  4. 选择 Automation Controller 选项卡。
  5. 对于新实例,点 Create AutomationController

    1. 对于现有实例,您可以通过点 WWN 图标,然后编辑 AutomationController 来编辑 YAML 视图。
  6. Advanced configuration
  7. Ingress type 下,点下拉菜单并选择 Route
  8. Route DNS host 下,输入路由要回答的通用主机名。
  9. Route TLS termination mechanism 下,点下拉菜单并选择 EdgePassthrough。对于大多数实例,应该选择 Edge
  10. Route TLS credential secret 下,点下拉菜单并从列表中选择一个 secret。
  11. Enable persistence for /var/lib/projects directory,选择 true 或 false(移动滑动条)。

    注意

    配置路由后,您可以通过将 route_host: 添加到该自动化控制器实例的 YAML 中来自定义主机名。

5.2.1.4. 为自动化控制器 Operator 配置入口类型

Ansible Automation Platform Operator 安装表单允许您在 高级配置下进一步配置自动化控制器 operator ingress。

流程

  1. 登录到 Red Hat OpenShift Container Platform。
  2. 进入到 Operators Installed Operators
  3. 选择 Ansible Automation Platform Operator 部署。
  4. 选择 Automation Controller 选项卡。
  5. 对于新实例,点 Create AutomationController

    1. 对于现有实例,您可以通过点 WWN 图标,然后编辑 AutomationController 来编辑 YAML 视图。
  6. Advanced configuration
  7. Ingress type 下,点下拉菜单并选择 Ingress
  8. Ingress annotations 下,输入要添加到 ingress 的任何注解。
  9. Ingress TLS secret 下,点下拉菜单并从列表中选择一个 secret。

验证

配置自动化控制器 Operator 后,点表单视图底部的 Create。Red Hat OpenShift Container Platform 创建 pod。这可能需要几分钟时间。

您可以通过进入到 Workloads Pods 并查找新创建的实例来查看进度。

验证来自自动化控制器的 Ansible Automation Platform Operator 安装提供的以下 Operator pod 是否正在运行:

Expand
Operator Manager 控制器自动化控制器Automation hubEvent-Driven Ansible (EDA)

三个 Operator 的 operator 管理器控制器,包括:

  • automation-controller-operator-controller-manager
  • automation-hub-operator-controller-manager
  • resource-operator-controller-manager
  • aap-gateway-operator-controller-manager
  • ansible-lightspeed-operator-controller-manager
  • eda-server-operator-controller-manager

部署自动化控制器后,您可以看到添加以下 pod:

  • controller
  • controller-postgres
  • controller-web
  • controller-task

部署自动化中心后,您可以看到添加以下 pod:

  • hub-api
  • hub-content
  • hub-postgres
  • hub-redis
  • hub-worker

部署 EDA 后,您可以看到添加以下 pod:

  • eda-activation-worker
  • da-api
  • eda-default-worker
  • eda-event-stream
  • ed-scheduler
注意

缺少 pod 可以代表需要 pull secret。受保护的或私有镜像 registry 需要 pull secret。如需更多信息,请参阅使用镜像 pull secret。您可以通过运行 oc describe pod <pod-name> 来查看 该 pod 上是否有 ImagePullBackOff 错误来进一步诊断此问题。

对于希望使用外部数据库部署 Ansible Automation Platform 的用户,可以通过使用实例凭证和连接信息配置 secret,然后使用 oc create 命令将其应用到其集群中。

默认情况下,Ansible Automation Platform Operator 会在与 Ansible Automation Platform 部署相同的命名空间中创建并配置受管 PostgreSQL pod。您可以使用外部数据库部署 Ansible Automation Platform,而不是 Ansible Automation Platform Operator 自动创建的受管 PostgreSQL pod。

使用外部数据库可让您共享和重复使用资源,并手动管理备份、升级和性能优化。

注意

只要数据库名称不同,同一外部数据库(PostgreSQL 实例)可用于自动化中心、自动化控制器和平台网关。换句话说,您可以在一个 PostgreSQL 实例中,带有使用不同名称的多个数据库。

以下部分概述了在 Ansible Automation Platform Operator 上为您的自动化控制器配置外部数据库的步骤。

前提条件

外部数据库必须是 PostgreSQL 数据库,这是 Ansible Automation Platform 当前发行版本支持的版本。外部 postgres 实例凭证和连接信息必须存储在 secret 中,然后在自动化控制器 spec 中设置。

注意

Ansible Automation Platform 2.5 支持 PostgreSQL 15。

流程

  1. 按照以下模板创建一个 postgres_configuration_secret YAML 文件:

    apiVersion: v1
    kind: Secret
    metadata:
      name: external-postgres-configuration
      namespace: <target_namespace> 
    1
    
    stringData:
      host: "<external_ip_or_url_resolvable_by_the_cluster>" 
    2
    
      port: "<external_port>" 
    3
    
      database: "<desired_database_name>"
      username: "<username_to_connect_as>"
      password: "<password_to_connect_with>" 
    4
    
      sslmode: "prefer" 
    5
    
      type: "unmanaged"
    type: Opaque
    Copy to Clipboard Toggle word wrap
    1. 要创建 secret 的命名空间。这应该是您要部署到的同一命名空间。
    2. 数据库节点的可解析的主机名。
    3. 外部端口默认为 5432
    4. 变量 password 的值不应包含单引号或双引号('、')或反斜杠(\),以避免在部署、备份或恢复过程中出现任何问题。
    5. 变量 sslmode 仅适用于外部数据库。允许的值是:prefer, disable, allow, require, verify-ca, 和 verify-full
  2. 使用 oc create 命令将 external-postgres-configuration-secret.yml 应用到您的集群。

    $ oc create -f external-postgres-configuration-secret.yml
    Copy to Clipboard Toggle word wrap
  3. 在创建 AutomationController 自定义资源对象时,在 spec 中指定 secret,参见以下示例:

    apiVersion: automationcontroller.ansible.com/v1beta1
    kind: AutomationController
    metadata:
      name: controller-dev
    spec:
      postgres_configuration_secret: external-postgres-configuration
    Copy to Clipboard Toggle word wrap

5.2.3. 查找和删除 PVC

持久性卷声明 (PVC) 是一个存储卷,用于存储自动化 hub 和自动化控制器应用程序使用的数据。这些 PVC 独立于应用程序,即使应用程序被删除也是如此。如果您确信不再需要 PVC,或者已在其他位置备份它,您可以手动删除它们。

流程

  1. 列出部署命名空间中的现有 PVC:

    oc get pvc -n <namespace>
    Copy to Clipboard Toggle word wrap
  2. 通过比较旧部署名称和 PVC 名称来识别与之前部署关联的 PVC。
  3. 删除旧的 PVC:

    oc delete pvc -n <namespace> <pvc-name>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat