5.3. 在 Red Hat OpenShift Container Platform Web 控制台中配置自动化中心
您可以使用以下说明在 Red Hat OpenShift Container Platform 上配置自动化中心 Operator,指定自定义资源,并使用外部数据库部署 Ansible Automation Platform。
自动化中心配置可以通过自动化中心 pulp_settings 或部署后直接在用户界面中进行。但请注意,在 pulp_settings 中进行的配置优先于用户界面中进行的设置。Hub 自定义资源规格应始终将 hub 设置设置为小写。
当删除自动化 hub 实例时,PVC 不会被自动删除。如果新部署的名称与前一名称相同,这可能会导致迁移期间出现问题。因此,建议您在在同一命名空间中部署新自动化 hub 实例前手动删除旧的 PVC。如需更多信息,请参阅 查找和删除 PVC。
5.3.1. 先决条件 复制链接链接已复制到粘贴板!
- 您已在 Operator Hub 中安装了 Ansible Automation Platform Operator。
自动化中心需要 ReadWriteMany 文件存储、Azure Blob 存储或 Amazon S3 存储进行操作,以便多个 pod 可以访问共享内容,如集合。
在 AutomationHub CR 上配置对象存储的过程与 Amazon S3 和 Azure Blob Storage 类似。
如果您使用基于文件的存储,且安装场景包含自动化中心,请确保 Ansible Automation Platform Operator 的 storage 选项被设置为 ReadWriteMany。ReadWriteMany 是默认的存储选项。
另外,OpenShift Data Foundation 提供了一个 ReadWriteMany 或 S3 实现。另外,您可以设置 NFS 存储配置来支持 ReadWriteMany。但是,这会将 NFS 服务器作为潜在的单点故障引入。
5.3.1.1.1. 使用 ReadWriteMany 访问模式置备 OCP 存储 复制链接链接已复制到粘贴板!
要确保成功安装 Ansible Automation Platform Operator,您必须为自动化 hub 置备存储类型,最初为 ReadWriteMany 访问模式。
流程
-
进入
。 - 点 。
在第一步中,将
accessModes从默认的ReadWriteOnce更新为ReadWriteMany。- 如需了解详细的概述,请参阅 Provisioning 以更新访问模式。
- 完成本节中的额外步骤,以创建持久性卷声明 (PVC)。
5.3.1.1.2. 在 Amazon S3 中配置对象存储 复制链接链接已复制到粘贴板!
红帽支持用于自动化中心的 Amazon Simple Storage Service (S3)。您可以在部署 AutomationHub 自定义资源 (CR) 时配置它,也可以为现有实例配置它。
先决条件
- 创建 Amazon S3 存储桶以存储对象。
- 请注意 S3 存储桶的名称。
流程
创建包含 AWS 凭证和连接详情的 Kubernetes secret,以及 Amazon S3 存储桶的名称。以下示例创建一个名为
test-s3的 secret:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 secret 添加到自动化中心自定义资源 (CR)
spec中:spec: object_storage_s3_secret: test-s3
spec: object_storage_s3_secret: test-s3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要将此 secret 应用到现有实例,请重启 API pod 以使更改生效。
<hub-name>是 hub 实例的名称。oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
$ oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.1.1.3. 在 Azure Blob 中配置对象存储 复制链接链接已复制到粘贴板!
红帽支持用于自动化中心的 Azure Blob Storage。您可以在部署 AutomationHub 自定义资源 (CR) 时配置它,也可以为现有实例配置它。
先决条件
- 创建 Azure Storage blob 容器来存储对象。
- 请注意 blob 容器的名称。
流程
创建一个包含 Azure 帐户凭证和连接详情的 Kubernetes secret,以及 Azure Storage blob 容器的名称。以下示例创建一个名为
test-azure的 secret:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 secret 添加到自动化中心自定义资源 (CR)
spec中:spec: object_storage_azure_secret: test-azure
spec: object_storage_azure_secret: test-azureCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要将此 secret 应用到现有实例,请重启 API pod 以使更改生效。
<hub-name>是 hub 实例的名称。oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
$ oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.1.2. 配置自动化 hub Operator 路由选项 复制链接链接已复制到粘贴板!
Red Hat Ansible Automation Platform Operator 安装表单允许您在 高级配置下进一步配置 Automation hub operator 路由选项。
流程
- 登录到 Red Hat OpenShift Container Platform。
-
进入到
。 - 选择 Ansible Automation Platform Operator 部署。
- 选择 Automation Hub 选项卡。
对于新实例,点 。
- 对于现有实例,您可以通过点 WWN 图标,然后编辑 YAML 视图。
- 点 。
- 在 Ingress type 下,点下拉菜单并选择 Route。
- 在 Route DNS host 下,输入路由要回答的通用主机名。
- 在 Route TLS termination mechanism 下,点下拉菜单并选择 Edge 或 Passthrough。
在 Route TLS credential secret 下,点下拉菜单并从列表中选择一个 secret。
注意配置路由后,您可以通过将
route_host:添加到该自动化中心实例的 YAML 中来自定义主机名。
5.3.1.3. 为自动化 hub Operator 配置 ingress 类型 复制链接链接已复制到粘贴板!
Ansible Automation Platform Operator 安装表单允许您在 高级配置下进一步配置 Automation hub operator ingress。
流程
- 登录到 Red Hat OpenShift Container Platform。
-
进入到
。 - 选择 Ansible Automation Platform Operator 部署。
- 选择 Automation Hub 选项卡。
对于新实例,点 。
- 对于现有实例,您可以通过点 WWN 图标,然后编辑 YAML 视图。
- 点 。
- 在 Ingress type 下,点下拉菜单并选择 Ingress。
- 在 Ingress annotations 下,输入要添加到 ingress 的任何注解。
- 在 Ingress TLS secret 下,点下拉菜单并从列表中选择一个 secret。
验证
配置 Automation hub Operator 后,点表单视图底部的 。Red Hat OpenShift Container Platform 创建 pod。这可能需要几分钟时间。
您可以通过进入到
验证来自自动化中心的 Ansible Automation Platform Operator 安装提供的以下 Operator pod 是否正在运行:
| Operator Manager 控制器 | 自动化控制器 | Automation hub |
|---|---|---|
| 每 3 个 operator 的 operator 管理器控制器,包括:
| 部署自动化控制器后,您将看到添加的 pod:
| 部署自动化中心后,您将看到添加的 pod:
|
缺少 pod 可以代表需要 pull secret。受保护的或私有镜像 registry 需要 pull secret。如需更多信息,请参阅使用镜像 pull secret。您可以通过运行 oc describe pod <pod-name> 来查看 该 pod 上是否有 ImagePullBackOff 错误来进一步诊断此问题。
5.3.2. 查找自动化中心路由 复制链接链接已复制到粘贴板!
您可以通过平台网关或以下流程访问自动化中心。
流程
- 登录到 Red Hat OpenShift Container Platform。
-
进入到
。 - 在 Location 下,点您的自动化 hub 实例的 URL。
验证
Automation hub 用户界面会启动,您可以在其中使用 Operator 配置流程中指定的管理员凭证进行登录。
如果您没有在配置期间指定管理员密码,则会为您自动创建密码。要找到此密码,访问您的项目,选择
对于希望使用外部数据库部署 Ansible Automation Platform 的用户,可以通过使用实例凭证和连接信息配置 secret,然后使用 oc create 命令将其应用到其集群中。
默认情况下,Ansible Automation Platform Operator 会在与 Ansible Automation Platform 部署相同的命名空间中创建并配置受管 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 在创建
AutomationHub自定义资源对象时,在 spec 中指定 secret,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.3.1. 为自动化中心 PostgreSQL 数据库启用 hstore 扩展 复制链接链接已复制到粘贴板!
数据库迁移脚本使用 hstore 字段来存储信息,因此在自动化中心 PostgreSQL 数据库中必须启用 hstore 扩展。
使用 Ansible Automation Platform 安装程序和受管 PostgreSQL 服务器时,此过程是自动的。
如果 PostgreSQL 数据库是外部的,则必须在安装前在自动化中心 PostgreSQL 数据库中手动启用 hstore 扩展。
如果在安装过程中没有启用 hstore 扩展,在数据库迁移过程中会出现一个失败。
流程
检查 PostgreSQL 服务器上是否有扩展(自动化 hub 数据库)。
psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"
$ psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
<automation hub database>的默认值为automationhub。带有
hstore可用的输出示例 :name | default_version | installed_version |comment ------+-----------------+-------------------+--------------------------------------------------- hstore | 1.7 | | data type for storing sets of (key, value) pairs (1 row)
name | default_version | installed_version |comment ------+-----------------+-------------------+--------------------------------------------------- hstore | 1.7 | | data type for storing sets of (key, value) pairs (1 row)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 带有
hstore不可用的输出示例 :name | default_version | installed_version | comment ------+-----------------+-------------------+--------- (0 rows)
name | default_version | installed_version | comment ------+-----------------+-------------------+--------- (0 rows)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在基于 RHEL 的服务器上,
hstore扩展包含在postgresql-contribRPM 软件包中,该软件包在安装 PostgreSQL 服务器 RPM 软件包时不会自动安装。要安装 RPM 软件包,请使用以下命令:
dnf install postgresql-contrib
dnf install postgresql-contribCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令将
hstorePostgreSQL 扩展加载到自动化中心数据库中:psql -d <automation hub database> -c "CREATE EXTENSION hstore;"
$ psql -d <automation hub database> -c "CREATE EXTENSION hstore;"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在以下输出中,
installed_version字段列出了使用的hstore扩展,表示启用了hstore。name | default_version | installed_version | comment -----+-----------------+-------------------+------------------------------------------------------ hstore | 1.7 | 1.7 | data type for storing sets of (key, value) pairs (1 row)
name | default_version | installed_version | comment -----+-----------------+-------------------+------------------------------------------------------ hstore | 1.7 | 1.7 | data type for storing sets of (key, value) pairs (1 row)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.4. 查找和删除 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
5.3.5. 其他配置 复制链接链接已复制到粘贴板!
集合下载计数可帮助您了解集合使用情况。要在自动化中心中添加集合下载计数,请设置以下配置:
spec:
pulp_settings:
ansible_collect_download_count: true
spec:
pulp_settings:
ansible_collect_download_count: true
启用 ansible_collect_download_count 时,自动化中心将显示集合的下载计数。
5.3.6. 在自动化控制器镜像配置中添加允许的 registry 复制链接链接已复制到粘贴板!
在自动化 hub 中部署容器镜像前,您必须将 registry 添加到自动化控制器镜像配置中的 allowedRegistries 中。要做到这一点,您可以将以下代码复制并粘贴到自动化控制器镜像 YAML 中。
流程
- 登录到 Red Hat OpenShift Container Platform。
-
导航到
。 - 选择 Resources 下拉列表,并键入 "Image"。
- 选择 Image (config,openshift.io/v1)。
- 在 Name 标题下点 。
- 选择 选项卡。
粘贴 spec 值下的以下内容:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点击 。
5.3.7. 为 Ansible Automation Platform Hub Operator 配置内容签名 复制链接链接已复制到粘贴板!
作为机构的自动化管理员,您可以配置 Ansible Automation Platform Hub Operator,以根据机构中的不同组签名和发布 Ansible 内容集合。
为提高安全性,自动化创建者可以配置 Ansible-Galaxy CLI 以验证这些集合,确保在上传到自动化中心后不会更改它们。
要成功签名并发布 Ansible 认证的内容集合,您必须配置私有自动化中心进行签名。
先决条件
-
GPG 密钥对。如果没有,可以使用
gpg --full-generate-key命令生成一个。 - 您的公钥-私钥对有权在 Ansible Automation Platform Hub Operator 上配置内容签名。
流程
创建用于签名脚本的 ConfigMap。您创建的 ConfigMap 包含签名服务用于集合和容器镜像的脚本。
注意此脚本用作签名服务的一部分,必须使用通过
PULP_SIGNING_KEY_FINGERPRINT环境变量指定的密钥为该文件生成 ascii-armored 分离的gpg签名。该脚本打印一个 JSON 结构,其格式如下:
{"file": "filename", "signature": "filename.asc"}{"file": "filename", "signature": "filename.asc"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 所有文件名都是当前工作目录中的相对路径。对于分离的签名,文件名必须保持相同。
示例: 以下脚本为内容生成签名:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为您的 GnuPG 私钥创建 secret。此 secret 安全地存储您用于签名的 GnuPG 私钥。
gpg --export --armor <your-gpg-key-id> > signing_service.gpg oc create secret generic signing-galaxy --from-file=signing_service.gpg
gpg --export --armor <your-gpg-key-id> > signing_service.gpg oc create secret generic signing-galaxy --from-file=signing_service.gpgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 该机密必须具有名为
signing_service.gpg的密钥。配置 AnsibleAutomationPlatform CR。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow