Red Hat Ansible Automation Platform 规划指南

Red Hat Ansible Automation Platform 2.4

计划安装 Ansible Automation Platform

Red Hat Customer Content Services

摘要

本指南提供安装 Red Hat Ansible Automation Platform 的要求、选项和建议。

前言

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

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

使开源包含更多

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

对红帽文档提供反馈

我们非常感谢您对我们的技术内容提供反馈,并鼓励您告诉我们您的想法。如果您想添加评论,提供见解、纠正拼写错误甚至询问问题,您可以在文档中直接这样做。

注意

您必须有一个红帽帐户并登录到客户门户网站。

要从客户门户网站提交文档反馈,请执行以下操作:

  1. 选择 Multi-page HTML 格式。
  2. 点文档右上角的 反馈 按钮。
  3. 突出显示您要提供反馈的文本部分。
  4. 点高亮文本旁的添加反馈对话框。
  5. 在页面右侧的文本框中输入您的反馈,然后点 Submit

每次提交反馈时,我们都会自动创建跟踪问题。打开在点 Submit 后显示的链接,并开始监视问题或添加更多注释。

第 1 章 规划 Red Hat Ansible Automation Platform 安装

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

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

这个示例的架构包括:

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

图 2.1. Ansible Automation Platform 2.4 架构示例

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

第 3 章 Red Hat 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. Event-Driven Ansible 控制器

Event-Driven Ansible 控制器是事件驱动的自动化的接口,并引入对 IT 请求的自动解析。此组件可帮助您连接到事件的来源,并使用规则手册对这些事件执行操作。该技术提高了 IT 速度和灵活性,实现了一致性和弹性。使用 Event-Driven Ansible,您可以:

  • 自动化决策
  • 使用大量事件源
  • 在多个 IT 用例中实施事件驱动的自动化

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、EDA 或 Pulp。

4.1. Red Hat Ansible Automation Platform 系统要求

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

表 4.1. 基本系统

要求必填备注

Subscription

有效的 Red Hat Ansible Automation Platform

 

OS

Red Hat Enterprise Linux 8.6 或更高的 64 位版本 (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.15 的执行环境。

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 用户指南中的 Ansible 入门

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

  • 虽然 Red Hat Ansible Automation Platform 依赖于 Ansible Playbook,并且在安装自动化控制器前需要安装最新版本的 Ansible,但不再需要手动安装 Ansible。
  • 对于新安装,自动化控制器会安装最新版本的 Ansible 2.14。
  • 如果执行捆绑的 Ansible Automation Platform 安装,安装程序会尝试从捆绑包中安装 Ansible(及其依赖项)。
  • 如果您选择自己手动安装 Ansible,Ansible Automation Platform 安装程序会检测到已安装的 Ansible,并且不会尝试重新安装它。
注意

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

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

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

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

注意

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

执行节点

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

要求必填

RAM

16 GB

CPU

4

本地磁盘

最小 40GB

控制节点

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

要求必填

RAM

16 GB

CPU

4

本地磁盘

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

混合节点

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

要求必填

RAM

16 GB

CPU

4

本地磁盘

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

跃点(hop)节点

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

要求必填

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 内存。
  • 虽然可以处理数量较多的主机,但如果 fork 数量小于主机总数,则需要在主机之间有更多的传输。使用滚动更新或使用内置于自动化控制器的调配回调系统时,可以避免这些 RAM 限制,其中每个请求配置的系统都会进入队列并尽可能快速处理;或者,当自动化控制器正在生成或部署镜像(如 AMI)时,可以避免这些 RAM 限制。所有这些都是管理更大环境的最佳方法。如需了解更多问题,请通过红帽客户门户网站联系 Ansible 支持:https://access.redhat.com/

其他资源

4.3. Automation hub 系统要求

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

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

要求必填备注

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 命令。

表 4.2. 数据库

Service必填备注

每个自动化控制器

40 GB 专用硬盘空间

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

每个自动化中心

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. 为自动化中心 PostgreSQL 数据库启用 hstore 扩展

在 Ansible Automation Platform 2.4 中,数据库迁移脚本使用 hstore 字段来存储信息,因此必须启用对自动化中心 PostgreSQL 数据库的 hstore 扩展。

使用 Ansible Automation Platform 安装程序和受管 PostgreSQL 服务器时,此过程是自动的。

但是,当 PostgreSQL 数据库是一个外部数据库时,您必须在自动化中心安装前手动执行此步骤。

如果在自动化中心安装前没有启用 hstore 扩展,在数据库迁移过程中会引发故障。

流程

  1. 检查 PostgreSQL 服务器上是否有扩展(自动化 hub 数据库)。

    $ psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"

    其中 <automation hub database> 的默认值为 automationhub

    这给出类似如下的输出:

    name  | default_version | installed_version |comment
    ------+-----------------+-------------------+---------------------------------------------------
     hstore | 1.7           |                   | data type for storing sets of (key, value) pairs
    (1 row)
  2. 这表示 hstore 1.7 扩展可用,但没有启用。

    如果 PostgreSQL 服务器上没有 hstore 扩展,则结果类似如下:

     name | default_version | installed_version | comment
    ------+-----------------+-------------------+---------
    (0 rows)
  3. 在基于 RHEL 的服务器上,hstore 扩展包含在 postgresql-contrib RPM 软件包中,该软件包在安装 PostgreSQL 服务器 RPM 软件包时不会自动安装。

    要安装 RPM 软件包,请使用以下命令:

    dnf install postgresql-contrib
  4. 使用以下命令,在自动化中心数据库上创建 hstore PostgreSQL 扩展:

    $ psql -d <automation hub database> -c "CREATE EXTENSION hstore"

    输出:

    CREATE EXTENSION
  5. 在以下输出中,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)

