第 5 章 在 Red Hat Ansible Automation Platform Operator 中配置 Red Hat Ansible Automation Platform 组件


安装 Ansible Automation Platform Operator 并设置 Ansible Automation Platform 组件后,您可以为所需的输出配置它们。

您可以使用以下说明在 Red Hat OpenShift Container Platform 上进一步配置平台网关 Operator,指定自定义资源,并使用外部数据库部署 Ansible Automation Platform。

使用外部数据库部署 Ansible Automation Platform 有两种场景:

Expand

场景

所需的操作

全新安装

您必须为以下平台指定一个外部数据库实例:

  • 平台网关
  • 自动化控制器
  • Automation hub
  • Event-Driven Ansible
  • Red Hat Ansible Lightspeed (如果已启用)

请参阅 14.1 中的 aap-configuring-external-db-all-default-components.yml 示例。自定义资源 部分,用于帮助实现此目的。

如果使用 Red Hat Ansible Lightspeed,请使用 aap-configuring-external-db-with-lightspeed-enabled.yml 示例。

2.4 中现有的外部数据库

升级后,您的现有外部数据库保持不变,但您必须在 Ansible Automation Platform 自定义资源中指定 external-postgres-configuration-gateway (spec.database.database_secret)。

要使用外部数据库部署 Ansible Automation Platform,您必须首先创建一个 Kubernetes secret,其中包含用于连接数据库的凭证的 Kubernetes secret。

默认情况下,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
    
      type: "unmanaged"
    type: Opaque
    1. 要创建 secret 的命名空间。这应该是您要部署到的同一命名空间。
    2. 数据库节点的可解析的主机名。
    3. 外部端口默认为 5432
    4. 变量 password 的值不应包含单引号或双引号('、')或反斜杠(\),以避免在部署、备份或恢复过程中出现任何问题。
  2. 使用 oc create 命令将 external-postgres-configuration-secret.yml 应用到您的集群。

    $ oc create -f external-postgres-configuration-secret.yml
    注意

    以下示例是平台网关部署。要为所有组件配置外部数据库,在 14.1 中使用 aap-configuring-external-db-all-default-components.yml 示例。自定义资源 部分。

  3. 在创建 AnsibleAutomationPlatform 自定义资源对象时,在 spec 中指定 secret,如下例所示:

    apiVersion: aap.ansible.com/v1alpha1
    kind: AnsibleAutomationPlatform
    metadata:
      name: example-aap
      Namespace: aap
    spec:
      database:
         database_secret: automation-platform-postgres-configuration

在升级 Ansible Automation Platform Operator 时,您可能会遇到类似如下的错误:

NotImplementedError: can't parse timestamptz with DateStyle 'Redwood, SHOW_TIME': '18-MAY-23 20:33:55.765755 +00:00'

当您有一个带有意外 DateStyle 设置的外部数据库时,会发生这种情况。您可以参考以下步骤来解决这个问题。

流程

  1. 编辑数据库服务器上的 /var/lib/pgsql/data/postgres.conf 文件:

    # vi /var/lib/pgsql/data/postgres.conf
  2. 查找并注释掉该行:

    #datestyle = 'Redwood, SHOW_TIME'
  3. 在新注释行下立即添加以下设置:

    datestyle = 'iso, mdy'
  4. 保存并关闭 postgres.conf 文件。
  5. 重新载入数据库配置:

    # systemctl reload postgresql
    注意

    运行此命令不会影响数据库操作。

SAML 的 HTTPS 重定向允许您登录一次并访问所有平台网关,而无需重新验证。

先决条件

流程

  1. 登录到 Red Hat OpenShift Container Platform。
  2. 进入 Operators Installed Operators
  3. 选择 Ansible Automation Platform Operator 部署。
  4. 选择 All Instances,再进入您的 AnsibleAutomationPlatform 实例。
  5. 点 ProductShortName 图标,然后选择 Edit AnsibleAutomationPlatform
  6. YAML 视图中,将以下 YAML 代码粘贴到 spec: 部分:

    spec:
      extra_settings:
        - setting: REDIRECT_IS_HTTPS
          value: '"True"'
  7. 点击 Save

