Red Hat Ansible Automation Platform 规划指南


Red Hat Ansible Automation Platform 2.3

本文档提供有关安装 Red Hat Ansible Automation Platform 的要求、选项和建议。

Red Hat Customer Content Services

摘要

提供反馈:
如果您对本文档有任何改进建议,或发现错误,请联系技术支持 https://access.redhat.com,使用 Docs组件在 Ansible Automation PlatformJIRA 项目中创建一个问题。

前言

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

使用本指南中的信息来规划 Red Hat Ansible Automation Platform 安装。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息

Red Hat Ansible Automation Platform 在 Red Hat Enterprise Linux 和 Red Hat OpenShift 上都被支持。使用本指南规划在 Red Hat Enterprise Linux 上安装 Red Hat Ansible Automation Platform。

要在 Red Hat OpenShift Container Platform 环境中安装 Red Hat Ansible Automation Platform,请参阅在 OpenShift Container Platform 上部署 Red Hat Ansible Automation Platform Operator

第 2 章 Red Hat Ansible Automation Platform 架构

作为模块化平台,Ansible Automation Platform 提供了轻松集成组件和自定义部署的灵活性,以更好地满足您的自动化要求。本节提供了 Ansible Automation Platform 部署的综合架构示例。

2.1. Ansible Automation Platform 架构示例

Red Hat Ansible Automation Platform 2.3 参考架构提供了在 Red Hat Enterprise Linux 上使用自动化网格部署 Ansible Automation Platform 的标准部署的示例设置。显示的部署利用以下关键组件来提供简单、安全且灵活的处理自动化工作负载方法、内容集合的中央位置以及 IT 请求的自动化解析。

自动化控制器
通过其 UI、Restful API、RBAC 工作流和 CI/CD 集成提供控制平面来实现自动化。
Automation mesh
是一个覆盖网络,它可以通过利用现有网络相互建立对等连接的节点,简化了在大型和分散的 worker 集合中工作分布的功能。
私有自动化中心
为自动化开发人员提供协作和发布自己的自动化内容的能力,并简化组织内部的 Ansible 代码交付。

这个示例的架构包括:

  • 两个节点自动化控制器集群
  • 将自动化控制器连接到执行节点的可选跃点节点
  • 两个节点自动化中心集群
  • 连接到自动化控制器和自动化中心的单一 PostgreSQL 数据库
  • 每个自动化控制器集群有两个执行节点

图 2.1. Ansible Automation Platform 2.3 架构示例

标准 Ansible Automation Platform 部署示例设置的参考架构

Ansible Automation Platform 是一个由单独的组件组成的模块平台,可一起连接以满足您的部署需求。Ansible Automation Platform 部署从自动化控制器开始,这是使用用户界面 (UI) 和 RESTful 应用程序编程接口 (API) 控制、保护和管理 Ansible 自动化的企业框架。然后,您可以在部署中添加以下自动化平台组件的任意组合:

3.1. Ansible Automation hub

Ansible Automation hub 是一个用于认证 Ansible 内容集合内容的存储库。它是红帽及其合作伙伴的集中存储库,用于发布内容,并允许客户发现经过认证、受支持的 Ansible 内容集合。Red Hat Ansible 认证的内容为用户提供已经过测试并受红帽支持的内容。

3.2. 私有自动化中心

私有自动化中心提供断开连接和内部解决方案,用于同步内容。您可以从 Red Hat 云自动化中心同步集合和执行环境镜像,存储和提供自己的自定义自动化集合和执行镜像。您还可以使用 Ansible Galaxy 或其他容器 registry 等其他源向私有自动化中心提供内容。私有自动化中心可以集成到您的企业目录和 CI/CD 管道中。

3.3. 自动化服务目录

自动化服务目录是 Red Hat Ansible Automation Platform 中的服务。自动化服务目录允许您在各种环境中在 Ansible 自动化控制器中组织和管理产品目录源。

使用自动服务目录,您可以:

  • 对单个平台清单应用多级别批准。
  • 将您的平台中的产品以产品组合(portfolios)的形式组织内容。
  • 选择产品组合与特定用户组共享。
  • 设定要执行用户请求的数值的界限。

3.4. Automation mesh

自动化网格是一个覆盖网络,旨在通过使用现有网络相互建立对等连接的节点,简化在大型且分散的 worker 集合中的工作分布。

Automation mesh 提供:

  • 动态集群容量可独立扩展,允许您以最少的停机时间创建、注册、分组、分组和取消注册节点。
  • 控制和执行平面分离,可让您独立于 control plane 容量来缩放 playbook 执行容量。
  • 部署选择具有应对延迟、在没有中断中断的情况下可重新配置的部署选择,并在存在中断时动态重新路由以选择不同的路径。
  • Mesh 路由更改。
  • 包括符合联邦信息处理标准(FIPS)的双向多跃网格通信可能性的连接。

3.5. 自动执行环境

自动化执行环境是运行 Red Hat Ansible Automation Platform 中的所有自动化的容器镜像。它们提供了一个包括 Ansible 执行引擎和数百个模块的解决方案,可帮助用户自动化 IT 环境和流程的所有方面。自动化执行环境自动执行常用的操作系统、基础架构平台、网络设备和云。

3.6. Ansible Galaxy

Ansible Galaxy 是一个用于查找、重复利用和共享 Ansible 内容的中心。社区提供的 Galaxy 内容采用预打包角色的形式,可帮助启动自动化项目。用于配置基础架构、部署应用和完成其他任务的角色可被丢弃到 Ansible Playbook 中,并立即应用到客户环境。

3.7. 自动化内容导航器

自动化内容导航器是一个文本用户界面 (TUI),它成为自动化平台的主要命令行界面,包括内容构建、在执行环境中运行自动化、在 Ansible Automation Platform 中运行自动化,并为未来 集成开发环境 (IDE) 提供基础。

第 4 章 系统要求

在规划 Red Hat Ansible Automation Platform 安装并设计适合您的用例的自动化网格拓扑时,请使用此信息。

先决条件

  • 您必须能够通过 sudo 命令或特权升级来获取 root 访问权限。有关权限升级的更多信息,请参阅了解特权升级
  • 您需要能够将权限从 root 降级到普通用户,例如: AWX、PostgreSQL、或 Pulp。
  • 您必须在所有节点上配置 NTP 客户端。如需更多信息,请参阅使用 Chrony 配置 NTP 服务器

4.1. Red Hat Ansible Automation Platform 系统要求

您的系统必须满足以下最低系统要求才能安装和运行 Red Hat Ansible Automation Platform。

Expand
表 4.1. 基本系统
要求必填备注

订阅

有效的 Red Hat Ansible Automation Platform

 

OS

Red Hat Enterprise Linux 8.6 或更高的 64 位版本(x86,ppc64le, s390x, aarch64), 或 Red Hat Enterprise Linux 9.0 or later 64-bit (x86,ppc64le, s390x, aarch64)

Red Hat Ansible Automation Platform 在 OpenShift 上也支持,请参阅在 OpenShift Container Platform 上部署 Red Hat Ansible Automation Platform Operator。

Ansible

2.14 版本(安装)

Ansible Automation Platform 附带了包含 ansible-core 2.14 的执行环境。

Python

3.8 或更高版本

 

浏览器

当前支持的 Mozilla FireFox 或 Google Chrome 版本

 

数据库

PostgreSQL 版本 13

 

在使用项目更新和集合时,需要满足以下条件:

  • 确保以下域名是防火墙或代理的允许列表一部分,以便能成功连接并从自动化中心或 Galaxy 服务器下载集合:

    • galaxy.ansible.com
    • cloud.redhat.com
    • console.redhat.com
    • sso.redhat.com
  • 在使用自签名证书或红帽域时,必须禁用 SSL 检查。
注意

由 Ansible Automation Platform 管理的系统的要求与 Ansible 相同。请参阅 Ansible 用户指南中的快速入门部分。

有关 Red Hat Ansible Automation Platform 要求的额外备注

  • 由 Ansible Automation Platform 管理的系统的要求与 Ansible 相同。请参阅 Ansible 用户指南中的快速入门部分。
  • 虽然 Red Hat Ansible Automation Platform 依赖于 Ansible Playbook,并且在安装自动化控制器前需要安装最新版本的 Ansible,但不再需要手动安装 Ansible。
  • 对于新安装,自动化控制器会安装最新版本的 Ansible 2.3。
  • 如果执行捆绑的 Ansible Automation Platform 安装,安装程序会尝试从捆绑包中安装 Ansible(及其依赖项)。
  • 如果您选择自己手动安装 Ansible,Ansible Automation Platform 安装程序会检测到已安装的 Ansible,并且不会尝试重新安装它。
注意

您必须使用软件包管理器(如 yum )安装 Ansible,必须安装软件包管理器的最新稳定版本,以便 Red Hat Ansible Automation Platform 正常工作。版本 2.3 及更新的版本需要 Ansible 2.14 版本。

4.2. 自动化控制器系统要求

自动化控制器是一种分布式系统,不同的软件组件可以并置或部署到多个不同计算节点上。在安装程序中,节点类型控制、混合、执行和跃点作为抽象层提供,以帮助用户设计适合其用例的拓扑。

对节点大小使用以下建议:

注意

在控制和混合节点上,为执行环境存储分配至少 20 GB 的 /var/lib/awx

执行节点

运行自动化。增加内存和 CPU 以增加容量来运行更多分叉

Expand
要求必填

RAM

16 GB

CPU

4

本地磁盘

最小 40GB

控制节点

处理事件并运行集群作业,包括项目更新和清理作业。增加 CPU 和内存有助于处理作业事件。

Expand
要求必填

RAM

16 GB

CPU

4

本地磁盘

  • 至少 40GB,在 /var/lib/awx 下至少有 20GB
  • 存储卷的最低基础线必须被定做 1500 IOPS
  • 项目存储在控制和混合节点上,作业持续时间也存储在执行节点上。如果集群有很多大型项目,请考虑在 /var/lib/awx/projects 中调整 GB,以避免磁盘空间错误

混合节点

运行自动化和集群作业。执行和控制节点的 CPU 和内存上的注释也适用于此节点类型。