第 5 章 网络端口和协议

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

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

Ansible Automation Platform 架构图

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

注意

下列默认目标端口和安装程序清单可以配置。如果您选择对其进行配置以适应您的环境,可能会发现一些行为的变化。

表 5.1. PostgreSQL

端口协议Service方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

在安装过程中远程访问

5432

TCP

Postgres

入站和出站

pg_port

默认端口

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

表 5.2. 自动化控制器

端口协议Service方向安装程序清单变量需要的目的

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

对所有用于必须的和自动控制平面集群的所有控制器,ALLOW receptor listener 端口

表 5.3. hop 节点

端口协议Service方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

安装

27199

TCP

Receptor

入站和出站

receptor_listener_port

Mesh(网格)

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

表 5.4. 执行节点

端口协议Service方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

安装

27199

TCP

Receptor

入站和出站

receptor_listener_port

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

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

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

表 5.5. 控制节点

端口协议Service方向安装程序清单变量需要的目的

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

表 5.6. 混合节点

端口协议Service方向安装程序清单变量需要的目的

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

表 5.7. Automation hub

端口协议Service方向安装程序清单变量需要的目的

22

TCP

SSH

入站和出站

ansible_port

安装

80

TCP

HTTP

入站

固定的值

用户界面

443

TCP

HTTPS

入站

固定的值

用户界面

5432

TCP

PostgreSQL

入站和出站

automationhub_pg_port

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

表 5.8. 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 仪表板

表 5.9. 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.s3.amazonaws.com

 

https://registry.redhat.io:443

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

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

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

表 5.10. 执行环境 (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 交互,以继续拉取红帽容器镜像。

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

第 6 章 附加 Red Hat Ansible Automation Platform 订阅

在安装 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.4 for RHEL 8

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

    Red Hat Ansible Automation Platform 2.4 for RHEL 9

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

第 7 章 选择并获取 Red Hat Ansible Automation Platform 安装程序

根据您的 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 (AAP) 安装程序。使用互联网访问进行安装会检索最新的软件仓库、软件包和依赖项。选择以下方法之一设置 AAP 安装程序。

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.4 for RHEL 8 for x86_64

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

    v.2.4 for RHEL 9 for x86-64

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

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

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

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

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

流程

  1. 进入 Red Hat Ansible Automation Platform 下载页面。
  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 格式显示。

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

安装程序位置

捆绑包 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 地址或完全限定域名(FDQN),以确保用户可以从不同节点同步并安装 Ansible 自动化中心和自动化控制器的内容。不要使用 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.4,并传递 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 安装场景:

其他资源

要编辑清单文件参数以指定受支持的安装场景,请参阅 Red Hat Ansible Automation Platform 安装指南中的基于安装场景的清单文件示例

9.1. 带有同一节点上的数据库的独立自动化控制器,或者一个非安装程序管理的数据库

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

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

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

9.3. 带有内部数据库的单个 Event-Driven Ansible 控制器节点

此场景包括在具有内部数据库的单一机器上安装 Event-Driven Ansible 控制器。它安装一个与自动化控制器安装场景类似的安装程序管理的 PostgreSQL。

重要

在使用适当的 Event-Driven Ansible 变量填充清单文件前,必须安装自动化控制器。

9.4. 带有同一节点上的数据库的独立自动化中心,或者一个非安装程序管理的数据库

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

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

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

9.6. 在自动化控制器节点或非安装程序管理数据库上使用数据库进行平台安装

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

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

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

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

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

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

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

法律通告

Copyright © 2023 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.