验证

添加 REDIRECT_IS_HTTPS 设置后,等待 pod 自动重新部署。您可以运行以下命令来验证此设置使其进入 pod:

oc exec -it <gateway-pod-name> -- grep REDIRECT /etc/ansible-automation-platform/gateway/settings.py

5.1.4. 为平台网关 Operator ingress 配置 CSRF 设置

Red Hat Ansible Automation Platform Operator 创建 Openshift 路由,并自动配置您的跨站点请求伪造(CSRF)设置。使用外部入口时,您必须在入口上配置 CSRF 以允许跨站点请求。您可以在 高级配置 下配置平台网关 operator ingress。

流程

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

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

    spec:
      extra_settings:
        - setting: CSRF_TRUSTED_ORIGINS
          value:
            - https://my-aap-domain.com
  10. 配置平台网关后,点表单视图底部的 Create (如果编辑现有实例,则为 Save )。

验证

Red Hat OpenShift Container Platform 创建 pod。这可能需要几分钟时间。您可以通过进入到 Workloads Pods 并查找新创建的实例来查看进度。验证 Red Hat Ansible Automation Platform Operator 安装提供的以下 Operator pod 是否正在运行:

Expand
Operator Manager 控制器 pod自动化控制器 podAutomation hub podevent-Driven Ansible (EDA) pod平台网关 pod

每个四个 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:

  • 自动化控制器 web
  • 自动化控制器任务
  • Mesh ingress
  • 自动化控制器 postgres

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

  • Automation hub web
  • Automation hub 任务
  • Automation hub API
  • Automation hub worker

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

  • EDA API
  • EDA 激活
  • EDA worker
  • EDA 流
  • EDA 调度程序

部署平台网关后,您可以看到添加以下 pod:

  • 平台网关
  • 平台网关 redis
注意

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

5.1.5. 平台网关的常见问题

管理 Ansible Automation Platform 部署,并对常见问题进行故障排除。了解组件的资源管理、日志记录和错误恢复。

如果我删除 Ansible Automation Platform 部署,我仍然有权访问自动化控制器?
自动化控制器、自动化中心和 Event-Driven Ansible 嵌套在部署中,也会被删除。
在 Ansible Automation Platform 自定义资源(CR)层次结构中添加或删除参数时,如何管理参数?
在添加 参数时,您只能将其添加到 Ansible Automation Platform 自定义资源(CR)中,这些参数将处理它们到嵌套 CR 的方法。

在删除 参数时,您必须从 Ansible Automation Platform CR 嵌套 CR 中删除它们,如 Automation Controller CR。

部署出错,但不知道如何找出什么?
在 Operator 协调时,可以在命令行中跟进,这对调试非常有用。或者,您也可以单击部署实例,以查看部署要更新的状态条件。
仍然有可能查看各个组件日志?
在进行故障排除时,您应该检查主日志的 Ansible Automation Platform 实例,然后检查每个单独组件(EDAAutomationHubAutomationController)以获取更具体的信息。
我在哪里可以查看实例的条件?
要显示状态条件,请单击实例,并在 DetailsEvents 选项卡中查看。另外,要显示您可以运行 get 命令的状态条件: oc get automationcontroller <instance-name> -o jsonpath=Pipe "| jq"
我是否可以实时跟踪我的迁移?
为了帮助跟踪迁移的状态,或了解迁移失败的原因,您可以在迁移运行时查看迁移日志。使用 logs 命令: oc logs fresh-install-controller-migration-4.6.0-jwfm6 -f
我已配置了 SAML,但身份验证失败并显示此错误:"Unable to complete social auth login"我可以做什么?
您必须更新 Ansible Automation Platform 实例,使其包含 REDIRECT_IS_HTTPS 额外设置。如需了解更多信息,请参阅在 OpenShift Container Platform 上为平台网关启用单点登录(SSO)
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部