Expand
要求必填

RAM

16 GB

CPU

4

本地磁盘

  • 至少 40GB,在 /var/lib/awx 下至少有 20GB
  • 存储卷的最低基础线必须被定做 1500 IOPS
  • 项目存储在控制和混合节点上,作业持续时间也存储在执行节点上。如果集群有很多大型项目,请考虑在 /var/lib/awx/projects 中调整 GB,以避免磁盘空间错误

跃点(hop)节点

用于将来自自动化网格的一个部分的流量路由到另一个网络(例如,可以是堡垒主机到另一网络)。RAM 可能会影响吞吐量,CPU 活动较低。网络带宽和延迟通常比 RAM 或 CPU 更重要。

Expand
要求必填

RAM

16 GB

CPU

4

本地磁盘

40GB

  • 实际 RAM 的要求取决于同时管理的主机自动化控制器数量(这由作业模板或系统 ansible.cfg 文件中的 forks 参数控制)。为避免可能的资源冲突,Ansible 建议每 10 个 fork 需要 1 GB 内存再加上 2GB 保留用于自动化控制器,请参阅 Automation controller Capacity Determination and Job Impact。如果 fork 设为 400,则建议使用 42 GB 内存。
  • 自动化控制器主机检查 umask 是否已设置为 0022。如果没有,则设置会失败。设置 umask=0022 以避免出现这个错误。
  • 可以处理更多主机,但如果 fork 数量小于主机总数,则需要在主机间通过更多。您可以使用以下方法之一避免这些 RAM 限制:

    • 使用滚动更新。
    • 使用内置在自动化控制器中的置备回调系统,其中每个请求配置的系统都会进入队列,并尽快处理。
    • 如果自动化控制器正在生成或部署镜像,如 AMI。

4.3. Automation hub 系统要求

通过自动化中心,您可以从 Red Hat Ansible 和认证合作伙伴发现并使用新的认证自动化内容。在 Ansible Automation Hub 上,您可以发现和管理由红帽及其合作伙伴开发的自动化内容的 Ansible 集合,用于云自动化、网络自动化和安全自动化等用例。

自动化中心有以下系统要求:

Expand
要求必填备注

RAM

最小 8 GB

  • 8 GB RAM(Vagrant trial 版本安装的最小和推荐值)
  • 8 GB RAM(外部独立 PostgreSQL 数据库最小值)
  • 有关您配置中基于 fork 的容量,请查看其他资源

CPU

最少 2 个

有关配置中基于 fork 的容量,请参阅其他资源。

本地磁盘

60 GB 磁盘

至少 40GB 专用于 /var 用于集合存储。

注意

私有自动化中心

如果您从内部地址安装私有自动化中心,并且具有仅包含外部地址的证书,这可能会导致安装无法用作容器 registry,且没有证书问题。

要避免这种情况,请使用带有如 https://pah.example.com 值的 automationhub_main_url 清单变量链接到在安装清单文件中的自动化中心节点。

这会将外部地址添加到 /etc/pulp/settings.py

这代表,您只使用外部地址。

有关清单文件变量的详情,请参考 Red Hat Ansible Automation Platform 安装指南中的清单文件变量

4.4. PostgreSQL 要求

Red Hat Ansible Automation Platform 使用 PostgreSQL 13。

  • 在将 PostgreSQL 用户密码保存到数据库前,会使用 SCRAM-SHA-256 安全散列算法对其进行处理。
  • 要确定您的自动化控制器实例是否可以访问数据库,则可以使用 awx-manage check_db 命令。
Expand
表 4.2. 数据库
服务必填备注

每个自动化控制器

40 GB 专用硬盘空间

  • 有专用的 20 GB 的 /var/ 目录。
  • 存储卷的最低基础线必须被定为 1500 IOPS。
  • 项目存储在控制和混合节点上,作业持续时间也存储在执行节点上。如果集群有很多大型项目,请考虑在 /var/lib/awx/projects 中使用两倍的 GB,以避免磁盘空间错误。
  • 建议大于 150 GB

每个自动化中心

60 GB 专用硬盘空间

存储卷的最低基础线必须被定为 1500 IOPS。

数据库

20 GB 专用硬盘空间

  • 建议大于 150 GB
  • 存储卷必须为高基线 IOPS 进行评级 (1500 或更多)。
  • 所有自动化控制器数据都存储在数据库中。通过管理的主机数量、作业运行数量、事实缓存中存储的 fact 数量以及单个作业中的任务数量,数据库存储会增加。例如,一个 playbook 在 250 个主机中每小时运行一次(一天 24 次),20 个任务每周会在数据库中存储超过 800000 个事件。
  • 如果没有为数据库保留足够空间,旧的作业和 fact 将需要定期清理。如需更多信息,请参阅自动控制器管理指南中的管理作业

PostgreSQL 配置

另外,您可以将 PostgreSQL 数据库配置为不由 Red Hat Ansible Automation Platform 安装程序管理的独立节点。当 Ansible Automation Platform 安装程序管理数据库服务器时,它会使用通常为大多数工作负载推荐的默认值配置服务器。但是,您可以调整独立数据库服务器节点的这些 PostgreSQL 设置,其中 ansible_memtotal_mb 是数据库服务器的总内存大小:

max_connections == 1024
shared_buffers == ansible_memtotal_mb*0.3
work_mem == ansible_memtotal_mb*0.03
maintenance_work_mem == ansible_memtotal_mb*0.04

其他资源

有关调整 PostgreSQL 服务器的详情,请查看 PostgreSQL 文档

4.4.1. 设置外部(客户支持)数据库

重要

红帽不支持使用外部(客户支持)数据库,但客户使用它。以下有关 inital 配置的指导只从产品安装角度提供,以避免相关的支持请求。

要在外部 PostgreSQL 兼容数据库中创建用于自动化控制器的数据库、用户和密码,请使用以下步骤。

流程

  1. 安装,然后连接到具有超级用户权限的 PostgreSQL 兼容数据库服务器。

    # psql -h <db.example.com> -U superuser -p 5432 -d postgres <Password for user superuser>:

    其中:

    -h hostname
    --host=hostname

    指定运行服务器的机器的主机名。如果该值以斜杠开头,它将用作 Unix-domain 套接字的目录。

    -d dbname
    --dbname=dbname

    指定要连接到的数据库的名称。这等同于将 dbname 指定为命令行中的第一个非选项参数。dbname 可以是连接字符串。如果是,则连接字符串参数会覆盖任何冲突的命令行选项。

    -U username
    --username=username

    以用户 用户名 而非默认值连接到数据库。(您必须有权限才能这样做。)

  2. 使用分配给用户的 createDB 或管理员角色,创建用户、数据库和密码。如需更多信息,请参阅 数据库角色
  3. 将数据库凭据和主机详情作为外部数据库添加到自动化控制器清单文件。

    以下示例中使用了默认值:

    [database]
    pg_host='db.example.com'
    pg_port=5432
    pg_database='awx'
    pg_username='awx'
    pg_password='redhat'
  4. 运行安装程序。

    如果您将 PostgreSQL 数据库与自动化控制器搭配使用,则数据库由 connect 用户所有,且必须为其分配 createDB 或管理员角色。

  5. 检查您是否能够使用用户、密码和数据库名称连接到创建的数据库。
  6. 检查用户的权限,该用户应具有 createDB 或 administrator 角色。
注意

在此过程中,您必须检查外部数据库覆盖。如需更多信息,请参阅 https://access.redhat.com/articles/4010491

以下流程描述了如何对存储系统的写入/读取 IOPS 性能进行基准测试,以检查是否满足最低 Ansible Automation Platform PostgreSQL 数据库要求。

先决条件

  • 您已安装了 Flexible I/O Tester (fio) 存储性能基准工具。

    要安装 fio,以 root 用户身份运行以下命令:

    # yum -y install fio
  • 您有足够的磁盘空间来存储 fio 测试数据日志文件。

    该流程中显示的示例至少需要 60GB 磁盘空间在 /tmp 目录中:

    • numjobs 设置由 命令运行的作业数量。
    • size=10G 设置每个作业生成的文件大小。

    要减少测试数据的数量,请调整 size 参数的值。

流程

  1. 运行随机写入测试:

    $ fio --name=write_iops --directory=/tmp --numjobs=3 --size=10G \
    --time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \
    --verify=0 --bs=4K --iodepth=64 --rw=randwrite \
    --group_reporting=1 > /tmp/fio_benchmark_write_iops.log \
    2>> /tmp/fio_write_iops_error.log
  2. 运行随机读测试:

    $ fio --name=read_iops --directory=/tmp \
    --numjobs=3 --size=10G --time_based --runtime=60s --ramp_time=2s \
    --ioengine=libaio --direct=1 --verify=0 --bs=4K --iodepth=64 --rw=randread \
    --group_reporting=1 > /tmp/fio_benchmark_read_iops.log \
    2>> /tmp/fio_read_iops_error.log
  3. 查看结果:

    在基准命令编写的日志文件中,搜索以 iops 开头的行。此行显示测试的最小、最大值和平均值。

    以下示例显示了日志文件中随机读取测试的行:

    $ cat /tmp/fio_benchmark_read_iops.log
    read_iops: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
    […]
       iops        : min=50879, max=61603, avg=56221.33, stdev=679.97, samples=360
    […]

    您必须根据您自己的业务需求、应用程序工作负载和新需求审核、监控和重新查看日志文件。

第 5 章 网络端口和协议

Red Hat Ansible Automation Platform 使用多个端口与其服务进行通信。这些端口必须处于打开状态,并可用于到 Red Hat Ansible Automation Platform 服务器的传入连接,以便它正常工作。确保这些端口可用,且服务器的防火墙没有阻断它们。

以下架构图是完全部署的 Ansible Automation Platform 的示例,其中包含所有可能的组件。

Ansible Automation Platform 架构图

下表显示了每个应用程序所需的默认 Red Hat Ansible Automation Platform 目的地端口。

注意

以下列出的默认目标端口和安装程序清单可以配置。如果您选择将它们配置为适合您的环境,则可能会遇到行为的变化。

Expand
表 5.1. PostgreSQL
端口协议服务方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

在安装过程中远程访问

5432

TCP

Postgres

入站和出站

pg_port

默认端口

从控制器到数据库端口的 ALLOW 连接

Expand
表 5.2. 自动化控制器
端口协议服务方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

安装

80

TCP

HTTP

入站

nginx_http_port

UI/API

443

TCP

HTTPS

入站

nginx_https_port

UI/API

5432

TCP

PostgreSQL

入站和出站

pg_port

仅在将内部数据库与另一个组件一起使用时才开放。否则,不应该打开此端口

集群中的混合模式

27199

TCP

Receptor

入站和出站

receptor_listener_port

用于强制和自动 control plane 集群的所有控制器中的 ALLOW receptor 监听程序端口

Expand
表 5.3. hop 节点
端口协议服务方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

安装

27199

TCP

Receptor

入站和出站

receptor_listener_port

Mesh(网格)

从控制器到 receptor 端口的 ALLOW 连接

Expand
表 5.4. 执行节点
端口协议服务方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

安装

80/443

TCP

SSH

入站和出站

修复了值(映射至表 5.7 Automation hub 的"用户界面"端口)

允许执行节点从自动化中心拉取执行环境镜像

27199

TCP

Receptor

入站和出站

receptor_listener_port

Mesh - 直接连接到控制器的节点。没有涉及的跃点节点。27199 对于执行节点来说是双向的

从控制器到 receptor 端口的 ALLOW 连接(用于非连接的节点)

从跃点节点到 receptor 端口的 ALLOW 连接(如果通过跃点节点转发)

Expand
表 5.5. 控制节点
端口协议服务方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

安装

27199

TCP

Receptor

入站和出站

receptor_listener_port

Mesh - 直接连接到控制器的节点。涉及的直接节点。27199 对于执行节点来说是双向的

从控制器到 receptor 端口的 ENABLE 连接(用于非连接的节点)

如果通过跃点节点转发,从 hop 节点到 Receptor 端口的ENABLE 连接

443

TCP

Podman

入站

nginx_https_port

UI/API

Expand
表 5.6. 混合节点
端口协议服务方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

安装

27199

TCP

Receptor

入站和出站

receptor_listener_port

Mesh - 直接连接到控制器的节点。没有涉及的跃点节点。27199 对于执行节点来说是双向的

从控制器到 receptor 端口的 ENABLE 连接(用于非连接的节点)

如果通过跃点节点转发,从 hop 节点到 Receptor 端口的ENABLE 连接

443

TCP

Podman

入站

nginx_https_port

UI/API

Expand
表 5.7. Automation hub
端口协议服务方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

安装

80

TCP

HTTP

入站

固定的值

用户界面

443

TCP

HTTPS

入站

固定的值

用户界面

5432

TCP

PostgreSQL

入站和出站

automationhub_pg_port

仅在将内部数据库与另一个组件一起使用时才开放。否则,不应该打开此端口

Expand
表 5.8. 服务目录(Services Catalog)
端口协议服务方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

安装

443

TCP

HTTPS

入站

nginx_https_port

访问 Service Catalog 用户界面

5432

TCP

PostgreSQL

入站和出站

pg_port

仅在使用内部数据库时打开。否则,不应该打开此端口

Expand
表 5.9. Red Hat Insights for Red Hat Ansible Automation Platform
URL需要的目的

http://api.access.redhat.com:443

通用帐户服务、订阅

https://cert-api.access.redhat.com:443

Insights 数据上传

https://cert.cloud.redhat.com:443

清单上传和云连接器连接

https://cloud.redhat.com

访问 Insights 仪表板

Expand
表 5.10. Automation Hub
URL需要的目的

https://console.redhat.com:443

通用帐户服务、订阅

https://catalog.redhat.com

索引执行环境

https://sso.redhat.com:443

TCP

https://automation-hub-prd.s3.amazonaws.com https://automation-hub-prd.s3.us-east-2.amazonaws.com/

防火墙访问

https://galaxy.ansible.com

Ansible 社区策展的 Ansible 内容

https://ansible-galaxy-ng.s3.dualstack.us-east-1.amazonaws.com

 

https://registry.redhat.io:443

访问由红帽和合作伙伴提供的容器镜像

https://cert.cloud.redhat.com:443

红帽和合作伙伴策展的 Ansible 集合

Expand
表 5.11. 执行环境 (EE)
URL需要的目的

https://registry.redhat.io:443

访问由红帽和合作伙伴提供的容器镜像

cdn.quay.io:443

访问由红帽和合作伙伴提供的容器镜像

cdn01.quay.io:443

访问由红帽和合作伙伴提供的容器镜像

cdn02.quay.io:443

访问由红帽和合作伙伴提供的容器镜像

cdn03.quay.io:443

访问由红帽和合作伙伴提供的容器镜像

重要

镜像清单和文件系统 Blob 直接从 registry.redhat.io 提供。但是,从 2023 年 5 月 1 日开始,文件系统 Blob 是从 quay.io 提供的。为了避免拉取容器镜像出现问题,您必须启用到列出的 quay.io 主机名的出站连接。

此更改对专门用于启用到 registry.redhat.io 的出站连接的任何防火墙配置进行。

在配置防火墙规则时使用主机名而不是 IP 地址。

完成此更改后,您可以继续从 registry.redhat.io 拉取镜像。您不需要 quay.io 登录,或以任何方式直接与 quay.io registry 交互,以继续拉取红帽容器镜像。

如需更多信息,请参阅此文档

在安装 Red Hat Ansible Automation Platform 前,您必须在所有节点上附加了有效的订阅。在附加 Ansible Automation Platform 订阅后,您便可访问继续安装所需的需要订阅服务的子资源。

注意

如果您在红帽帐户中启用了简单内容访问模式,则需要附加订阅。启用后,您需要在安装 Ansible Automation Platform 前将您的系统注册到 Red Hat Subscription Management(RHSM)或 Satellite。如需更多信息,请参阅简单内容访问模式

流程

  1. 获取 Red Hat Ansible Automation Platform 订阅的 pool_id

    # subscription-manager list --available --all | grep "Ansible Automation Platform" -B 3 -A 6
    注意

    不要将 MCT4022 用作订阅的 pool_id,因为它可能会导致 Ansible Automation Platform 订阅附加失败。

    示例

    subsciption-manager list 命令的输出示例。获取 Pool ID: 部分中的 pool_id

    Subscription Name: Red Hat Ansible Automation, Premium (5000 Managed Nodes)
      Provides: Red Hat Ansible Engine
      Red Hat Ansible Automation Platform
      SKU: MCT3695
      Contract: ````
      Pool ID: <pool_id>
      Provides Management: No
      Available: 4999
      Suggested: 1
  2. 附加订阅:

    # subscription-manager attach --pool=<pool_id>

现在,您已将 Red Hat Ansible Automation Platform 订阅附加到所有节点。

验证

  • 验证订阅是否已成功附加:
# subscription-manager list --consumed

故障排除

  • 如果您无法找到与 Ansible Automation Platform 安装程序捆绑的特定软件包,或者如果您看到 配置信息禁用了 存储库,请尝试使用以下命令启用存储库:

    Red Hat Ansible Automation Platform 2.3 for RHEL 8

    subscription-manager repos --enable ansible-automation-platform-2.3-for-rhel-8-x86_64-rpms

    Red Hat Ansible Automation Platform 2.3 for RHEL 9

    subscription-manager repos --enable ansible-automation-platform-2.3-for-rhel-9-x86_64-rpms

根据您的 Red Hat Enterprise Linux 环境互联网连接,选择您需要的 Red Hat Ansible Automation Platform 安装程序。查看以下场景,并确定哪个 Red Hat Ansible Automation Platform 安装程序满足您的需求。

7.1. 使用互联网访问进行安装

如果您的 Red Hat Enterprise Linux 环境连接到互联网,请选择 Red Hat Ansible Automation Platform 安装程序。使用互联网访问进行安装会检索最新的软件仓库、软件包和依赖项。选择以下方法之一来设置 Ansible Automation Platform 安装程序。

Tarball 安装

  1. 导航到 Red Hat Ansible Automation Platform 下载页面
  2. Ansible Automation Platform <latest-version> SetupDownload Now
  3. 解压文件:

    $ tar xvzf ansible-automation-platform-setup-<latest-version>.tar.gz

RPM 安装

  1. 安装 Ansible Automation Platform 安装程序软件包

    v.2.3 for RHEL 8 for x86_64

    $ sudo dnf install --enablerepo=ansible-automation-platform-2.3-for-rhel-8-x86_64-rpms ansible-automation-platform-installer

    v.2.3 for RHEL 9 for x86-64

    $ sudo dnf install --enablerepo=ansible-automation-platform-2.3-for-rhel-9-x86_64-rpms ansible-automation-platform-installer
注意

dnf install 启用存储库,因为默认禁用存储库。

使用 RPM 安装程序时,文件位于 /opt/ansible-automation-platform/installer 目录下。

7.2. 在没有互联网访问的情况下安装

如果您无法访问互联网,或者不想从在线存储库安装独立的组件和依赖项,请使用 Red Hat Ansible Automation PlatformBundle 安装程序。仍然需要访问 Red Hat Enterprise Linux 软件仓库。所有其他依赖项都包含在 tar 归档中。

流程

  1. 进入 https://access.redhat.com/downloads/content/480
  2. Ansible Automation Platform <latest-version> Setup BundleDownload Now
  3. 解压文件:

    $ tar xvzf ansible-automation-platform-setup-bundle-<latest-version>.tar.gz

第 8 章 关于安装程序清单文件

Red Hat Ansible Automation Platform 使用清单文件,根据您以逻辑方式组织的基础架构中的受管节点或主机列表进行工作。您可以使用 Red Hat Ansible Automation Platform 安装程序清单文件指定您的安装场景,并描述 Ansible 的主机部署。通过使用清单文件,Ansible 可以通过一个命令管理大量主机。清单还可以通过减少您指定的命令行选项数目来更有效地使用 Ansible。

根据您拥有的清单插件,清单文件可以采用多种格式。最常见的格式是 INIYAML。本文档中列出的清单文件以 INI 格式显示。

清单文件的位置取决于您使用的安装程序。下表显示了可能的位置:

Expand
安装程序位置

捆绑包 tar

/ansible-automation-platform-setup-bundle-<latest-version>

非捆绑包 tar

/ansible-automation-platform-setup-<latest-version>

RPM

/opt/ansible-automation-platform/installer

您可以使用以下命令验证清单中的主机:

ansible all -i <path-to-inventory-file. --list-hosts

清单文件示例

[automationcontroller]
host1.example.com
host2.example.com
Host4.example.com

[automationhub]
host3.example.com

[database]
Host5.example.com

[all:vars]
admin_password='<password>'

pg_host=''
pg_port=''

pg_database='awx'
pg_username='awx'
pg_password='<password>'

registry_url='registry.redhat.io'
registry_username='<registry username>'
registry_password='<registry password>'

清单文件的第一个部分指定 Ansible 可使用的主机或主机组。

8.1. 主机和组指南

数据库

  • 使用外部数据库时,请确保正确设置清单文件的 [database] 部分。
  • 要提高性能,请不要在同一服务器上并置数据库和自动化控制器。

Automation hub

  • 如果有 [automationhub] 组,则必须包含变量 automationhub_pg_hostautomationhub_pg_port
  • [automationhub] 组中添加 Ansible Automation hub 信息。
  • 不要在同一节点上安装 Ansible Automation hub 和自动化控制器。
  • [automationhub][automationcontroller] 主机提供可访问的 IP 地址或完全限定域名(FQDN),以确保用户可以从不同节点同步并安装 Ansible 自动化中心和自动化控制器的内容。

    FQDN 不得包含 -_ 符号,因为它无法正确处理。

    不要使用 localhost

私有自动化中心

  • 不要在同一节点上安装私有自动化中心和自动化控制器。
  • 您可以使用相同的 PostgreSQL (数据库)实例,但它们必须使用不同的(数据库)名称。
  • 如果您从内部地址安装私有自动化中心,并且有一个只包含外部地址的证书,可能会导致安装在没有证书问题的情况下作为容器 registry 使用。
重要

您必须分隔自动化控制器和 Ansible 自动化中心的安装,因为 [database] 组无法区分这两个(如果同时安装了这两个组)。

如果您在 [database] 和自动化控制器和 Ansible 自动化中心中使用一个值,则它们将使用相同的数据库。

自动化控制器

  • 自动化控制器将不会为其使用的数据库配置复制或故障转移功能。自动化控制器应该与已有的任何复制一起工作。

集群安装

  • 在升级现有集群时,您还可以重新配置集群来忽略现有的实例或实例组。从清单文件中省略实例或实例组不足以将其从集群中移除。除了从清单文件中省略实例或实例组外,还必须在开始升级前取消置备实例或实例组。请参阅取消置备节点或组。否则,忽略的实例或实例组会继续与集群通信,这可能会在升级过程中造成自动化控制器服务的问题。
  • 如果要创建集群安装设置,则必须使用所有实例的主机名或 IP 地址替换 [localhost]。自动化控制器、自动化中心和自动服务目录的安装程序不接受 [localhost] 所有节点和实例,且实例必须能够使用这个主机名或地址访问任何其他节点。您不能在其中一个节点上使用 localhost ansible_connection=local。对所有节点的主机名使用相同的格式。

    因此,这无法正常工作:

    [automationhub]
    localhost ansible_connection=local
    hostA
    hostB.example.com
    172.27.0.4

    需要使用以下格式:

    [automationhub]
    hostA
    hostB
    hostC

    [automationhub]
    hostA.example.com
    hostB.example.com
    hostC.example.com

8.2. 取消置备节点或组

您可以使用 Ansible Automation Platform 安装程序取消置备节点和实例组。运行安装程序将删除附加到组中节点的所有配置文件和日志。

注意

您可以取消置备清单中的任何主机,但 [automationcontroller] 组中指定的第一个主机除外。

要取消置备节点,请将 node_state=deprovision 附加到清单文件中的节点或组。

例如:

从部署中删除单个节点:

[automationcontroller]
host1.example.com
host2.example.com
host4.example.com   node_state=deprovision

从部署中删除整个实例组:

[instance_group_restrictedzone]
host4.example.com
host5.example.com

[instance_group_restrictedzone:vars]
node_state=deprovision

8.3. 清单变量

示例清单文件的第二部分(在 [all:vars] 后面)是安装程序使用的变量列表。使用 all 表示变量适用于所有主机。

要将变量应用到特定的主机,请使用 [hostname:vars]。例如,[automationhub:vars]

8.4. 在清单文件中声明变量的规则

字符串变量的值在引号中声明。例如:

pg_database='awx'
pg_username='awx'
pg_password='<password>'

:vars 部分中声明时,INII 值将解释为字符串。例如,var=FALSE 创建一个等于 FALSE 的字符串。与主机行不同,:vars 部分每行只接受一个条目,因此 = 后的所有内容都必须是条目的值。主机行接受每行多个 key=value 参数。因此,它们需要使用一种方式来指出空格是值的一部分而不是分隔符。包含空格的值可以加上引号(单引号或双引号)。详情请查看 Python shlex 解析规则

