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. 配置控制器镜像拉取策略 复制链接链接已复制到粘贴板!
使用这个流程在自动化控制器上配置镜像拉取策略。
流程
- 登录到 Red Hat OpenShift Container Platform。
-
进入
。 - 选择 Ansible Automation Platform Operator 部署。
- 选择 Automation Controller 选项卡。
对于新实例,点 。
- 对于现有实例,您可以通过点 WWN 图标,然后编辑 YAML 视图。
单击 。在 Image Pull Policy 下,点单选按钮选择
- Always
- Never
- IfNotPresent
要显示 Image Pull Secrets 下的选项,点箭头。
- 点 Add Image Pull Secret 旁边的 输入值。
要在 Web 容器资源要求下拉列表中显示字段,点箭头。
- 在 Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage。
要在 Task container resource requirements 下拉列表中显示字段,点箭头。
- 在 Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage。
要显示 EE Control Plane 容器资源要求 下拉列表下的字段,点箭头。
- 在 Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage。
要在 PostgreSQL init 容器资源要求下显示字段(使用受管服务) 下拉列表,点箭头。
- 在 Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage。
要显示 Redis 容器资源要求下拉列表下的字段,点箭头。
- 在 Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage。
要显示 PostgreSQL 容器资源要求下的字段(使用受管实例)* 下拉列表,点箭头。
- 在 Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage。
要显示 PostgreSQL 容器存储要求(使用受管实例时) 下拉列表,点箭头。
- 在 Limits、和 Requests 下,输入 CPU cores, Memory, 和 Storage。
- 在 Replicas 下,输入实例副本数量。
- 在 Remove used secrets on instance removal 下,选择 true 或 false。默认值为 false。
- 在 Preload instance with data upon creation 下,选择 true 或 false。默认值为 true。
5.2.1.2. 配置控制器 LDAP 安全性 复制链接链接已复制到粘贴板!
您可以通过以下选项之一为自动化控制器配置 LDAP SSL 配置:
- 自动化控制器用户界面。
- 平台网关用户界面。如需了解更多步骤,请参阅 访问管理和身份验证指南中的 配置 LDAP 身份验证 部分。
- 以下流程步骤。
流程
在 Ansible Automation Platform 命名空间中创建 secret,为
bundle-ca.crt文件(文件名必须是bundle-ca.crt):oc create secret -n aap generic bundle-ca-secret --from-file=bundle-ca.crt
$ oc create secret -n aap generic bundle-ca-secret --from-file=bundle-ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此操作的目标文件名必须是
bundle-ca.crt,secret 名称应为bundle-ca-secret。将
bundle_cacert_secret添加到 Ansible Automation Platform 客户资源中:... spec: bundle_cacert_secret: bundle-ca-secret ...
... spec: bundle_cacert_secret: bundle-ca-secret ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
您可以运行以下命令来验证预期的证书:
oc get deployments -l 'app.kubernetes.io/component=aap-gateway'
oc get deployments -l 'app.kubernetes.io/component=aap-gateway'Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc exec -it deployment.apps/<gateway-deployment-name-from-above> -- openssl x509 -in /etc/pki/tls/certs/ca-bundle.crt -noout -text
oc exec -it deployment.apps/<gateway-deployment-name-from-above> -- openssl x509 -in /etc/pki/tls/certs/ca-bundle.crt -noout -textCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.1.3. 配置自动化控制器 Operator 路由选项 复制链接链接已复制到粘贴板!
Red Hat Ansible Automation Platform Operator 安装表单允许您在高级配置下进一步配置自动化控制器 operator 路由选项。
流程
- 登录到 Red Hat OpenShift Container Platform。
-
进入到
。 - 选择 Ansible Automation Platform Operator 部署。
- 选择 Automation Controller 选项卡。
对于新实例,点 。
- 对于现有实例,您可以通过点 WWN 图标,然后编辑 YAML 视图。
- 点 。
- 在 Ingress type 下,点下拉菜单并选择 Route。
- 在 Route DNS host 下,输入路由要回答的通用主机名。
- 在 Route TLS termination mechanism 下,点下拉菜单并选择 Edge 或 Passthrough。对于大多数实例,应该选择 Edge。
- 在 Route TLS credential secret 下,点下拉菜单并从列表中选择一个 secret。
在 Enable persistence for /var/lib/projects directory,选择 true 或 false(移动滑动条)。
注意配置路由后,您可以通过将
route_host:添加到该自动化控制器实例的 YAML 中来自定义主机名。
5.2.1.4. 为自动化控制器 Operator 配置入口类型 复制链接链接已复制到粘贴板!
Ansible Automation Platform Operator 安装表单允许您在 高级配置下进一步配置自动化控制器 operator ingress。
流程
- 登录到 Red Hat OpenShift Container Platform。
-
进入到
。 - 选择 Ansible Automation Platform Operator 部署。
- 选择 Automation Controller 选项卡。
对于新实例,点 。
- 对于现有实例,您可以通过点 WWN 图标,然后编辑 YAML 视图。
- 点 。
- 在 Ingress type 下,点下拉菜单并选择 Ingress。
- 在 Ingress annotations 下,输入要添加到 ingress 的任何注解。
- 在 Ingress TLS secret 下,点下拉菜单并从列表中选择一个 secret。
验证
配置自动化控制器 Operator 后,点表单视图底部的 。Red Hat OpenShift Container Platform 创建 pod。这可能需要几分钟时间。
您可以通过进入到
验证来自自动化控制器的 Ansible Automation Platform Operator 安装提供的以下 Operator pod 是否正在运行:
| Operator Manager 控制器 | 自动化控制器 | Automation hub | Event-Driven Ansible (EDA) |
|---|---|---|---|
| 三个 Operator 的 operator 管理器控制器,包括:
| 部署自动化控制器后,您可以看到添加以下 pod:
| 部署自动化中心后,您可以看到添加以下 pod:
| 部署 EDA 后,您可以看到添加以下 pod:
|
缺少 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。
流程
按照以下模板创建一个
postgres_configuration_secretYAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 要创建 secret 的命名空间。这应该是您要部署到的同一命名空间。
- 数据库节点的可解析的主机名。
-
外部端口默认为
5432。 -
变量
password的值不应包含单引号或双引号('、')或反斜杠(\),以避免在部署、备份或恢复过程中出现任何问题。 -
变量
sslmode仅适用于外部数据库。允许的值是:prefer,disable,allow,require,verify-ca, 和verify-full。
使用
oc create命令将external-postgres-configuration-secret.yml应用到您的集群。oc create -f external-postgres-configuration-secret.yml
$ oc create -f external-postgres-configuration-secret.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在创建
AutomationController自定义资源对象时,在 spec 中指定 secret,参见以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.3. 查找和删除 PVC 复制链接链接已复制到粘贴板!
持久性卷声明 (PVC) 是一个存储卷,用于存储自动化 hub 和自动化控制器应用程序使用的数据。这些 PVC 独立于应用程序,即使应用程序被删除也是如此。如果您确信不再需要 PVC,或者已在其他位置备份它,您可以手动删除它们。
流程
列出部署命名空间中的现有 PVC:
oc get pvc -n <namespace>
oc get pvc -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 通过比较旧部署名称和 PVC 名称来识别与之前部署关联的 PVC。
删除旧的 PVC:
oc delete pvc -n <namespace> <pvc-name>
oc delete pvc -n <namespace> <pvc-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow