Red Hat Ansible Automation Platform 安装指南

Red Hat Ansible Automation Platform 2.1

本指南为 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 的环境来更好地管理多阶的复杂部署环境。

本指南帮助您了解安装 Ansible Automation Platform 后的安装要求和流程。本文档已更新,以包含 Ansible Automation Platform 最新版本的信息。

使开源包含更多

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

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

您可以使用本节来帮助规划 Red Hat Ansible Automation Platform 安装。安装前,请查看有关设置安装程序、系统要求和支持的安装场景的信息。

1.1. Red Hat Ansible Automation Platform 系统要求

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

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

表 1.1. 基本系统

 必填备注

订阅

有效的 Red Hat Ansible Automation Platform

 

OS

Red Hat Enterprise Linux 8.4 或更高版本的 64 位版本(x86)

 

Ansible

需要 2.11 版本

如果系统上还没有 Ansible,setup playbook 将安装 ansible-core 2.12。

Python

3.8 或更高版本

 

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

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

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

1.1.1. 自动化控制器

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

注意

在除 hop 节点外的所有节点上,为 /home/awx 分配至少 20 GB 存储用于执行环境存储。

执行节点

必需

备注

RAM

16 GB

 

CPU

4

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

控制节点

必需

备注

RAM

16 GB

 

CPU

4

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

混合节点

必需

备注

RAM

16 GB

  • 执行和控制节点的 RAM 上的备注也适用于此节点类型。

CPU

4

  • 运行自动化和集群作业。有关执行和控制节点的 CPU 的备注也适用于此节点类型。

hop 节点

必需

备注

RAM

16 GB

 

CPU

4

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

磁盘:服务节点

40 GB 专用硬盘空间

  • 自动化控制器:至少 20 GB 的专用的 /var/ 用于文件和工作目录存储
  • 存储卷的最低基础线评级应该是 1500 IOPS。
  • 项目存储在控制和混合环境中,作业持续时间也存储在执行节点上。如果集群有很多大型项目,请考虑在 /var/lib/awx/projects 中使用两倍的 GB,以避免磁盘空间错误。

数据库节点

必需

备注

RAM

16 GB

 

CPU

4

 

磁盘

20 GB 专用硬盘空间

  • 最小专用硬盘空间为 20 GB
  • 建议大于 150 GB
  • 存储卷的基础线 IOPS 评级应该比较高(1500 或更高)。

浏览器

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

 

数据库

PostgreSQL 版本 12

 

其他资源

  • 要授权使用自动化控制器,请参阅导入订阅

表 1.2. Automation hub

 必填备注

RAM

最小 8 GB

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

CPU

最少 2 个

  • 有关您配置中基于 fork 的容量,请查看其他资源

磁盘:服务节点

60 GB 专用硬盘空间

  • 存储卷的最低基础线评级应该是 1500 IOPS。

数据库节点

必需

备注

RAM

16 GB

 

CPU

4

 

磁盘

20 GB 专用硬盘空间

  • 最小专用硬盘空间为 20 GB
  • 建议大于 150 GB
  • 存储卷的基础线 IOPS 评级应该比较高(1500 或更高)。

浏览器

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

 

数据库

PostgreSQL 版本 12

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

Amazon EC2

  • 实例大小为 m5.large 或更大
  • 如果超过 100 个主机,则实例大小为 m4.xlarge 或更于

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

  • 实际 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/
  • 由 Ansible Automation Platform 管理的系统的要求与 Ansible 相同。请参阅 Ansible 用户指南中的快速入门部分。

显著的 PostgreSQL 变化

Red Hat Ansible Automation Platform 使用 PostgreSQL 12。

  • 现在,在将 PostgreSQL 用户密码保存到数据库前,会使用 SCRAM-SHA-256 安全散列算法对其进行处理。
  • 安装时,您将不再需要在清单文件中提供 apg_hashed_password,因为 PostgreSQL 12 现在可以更加安全地存储用户的密码。如果用户在 inventory 文件中提供安装程序的密码(pg_password),作为安装过程的一部分,PostgreSQL 会对该密码进行 SCRAM-SHA-256 哈希处理。不要inpg_password 中使用特殊字符,因为它可能会导致设置失败。
  • 由于自动化控制器和自动化中心在 3.8 中使用 Software Collections 版本的 PostgreSQL,因此必须启用 rh-postgresql10 scl 才能访问数据库。管理员可以使用 awx-manage dbshell 命令,该命令将自动启用 PostgreSQL SCL。
  • 如果您只是需要确定您的自动化控制器实例是否可以访问数据库,则可以使用 awx-manage check_db 命令。

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 文档

Ansible 软件要求

虽然 Red Hat Ansible Automation Platform 依赖于 Ansible Playbook,并且在安装自动化控制器前需要安装最新版本的 Ansible,但不再需要手动安装 Ansible。

在新安装时,自动化控制器会安装最新版本的 Ansible 2.11。

如果执行捆绑的 Ansible Automation Platform 安装,安装程序会尝试从捆绑包中安装 Ansible(及其依赖项)。

如果您选择自己手动安装 Ansible,Ansible Automation Platform 安装程序会检测到已安装的 Ansible,并且不会尝试重新安装它。请注意,您必须使用 yum 等软件包管理器安装 Ansible,并且必须安装最新的稳定版本才能使 Red Hat Ansible Automation Platform 正常工作。|at| 版本 3.8 及更新的版本需要 Ansible 2.9 版本。

1.2. 选择并获取 Red Hat Ansible Automation Platform 安装程序

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

注意

需要有效的红帽客户帐户才能访问红帽客户门户上的 Red Hat Ansible Automation Platform 安装程序下载。

使用互联网访问进行安装

如果您的 Red Hat Enterprise Linux 环境连接到互联网,请选择 Red Hat Ansible Automation Platform 安装程序。通过互联网访问进行安装将检索最新的软件仓库、软件包和依赖项。

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

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

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

如果您无法访问互联网,或者不想从在线存储库安装独立的组件和依赖项,请使用 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

1.3. 附加 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

    示例

    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 安装程序捆绑的特定软件包,或者如果您看到 配置信息禁用了 存储库,请尝试使用以下命令启用存储库:

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

1.4. 支持的安装场景

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

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

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

请参阅在一台机器上安装 Red Hat Ansible Automation Platform 组件中的在同一节点上安装带有数据库的自动化控制器

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

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

请参阅在一台机器上安装 Red Hat Ansible Automation Platform 组件中的安装带有外部管理的数据库的自动化控制器

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

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

请参阅在一台机器上安装 Red Hat Ansible Automation Platform 组件中的在同一节点上安装带有数据库的自动化中心

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

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

请参阅在一台机器上安装 Red Hat Ansible Automation Platform 组件中的在同一节点上安装带有外部数据库的自动化中心

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

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

请参阅安装 Red Hat Ansible Automation Platform 中的安装使用自动化控制器节点中的数据库或非安装程序管理的数据库的 Red Hat Ansible Automation Platform

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

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

请参阅安装 Red Hat Ansible Automation Platform 中的安装带有外部管理的数据库的 Red Hat Ansible Automation Platform

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

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

注意
  • 在集群设置中运行需要自动化控制器使用的任何数据库都为外部数据库。​PostgreSQL 必须安装到不属于主或从 tower 节点上的计算机上。在冗余设置中时,远程 PostgreSQL 版本要求为PostgreSQL 12

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

请参阅多机器集群安装中的安装带有外部管理数据库的多节点 Red Hat Ansible Automation Platform

第 2 章 在一台机器上安装 Red Hat Ansible Automation Platform 组件

您可以在以下受支持的场景之一的单个机器上安装 Red Hat Ansible Automation Platform 组件。

2.1. 使用同一节点上的数据库安装自动化控制器

您可以使用以下说明在同一个节点上安装带有数据库的自动化控制器独立实例,或者安装一个非安装程序管理的数据库。此场景包括在单一计算机上安装自动化控制器,包括 Web 前端、REST API 后端和数据库。它安装 PostgreSQL,并将自动化控制器配置为将其用作其数据库。这被视为标准自动化控制器安装场景。

2.1.1. 先决条件

2.1.2. 编辑 Red Hat Ansible Automation Platform 安装程序清单文件

您可以使用 Red Hat Ansible Automation Platform 安装程序清单文件指定您的安装场景。

注意
  • 使用外部数据库:确保清单文件中的数据库部分已正确设置。
  • [automationhub] 组中添加自动化中心信息
  • 自动化中心和自动化控制器无法安装在同一节点上。
  • 自动化控制器将不会为其使用的数据库配置复制或故障转移功能。自动化控制器应该与已有的任何复制一起工作。
  • 出于性能的原因,数据库服务器应当位于同一网络或与自动化控制器服务器相同的数据中心。
  • 安装 Ansible Automation Platform 需要一个容器 registry 服务。通过访问容器 registry,您可以将自动化执行环境加载到 Ansible 自动化平台上,为您提供一致、容器化的环境,用于执行 Ansible playbook 和角色。默认情况下,Ansible Automation Platform 使用 registry.redhat.io,它需要 Red Hat registry 服务帐户。请参阅创建 Registry 服务账户指南来创建 registry 服务帐户。
  • 升级现有集群 :在升级集群时,您可以决定还要重新配置集群来忽略现有实例或实例组。从清单文件中省略实例或实例组不足以将它们从集群中移除。除了从清单文件中省略实例或实例组外,还必须在开始升级前取消置备实例或实例组。否则,忽略的实例或实例组将继续与集群通信,这可能会在升级过程中造成 tower 服务的问题。
  • 集群安装 :如果要创建集群设置,则必须使用所有实例的主机名或 IP 地址替换 localhost。所有节点/实例都必须能够使用此主机名或地址访问任何其他节点。换句话说,您不能在其中一个节点中使用 localhost ansible_connection=local,所有节点都应对主机名使用相同的格式。
重要
  • 需要对远程计算机进行 root 访问权限。使用 Ansible,这可以通过不同的方式来实现:
  • ansible_user=root ansible_ssh_pass=”your_password_here” 清单主机或组变量
  • ansible_user=root ansible_ssh_private_key_file="path_to_your_keyfile.pem" 清单主机或组变量
  • ANSIBLE_BECOME_METHOD=’sudo’ ANSIBLE_BECOME=True ./setup.sh

如需有关 become 插件的更多信息,请参阅了解特权升级

流程

  1. 进入安装程序

    1. [Bundled installer]

      $ cd ansible-automation-platform-setup-bundle-<latest-version>
    2. [Online installer]

      $ cd ansible-automation-platform-setup-<latest-version>
  2. 使用文本编辑器打开清单文件。
  3. 编辑清单文件参数,以指定您的安装场景。请按照以下示例操作。

2.1.3. Red Hat Ansible Automation Platform 单节点清单文件示例

本例描述了如何为自动化控制器的单一节点安装填充清单文件。

重要
  • 对于 pg_password,不要使用特殊字符。可能会导致设置失败。
  • registry_usernameregistry_password 中输入 Red Hat Registry Service account 凭证以链接到 Red Hat 容器 registry。
[automationcontroller]
127.0.0.1 ansible_connection=local 1

[database]

[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>'
1
这应该设置为 FQDN/IP。

2.1.4. 其他清单文件变量

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

表 2.1. 其他清单文件变量

变量Descriptiondefault

GALAXY_ENABLE_API_ACCESS_LOG

当设置为 True 时,在 /var/log/galaxy_api_access.log 中创建一个日志文件,该文件会记录提供给平台的所有用户操作,包括其用户名和 IP 地址

False

示例

  • 要启用 api 访问日志,将变量添加到清单中,标志作为 true
[all:vars:]
admin_password = 'password'

pg_host=''
pg_port=''

GALAXY_ENABLE_API_ACCESS_LOG=true

2.1.5. 设置脚本标志和额外变量

在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:

表 2.2. 标记

参数描述

-h

显示帮助信息并退出

-i INVENTORY_FILE

到 Ansible 清单文件的路径(默认:inventory

-e EXTRA_VARS

将额外的 Ansible 变量设置为 key=value 或 YAML/JSON

-b

在安装时执行数据库备份

-r

在安装时执行数据库恢复

-k

生成发布一个 SECRET_KEY

使用 -- 分隔符添加您希望应用的任何 Ansible 参数。例如:./setup.sh -i my_awesome_inventory.yml -e matburt_is_country_gold=True — -K

注意
  • 在进行数据库恢复时使用了 -r,则会使用默认的恢复目录,除非使用 EXTRA_VARS 提供了一个非默认路径。请参阅以下通过 EXTRA_VAR 指定恢复路径的示例:

    ./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r
  • 您可以通过使用 -e bundle_install=false 来强制在线安装:

    $ ./setup.sh -e bundle_install=false

表 2.3. 额外变量

变量Descriptiondefault

upgrade_ansible_with_tower

安装自动化控制器时,请确保 Ansible 也为最新版本

False

create_preload_data

安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。

True

bundle_install_folder

在进行捆绑安装时获得捆绑软件仓库的目录

var/lib/tower-bundle

nginx_disable_https

禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用

False

nginx_disable_hsts

禁用 HSTS web-security policy 机制

False

nginx_http_port

nginx 为 HTTP 侦听的端口

80

nginx_https_port

nginx 为 HTTPS 侦听的端口

443

backup_dir

备份时要使用的临时位置

/var/backups/tower/

restore_backup_file

指定要从中恢复的备用文件

None

required_ram

安装 Tower 所需的最小 RAM(应只在测试安装时修改)

3750

min_open_fds

最小打开文件描述(应只在测试安装时修改)

None

ignore_preflight_errors

忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 required_rammin_open_fds

False

例子

  • 要升级内核:
./setup.sh -e upgrade_ansible_with_tower=1
  • 在 nginx 中禁用 https 处理:
./setup.sh -e nginx_disable_https=true
  • 在从备份文件中恢复时指定非默认路径:
./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r

2.1.6. 运行 Red Hat Ansible Automation Platform 安装程序设置脚本

在完成使用安装私有 Automation Hub 所需的参数更新清单文件后,您可以运行设置脚本。

流程

  1. 运行 setup.sh 脚本

    $ ./setup.sh

安装将开始。

2.1.7. 验证自动化控制器安装

安装完成后,您可以通过使用插入到清单文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。

流程

  1. inventory 文件中找到为自动化控制器节点指定的 IP 地址。
  2. 使用您在清单文件中设置的 Admin 凭据登录。
注意

自动化控制器服务器可从端口 80(https://<TOWER_SERVER_NAME>/)访问,但会被重定向到端口 443,因此端口 443 需要可以被使用。

重要

如果安装失败,且您购买了 Red Hat Ansible Automation Platform 的有效许可证,请通过红帽客户门户网站 https://access.redhat.com/ 联络 Ansible。

当可以成功登录到自动化控制器后,则代表您的 Red Hat Ansible Automation Platform 2.1 安装已完成。

2.1.7.1. 其他自动化控制器配置和资源

请参阅以下资源来探索其他自动化控制器配置。

表 2.4. 配置自动化控制器的资源

Link描述

自动化控制器快速设置指南

设置自动化控制器并运行第一个 playbook

自动化控制器管理指南

通过客户脚本、管理作业等配置自动化控制器管理。

配置 Red Hat Ansible Automation Platform 的代理支持

使用代理服务器设置自动化控制器

从自动化控制器管理可用性分析和数据收集

管理您与红帽共享的自动化控制器信息

自动化控制器用户指南

更详细地查看自动化控制器功能

2.1.8. Ansible Automation Platform 2.1 的下一步是什么

无论您是希望开始使用自动化的新 Ansible Automation Platform 用户,还是希望将旧的 Ansible 内容迁移到最新版本的 Red Hat Ansible Automation Platform,充分利用 Ansible Automation Platform 2.1 的新功能:

2.1.8.1. 将数据迁移到 Ansible Automation Platform 2.1

对于希望完成升级到 Ansible Automation Platform 2.1 的平台管理员,可能需要额外步骤将数据迁移到新实例:

2.1.8.1.1. 从旧的虚拟环境 (venvs) 迁移到自动化执行环境

通过 Ansible Automation Platform 2.1,您可以从自定义 Python 虚拟环境 (venvs) 转换为使用自动化执行环境 - 它是容器化镜像,包括了执行和扩展 Ansible 自动化所需的组件。这包括 Ansible Core、Ansible 内容集合、Python 依赖项、Red Hat Enterprise Linux UBI 8 以及任何其他软件包依赖项。

如果您希望将 venvs 迁移到执行环境,则需要(1)使用 awx-manage 命令列出并从原始实例中导出 venvs 列表,然后(2)使用 ansible-builder 创建执行环境。如需更多信息,请参阅 升级到自动化执行环境指南Ansible Builder 指南

2.1.8.1.2. 使用 Ansible Builder 迁移至 Ansible Engine 2.9 镜像

要迁移 Ansible Engine 2.9 镜像以用于 Ansible Automation Platform 2.1,ansible-builder 工具会自动重建镜像(包括其自定义插件和依赖项)的过程,供自动化执行环境使用。有关使用 Ansible Builder 构建执行环境的更多信息,请参阅 Ansible Builder 指南

2.1.8.1.3. 迁移到 Ansible Core 2.12

升级到 Ansible Core 2.12 时,您需要更新您的 playbook、插件或其他 Ansible 基础架构的一部分,以便由最新版本的 Ansible Core 支持。有关将 Ansible 内容更新为与 Ansible Core 2.12 兼容的说明,请参阅 Ansible-core 2.12 Porting Guide

2.1.8.2. 使用自动化网格扩展自动化

Red Hat Ansible Automation Platform 的自动化网格组件简化了在多站点部署之间分布自动化的过程。对于具有多个隔离的 IT 环境的企业,自动化网格提供了一个一致且可靠的方法,使用对等对网格通信网络在执行节点上部署和扩展自动化。

当从版本 1.x 升级到最新版本的 Ansible Automation Platform 时,您需要将旧隔离节点中的数据迁移到自动化网格所需的执行节点。您可以通过规划混合和控制节点网络来实施自动化中心,然后编辑 Ansible Automation Platform 安装程序中找到的清单文件,为每个执行节点分配与网格相关的值。

有关如何从隔离节点迁移到执行节点的步骤,请参阅升级和迁移指南

有关自动化网格以及为您的环境设计自动化网格的各种方法的信息,请参阅 Red Hat Ansible Automation Platform Automation mesh

2.2. 使用外部管理的数据库安装自动化控制器

您可以使用这些说明在配置的单一机器上安装独立自动化控制器服务器,以与远程 PostgreSQL 实例通信作为其数据库。此远程 PostgreSQL 可以是您管理的服务器,也可以由 Amazon RDS 等云服务提供。

2.2.1. 先决条件

2.2.2. 编辑 Red Hat Ansible Automation Platform 安装程序清单文件

您可以使用 Red Hat Ansible Automation Platform 安装程序清单文件指定您的安装场景。

注意
  • 使用外部数据库:确保清单文件中的数据库部分已正确设置。
  • [automationhub] 组中添加自动化中心信息
  • 自动化中心和自动化控制器无法安装在同一节点上。
  • 自动化控制器将不会为其使用的数据库配置复制或故障转移功能。自动化控制器应该与已有的任何复制一起工作。
  • 出于性能的原因,数据库服务器应当位于同一网络或与自动化控制器服务器相同的数据中心。
  • 安装 Ansible Automation Platform 需要一个容器 registry 服务。通过访问容器 registry,您可以将自动化执行环境加载到 Ansible 自动化平台上,为您提供一致、容器化的环境,用于执行 Ansible playbook 和角色。默认情况下,Ansible Automation Platform 使用 registry.redhat.io,它需要 Red Hat registry 服务帐户。请参阅创建 Registry 服务账户指南来创建 registry 服务帐户。
  • 升级现有集群 :在升级集群时,您可以决定还要重新配置集群来忽略现有实例或实例组。从清单文件中省略实例或实例组不足以将它们从集群中移除。除了从清单文件中省略实例或实例组外,还必须在开始升级前取消置备实例或实例组。否则,忽略的实例或实例组将继续与集群通信,这可能会在升级过程中造成 tower 服务的问题。
  • 集群安装 :如果要创建集群设置,则必须使用所有实例的主机名或 IP 地址替换 localhost。所有节点/实例都必须能够使用此主机名或地址访问任何其他节点。换句话说,您不能在其中一个节点中使用 localhost ansible_connection=local,所有节点都应对主机名使用相同的格式。
重要
  • 需要对远程计算机进行 root 访问权限。使用 Ansible,这可以通过不同的方式来实现:
  • ansible_user=root ansible_ssh_pass=”your_password_here” 清单主机或组变量
  • ansible_user=root ansible_ssh_private_key_file="path_to_your_keyfile.pem" 清单主机或组变量
  • ANSIBLE_BECOME_METHOD=’sudo’ ANSIBLE_BECOME=True ./setup.sh

如需有关 become 插件的更多信息,请参阅了解特权升级

流程

  1. 进入安装程序

    1. [Bundled installer]

      $ cd ansible-automation-platform-setup-bundle-<latest-version>
    2. [Online installer]

      $ cd ansible-automation-platform-setup-<latest-version>
  2. 使用文本编辑器打开清单文件。
  3. 编辑清单文件参数,以指定您的安装场景。请按照以下示例操作。

2.2.3. 带有外部管理数据库的独立自动化控制器的清单文件示例

本例描述了如何填充清单文件,以使用外部数据库部署自动化控制器的安装。

重要
  • 对于 pg_password,不要使用特殊字符。可能会导致设置失败。
  • registry_usernameregistry_password 中输入 Red Hat Registry Service account 凭证以链接到 Red Hat 容器 registry。
[automationcontroller]
127.0.0.1 ansible_connection=local


[database]
database.example.com

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

pg_host='database.example.com'
pg_port='5432'

pg_database='awx'
pg_username='awx'

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

2.2.4. 其他清单文件变量

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

表 2.5. 其他清单文件变量

变量Descriptiondefault

GALAXY_ENABLE_API_ACCESS_LOG

当设置为 True 时,在 /var/log/galaxy_api_access.log 中创建一个日志文件,该文件会记录提供给平台的所有用户操作,包括其用户名和 IP 地址

False

示例

  • 要启用 api 访问日志,将变量添加到清单中,标志作为 true
[all:vars:]
admin_password = 'password'

pg_host=''
pg_port=''

GALAXY_ENABLE_API_ACCESS_LOG=true

2.2.5. 设置脚本标志和额外变量

在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:

表 2.6. 标记

参数描述

-h

显示帮助信息并退出

-i INVENTORY_FILE

到 Ansible 清单文件的路径(默认:inventory

-e EXTRA_VARS

将额外的 Ansible 变量设置为 key=value 或 YAML/JSON

-b

在安装时执行数据库备份

-r

在安装时执行数据库恢复

-k

生成发布一个 SECRET_KEY

使用 -- 分隔符添加您希望应用的任何 Ansible 参数。例如:./setup.sh -i my_awesome_inventory.yml -e matburt_is_country_gold=True — -K

注意
  • 在进行数据库恢复时使用了 -r,则会使用默认的恢复目录,除非使用 EXTRA_VARS 提供了一个非默认路径。请参阅以下通过 EXTRA_VAR 指定恢复路径的示例:

    ./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r
  • 您可以通过使用 -e bundle_install=false 来强制在线安装:

    $ ./setup.sh -e bundle_install=false

表 2.7. 额外变量

变量Descriptiondefault

upgrade_ansible_with_tower

安装自动化控制器时,请确保 Ansible 也为最新版本

False

create_preload_data

安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。

True

bundle_install_folder

在进行捆绑安装时获得捆绑软件仓库的目录

var/lib/tower-bundle

nginx_disable_https

禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用

False

nginx_disable_hsts

禁用 HSTS web-security policy 机制

False

nginx_http_port

nginx 为 HTTP 侦听的端口

80

nginx_https_port

nginx 为 HTTPS 侦听的端口

443

backup_dir

备份时要使用的临时位置

/var/backups/tower/

restore_backup_file

指定要从中恢复的备用文件

None

required_ram

安装 Tower 所需的最小 RAM(应只在测试安装时修改)

3750

min_open_fds

最小打开文件描述(应只在测试安装时修改)

None

ignore_preflight_errors

忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 required_rammin_open_fds

False

例子

  • 要升级内核:
./setup.sh -e upgrade_ansible_with_tower=1
  • 在 nginx 中禁用 https 处理:
./setup.sh -e nginx_disable_https=true
  • 在从备份文件中恢复时指定非默认路径:
./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r

2.2.6. 运行 Red Hat Ansible Automation Platform 安装程序设置脚本

在完成使用安装私有 Automation Hub 所需的参数更新清单文件后,您可以运行设置脚本。

流程

  1. 运行 setup.sh 脚本

    $ ./setup.sh

安装将开始。

2.2.7. 验证自动化控制器安装

安装完成后,您可以通过使用插入到清单文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。

流程

  1. inventory 文件中找到为自动化控制器节点指定的 IP 地址。
  2. 使用您在清单文件中设置的 Admin 凭据登录。
注意

自动化控制器服务器可从端口 80(https://<TOWER_SERVER_NAME>/)访问,但会被重定向到端口 443,因此端口 443 需要可以被使用。

重要

如果安装失败,且您购买了 Red Hat Ansible Automation Platform 的有效许可证,请通过红帽客户门户网站 https://access.redhat.com/ 联络 Ansible。

当可以成功登录到自动化控制器后,则代表您的 Red Hat Ansible Automation Platform 2.1 安装已完成。

2.2.7.1. 其他自动化控制器配置和资源

请参阅以下资源来探索其他自动化控制器配置。

表 2.8. 配置自动化控制器的资源

Link描述

自动化控制器快速设置指南

设置自动化控制器并运行第一个 playbook

自动化控制器管理指南

通过客户脚本、管理作业等配置自动化控制器管理。

配置 Red Hat Ansible Automation Platform 的代理支持

使用代理服务器设置自动化控制器

从自动化控制器管理可用性分析和数据收集

管理您与红帽共享的自动化控制器信息

自动化控制器用户指南

更详细地查看自动化控制器功能

2.2.8. Ansible Automation Platform 2.1 的下一步是什么

无论您是希望开始使用自动化的新 Ansible Automation Platform 用户,还是希望将旧的 Ansible 内容迁移到最新版本的 Red Hat Ansible Automation Platform,充分利用 Ansible Automation Platform 2.1 的新功能:

2.2.8.1. 将数据迁移到 Ansible Automation Platform 2.1

对于希望完成升级到 Ansible Automation Platform 2.1 的平台管理员,可能需要额外步骤将数据迁移到新实例:

2.2.8.1.1. 从旧的虚拟环境 (venvs) 迁移到自动化执行环境

通过 Ansible Automation Platform 2.1,您可以从自定义 Python 虚拟环境 (venvs) 转换为使用自动化执行环境 - 它是容器化镜像,包括了执行和扩展 Ansible 自动化所需的组件。这包括 Ansible Core、Ansible 内容集合、Python 依赖项、Red Hat Enterprise Linux UBI 8 以及任何其他软件包依赖项。

如果您希望将 venvs 迁移到执行环境,则需要(1)使用 awx-manage 命令列出并从原始实例中导出 venvs 列表,然后(2)使用 ansible-builder 创建执行环境。如需更多信息,请参阅 升级到自动化执行环境指南Ansible Builder 指南

2.2.8.1.2. 使用 Ansible Builder 迁移至 Ansible Engine 2.9 镜像

要迁移 Ansible Engine 2.9 镜像以用于 Ansible Automation Platform 2.1,ansible-builder 工具会自动重建镜像(包括其自定义插件和依赖项)的过程,供自动化执行环境使用。有关使用 Ansible Builder 构建执行环境的更多信息,请参阅 Ansible Builder 指南

2.2.8.1.3. 迁移到 Ansible Core 2.12

升级到 Ansible Core 2.12 时,您需要更新您的 playbook、插件或其他 Ansible 基础架构的一部分,以便由最新版本的 Ansible Core 支持。有关将 Ansible 内容更新为与 Ansible Core 2.12 兼容的说明,请参阅 Ansible-core 2.12 Porting Guide

2.2.8.2. 使用自动化网格扩展自动化

Red Hat Ansible Automation Platform 的自动化网格组件简化了在多站点部署之间分布自动化的过程。对于具有多个隔离的 IT 环境的企业,自动化网格提供了一个一致且可靠的方法,使用对等对网格通信网络在执行节点上部署和扩展自动化。

当从版本 1.x 升级到最新版本的 Ansible Automation Platform 时,您需要将旧隔离节点中的数据迁移到自动化网格所需的执行节点。您可以通过规划混合和控制节点网络来实施自动化中心,然后编辑 Ansible Automation Platform 安装程序中找到的清单文件,为每个执行节点分配与网格相关的值。

有关如何从隔离节点迁移到执行节点的步骤,请参阅升级和迁移指南

有关自动化网格以及为您的环境设计自动化网格的各种方法的信息,请参阅 Red Hat Ansible Automation Platform Automation mesh

2.3. 使用同一节点上的数据库安装自动化中心(automation hub)

您可以使用以下说明,安装带有在同一个节点上的数据库或非安全程序管理的数据库的自动化中心独立实例。

2.3.1. 先决条件

2.3.2. Red Hat Ansible Automation Platform 安装设置

您可在安装自动化中心时使用以下设置:

  • automationhub_importer_settings:要传递给 galaxy-importer 的设置/配置字典。它将生成到 /etc/galaxy-importer/galaxy-importer.cfg
  • automationhub_require_content_approval:在集合可用前,自动化 hub 是否强制实施批准机制
  • automationhub_disable_https:部署的自动化 hub 是否应启用 TLS
  • automationhub_disable_hsts:是否应该被部署为启用 HTTP Strict Transport Security(HSTS)Web-security 策略机制
  • automationhub_ssl_validate_certs:在请求自身时是否应该验证证书(默认为 False)。默认情况下,平台被部署为带有自签名证书
  • automationhub_ssl_cert:与 web_server_ssl_cert 相同,但用于自动化 hub UI 和 API
  • automationhub_ssl_key:与 web_server_ssl_key 相同,但用于自动化 hub UI 和 API
  • automationhub_backup_collections:自动化中心在 /var/lib/pulp 中提供工件。默认情况下,这被设置为 true,因此自动化控制器默认会自动备份工件。如果在此挂载了分区(如 LVM、NFS、CephFS 等),企业级的机构可确保始终备份该分区。如果出现这种情况,您可以设置 automationhub_backup_collections = false,并且 backup/restore 进程不必备份/恢复 /var/lib/pulp

2.3.3. 编辑 Red Hat Ansible Automation Platform 安装程序清单文件

您可以使用 Red Hat Ansible Automation Platform 安装程序清单文件指定您的安装场景。

注意
  • 使用外部数据库:确保清单文件中的数据库部分已正确设置。
  • [automationhub] 组中添加自动化中心信息
  • 自动化中心和自动化控制器无法安装在同一节点上。
  • 自动化控制器将不会为其使用的数据库配置复制或故障转移功能。自动化控制器应该与已有的任何复制一起工作。
  • 出于性能的原因,数据库服务器应当位于同一网络或与自动化控制器服务器相同的数据中心。
  • 安装 Ansible Automation Platform 需要一个容器 registry 服务。通过访问容器 registry,您可以将自动化执行环境加载到 Ansible 自动化平台上,为您提供一致、容器化的环境,用于执行 Ansible playbook 和角色。默认情况下,Ansible Automation Platform 使用 registry.redhat.io,它需要 Red Hat registry 服务帐户。请参阅创建 Registry 服务账户指南来创建 registry 服务帐户。
  • 升级现有集群 :在升级集群时,您可以决定还要重新配置集群来忽略现有实例或实例组。从清单文件中省略实例或实例组不足以将它们从集群中移除。除了从清单文件中省略实例或实例组外,还必须在开始升级前取消置备实例或实例组。否则,忽略的实例或实例组将继续与集群通信,这可能会在升级过程中造成 tower 服务的问题。
  • 集群安装 :如果要创建集群设置,则必须使用所有实例的主机名或 IP 地址替换 localhost。所有节点/实例都必须能够使用此主机名或地址访问任何其他节点。换句话说,您不能在其中一个节点中使用 localhost ansible_connection=local,所有节点都应对主机名使用相同的格式。
重要
  • 需要对远程计算机进行 root 访问权限。使用 Ansible,这可以通过不同的方式来实现:
  • ansible_user=root ansible_ssh_pass=”your_password_here” 清单主机或组变量
  • ansible_user=root ansible_ssh_private_key_file="path_to_your_keyfile.pem" 清单主机或组变量
  • ANSIBLE_BECOME_METHOD=’sudo’ ANSIBLE_BECOME=True ./setup.sh

如需有关 become 插件的更多信息,请参阅了解特权升级

流程

  1. 进入安装程序

    1. [Bundled installer]

      $ cd ansible-automation-platform-setup-bundle-<latest-version>
    2. [Online installer]

      $ cd ansible-automation-platform-setup-<latest-version>
  2. 使用文本编辑器打开清单文件。
  3. 编辑清单文件参数,以指定您的安装场景。请按照以下示例操作。

2.3.4. 独立自动化中心清单文件示例

本例描述了如何填充清单文件来部署自动化中心的独立实例。

重要
  • 对于 Red Hat Ansible Automation Platform 或自动化 hub:在 [automationhub] 组中添加一个自动化 hub 主机。您不能在同一节点上安装自动化控制器和自动化 hub。
  • [automationhub] 主机提供可访问 IP 地址或完全限定域名 (FDQN),以确保用户可以从不同节点从自动化中心同步和安装内容。不要使用 'localhost'。
  • registry_usernameregistry_password 中输入 Red Hat Registry Service account 凭证以链接到 Red Hat 容器 registry。
[automationcontroller]


[automationhub]
<FQDN> ansible_connection=local

[all:vars]
registry_url='registry.redhat.io'
registry_username='<registry username>'
registry_password='<registry password>'

automationhub_admin_password= <PASSWORD>

automationhub_pg_host=''
automationhub_pg_port=''

automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password=<PASSWORD>
automationhub_pg_sslmode='prefer'

# The default install will deploy a TLS enabled Automation Hub.
# If for some reason this is not the behavior wanted one can
# disable TLS enabled deployment.
#
# automationhub_disable_https = False
# The default install will generate self-signed certificates for the Automation
# Hub service. If you are providing valid certificate via automationhub_ssl_cert
# and automationhub_ssl_key, one should toggle that value to True.
#
# automationhub_ssl_validate_certs = False
# SSL-related variables
# If set, this will install a custom CA certificate to the system trust store.
# custom_ca_cert=/path/to/ca.crt
# Certificate and key to install in Automation Hub node
# automationhub_ssl_cert=/path/to/automationhub.cert
# automationhub_ssl_key=/path/to/automationhub.key

2.3.5. 其他清单文件变量

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

表 2.9. 其他清单文件变量

变量Descriptiondefault

GALAXY_ENABLE_API_ACCESS_LOG

当设置为 True 时,在 /var/log/galaxy_api_access.log 中创建一个日志文件,该文件会记录提供给平台的所有用户操作,包括其用户名和 IP 地址

False

示例

  • 要启用 api 访问日志,将变量添加到清单中,标志作为 true
[all:vars:]
admin_password = 'password'

pg_host=''
pg_port=''

GALAXY_ENABLE_API_ACCESS_LOG=true

2.3.6. 设置脚本标志和额外变量

在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:

表 2.10. 标记

参数描述

-h

显示帮助信息并退出

-i INVENTORY_FILE

到 Ansible 清单文件的路径(默认:inventory

-e EXTRA_VARS

将额外的 Ansible 变量设置为 key=value 或 YAML/JSON

-b

在安装时执行数据库备份

-r

在安装时执行数据库恢复

-k

生成发布一个 SECRET_KEY

使用 -- 分隔符添加您希望应用的任何 Ansible 参数。例如:./setup.sh -i my_awesome_inventory.yml -e matburt_is_country_gold=True — -K

注意
  • 在进行数据库恢复时使用了 -r,则会使用默认的恢复目录,除非使用 EXTRA_VARS 提供了一个非默认路径。请参阅以下通过 EXTRA_VAR 指定恢复路径的示例:

    ./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r
  • 您可以通过使用 -e bundle_install=false 来强制在线安装:

    $ ./setup.sh -e bundle_install=false

表 2.11. 额外变量

变量Descriptiondefault

upgrade_ansible_with_tower

安装自动化控制器时,请确保 Ansible 也为最新版本

False

create_preload_data

安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。

True

bundle_install_folder

在进行捆绑安装时获得捆绑软件仓库的目录

var/lib/tower-bundle

nginx_disable_https

禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用

False

nginx_disable_hsts

禁用 HSTS web-security policy 机制

False

nginx_http_port

nginx 为 HTTP 侦听的端口

80

nginx_https_port

nginx 为 HTTPS 侦听的端口

443

backup_dir

备份时要使用的临时位置

/var/backups/tower/

restore_backup_file

指定要从中恢复的备用文件

None

required_ram

安装 Tower 所需的最小 RAM(应只在测试安装时修改)

3750

min_open_fds

最小打开文件描述(应只在测试安装时修改)

None

ignore_preflight_errors

忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 required_rammin_open_fds

False

例子

  • 要升级内核:
./setup.sh -e upgrade_ansible_with_tower=1
  • 在 nginx 中禁用 https 处理:
./setup.sh -e nginx_disable_https=true
  • 在从备份文件中恢复时指定非默认路径:
./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r

2.3.7. 运行 Red Hat Ansible Automation Platform 安装程序设置脚本

在完成使用安装私有 Automation Hub 所需的参数更新清单文件后,您可以运行设置脚本。

流程

  1. 运行 setup.sh 脚本

    $ ./setup.sh

安装将开始。

2.3.8. 验证自动化中心安装

安装完成后,您可以通过使用插入到 inventory 文件中的 admin 凭据登录来验证自动化中心是否已成功安装。

流程

  1. inventory 文件中找到为自动化 hub 节点指定的 IP 地址。
  2. 使用您在清单文件中设置的 Admin 凭据登录。
重要

如果安装失败,且您购买了 Red Hat Ansible Automation Platform 的有效许可证,请通过红帽客户门户网站 https://access.redhat.com/ 联络 Ansible。

当可以成功登录到自动化 hub 后,则代表您的 Red Hat Ansible Automation Platform 2.1 安装已完成。

2.3.8.1. 其他自动化中心配置和资源

请参阅以下资源来探索额外的自动化中心配置。

表 2.12. 配置自动化控制器的资源

Link描述

在私有自动化 hub 中管理用户访问权限

为自动化 hub 配置用户访问

在自动 Hub 中管理红帽认证的集合和 Ansible Galaxy 集合

在自动化 hub 中添加内容

在自动化 hub 中发布专有内容集合

在自动化 hub 中发布内部开发的集合

2.3.9. Ansible Automation Platform 2.1 的下一步是什么

无论您是希望开始使用自动化的新 Ansible Automation Platform 用户,还是希望将旧的 Ansible 内容迁移到最新版本的 Red Hat Ansible Automation Platform,充分利用 Ansible Automation Platform 2.1 的新功能:

2.3.9.1. 将数据迁移到 Ansible Automation Platform 2.1

对于希望完成升级到 Ansible Automation Platform 2.1 的平台管理员,可能需要额外步骤将数据迁移到新实例:

2.3.9.1.1. 从旧的虚拟环境 (venvs) 迁移到自动化执行环境

通过 Ansible Automation Platform 2.1,您可以从自定义 Python 虚拟环境 (venvs) 转换为使用自动化执行环境 - 它是容器化镜像,包括了执行和扩展 Ansible 自动化所需的组件。这包括 Ansible Core、Ansible 内容集合、Python 依赖项、Red Hat Enterprise Linux UBI 8 以及任何其他软件包依赖项。

如果您希望将 venvs 迁移到执行环境,则需要(1)使用 awx-manage 命令列出并从原始实例中导出 venvs 列表,然后(2)使用 ansible-builder 创建执行环境。如需更多信息,请参阅 升级到自动化执行环境指南Ansible Builder 指南

2.3.9.1.2. 使用 Ansible Builder 迁移至 Ansible Engine 2.9 镜像

要迁移 Ansible Engine 2.9 镜像以用于 Ansible Automation Platform 2.1,ansible-builder 工具会自动重建镜像(包括其自定义插件和依赖项)的过程,供自动化执行环境使用。有关使用 Ansible Builder 构建执行环境的更多信息,请参阅 Ansible Builder 指南

2.3.9.1.3. 迁移到 Ansible Core 2.12

升级到 Ansible Core 2.12 时,您需要更新您的 playbook、插件或其他 Ansible 基础架构的一部分,以便由最新版本的 Ansible Core 支持。有关将 Ansible 内容更新为与 Ansible Core 2.12 兼容的说明,请参阅 Ansible-core 2.12 Porting Guide

2.3.9.2. 使用自动化网格扩展自动化

Red Hat Ansible Automation Platform 的自动化网格组件简化了在多站点部署之间分布自动化的过程。对于具有多个隔离的 IT 环境的企业,自动化网格提供了一个一致且可靠的方法,使用对等对网格通信网络在执行节点上部署和扩展自动化。

当从版本 1.x 升级到最新版本的 Ansible Automation Platform 时,您需要将旧隔离节点中的数据迁移到自动化网格所需的执行节点。您可以通过规划混合和控制节点网络来实施自动化中心,然后编辑 Ansible Automation Platform 安装程序中找到的清单文件,为每个执行节点分配与网格相关的值。

有关如何从隔离节点迁移到执行节点的步骤,请参阅升级和迁移指南

有关自动化网格以及为您的环境设计自动化网格的各种方法的信息,请参阅 Red Hat Ansible Automation Platform Automation mesh

2.4. 使用外部数据库安装自动化中心

您可以使用以下说明安装带有外部管理数据库的独立自动化中心实例。这会在一台机器上安装自动化 hub 服务器,并使用 Ansible Automation Platform 安装程序安装远程 PostgreSQL 数据库。

2.4.1. 先决条件

2.4.2. Red Hat Ansible Automation Platform 安装设置

您可在安装自动化中心时使用以下设置:

  • automationhub_importer_settings:要传递给 galaxy-importer 的设置/配置字典。它将生成到 /etc/galaxy-importer/galaxy-importer.cfg
  • automationhub_require_content_approval:在集合可用前,自动化 hub 是否强制实施批准机制
  • automationhub_disable_https:部署的自动化 hub 是否应启用 TLS
  • automationhub_disable_hsts:是否应该被部署为启用 HTTP Strict Transport Security(HSTS)Web-security 策略机制
  • automationhub_ssl_validate_certs:在请求自身时是否应该验证证书(默认为 False)。默认情况下,平台被部署为带有自签名证书
  • automationhub_ssl_cert:与 web_server_ssl_cert 相同,但用于自动化 hub UI 和 API
  • automationhub_ssl_key:与 web_server_ssl_key 相同,但用于自动化 hub UI 和 API
  • automationhub_backup_collections:自动化中心在 /var/lib/pulp 中提供工件。默认情况下,这被设置为 true,因此自动化控制器默认会自动备份工件。如果在此挂载了分区(如 LVM、NFS、CephFS 等),企业级的机构可确保始终备份该分区。如果出现这种情况,您可以设置 automationhub_backup_collections = false,并且 backup/restore 进程不必备份/恢复 /var/lib/pulp

2.4.3. 编辑 Red Hat Ansible Automation Platform 安装程序清单文件

您可以使用 Red Hat Ansible Automation Platform 安装程序清单文件指定您的安装场景。

注意
  • 使用外部数据库:确保清单文件中的数据库部分已正确设置。
  • [automationhub] 组中添加自动化中心信息
  • 自动化中心和自动化控制器无法安装在同一节点上。
  • 自动化控制器将不会为其使用的数据库配置复制或故障转移功能。自动化控制器应该与已有的任何复制一起工作。
  • 出于性能的原因,数据库服务器应当位于同一网络或与自动化控制器服务器相同的数据中心。
  • 安装 Ansible Automation Platform 需要一个容器 registry 服务。通过访问容器 registry,您可以将自动化执行环境加载到 Ansible 自动化平台上,为您提供一致、容器化的环境,用于执行 Ansible playbook 和角色。默认情况下,Ansible Automation Platform 使用 registry.redhat.io,它需要 Red Hat registry 服务帐户。请参阅创建 Registry 服务账户指南来创建 registry 服务帐户。
  • 升级现有集群 :在升级集群时,您可以决定还要重新配置集群来忽略现有实例或实例组。从清单文件中省略实例或实例组不足以将它们从集群中移除。除了从清单文件中省略实例或实例组外,还必须在开始升级前取消置备实例或实例组。否则,忽略的实例或实例组将继续与集群通信,这可能会在升级过程中造成 tower 服务的问题。
  • 集群安装 :如果要创建集群设置,则必须使用所有实例的主机名或 IP 地址替换 localhost。所有节点/实例都必须能够使用此主机名或地址访问任何其他节点。换句话说,您不能在其中一个节点中使用 localhost ansible_connection=local,所有节点都应对主机名使用相同的格式。
重要
  • 需要对远程计算机进行 root 访问权限。使用 Ansible,这可以通过不同的方式来实现:
  • ansible_user=root ansible_ssh_pass=”your_password_here” 清单主机或组变量
  • ansible_user=root ansible_ssh_private_key_file="path_to_your_keyfile.pem" 清单主机或组变量
  • ANSIBLE_BECOME_METHOD=’sudo’ ANSIBLE_BECOME=True ./setup.sh

如需有关 become 插件的更多信息,请参阅了解特权升级

流程

  1. 进入安装程序

    1. [Bundled installer]

      $ cd ansible-automation-platform-setup-bundle-<latest-version>
    2. [Online installer]

      $ cd ansible-automation-platform-setup-<latest-version>
  2. 使用文本编辑器打开清单文件。
  3. 编辑清单文件参数,以指定您的安装场景。请按照以下示例操作。

2.4.4. 独立自动化中心清单文件示例

本例描述了如何填充清单文件来部署自动化中心的独立实例。

重要
  • 对于 Red Hat Ansible Automation Platform 或自动化 hub:在 '[automationhub] 组中添加一个自动化 hub 主机。您不能在同一节点上安装自动化控制器和自动化 hub。
  • [automationhub] 主机提供可访问 IP 地址或完全限定域名 (FDQN),以确保用户可以从不同节点从自动化中心同步和安装内容。不要使用 'localhost'。
  • registry_usernameregistry_password 中输入 Red Hat Registry Service account 凭证以链接到 Red Hat 容器 registry。
[automationcontroller]


[automationhub]
<FQDN> ansible_connection=local

[database]
host2

[all:vars]
registry_url='registry.redhat.io'
registry_username='<registry username>'
registry_password='<registry password>'

automationhub_admin_password= <PASSWORD>

automationhub_pg_host=''
automationhub_pg_port=''

automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password=<PASSWORD>
automationhub_pg_sslmode='prefer'

# The default install will deploy a TLS enabled Automation Hub.
# If for some reason this is not the behavior wanted one can
# disable TLS enabled deployment.
#
# automationhub_disable_https = False
# The default install will generate self-signed certificates for the Automation
# Hub service. If you are providing valid certificate via automationhub_ssl_cert
# and automationhub_ssl_key, one should toggle that value to True.
#
# automationhub_ssl_validate_certs = False
# SSL-related variables
# If set, this will install a custom CA certificate to the system trust store.
# custom_ca_cert=/path/to/ca.crt
# Certificate and key to install in Automation Hub node
# automationhub_ssl_cert=/path/to/automationhub.cert
# automationhub_ssl_key=/path/to/automationhub.key

2.4.5. 其他清单文件变量

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

表 2.13. 其他清单文件变量

变量Descriptiondefault

GALAXY_ENABLE_API_ACCESS_LOG

当设置为 True 时,在 /var/log/galaxy_api_access.log 中创建一个日志文件,该文件会记录提供给平台的所有用户操作,包括其用户名和 IP 地址

False

示例

  • 要启用 api 访问日志,将变量添加到清单中,标志作为 true
[all:vars:]
admin_password = 'password'

pg_host=''
pg_port=''

GALAXY_ENABLE_API_ACCESS_LOG=true

2.4.6. 设置脚本标志和额外变量

在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:

表 2.14. 标记

参数描述

-h

显示帮助信息并退出

-i INVENTORY_FILE

到 Ansible 清单文件的路径(默认:inventory

-e EXTRA_VARS

将额外的 Ansible 变量设置为 key=value 或 YAML/JSON

-b

在安装时执行数据库备份

-r

在安装时执行数据库恢复

-k

生成发布一个 SECRET_KEY

使用 -- 分隔符添加您希望应用的任何 Ansible 参数。例如:./setup.sh -i my_awesome_inventory.yml -e matburt_is_country_gold=True — -K

注意
  • 在进行数据库恢复时使用了 -r,则会使用默认的恢复目录,除非使用 EXTRA_VARS 提供了一个非默认路径。请参阅以下通过 EXTRA_VAR 指定恢复路径的示例:

    ./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r
  • 您可以通过使用 -e bundle_install=false 来强制在线安装:

    $ ./setup.sh -e bundle_install=false

表 2.15. 额外变量

变量Descriptiondefault

upgrade_ansible_with_tower

安装自动化控制器时,请确保 Ansible 也为最新版本

False

create_preload_data

安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。

True

bundle_install_folder

在进行捆绑安装时获得捆绑软件仓库的目录

var/lib/tower-bundle

nginx_disable_https

禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用

False

nginx_disable_hsts

禁用 HSTS web-security policy 机制

False

nginx_http_port

nginx 为 HTTP 侦听的端口

80

nginx_https_port

nginx 为 HTTPS 侦听的端口

443

backup_dir

备份时要使用的临时位置

/var/backups/tower/

restore_backup_file

指定要从中恢复的备用文件

None

required_ram

安装 Tower 所需的最小 RAM(应只在测试安装时修改)

3750

min_open_fds

最小打开文件描述(应只在测试安装时修改)

None

ignore_preflight_errors

忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 required_rammin_open_fds

False

例子

  • 要升级内核:
./setup.sh -e upgrade_ansible_with_tower=1
  • 在 nginx 中禁用 https 处理:
./setup.sh -e nginx_disable_https=true
  • 在从备份文件中恢复时指定非默认路径:
./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r

2.4.7. 运行 Red Hat Ansible Automation Platform 安装程序设置脚本

在完成使用安装私有 Automation Hub 所需的参数更新清单文件后,您可以运行设置脚本。

流程

  1. 运行 setup.sh 脚本

    $ ./setup.sh

安装将开始。

2.4.8. 验证自动化控制器安装

安装完成后,您可以通过使用插入到清单文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。

流程

  1. inventory 文件中找到为自动化控制器节点指定的 IP 地址。
  2. 使用您在清单文件中设置的 Admin 凭据登录。
注意

自动化控制器服务器可从端口 80(https://<TOWER_SERVER_NAME>/)访问,但会被重定向到端口 443,因此端口 443 需要可以被使用。

重要

如果安装失败,且您购买了 Red Hat Ansible Automation Platform 的有效许可证,请通过红帽客户门户网站 https://access.redhat.com/ 联络 Ansible。

当可以成功登录到自动化控制器后,则代表您的 Red Hat Ansible Automation Platform 2.1 安装已完成。

2.4.8.1. 其他自动化中心配置和资源

请参阅以下资源来探索额外的自动化中心配置。

表 2.16. 配置自动化控制器的资源

Link描述

在私有自动化 hub 中管理用户访问权限

为自动化 hub 配置用户访问

在自动 Hub 中管理红帽认证的集合和 Ansible Galaxy 集合

在自动化 hub 中添加内容

在自动化 hub 中发布专有内容集合

在自动化 hub 中发布内部开发的集合

2.4.9. Ansible Automation Platform 2.1 的下一步是什么

无论您是希望开始使用自动化的新 Ansible Automation Platform 用户,还是希望将旧的 Ansible 内容迁移到最新版本的 Red Hat Ansible Automation Platform,充分利用 Ansible Automation Platform 2.1 的新功能:

2.4.9.1. 将数据迁移到 Ansible Automation Platform 2.1

对于希望完成升级到 Ansible Automation Platform 2.1 的平台管理员,可能需要额外步骤将数据迁移到新实例:

2.4.9.1.1. 从旧的虚拟环境 (venvs) 迁移到自动化执行环境

通过 Ansible Automation Platform 2.1,您可以从自定义 Python 虚拟环境 (venvs) 转换为使用自动化执行环境 - 它是容器化镜像,包括了执行和扩展 Ansible 自动化所需的组件。这包括 Ansible Core、Ansible 内容集合、Python 依赖项、Red Hat Enterprise Linux UBI 8 以及任何其他软件包依赖项。

如果您希望将 venvs 迁移到执行环境,则需要(1)使用 awx-manage 命令列出并从原始实例中导出 venvs 列表,然后(2)使用 ansible-builder 创建执行环境。如需更多信息,请参阅 升级到自动化执行环境指南Ansible Builder 指南

2.4.9.1.2. 使用 Ansible Builder 迁移至 Ansible Engine 2.9 镜像

要迁移 Ansible Engine 2.9 镜像以用于 Ansible Automation Platform 2.1,ansible-builder 工具会自动重建镜像(包括其自定义插件和依赖项)的过程,供自动化执行环境使用。有关使用 Ansible Builder 构建执行环境的更多信息,请参阅 Ansible Builder 指南

2.4.9.1.3. 迁移到 Ansible Core 2.12

升级到 Ansible Core 2.12 时,您需要更新您的 playbook、插件或其他 Ansible 基础架构的一部分,以便由最新版本的 Ansible Core 支持。有关将 Ansible 内容更新为与 Ansible Core 2.12 兼容的说明,请参阅 Ansible-core 2.12 Porting Guide

2.4.9.2. 使用自动化网格扩展自动化

Red Hat Ansible Automation Platform 的自动化网格组件简化了在多站点部署之间分布自动化的过程。对于具有多个隔离的 IT 环境的企业,自动化网格提供了一个一致且可靠的方法,使用对等对网格通信网络在执行节点上部署和扩展自动化。

当从版本 1.x 升级到最新版本的 Ansible Automation Platform 时,您需要将旧隔离节点中的数据迁移到自动化网格所需的执行节点。您可以通过规划混合和控制节点网络来实施自动化中心,然后编辑 Ansible Automation Platform 安装程序中找到的清单文件,为每个执行节点分配与网格相关的值。

有关如何从隔离节点迁移到执行节点的步骤,请参阅升级和迁移指南

有关自动化网格以及为您的环境设计自动化网格的各种方法的信息,请参阅 Red Hat Ansible Automation Platform Automation mesh

第 3 章 安装 Red Hat Ansible Automation Platform

Red Hat Ansible Automation Platform 安装涉及部署自动化控制器和自动化中心。

重要

Ansible Automation Platform 安装程序允许您为每个清单仅部署一个自动化中心。您可以将 Ansible Automation Platform 安装程序用于独立的自动化中心实例,并多次使用任何不同的清单运行安装程序来部署多个自动化中心节点。

这个安装选项包括两个支持的情况:

3.1. 使用自动化控制器节点或非安装程序管理的数据库安装 Red Hat Ansible Automation Platform

您可以使用以下说明在自动化控制器节点或非安装程序管理的数据库上安装带有数据库的 Red Hat Ansible Automation Platform(自动化控制器和自动化中心)。

3.1.1. 先决条件

3.1.2. Red Hat Ansible Automation Platform 安装设置

您可在安装自动化中心时使用以下设置:

  • automationhub_importer_settings:要传递给 galaxy-importer 的设置/配置字典。它将生成到 /etc/galaxy-importer/galaxy-importer.cfg
  • automationhub_require_content_approval:在集合可用前,自动化 hub 是否强制实施批准机制
  • automationhub_disable_https:部署的自动化 hub 是否应启用 TLS
  • automationhub_disable_hsts:是否应该被部署为启用 HTTP Strict Transport Security(HSTS)Web-security 策略机制
  • automationhub_ssl_validate_certs:在请求自身时是否应该验证证书(默认为 False)。默认情况下,平台被部署为带有自签名证书
  • automationhub_ssl_cert:与 web_server_ssl_cert 相同,但用于自动化 hub UI 和 API
  • automationhub_ssl_key:与 web_server_ssl_key 相同,但用于自动化 hub UI 和 API
  • automationhub_backup_collections:自动化中心在 /var/lib/pulp 中提供工件。默认情况下,这被设置为 true,因此自动化控制器默认会自动备份工件。如果在此挂载了分区(如 LVM、NFS、CephFS 等),企业级的机构可确保始终备份该分区。如果出现这种情况,您可以设置 automationhub_backup_collections = false,并且 backup/restore 进程不必备份/恢复 /var/lib/pulp

3.1.3. 编辑 Red Hat Ansible Automation Platform 安装程序清单文件

您可以使用 Red Hat Ansible Automation Platform 安装程序清单文件指定您的安装场景。

注意
  • 使用外部数据库:确保清单文件中的数据库部分已正确设置。
  • [automationhub] 组中添加自动化中心信息
  • 自动化中心和自动化控制器无法安装在同一节点上。
  • 自动化控制器将不会为其使用的数据库配置复制或故障转移功能。自动化控制器应该与已有的任何复制一起工作。
  • 出于性能的原因,数据库服务器应当位于同一网络或与自动化控制器服务器相同的数据中心。
  • 安装 Ansible Automation Platform 需要一个容器 registry 服务。通过访问容器 registry,您可以将自动化执行环境加载到 Ansible 自动化平台上,为您提供一致、容器化的环境,用于执行 Ansible playbook 和角色。默认情况下,Ansible Automation Platform 使用 registry.redhat.io,它需要 Red Hat registry 服务帐户。请参阅创建 Registry 服务账户指南来创建 registry 服务帐户。
  • 升级现有集群 :在升级集群时,您可以决定还要重新配置集群来忽略现有实例或实例组。从清单文件中省略实例或实例组不足以将它们从集群中移除。除了从清单文件中省略实例或实例组外,还必须在开始升级前取消置备实例或实例组。否则,忽略的实例或实例组将继续与集群通信,这可能会在升级过程中造成 tower 服务的问题。
  • 集群安装 :如果要创建集群设置,则必须使用所有实例的主机名或 IP 地址替换 localhost。所有节点/实例都必须能够使用此主机名或地址访问任何其他节点。换句话说,您不能在其中一个节点中使用 localhost ansible_connection=local,所有节点都应对主机名使用相同的格式。
重要
  • 需要对远程计算机进行 root 访问权限。使用 Ansible,这可以通过不同的方式来实现:
  • ansible_user=root ansible_ssh_pass=”your_password_here” 清单主机或组变量
  • ansible_user=root ansible_ssh_private_key_file="path_to_your_keyfile.pem" 清单主机或组变量
  • ANSIBLE_BECOME_METHOD=’sudo’ ANSIBLE_BECOME=True ./setup.sh

如需有关 become 插件的更多信息,请参阅了解特权升级

流程

  1. 进入安装程序

    1. [Bundled installer]

      $ cd ansible-automation-platform-setup-bundle-<latest-version>
    2. [Online installer]

      $ cd ansible-automation-platform-setup-<latest-version>
  2. 使用文本编辑器打开清单文件。
  3. 编辑清单文件参数,以指定您的安装场景。请按照以下示例操作。

3.1.4. 自动化控制器节点或非安装程序管理的数据库的清单文件示例

本例描述了如何填充清单文件以安装 Red Hat Ansible Automation Platform。此安装清单文件包含自动化控制器和自动化中心,以及自动化控制器节点或非安装程序管理的数据库上的数据库。

重要
  • 您不能在同一节点上安装自动化控制器和自动化 hub。
  • [automationhub] 主机提供一个可访问的 IP 地址,以确保用户可以从不同节点的 Private Automation Hub 同步内容。
  • registry_usernameregistry_password 中输入 Red Hat Registry Service account 凭证以链接到 Red Hat 容器 registry。
[automationcontroller]
controller.acme.org

[automationhub]
automationhub.acme.org

[all:vars]
admin_password='<password>'
pg_host=''
pg_port=''
pg_database='awx'
pg_username='awx'
pg_password='<password>'
pg_sslmode='prefer'  # set to 'verify-full' for client-side enforced SSL

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

# Automation Hub Configuration
#
automationhub_admin_password='<password>'
automationhub_pg_host='controller.acme.org'
automationhub_pg_port='5432'
automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password='<password>'
automationhub_pg_sslmode='prefer'

# The default install will deploy a TLS enabled Automation Hub.
# If for some reason this is not the behavior wanted one can
# disable TLS enabled deployment.
#
# automationhub_disable_https = False
# The default install will generate self-signed certificates for the Automation
# Hub service. If you are providing valid certificate via automationhub_ssl_cert
# and automationhub_ssl_key, one should toggle that value to True.
#
# automationhub_ssl_validate_certs = False
# SSL-related variables
# If set, this will install a custom CA certificate to the system trust store.
# custom_ca_cert=/path/to/ca.crt
# Certificate and key to install in nginx for the web UI and API
# web_server_ssl_cert=/path/to/tower.cert
# web_server_ssl_key=/path/to/tower.key
# Certificate and key to install in Automation Hub node
# automationhub_ssl_cert=/path/to/automationhub.cert
# automationhub_ssl_key=/path/to/automationhub.key
# Server-side SSL settings for PostgreSQL (when we are installing it).
# postgres_use_ssl=False
# postgres_ssl_cert=/path/to/pgsql.crt
# postgres_ssl_key=/path/to/pgsql.key

3.1.5. 设置脚本标志和额外变量

在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:

表 3.1. 标记

参数描述

-h

显示帮助信息并退出

-i INVENTORY_FILE

到 Ansible 清单文件的路径(默认:inventory

-e EXTRA_VARS

将额外的 Ansible 变量设置为 key=value 或 YAML/JSON

-b

在安装时执行数据库备份

-r

在安装时执行数据库恢复

-k

生成发布一个 SECRET_KEY

使用 -- 分隔符添加您希望应用的任何 Ansible 参数。例如:./setup.sh -i my_awesome_inventory.yml -e matburt_is_country_gold=True — -K

注意
  • 在进行数据库恢复时使用了 -r,则会使用默认的恢复目录,除非使用 EXTRA_VARS 提供了一个非默认路径。请参阅以下通过 EXTRA_VAR 指定恢复路径的示例:

    ./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r
  • 您可以通过使用 -e bundle_install=false 来强制在线安装:

    $ ./setup.sh -e bundle_install=false

表 3.2. 额外变量

变量Descriptiondefault

upgrade_ansible_with_tower

安装自动化控制器时,请确保 Ansible 也为最新版本

False

create_preload_data

安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。

True

bundle_install_folder

在进行捆绑安装时获得捆绑软件仓库的目录

var/lib/tower-bundle

nginx_disable_https

禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用

False

nginx_disable_hsts

禁用 HSTS web-security policy 机制

False

nginx_http_port

nginx 为 HTTP 侦听的端口

80

nginx_https_port

nginx 为 HTTPS 侦听的端口

443

backup_dir

备份时要使用的临时位置

/var/backups/tower/

restore_backup_file

指定要从中恢复的备用文件

None

required_ram

安装 Tower 所需的最小 RAM(应只在测试安装时修改)

3750

min_open_fds

最小打开文件描述(应只在测试安装时修改)

None

ignore_preflight_errors

忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 required_rammin_open_fds

False

例子

  • 要升级内核:
./setup.sh -e upgrade_ansible_with_tower=1
  • 在 nginx 中禁用 https 处理:
./setup.sh -e nginx_disable_https=true
  • 在从备份文件中恢复时指定非默认路径:
./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r

3.1.6. 运行 Red Hat Ansible Automation Platform 安装程序设置脚本

在完成使用安装私有 Automation Hub 所需的参数更新清单文件后,您可以运行设置脚本。

流程

  1. 运行 setup.sh 脚本

    $ ./setup.sh

安装将开始。

3.1.7. 验证自动化控制器安装

安装完成后,您可以通过使用插入到清单文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。

流程

  1. inventory 文件中找到为自动化控制器节点指定的 IP 地址。
  2. 使用您在清单文件中设置的 Admin 凭据登录。
注意

自动化控制器服务器可从端口 80(https://<TOWER_SERVER_NAME>/)访问,但会被重定向到端口 443,因此端口 443 需要可以被使用。

重要

如果安装失败,且您购买了 Red Hat Ansible Automation Platform 的有效许可证,请通过红帽客户门户网站 https://access.redhat.com/ 联络 Ansible。

当可以成功登录到自动化控制器后,则代表您的 Red Hat Ansible Automation Platform 2.1 安装已完成。

3.1.7.1. 其他自动化控制器配置和资源

请参阅以下资源来探索其他自动化控制器配置。

表 3.3. 配置自动化控制器的资源

Link描述

自动化控制器快速设置指南

设置自动化控制器并运行第一个 playbook

自动化控制器管理指南

通过客户脚本、管理作业等配置自动化控制器管理。

配置 Red Hat Ansible Automation Platform 的代理支持

使用代理服务器设置自动化控制器

从自动化控制器管理可用性分析和数据收集

管理您与红帽共享的自动化控制器信息

自动化控制器用户指南

更详细地查看自动化控制器功能

3.1.8. 验证自动化中心安装

安装完成后,您可以通过使用插入到 inventory 文件中的 admin 凭据登录来验证自动化中心是否已成功安装。

流程

  1. inventory 文件中找到为自动化 hub 节点指定的 IP 地址。
  2. 使用您在清单文件中设置的 Admin 凭据登录。
重要

如果安装失败,且您购买了 Red Hat Ansible Automation Platform 的有效许可证,请通过红帽客户门户网站 https://access.redhat.com/ 联络 Ansible。

当可以成功登录到自动化 hub 后,则代表您的 Red Hat Ansible Automation Platform 2.1 安装已完成。

3.1.8.1. 其他自动化中心配置和资源

请参阅以下资源来探索额外的自动化中心配置。

表 3.4. 配置自动化控制器的资源

Link描述

在私有自动化 hub 中管理用户访问权限

为自动化 hub 配置用户访问

在自动 Hub 中管理红帽认证的集合和 Ansible Galaxy 集合

在自动化 hub 中添加内容

在自动化 hub 中发布专有内容集合

在自动化 hub 中发布内部开发的集合

3.1.9. Ansible Automation Platform 2.1 的下一步是什么

无论您是希望开始使用自动化的新 Ansible Automation Platform 用户,还是希望将旧的 Ansible 内容迁移到最新版本的 Red Hat Ansible Automation Platform,充分利用 Ansible Automation Platform 2.1 的新功能:

3.1.9.1. 将数据迁移到 Ansible Automation Platform 2.1

对于希望完成升级到 Ansible Automation Platform 2.1 的平台管理员,可能需要额外步骤将数据迁移到新实例:

3.1.9.1.1. 从旧的虚拟环境 (venvs) 迁移到自动化执行环境

通过 Ansible Automation Platform 2.1,您可以从自定义 Python 虚拟环境 (venvs) 转换为使用自动化执行环境 - 它是容器化镜像,包括了执行和扩展 Ansible 自动化所需的组件。这包括 Ansible Core、Ansible 内容集合、Python 依赖项、Red Hat Enterprise Linux UBI 8 以及任何其他软件包依赖项。

如果您希望将 venvs 迁移到执行环境,则需要(1)使用 awx-manage 命令列出并从原始实例中导出 venvs 列表,然后(2)使用 ansible-builder 创建执行环境。如需更多信息,请参阅 升级到自动化执行环境指南Ansible Builder 指南

3.1.9.1.2. 使用 Ansible Builder 迁移至 Ansible Engine 2.9 镜像

要迁移 Ansible Engine 2.9 镜像以用于 Ansible Automation Platform 2.1,ansible-builder 工具会自动重建镜像(包括其自定义插件和依赖项)的过程,供自动化执行环境使用。有关使用 Ansible Builder 构建执行环境的更多信息,请参阅 Ansible Builder 指南

3.1.9.1.3. 迁移到 Ansible Core 2.12

升级到 Ansible Core 2.12 时,您需要更新您的 playbook、插件或其他 Ansible 基础架构的一部分,以便由最新版本的 Ansible Core 支持。有关将 Ansible 内容更新为与 Ansible Core 2.12 兼容的说明,请参阅 Ansible-core 2.12 Porting Guide

3.1.9.2. 使用自动化网格扩展自动化

Red Hat Ansible Automation Platform 的自动化网格组件简化了在多站点部署之间分布自动化的过程。对于具有多个隔离的 IT 环境的企业,自动化网格提供了一个一致且可靠的方法,使用对等对网格通信网络在执行节点上部署和扩展自动化。

当从版本 1.x 升级到最新版本的 Ansible Automation Platform 时,您需要将旧隔离节点中的数据迁移到自动化网格所需的执行节点。您可以通过规划混合和控制节点网络来实施自动化中心,然后编辑 Ansible Automation Platform 安装程序中找到的清单文件,为每个执行节点分配与网格相关的值。

有关如何从隔离节点迁移到执行节点的步骤,请参阅升级和迁移指南

有关自动化网格以及为您的环境设计自动化网格的各种方法的信息,请参阅 Red Hat Ansible Automation Platform Automation mesh

3.2. 使用外部管理的数据库安装 Red Hat Ansible Automation Platform

您可以使用以下说明安装带有外部管理数据库的 Red Hat Ansible Automation Platform(自动化控制器和自动化中心)。

3.2.1. 先决条件

3.2.2. Red Hat Ansible Automation Platform 安装设置

您可在安装自动化中心时使用以下设置:

  • automationhub_importer_settings:要传递给 galaxy-importer 的设置/配置字典。它将生成到 /etc/galaxy-importer/galaxy-importer.cfg
  • automationhub_require_content_approval:在集合可用前,自动化 hub 是否强制实施批准机制
  • automationhub_disable_https:部署的自动化 hub 是否应启用 TLS
  • automationhub_disable_hsts:是否应该被部署为启用 HTTP Strict Transport Security(HSTS)Web-security 策略机制
  • automationhub_ssl_validate_certs:在请求自身时是否应该验证证书(默认为 False)。默认情况下,平台被部署为带有自签名证书
  • automationhub_ssl_cert:与 web_server_ssl_cert 相同,但用于自动化 hub UI 和 API
  • automationhub_ssl_key:与 web_server_ssl_key 相同,但用于自动化 hub UI 和 API
  • automationhub_backup_collections:自动化中心在 /var/lib/pulp 中提供工件。默认情况下,这被设置为 true,因此自动化控制器默认会自动备份工件。如果在此挂载了分区(如 LVM、NFS、CephFS 等),企业级的机构可确保始终备份该分区。如果出现这种情况,您可以设置 automationhub_backup_collections = false,并且 backup/restore 进程不必备份/恢复 /var/lib/pulp

3.2.3. 编辑 Red Hat Ansible Automation Platform 安装程序清单文件

您可以使用 Red Hat Ansible Automation Platform 安装程序清单文件指定您的安装场景。

注意
  • 使用外部数据库:确保清单文件中的数据库部分已正确设置。
  • [automationhub] 组中添加自动化中心信息
  • 自动化中心和自动化控制器无法安装在同一节点上。
  • 自动化控制器将不会为其使用的数据库配置复制或故障转移功能。自动化控制器应该与已有的任何复制一起工作。
  • 出于性能的原因,数据库服务器应当位于同一网络或与自动化控制器服务器相同的数据中心。
  • 安装 Ansible Automation Platform 需要一个容器 registry 服务。通过访问容器 registry,您可以将自动化执行环境加载到 Ansible 自动化平台上,为您提供一致、容器化的环境,用于执行 Ansible playbook 和角色。默认情况下,Ansible Automation Platform 使用 registry.redhat.io,它需要 Red Hat registry 服务帐户。请参阅创建 Registry 服务账户指南来创建 registry 服务帐户。
  • 升级现有集群 :在升级集群时,您可以决定还要重新配置集群来忽略现有实例或实例组。从清单文件中省略实例或实例组不足以将它们从集群中移除。除了从清单文件中省略实例或实例组外,还必须在开始升级前取消置备实例或实例组。否则,忽略的实例或实例组将继续与集群通信,这可能会在升级过程中造成 tower 服务的问题。
  • 集群安装 :如果要创建集群设置,则必须使用所有实例的主机名或 IP 地址替换 localhost。所有节点/实例都必须能够使用此主机名或地址访问任何其他节点。换句话说,您不能在其中一个节点中使用 localhost ansible_connection=local,所有节点都应对主机名使用相同的格式。
重要
  • 需要对远程计算机进行 root 访问权限。使用 Ansible,这可以通过不同的方式来实现:
  • ansible_user=root ansible_ssh_pass=”your_password_here” 清单主机或组变量
  • ansible_user=root ansible_ssh_private_key_file="path_to_your_keyfile.pem" 清单主机或组变量
  • ANSIBLE_BECOME_METHOD=’sudo’ ANSIBLE_BECOME=True ./setup.sh

如需有关 become 插件的更多信息,请参阅了解特权升级

流程

  1. 进入安装程序

    1. [Bundled installer]

      $ cd ansible-automation-platform-setup-bundle-<latest-version>
    2. [Online installer]

      $ cd ansible-automation-platform-setup-<latest-version>
  2. 使用文本编辑器打开清单文件。
  3. 编辑清单文件参数,以指定您的安装场景。请按照以下示例操作。

3.2.4. 带有外部管理数据库的 Red Hat Ansible Automation Platform 清单文件示例

本例描述了如何填充清单文件以安装 Red Hat Ansible Automation Platform。此安装清单文件包含带有外部管理数据库的自动化控制器和自动化中心。

重要
  • 您不能在同一节点上安装自动化控制器和自动化 hub。
  • [automationhub] 主机提供一个可访问的 IP 地址,以确保用户可以从不同节点的 Private Automation Hub 同步内容。
  • registry_usernameregistry_password 中输入 Red Hat Registry Service account 凭证以链接到 Red Hat 容器 registry。
[automationcontroller]
controller.acme.org

[automationhub]
automationhub.acme.org

[database]
database-01.acme.org

[all:vars]
admin_password='<password>'
pg_host='database-01.acme.org'
pg_port='5432'
pg_database='awx'
pg_username='awx'
pg_password='<password>'
pg_sslmode='prefer'  # set to 'verify-full' for client-side enforced SSL

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

# Automation Hub Configuration
#
automationhub_admin_password='<password>'
automationhub_pg_host='database-01.acme.org'
automationhub_pg_port='5432'
automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password='<password>'
automationhub_pg_sslmode='prefer'

# The default install will deploy a TLS enabled Automation Hub.
# If for some reason this is not the behavior wanted one can
# disable TLS enabled deployment.
#
# automationhub_disable_https = False
# The default install will generate self-signed certificates for the Automation
# Hub service. If you are providing valid certificate via automationhub_ssl_cert
# and automationhub_ssl_key, one should toggle that value to True.
#
# automationhub_ssl_validate_certs = False
# SSL-related variables
# If set, this will install a custom CA certificate to the system trust store.
# custom_ca_cert=/path/to/ca.crt
# Certificate and key to install in nginx for the web UI and API
# web_server_ssl_cert=/path/to/tower.cert
# web_server_ssl_key=/path/to/tower.key
# Certificate and key to install in Automation Hub node
# automationhub_ssl_cert=/path/to/automationhub.cert
# automationhub_ssl_key=/path/to/automationhub.key
# Server-side SSL settings for PostgreSQL (when we are installing it).
# postgres_use_ssl=False
# postgres_ssl_cert=/path/to/pgsql.crt
# postgres_ssl_key=/path/to/pgsql.key

3.2.5. 设置脚本标志和额外变量

在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:

表 3.5. 标记

参数描述

-h

显示帮助信息并退出

-i INVENTORY_FILE

到 Ansible 清单文件的路径(默认:inventory

-e EXTRA_VARS

将额外的 Ansible 变量设置为 key=value 或 YAML/JSON

-b

在安装时执行数据库备份

-r

在安装时执行数据库恢复

-k

生成发布一个 SECRET_KEY

使用 -- 分隔符添加您希望应用的任何 Ansible 参数。例如:./setup.sh -i my_awesome_inventory.yml -e matburt_is_country_gold=True — -K

注意
  • 在进行数据库恢复时使用了 -r,则会使用默认的恢复目录,除非使用 EXTRA_VARS 提供了一个非默认路径。请参阅以下通过 EXTRA_VAR 指定恢复路径的示例:

    ./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r
  • 您可以通过使用 -e bundle_install=false 来强制在线安装:

    $ ./setup.sh -e bundle_install=false

表 3.6. 额外变量

变量Descriptiondefault

upgrade_ansible_with_tower

安装自动化控制器时,请确保 Ansible 也为最新版本

False

create_preload_data

安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。

True

bundle_install_folder

在进行捆绑安装时获得捆绑软件仓库的目录

var/lib/tower-bundle

nginx_disable_https

禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用

False

nginx_disable_hsts

禁用 HSTS web-security policy 机制

False

nginx_http_port

nginx 为 HTTP 侦听的端口

80

nginx_https_port

nginx 为 HTTPS 侦听的端口

443

backup_dir

备份时要使用的临时位置

/var/backups/tower/

restore_backup_file

指定要从中恢复的备用文件

None

required_ram

安装 Tower 所需的最小 RAM(应只在测试安装时修改)

3750

min_open_fds

最小打开文件描述(应只在测试安装时修改)

None

ignore_preflight_errors

忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 required_rammin_open_fds

False

例子

  • 要升级内核:
./setup.sh -e upgrade_ansible_with_tower=1
  • 在 nginx 中禁用 https 处理:
./setup.sh -e nginx_disable_https=true
  • 在从备份文件中恢复时指定非默认路径:
./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r

3.2.6. 运行 Red Hat Ansible Automation Platform 安装程序设置脚本

在完成使用安装私有 Automation Hub 所需的参数更新清单文件后,您可以运行设置脚本。

流程

  1. 运行 setup.sh 脚本

    $ ./setup.sh

安装将开始。

3.2.7. 验证自动化控制器安装

安装完成后,您可以通过使用插入到清单文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。

流程

  1. inventory 文件中找到为自动化控制器节点指定的 IP 地址。
  2. 使用您在清单文件中设置的 Admin 凭据登录。
注意

自动化控制器服务器可从端口 80(https://<TOWER_SERVER_NAME>/)访问,但会被重定向到端口 443,因此端口 443 需要可以被使用。

重要

如果安装失败,且您购买了 Red Hat Ansible Automation Platform 的有效许可证,请通过红帽客户门户网站 https://access.redhat.com/ 联络 Ansible。

当可以成功登录到自动化控制器后,则代表您的 Red Hat Ansible Automation Platform 2.1 安装已完成。

3.2.7.1. 其他自动化控制器配置和资源

请参阅以下资源来探索其他自动化控制器配置。

表 3.7. 配置自动化控制器的资源

Link描述

自动化控制器快速设置指南

设置自动化控制器并运行第一个 playbook

自动化控制器管理指南

通过客户脚本、管理作业等配置自动化控制器管理。

配置 Red Hat Ansible Automation Platform 的代理支持

使用代理服务器设置自动化控制器

从自动化控制器管理可用性分析和数据收集

管理您与红帽共享的自动化控制器信息

自动化控制器用户指南

更详细地查看自动化控制器功能

3.2.8. 验证自动化中心安装

安装完成后,您可以通过使用插入到 inventory 文件中的 admin 凭据登录来验证自动化中心是否已成功安装。

流程

  1. inventory 文件中找到为自动化 hub 节点指定的 IP 地址。
  2. 使用您在清单文件中设置的 Admin 凭据登录。
重要

如果安装失败,且您购买了 Red Hat Ansible Automation Platform 的有效许可证,请通过红帽客户门户网站 https://access.redhat.com/ 联络 Ansible。

当可以成功登录到自动化 hub 后,则代表您的 Red Hat Ansible Automation Platform 2.1 安装已完成。

3.2.8.1. 其他自动化中心配置和资源

请参阅以下资源来探索额外的自动化中心配置。

表 3.8. 配置自动化控制器的资源

Link描述

在私有自动化 hub 中管理用户访问权限

为自动化 hub 配置用户访问

在自动 Hub 中管理红帽认证的集合和 Ansible Galaxy 集合

在自动化 hub 中添加内容

在自动化 hub 中发布专有内容集合

在自动化 hub 中发布内部开发的集合

3.2.9. Ansible Automation Platform 2.1 的下一步是什么

无论您是希望开始使用自动化的新 Ansible Automation Platform 用户,还是希望将旧的 Ansible 内容迁移到最新版本的 Red Hat Ansible Automation Platform,充分利用 Ansible Automation Platform 2.1 的新功能:

3.2.9.1. 将数据迁移到 Ansible Automation Platform 2.1

对于希望完成升级到 Ansible Automation Platform 2.1 的平台管理员,可能需要额外步骤将数据迁移到新实例:

3.2.9.1.1. 从旧的虚拟环境 (venvs) 迁移到自动化执行环境

通过 Ansible Automation Platform 2.1,您可以从自定义 Python 虚拟环境 (venvs) 转换为使用自动化执行环境 - 它是容器化镜像,包括了执行和扩展 Ansible 自动化所需的组件。这包括 Ansible Core、Ansible 内容集合、Python 依赖项、Red Hat Enterprise Linux UBI 8 以及任何其他软件包依赖项。

如果您希望将 venvs 迁移到执行环境,则需要(1)使用 awx-manage 命令列出并从原始实例中导出 venvs 列表,然后(2)使用 ansible-builder 创建执行环境。如需更多信息,请参阅 升级到自动化执行环境指南Ansible Builder 指南

3.2.9.1.2. 使用 Ansible Builder 迁移至 Ansible Engine 2.9 镜像

要迁移 Ansible Engine 2.9 镜像以用于 Ansible Automation Platform 2.1,ansible-builder 工具会自动重建镜像(包括其自定义插件和依赖项)的过程,供自动化执行环境使用。有关使用 Ansible Builder 构建执行环境的更多信息,请参阅 Ansible Builder 指南

3.2.9.1.3. 迁移到 Ansible Core 2.12

升级到 Ansible Core 2.12 时,您需要更新您的 playbook、插件或其他 Ansible 基础架构的一部分,以便由最新版本的 Ansible Core 支持。有关将 Ansible 内容更新为与 Ansible Core 2.12 兼容的说明,请参阅 Ansible-core 2.12 Porting Guide

3.2.9.2. 使用自动化网格扩展自动化

Red Hat Ansible Automation Platform 的自动化网格组件简化了在多站点部署之间分布自动化的过程。对于具有多个隔离的 IT 环境的企业,自动化网格提供了一个一致且可靠的方法,使用对等对网格通信网络在执行节点上部署和扩展自动化。

当从版本 1.x 升级到最新版本的 Ansible Automation Platform 时,您需要将旧隔离节点中的数据迁移到自动化网格所需的执行节点。您可以通过规划混合和控制节点网络来实施自动化中心,然后编辑 Ansible Automation Platform 安装程序中找到的清单文件,为每个执行节点分配与网格相关的值。

有关如何从隔离节点迁移到执行节点的步骤,请参阅升级和迁移指南

有关自动化网格以及为您的环境设计自动化网格的各种方法的信息,请参阅 Red Hat Ansible Automation Platform Automation mesh

第 4 章 多机器集群安装

您可以使用外部管理的数据库使用自动化中心将 Ansible Automation Platform 安装为集群自动化控制器。在这个模式中,安装并激活多个自动化控制器节点。任何节点都可以接收 HTTP 请求,所有节点都可以执行作业。这会在集群中安装 Ansible Automation Platform 服务器,并将它配置为与 PostgreSQL 的远程实例通信作为其数据库。此远程 PostgreSQL 可以是您管理的服务器,也可以由 Amazon RDS 等云服务提供。

重要

Ansible Automation Platform 安装程序允许您为每个清单仅部署一个自动化中心。您可以将 Ansible Automation Platform 安装程序用于独立的自动化中心实例,并多次使用任何不同的清单运行安装程序来部署多个自动化中心节点。

4.1. 使用外部管理数据库安装多节点 Red Hat Ansible Automation Platform

您可以按照以下说明将 Red Hat Ansible Automation Platform 安装为多个自动化控制器节点和带有外部管理数据库的自动化中心。

4.1.1. 先决条件

4.1.2. Red Hat Ansible Automation Platform 安装设置

您可在安装自动化中心时使用以下设置:

  • automationhub_importer_settings:要传递给 galaxy-importer 的设置/配置字典。它将生成到 /etc/galaxy-importer/galaxy-importer.cfg
  • automationhub_require_content_approval:在集合可用前,自动化 hub 是否强制实施批准机制
  • automationhub_disable_https:部署的自动化 hub 是否应启用 TLS
  • automationhub_disable_hsts:是否应该被部署为启用 HTTP Strict Transport Security(HSTS)Web-security 策略机制
  • automationhub_ssl_validate_certs:在请求自身时是否应该验证证书(默认为 False)。默认情况下,平台被部署为带有自签名证书
  • automationhub_ssl_cert:与 web_server_ssl_cert 相同,但用于自动化 hub UI 和 API
  • automationhub_ssl_key:与 web_server_ssl_key 相同,但用于自动化 hub UI 和 API
  • automationhub_backup_collections:自动化中心在 /var/lib/pulp 中提供工件。默认情况下,这被设置为 true,因此自动化控制器默认会自动备份工件。如果在此挂载了分区(如 LVM、NFS、CephFS 等),企业级的机构可确保始终备份该分区。如果出现这种情况,您可以设置 automationhub_backup_collections = false,并且 backup/restore 进程不必备份/恢复 /var/lib/pulp

4.1.3. 编辑 Red Hat Ansible Automation Platform 安装程序清单文件

您可以使用 Red Hat Ansible Automation Platform 安装程序清单文件指定您的安装场景。

注意
  • 使用外部数据库:确保清单文件中的数据库部分已正确设置。
  • [automationhub] 组中添加自动化中心信息
  • 自动化中心和自动化控制器无法安装在同一节点上。
  • 自动化控制器将不会为其使用的数据库配置复制或故障转移功能。自动化控制器应该与已有的任何复制一起工作。
  • 出于性能的原因,数据库服务器应当位于同一网络或与自动化控制器服务器相同的数据中心。
  • 安装 Ansible Automation Platform 需要一个容器 registry 服务。通过访问容器 registry,您可以将自动化执行环境加载到 Ansible 自动化平台上,为您提供一致、容器化的环境,用于执行 Ansible playbook 和角色。默认情况下,Ansible Automation Platform 使用 registry.redhat.io,它需要 Red Hat registry 服务帐户。请参阅创建 Registry 服务账户指南来创建 registry 服务帐户。
  • 升级现有集群 :在升级集群时,您可以决定还要重新配置集群来忽略现有实例或实例组。从清单文件中省略实例或实例组不足以将它们从集群中移除。除了从清单文件中省略实例或实例组外,还必须在开始升级前取消置备实例或实例组。否则,忽略的实例或实例组将继续与集群通信,这可能会在升级过程中造成 tower 服务的问题。
  • 集群安装 :如果要创建集群设置,则必须使用所有实例的主机名或 IP 地址替换 localhost。所有节点/实例都必须能够使用此主机名或地址访问任何其他节点。换句话说,您不能在其中一个节点中使用 localhost ansible_connection=local,所有节点都应对主机名使用相同的格式。
重要
  • 需要对远程计算机进行 root 访问权限。使用 Ansible,这可以通过不同的方式来实现:
  • ansible_user=root ansible_ssh_pass=”your_password_here” 清单主机或组变量
  • ansible_user=root ansible_ssh_private_key_file="path_to_your_keyfile.pem" 清单主机或组变量
  • ANSIBLE_BECOME_METHOD=’sudo’ ANSIBLE_BECOME=True ./setup.sh

如需有关 become 插件的更多信息,请参阅了解特权升级

流程

  1. 进入安装程序

    1. [Bundled installer]

      $ cd ansible-automation-platform-setup-bundle-<latest-version>
    2. [Online installer]

      $ cd ansible-automation-platform-setup-<latest-version>
  2. 使用文本编辑器打开清单文件。
  3. 编辑清单文件参数,以指定您的安装场景。请按照以下示例操作。

4.1.4. Red Hat Ansible Automation Platform 多节点清单文件示例

本例描述了如何为自动化控制器的多节点集群安装填充清单文件。

重要
  • 您不能在同一节点上安装自动化控制器和自动化 hub。
  • [automationhub] 主机提供一个可访问的 IP 地址,以确保用户可以从不同节点的 Private Automation Hub 同步内容。
  • 对于 pg_password,不要使用特殊字符。可能会导致设置失败。
  • registry_usernameregistry_password 中输入 Red Hat Registry Service account 凭证以链接到 Red Hat 容器 registry。
[automationcontroller]
host1
host11
host12


[automationhub]
host2

[database]
1

[all:vars]
ansible_become=true

admin_password='<password>'

pg_host='dbnode.example.com'
pg_port='5432'

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

registry_url='registry.redhat.io'
registry_username='<registry username>'
registry_password='<registry password>'
1
字段应该为空。

4.1.5. 设置脚本标志和额外变量

在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:

表 4.1. 标记

参数描述

-h

显示帮助信息并退出

-i INVENTORY_FILE

到 Ansible 清单文件的路径(默认:inventory

-e EXTRA_VARS

将额外的 Ansible 变量设置为 key=value 或 YAML/JSON

-b

在安装时执行数据库备份

-r

在安装时执行数据库恢复

-k

生成发布一个 SECRET_KEY

使用 -- 分隔符添加您希望应用的任何 Ansible 参数。例如:./setup.sh -i my_awesome_inventory.yml -e matburt_is_country_gold=True — -K

注意
  • 在进行数据库恢复时使用了 -r,则会使用默认的恢复目录,除非使用 EXTRA_VARS 提供了一个非默认路径。请参阅以下通过 EXTRA_VAR 指定恢复路径的示例:

    ./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r
  • 您可以通过使用 -e bundle_install=false 来强制在线安装:

    $ ./setup.sh -e bundle_install=false

表 4.2. 额外变量

变量Descriptiondefault

upgrade_ansible_with_tower

安装自动化控制器时,请确保 Ansible 也为最新版本

False

create_preload_data

安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。

True

bundle_install_folder

在进行捆绑安装时获得捆绑软件仓库的目录

var/lib/tower-bundle

nginx_disable_https

禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用

False

nginx_disable_hsts

禁用 HSTS web-security policy 机制

False

nginx_http_port

nginx 为 HTTP 侦听的端口

80

nginx_https_port

nginx 为 HTTPS 侦听的端口

443

backup_dir

备份时要使用的临时位置

/var/backups/tower/

restore_backup_file

指定要从中恢复的备用文件

None

required_ram

安装 Tower 所需的最小 RAM(应只在测试安装时修改)

3750

min_open_fds

最小打开文件描述(应只在测试安装时修改)

None

ignore_preflight_errors

忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 required_rammin_open_fds

False

例子

  • 要升级内核:
./setup.sh -e upgrade_ansible_with_tower=1
  • 在 nginx 中禁用 https 处理:
./setup.sh -e nginx_disable_https=true
  • 在从备份文件中恢复时指定非默认路径:
./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r

4.1.6. 运行 Red Hat Ansible Automation Platform 安装程序设置脚本

在完成使用安装私有 Automation Hub 所需的参数更新清单文件后,您可以运行设置脚本。

流程

  1. 运行 setup.sh 脚本

    $ ./setup.sh

安装将开始。

4.1.7. 验证自动化控制器安装

安装完成后,您可以通过使用插入到清单文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。

流程

  1. inventory 文件中找到为自动化控制器节点指定的 IP 地址。
  2. 使用您在清单文件中设置的 Admin 凭据登录。
注意

自动化控制器服务器可从端口 80(https://<TOWER_SERVER_NAME>/)访问,但会被重定向到端口 443,因此端口 443 需要可以被使用。

重要

如果安装失败,且您购买了 Red Hat Ansible Automation Platform 的有效许可证,请通过红帽客户门户网站 https://access.redhat.com/ 联络 Ansible。

当可以成功登录到自动化控制器后,则代表您的 Red Hat Ansible Automation Platform 2.1 安装已完成。

4.1.7.1. 其他自动化控制器配置和资源

请参阅以下资源来探索其他自动化控制器配置。

表 4.3. 配置自动化控制器的资源

Link描述

自动化控制器快速设置指南

设置自动化控制器并运行第一个 playbook

自动化控制器管理指南

通过客户脚本、管理作业等配置自动化控制器管理。

配置 Red Hat Ansible Automation Platform 的代理支持

使用代理服务器设置自动化控制器

从自动化控制器管理可用性分析和数据收集

管理您与红帽共享的自动化控制器信息

自动化控制器用户指南

更详细地查看自动化控制器功能

4.1.8. 验证自动化中心安装

安装完成后,您可以通过使用插入到 inventory 文件中的 admin 凭据登录来验证自动化中心是否已成功安装。

流程

  1. inventory 文件中找到为自动化 hub 节点指定的 IP 地址。
  2. 使用您在清单文件中设置的 Admin 凭据登录。
重要

如果安装失败,且您购买了 Red Hat Ansible Automation Platform 的有效许可证,请通过红帽客户门户网站 https://access.redhat.com/ 联络 Ansible。

当可以成功登录到自动化 hub 后,则代表您的 Red Hat Ansible Automation Platform 2.1 安装已完成。

4.1.8.1. 其他自动化中心配置和资源

请参阅以下资源来探索额外的自动化中心配置。

表 4.4. 配置自动化控制器的资源

Link描述

在私有自动化 hub 中管理用户访问权限

为自动化 hub 配置用户访问

在自动 Hub 中管理红帽认证的集合和 Ansible Galaxy 集合

在自动化 hub 中添加内容

在自动化 hub 中发布专有内容集合

在自动化 hub 中发布内部开发的集合

4.1.9. Ansible Automation Platform 2.1 的下一步是什么

无论您是希望开始使用自动化的新 Ansible Automation Platform 用户,还是希望将旧的 Ansible 内容迁移到最新版本的 Red Hat Ansible Automation Platform,充分利用 Ansible Automation Platform 2.1 的新功能:

4.1.9.1. 将数据迁移到 Ansible Automation Platform 2.1

对于希望完成升级到 Ansible Automation Platform 2.1 的平台管理员,可能需要额外步骤将数据迁移到新实例:

4.1.9.1.1. 从旧的虚拟环境 (venvs) 迁移到自动化执行环境

通过 Ansible Automation Platform 2.1,您可以从自定义 Python 虚拟环境 (venvs) 转换为使用自动化执行环境 - 它是容器化镜像,包括了执行和扩展 Ansible 自动化所需的组件。这包括 Ansible Core、Ansible 内容集合、Python 依赖项、Red Hat Enterprise Linux UBI 8 以及任何其他软件包依赖项。

如果您希望将 venvs 迁移到执行环境,则需要(1)使用 awx-manage 命令列出并从原始实例中导出 venvs 列表,然后(2)使用 ansible-builder 创建执行环境。如需更多信息,请参阅 升级到自动化执行环境指南Ansible Builder 指南

4.1.9.1.2. 使用 Ansible Builder 迁移至 Ansible Engine 2.9 镜像

要迁移 Ansible Engine 2.9 镜像以用于 Ansible Automation Platform 2.1,ansible-builder 工具会自动重建镜像(包括其自定义插件和依赖项)的过程,供自动化执行环境使用。有关使用 Ansible Builder 构建执行环境的更多信息,请参阅 Ansible Builder 指南

4.1.9.1.3. 迁移到 Ansible Core 2.12

升级到 Ansible Core 2.12 时,您需要更新您的 playbook、插件或其他 Ansible 基础架构的一部分,以便由最新版本的 Ansible Core 支持。有关将 Ansible 内容更新为与 Ansible Core 2.12 兼容的说明,请参阅 Ansible-core 2.12 Porting Guide

4.1.9.2. 使用自动化网格扩展自动化

Red Hat Ansible Automation Platform 的自动化网格组件简化了在多站点部署之间分布自动化的过程。对于具有多个隔离的 IT 环境的企业,自动化网格提供了一个一致且可靠的方法,使用对等对网格通信网络在执行节点上部署和扩展自动化。

当从版本 1.x 升级到最新版本的 Ansible Automation Platform 时,您需要将旧隔离节点中的数据迁移到自动化网格所需的执行节点。您可以通过规划混合和控制节点网络来实施自动化中心,然后编辑 Ansible Automation Platform 安装程序中找到的清单文件,为每个执行节点分配与网格相关的值。

有关如何从隔离节点迁移到执行节点的步骤,请参阅升级和迁移指南

有关自动化网格以及为您的环境设计自动化网格的各种方法的信息,请参阅 Red Hat Ansible Automation Platform Automation mesh

第 5 章 配置 Red Hat Ansible Automation Platform 的代理支持

您可以配置 Red Hat Ansible Automation Platform,以使用代理与流量通信。代理服务器充当来自其他服务器的客户机用于请求查找资源的请求的中介。客户端连接到代理服务器,请求不同的服务器提供某些服务或可用资源,代理服务器会评估请求,以简化和控制其复杂性。以下小节描述了支持的代理配置以及如何设置它们。

5.1. 启用代理支持

为了提供代理服务器支持,自动化控制器通过自动化控制器设置中的 REMOTE_HOST_HEADERS 列表变量处理代理请求(如 ALB、NLB、HAProxy、Squid、Nginx 和 tinyproxy)。默认情况下,REMOTE_HOST_HEADERS 设置为 ["REMOTE_ADDR", "REMOTE_HOST"]

要启用代理服务器支持,请在自动化控制器的设置页面中编辑 REMOTE_HOST_HEADERS 字段:

流程

  1. 在自动化控制器中,进入到 SettingsMiscellaneous System
  2. REMOTE_HOST_HEADERS 字段中输入以下值:

    [
      "HTTP_X_FORWARDED_FOR",
      "REMOTE_ADDR",
      "REMOTE_HOST"
    ]

自动化控制器通过搜索 REMOTE_HOST_HEADERS 中的标头列表来确定远程主机的 IP 地址,直到第一个 IP 地址所在的 IP 地址为止。

5.2. 已知的代理

当自动化控制器配置有 REMOTE_HOST_HEADERS = ['HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR', 'REMOTE_HOST'] 时,它假定 X-Forwarded-For 的值源自 Tower 前面的代理/负载均衡器。如果自动化控制器可以在不使用代理/负载均衡器的情况下访问,或者代理没有验证标头,那么 X-Forwarded-For 的值可以被断断为原始 IP 地址。在 REMOTE_HOST_HEADERS 设置中使用 HTTP_X_FORWARDED_FOR 可能会存在安全漏洞。

要避免这种情况,您可以在自动化控制器上的设置菜单中的 PROXY_IP_ALLOWED_LIST 字段中配置允许使用 PROXY_IP_ALLOWED_LIST 字段的已知代理列表。不在已知代理列表上的负载均衡器和主机将导致请求被拒绝。

5.2.1. 配置已知的代理

要为自动化控制器配置已知代理列表,请将代理 IP 地址添加到自动化控制器设置页面中的 PROXY_IP_ALLOWED_LIST 字段中。

流程

  1. 在自动化控制器中,进入到 SettingsMiscellaneous System
  2. PROXY_IP_ALLOWED_LIST 字段中,输入允许连接到您的自动化控制器的 IP 地址,如下例所示:

    PROXY_IP_ALLOWED_LIST 条目示例

    [
      "example1.proxy.com:8080",
      "example2.proxy.com:8080"
    ]

重要
  • PROXY_IP_ALLOWED_LIST 需要列表中的代理正确清理标头输入,并正确将 X-Forwarded-For 的值设置为客户端的实际源 IP。自动化控制器可以依赖 PROXY_IP_ALLOWED_LIST 中的 IP 地址和主机名为 X-Forwarded-For 字段提供非欺骗的值。
  • 不要将 HTTP_X_FORWARDED_FOR 配置为 'REMOTE_HOST_HEADERS' 中的项目,除非以下所有条件都满足:

    • 您使用带有 ssl 终止的代理环境;
    • 代理提供 X-Forwarded-For 标头的清理或验证处理,以防止客户端欺骗;
    • /etc/tower/conf.d/remote_host_headers.py 定义 PROXY_IP_ALLOWED_LIST,它只包含可信代理或负载均衡器的原始 IP 地址。

5.3. 配置一个反向代理

您可以通过将 HTTP_X_FORWARDED_FOR 添加到自动化控制器设置中的 REMOTE_HOST_HEADERS 字段来支持反向代理服务器配置。X-Forwarded-For (XFF) HTTP 标头字段标识通过 HTTP 代理或负载平衡器连接到 Web 服务器的客户端的原始 IP 地址。

流程

  1. 在自动化控制器中,进入到 SettingsMiscellaneous System
  2. REMOTE_HOST_HEADERS 字段中输入以下值:

    [
      "HTTP_X_FORWARDED_FOR",
      "REMOTE_ADDR",
      "REMOTE_HOST"
    ]

第 6 章 配置自动化控制器 websocket 连接

您可以配置自动化控制器,使 websocket 配置与 nginx 或负载均衡器配置保持一致。

6.1. 用于自动化控制器的 websocket 配置

自动化控制器节点通过 websocket 连接到所有其他自动化控制器节点。此互连用于将所有 websocket 发送的消息分发到所有其他自动化控制器节点。这是必要的,因为任何浏览器客户端 websocket 都可以订阅可能在任何自动化控制器节点上运行的任何作业。websocket 客户端不路由到特定的自动化控制器节点。任何自动化控制器节点都可以处理任何 websocket 请求,每个自动化控制器节点必须了解所有目标于所有客户端的 websocket 消息。

自动化控制器将通过数据库中的实例记录自动处理其他自动化控制器节点的发现。

重要
  • 它旨在使您的节点通过私有、可信任的子网(而不是开放的互联网)对 websocket 流量进行广播。因此,如果您为 websocket 广播关闭 HTTPS,websocket 流量(大部分是 Ansible playbook stdout)会在自动化控制器节点之间进行发送,未加密。

6.1.1. 配置其他自动化控制器节点的自动发现

您可以配置 websocket 连接,使自动化控制器能够通过数据库中的实例记录自动处理其他自动化控制器节点的发现。

  • 编辑端口、协议以及是否在建立 websocket 连接时验证证书的自动化控制器 websocket 信息。

    BROADCAST_WEBSOCKET_PROTOCOL = 'http'
    BROADCAST_WEBSOCKET_PORT = 80
    BROADCAST_WEBSOCKET_VERIFY_CERT = False

第 7 章 从自动化控制器管理可用性分析和数据收集

您可以通过在自动化控制器用户界面中不使用或更改您的设置,改变来自自动化控制器控制器的可用性分析和数据收集。

7.1. 可用性分析和数据收集

自动化控制器包括可用性数据收集,以便更好地了解自动化控制器用户如何与自动化控制器进行交互,以帮助增强未来版本,并持续简化您的用户体验。

只有安装自动化控制器试用或全新安装自动化控制器的用户才会选择使用此数据收集。

其他资源

7.1.1. 控制自动化控制器的数据收集

您可以通过在设置菜单中的用户界面选项卡中设置参与级别来控制自动化控制器如何收集数据。

流程

  1. 登录到您的自动化控制器
  2. 进入 SettingsUser Interface
  3. 从 User Tracking State 下拉列表中选择所需的数据收集级别:

    1. Off:阻止数据收集。
    2. Anonymous:启用数据收集功能,但不包括特定于您的用户数据.
    3. Detailed:启用数据收集,包括特定于您的用户数据。
  4. Save 应用设置,或点 Cancel 来取消更改。

第 8 章 支持的清单插件模板

升级时,现有配置将迁移到新格式,生成向后兼容的清单输出。使用以下模板来帮助将清单迁移到新样式的清单插件输出。

8.1. Amazon Web Services EC2

compose:
  ansible_host: public_ip_address
  ec2_account_id: owner_id
  ec2_ami_launch_index: ami_launch_index | string
  ec2_architecture: architecture
  ec2_block_devices: dict(block_device_mappings | map(attribute='device_name') | list | zip(block_device_mappings | map(attribute='ebs.volume_id') | list))
  ec2_client_token: client_token
  ec2_dns_name: public_dns_name
  ec2_ebs_optimized: ebs_optimized
  ec2_eventsSet: events | default("")
  ec2_group_name: placement.group_name
  ec2_hypervisor: hypervisor
  ec2_id: instance_id
  ec2_image_id: image_id
  ec2_instance_profile: iam_instance_profile | default("")
  ec2_instance_type: instance_type
  ec2_ip_address: public_ip_address
  ec2_kernel: kernel_id | default("")
  ec2_key_name: key_name
  ec2_launch_time: launch_time | regex_replace(" ", "T") | regex_replace("(\+)(\d\d):(\d)(\d)$", ".\g<2>\g<3>Z")
  ec2_monitored: monitoring.state in ['enabled', 'pending']
  ec2_monitoring_state: monitoring.state
  ec2_persistent: persistent | default(false)
  ec2_placement: placement.availability_zone
  ec2_platform: platform | default("")
  ec2_private_dns_name: private_dns_name
  ec2_private_ip_address: private_ip_address
  ec2_public_dns_name: public_dns_name
  ec2_ramdisk: ramdisk_id | default("")
  ec2_reason: state_transition_reason
  ec2_region: placement.region
  ec2_requester_id: requester_id | default("")
  ec2_root_device_name: root_device_name
  ec2_root_device_type: root_device_type
  ec2_security_group_ids: security_groups | map(attribute='group_id') | list |  join(',')
  ec2_security_group_names: security_groups | map(attribute='group_name') | list |  join(',')
  ec2_sourceDestCheck: source_dest_check | default(false) | lower | string
  ec2_spot_instance_request_id: spot_instance_request_id | default("")
  ec2_state: state.name
  ec2_state_code: state.code
  ec2_state_reason: state_reason.message if state_reason is defined else ""
  ec2_subnet_id: subnet_id | default("")
  ec2_tag_Name: tags.Name
  ec2_virtualization_type: virtualization_type
  ec2_vpc_id: vpc_id | default("")
filters:
  instance-state-name:
  - running
groups:
  ec2: true
hostnames:
  - network-interface.addresses.association.public-ip
  - dns-name
  - private-dns-name
keyed_groups:
  - key: image_id | regex_replace("[^A-Za-z0-9\_]", "_")
    parent_group: images
    prefix: ''
    separator: ''
  - key: placement.availability_zone
    parent_group: zones
    prefix: ''
    separator: ''
  - key: ec2_account_id | regex_replace("[^A-Za-z0-9\_]", "_")
    parent_group: accounts
    prefix: ''
    separator: ''
  - key: ec2_state | regex_replace("[^A-Za-z0-9\_]", "_")
    parent_group: instance_states
    prefix: instance_state
  - key: platform | default("undefined") | regex_replace("[^A-Za-z0-9\_]", "_")
    parent_group: platforms
    prefix: platform
  - key: instance_type | regex_replace("[^A-Za-z0-9\_]", "_")
    parent_group: types
    prefix: type
  - key: key_name | regex_replace("[^A-Za-z0-9\_]", "_")
    parent_group: keys
    prefix: key
  - key: placement.region
    parent_group: regions
    prefix: ''
    separator: ''
  - key: security_groups | map(attribute="group_name") | map("regex_replace", "[^A-Za-z0-9\_]", "_") | list
    parent_group: security_groups
    prefix: security_group
  - key: dict(tags.keys() | map("regex_replace", "[^A-Za-z0-9\_]", "_") | list | zip(tags.values()
      | map("regex_replace", "[^A-Za-z0-9\_]", "_") | list))
    parent_group: tags
    prefix: tag
  - key: tags.keys() | map("regex_replace", "[^A-Za-z0-9\_]", "_") | list
    parent_group: tags
    prefix: tag
  - key: vpc_id | regex_replace("[^A-Za-z0-9\_]", "_")
    parent_group: vpcs
    prefix: vpc_id
  - key: placement.availability_zone
    parent_group: '{{ placement.region }}'
    prefix: ''
    separator: ''
plugin: amazon.aws.aws_ec2
use_contrib_script_compatible_sanitization: true

8.2. Google Compute Engine

auth_kind: serviceaccount
compose:
  ansible_ssh_host: networkInterfaces[0].accessConfigs[0].natIP | default(networkInterfaces[0].networkIP)
  gce_description: description if description else None
  gce_id: id
  gce_image: image
  gce_machine_type: machineType
  gce_metadata: metadata.get("items", []) | items2dict(key_name="key", value_name="value")
  gce_name: name
  gce_network: networkInterfaces[0].network.name
  gce_private_ip: networkInterfaces[0].networkIP
  gce_public_ip: networkInterfaces[0].accessConfigs[0].natIP | default(None)
  gce_status: status
  gce_subnetwork: networkInterfaces[0].subnetwork.name
  gce_tags: tags.get("items", [])
  gce_zone: zone
hostnames:
- name
- public_ip
- private_ip
keyed_groups:
- key: gce_subnetwork
  prefix: network
- key: gce_private_ip
  prefix: ''
  separator: ''
- key: gce_public_ip
  prefix: ''
  separator: ''
- key: machineType
  prefix: ''
  separator: ''
- key: zone
  prefix: ''
  separator: ''
- key: gce_tags
  prefix: tag
- key: status | lower
  prefix: status
- key: image
  prefix: ''
  separator: ''
plugin: google.cloud.gcp_compute
retrieve_image_info: true
use_contrib_script_compatible_sanitization: true

8.3. Microsoft Azure Resource Manager

conditional_groups:
  azure: true
default_host_filters: []
fail_on_template_errors: false
hostvar_expressions:
  computer_name: name
  private_ip: private_ipv4_addresses[0] if private_ipv4_addresses else None
  provisioning_state: provisioning_state | title
  public_ip: public_ipv4_addresses[0] if public_ipv4_addresses else None
  public_ip_id: public_ip_id if public_ip_id is defined else None
  public_ip_name: public_ip_name if public_ip_name is defined else None
  tags: tags if tags else None
  type: resource_type
keyed_groups:
- key: location
  prefix: ''
  separator: ''
- key: tags.keys() | list if tags else []
  prefix: ''
  separator: ''
- key: security_group
  prefix: ''
  separator: ''
- key: resource_group
  prefix: ''
  separator: ''
- key: os_disk.operating_system_type
  prefix: ''
  separator: ''
- key: dict(tags.keys() | map("regex_replace", "^(.*)$", "\1_") | list | zip(tags.values() | list)) if tags else []
  prefix: ''
  separator: ''
plain_host_names: true
plugin: azure.azcollection.azure_rm
use_contrib_script_compatible_sanitization: true

8.4. VMware vCenter

compose:
  ansible_host: guest.ipAddress
  ansible_ssh_host: guest.ipAddress
  ansible_uuid: 99999999 | random | to_uuid
  availablefield: availableField
  configissue: configIssue
  configstatus: configStatus
  customvalue: customValue
  effectiverole: effectiveRole
  guestheartbeatstatus: guestHeartbeatStatus
  layoutex: layoutEx
  overallstatus: overallStatus
  parentvapp: parentVApp
  recenttask: recentTask
  resourcepool: resourcePool
  rootsnapshot: rootSnapshot
  triggeredalarmstate: triggeredAlarmState
filters:
- runtime.powerState == "poweredOn"
keyed_groups:
- key: config.guestId
  prefix: ''
  separator: ''
- key: '"templates" if config.template else "guests"'
  prefix: ''
  separator: ''
plugin: community.vmware.vmware_vm_inventory
properties:
- availableField
- configIssue
- configStatus
- customValue
- datastore
- effectiveRole
- guestHeartbeatStatus
- layout
- layoutEx
- name
- network
- overallStatus
- parentVApp
- permission
- recentTask
- resourcePool
- rootSnapshot
- snapshot
- triggeredAlarmState
- value
- capability
- config
- guest
- runtime
- storage
- summary
strict: false
with_nested_properties: true

8.5. Red Hat Satellite 6

group_prefix: foreman_
keyed_groups:
- key: foreman['environment_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_') | regex_replace('none', '')
  prefix: foreman_environment_
  separator: ''
- key: foreman['location_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_')
  prefix: foreman_location_
  separator: ''
- key: foreman['organization_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_')
  prefix: foreman_organization_
  separator: ''
- key: foreman['content_facet_attributes']['lifecycle_environment_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_')
  prefix: foreman_lifecycle_environment_
  separator: ''
- key: foreman['content_facet_attributes']['content_view_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_')
  prefix: foreman_content_view_
  separator: ''
legacy_hostvars: true
plugin: theforeman.foreman.foreman
validate_certs: false
want_facts: true
want_hostcollections: false
want_params: true

8.6. OpenStack

expand_hostvars: true
fail_on_errors: true
inventory_hostname: uuid
plugin: openstack.cloud.openstack

8.7. Red Hat Virtualization

compose:
  ansible_host: (devices.values() | list)[0][0] if devices else None
keyed_groups:
- key: cluster
  prefix: cluster
  separator: _
- key: status
  prefix: status
  separator: _
- key: tags
  prefix: tag
  separator: _
ovirt_hostname_preference:
- name
- fqdn
ovirt_insecure: false
plugin: ovirt.ovirt.ovirt

8.8. 自动化控制器

include_metadata: true
inventory_id: <inventory_id or url_quoted_named_url>
plugin: awx.awx.tower
validate_certs: <true or false>

第 9 章 自定义通知支持的属性

本节介绍支持的作业属性列表,以及构建通知消息文本的正确语法。支持的作业属性有:

  • allow_simultaneous - (布尔值)表示多个作业是否可以从与此作业关联的 JT 同时运行
  • controller_node - (字符串)管理隔离执行环境的实例
  • created - (日期时间)这个作业创建时的时间戳
  • custom_virtualenv - (字符串)用于执行作业的自定义虚拟环境
  • description - (字符串)该作业的可选描述
  • diff_mode - (布尔值)如果启用,标准输出中会显示对主机上任何模板文件进行的文本更改
  • elapsed - (十进制)作业运行所经过的时间(以秒为单位)
  • execution_node - (字符串)执行作业的节点
  • failed - (布尔值)如果作业失败,则为 true
  • finished - (日期时间)作业完成执行的日期和时间
  • force_handlers - (布尔值)当处理程序被强制运行时,即使在该主机上的作业失败,它们也会在收到通知时运行(请注意,在一些情况下,如不可访问的主机,仍然可以阻止处理程序运行)
  • fork - (整数)作业请求的 fork 数量
  • id - (整数)此作业的数据库 id
  • job_explanation - (字符串)状态字段,指示作业在无法运行和捕获 stdout 时的状态
  • job_slice_count - (整数)如果作为分片作业的一部分运行,分片的总数(如果为 1,则作业不是分片作业的一部分)
  • job_slice_number - (整数)如果作为分片作业的一部分运行,则为所操作的清单分片的 ID(如果不是分片作业的一部分,不使用这个属性)
  • job_tags - (字符串)仅执行具有指定标签的任务
  • job_type - (选择) run、check 或 scan
  • launch_type - (选择)manual、relaunch、callback、scheduled、dependency、workflow、sync 或 scm
  • limit - (字符串)如果指定,则 playbook 执行仅限于这组主机
  • modified - (日期时间)最后一次修改作业的时间戳
  • name - (字符串)此作业的名称
  • playbook - (字符串)执行的 playbook
  • scm_revision - (字符串)用于此作业的项目中的 scm 修订(如果可用)
  • skip_tags - (字符串)如果指定,playbook 执行将跳过此组标签
  • start_at_task - (字符串)如果指定,则 playbook 执行从与此名称匹配的任务开始
  • started - (日期时间)作业加入启动队列的日期和时间
  • status - (选择)new、pending、waiting、running、successful、failed、error、canceled
  • timeout - (整数)取消任务前运行的时间(以秒为单位)
  • type - (选择)此作业的数据类型
  • url - (字符串)此作业的 URL
  • use_fact_cache - (布尔值)如果已为作业启用,Tower 将充当 Ansible 事实缓存插件;在 playbook 运行结束后将事实保留到数据库,并缓存事实以供 Ansible 使用
  • verbosity - (选择)0 到 5(与 Normal 到 WinRM Debug 级别相对应)
  • host_status_counts (分配给每个状态的唯一主机数量)

    • skipped (整数)
    • ok (整数)
    • changed (整数)
    • failures (整数)
    • dark (整数)
    • processed (整数)
    • rescued (整数)
    • ignored (整数)
    • failed (布尔值)
  • summary_fields:

    • 清单(inventory)

      • id - (整数)清单的数据库 ID
      • name - (字符串)清单的名称
      • description - (字符串)清单的可选描述
      • has_active_failures - (布尔值)(已弃用)指明此清单中是否有主机失败的标记
      • total_hosts - (已弃用)(整数)此清单中的主机总数。
      • hosts_with_active_failures - (已弃用)(整数)此清单中有活跃故障的主机数
      • total_groups - (已弃用)(整数)此清单中的组总数
      • groups_with_active_failures - (已弃用)(整数)此清单中有活跃故障的主机数
      • has_inventory_sources - (已弃用)(布尔值)指明此清单是否具有外部清单源的标记
      • total_inventory_sources - (整数)在此清单中配置的外部清单源总数
      • inventory_sources_with_failures - (整数)此清单中有故障的外部清单源数量
      • organization_id - (id) 包含此清单的机构
      • kind -(选择)(空字符串)(代表主机与清单有直接链接)或 'smart'
    • project

      • id - (整数)项目的数据库 ID
      • name - (字符串)项目的名称
      • description - (字符串)项目的可选描述
      • status - (选择)new、pending、waiting、running、successful、failed、error、canceled、never updated、ok 或 missing 之一
      • scm_type - 其中一个(空字符串)、git、hg、svn、insights
    • job_template

      • id - (整数)作业模板的数据库 ID
      • name - (字符串)作业模板的名称
      • description - (字符串)作业模板的可选描述信息
    • unified_job_template

      • id - (整数)统一的作业模板的数据库 ID
      • name - (字符串)统一的作业模板的名称
      • description - (字符串)统一的作业模板的可选描述
      • unified_job_type - (选择)统一的作业类型(job、workflow_job、project_update 等)
    • instance_group

      • id - (整数)实例组的数据库 ID
      • name - (字符串)实例组的名称
    • created_by

      • id -(整数)启动操作的用户的数据库 ID
      • username - (字符串)启动了操作的用户名
      • first_name - (字符串)名
      • last_name - (字符串)姓
    • labels

      • count - (整数)标签数
      • results - 代表标签的字典列表(例如 {“id”:5, "name": "database jobs"})

可以在自定义通知消息中使用分组大括号 {{ }} 来引用关于作业的信息。使用点表示法访问特定作业属性,如 {{ job.summary_fields.inventory.name }}。在大括号或周围使用的任何字符,或纯文本,均可添加以进行说明,如 '#' 用于作业 ID,单引号用于表示某些描述符。自定义消息可在整个消息中包含多个变量:

{{ job_friendly_name }} {{ job.id }} ran on {{ job.execution_node }} in {{ job.elapsed }} seconds.

除了作业属性外,其他一些变量还可添加到模板中:

approval_node_name - (字符串)批准节点名称

approval_status - (选择)批准、被拒绝和 timed_out 之一

url - (字符串)发出通知的作业 URL(这适用于启动、成功、失败和批准通知)

workflow_url - (字符串)指向相关批准节点的 URL。这可让通知接收者进入相关的工作流作业页面来查看具体情况(例如,此节点可在以下位置查看:{{ workflow_url }})。在与批准相关的通知中,url 和 workflow_url 都相同。

job_friendly_name - (字符串)作业的友好名称

job_metadata - (字符串)作业元数据以 JSON 字符串表示,例如:

{'url': 'https://towerhost/$/jobs/playbook/13',
 'traceback': '',
 'status': 'running',
 'started': '2019-08-07T21:46:38.362630+00:00',
 'project': 'Stub project',
 'playbook': 'ping.yml',
 'name': 'Stub Job Template',
 'limit': '',
 'inventory': 'Stub Inventory',
 'id': 42,
 'hosts': {},
 'friendly_name': 'Job',
 'finished': False,
 'credential': 'Stub credential',
 'created_by': 'admin'}

法律通告

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.