如果 INI 清单中设置的变量值必须是特定的类型(如字符串或布尔值),则始终在任务中使用过滤器指定类型。在消耗变量时,请勿依赖 INI 清单中设置的类型。

注意

考虑将 YAML 格式用于清单源,以避免在变量的实际类型上产生混淆。YAML 清单插件会一致且正确处理变量值。

如果 Ansible 清单文件中的参数值包含特殊字符,如 #、{ 或 },则必须双重转义(用单引号和双引号包括该值)。

例如,要将 mypasswordwith#hashsigns 用作变量 pg_password 的值,在 Ansible 主机清单文件中请将其声明为 pg_password='"mypasswordwith#hashsigns"'

8.5. 保护清单文件中的 secret

您可以使用 Ansible Vault 加密敏感或机密的变量。但是,对变量名称和变量值进行加密可能会难以查找值的来源。为了缓解这个问题,您可以使用 ansible-vault encrypt_string 加密单独的变量,或者加密包含变量的文件。

流程

  1. 创建一个标记为 credentials.yml 的文件来存储加密的凭证。

    $ cat credentials.yml
    
    admin_password: my_long_admin_pw
    pg_password: my_long_pg_pw
    registry_password: my_long_registry_pw
  2. 使用 ansible-vault 加密 credentials.yml 文件。

    $ ansible-vault encrypt credentials.yml
    New Vault password:
    Confirm New Vault password:
    Encryption successful
    重要

    将加密的 vault 密码存储在安全的地方。

  3. 验证 credentials.yml 文件是否加密。

    $ cat credentials.yml
    $ANSIBLE_VAULT;1.1;
    AES256363836396535623865343163333339613833363064653364656138313534353135303764646165393765393063303065323466663330646232363065316666310a373062303133376339633831303033343135343839626136323037616366326239326530623438396136396536356433656162333133653636616639313864300a353239373433313339613465326339313035633565353464356538653631633464343835346432376638623533613666326136343332313163343639393964613265616433363430633534303935646264633034383966336232303365383763
  4. 运行 setup.sh 以安装 Ansible Automation Platform 2.3,并传递 credentials.yml--ask-vault-pass 选项

    $ ANSIBLE_BECOME_METHOD='sudo' ANSIBLE_BECOME=True ANSIBLE_HOST_KEY_CHECKING=False ./setup.sh -e @credentials.yml -- --ask-vault-pass

8.6. 其他清单文件变量

您可以通过在清单文件中包含额外变量来进一步配置 Red Hat Ansible Automation Platform 安装。这些配置添加了用于管理 Red Hat Ansible Automation Platform 的各种可选功能。使用文本编辑器编辑清单文件来添加这些变量。

清单文件变量的预定义值表可在 Red Hat Ansible Automation Platform 安装指南中的清单文件变量中找到。

第 9 章 支持的安装场景

红帽支持以下 Red Hat Ansible Automation Platform 安装场景:

此场景包括在单一计算机上安装自动化控制器,包括 Web 前端、REST API 后端和数据库。它安装 PostgreSQL,并将自动化控制器配置为将其用作其数据库。这被视为标准自动化控制器安装场景。

9.2. 带有外部管理数据库的独立自动化控制器

此场景包括在一台机器上安装自动化控制器服务器,并将与远程 PostgreSQL 实例的通信配置为其数据库。此远程 PostgreSQL 可以是您管理的服务器,也可以由 Amazon RDS 等云服务提供。

此场景包括安装自动化中心,包括 Web 前端、REST API 后端和单一计算机上的数据库。它安装 PostgreSQL,并将自动化中心配置为将其用作其数据库。

9.4. 带有外部管理数据库的独立自动化中心

此场景包括在一台机器上安装自动化中心服务器,并安装由 Red Hat Ansible Automation Platform 安装程序管理的远程 PostgreSQL 数据库。

这个场景包括在自动化控制器节点上安装带有数据库的自动化控制器和自动化中心,或者一个非安装程序管理的数据库。

9.6. 带有外部管理数据库的平台安装

此场景包括安装自动化控制器和自动化中心,并将与远程 PostgreSQL 实例的通信配置为其数据库。此远程 PostgreSQL 可以是您管理的服务器,也可以由 Amazon RDS 等云服务提供。

9.7. 使用外部管理的数据库安装多机器集群

此场景包括安装多个自动化控制器节点和一个自动化中心实例,并将与远程 PostgreSQL 实例的通信配置为其数据库。此远程 PostgreSQL 可以是您管理的服务器,也可以由 Amazon RDS 等云服务提供。在这种情况下,所有自动化控制器都是活跃的,并可执行作业,任何节点都可以接收 HTTP 请求。

注意
  • 在集群设置中运行需要自动化控制器使用外部的PostgreSQL 数据库安装到不是主或从 tower 节点之一的机器上。在带有冗余功能的设置中,远程 PostgreSQL 版本要求为 PostgreSQL 13

    • 有关配置集群设置的更多信息,请参阅集群
  • [automationhub] 主机提供一个可访问的 IP 地址,以确保用户可以从不同节点的 Private Automation Hub 同步内容。

法律通告

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部