Red Hat Ansible Automation Platform 安装指南
本指南为 Red Hat Ansible Automation Platform 支持的安装场景提供了步骤和参考信息
摘要
前言
感谢您对 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 将安装 |
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 |
|
控制节点 | 必需 | 备注 |
RAM | 16 GB | |
CPU | 4 |
|
混合节点 | 必需 | 备注 |
RAM | 16 GB |
|
CPU | 4 |
|
hop 节点 | 必需 | 备注 |
RAM | 16 GB | |
CPU | 4 |
|
磁盘:服务节点 | 40 GB 专用硬盘空间 |
|
数据库节点 | 必需 | 备注 |
RAM | 16 GB | |
CPU | 4 | |
磁盘 | 20 GB 专用硬盘空间 |
|
浏览器 | 当前支持的 Mozilla FireFox 或 Google Chrome 版本 | |
数据库 | PostgreSQL 版本 12 |
其他资源
- 要授权使用自动化控制器,请参阅导入订阅。
表 1.2. Automation hub
必填 | 备注 | |
---|---|---|
RAM | 最小 8 GB |
|
CPU | 最少 2 个 |
|
磁盘:服务节点 | 60 GB 专用硬盘空间 |
|
数据库节点 | 必需 | 备注 |
RAM | 16 GB | |
CPU | 4 | |
磁盘 | 20 GB 专用硬盘空间 |
|
浏览器 | 当前支持的 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 安装程序。通过互联网访问进行安装将检索最新的软件仓库、软件包和依赖项。
- 进入 https://access.redhat.com/downloads/content/480
- 为 Ansible Automation Platform <latest-version> Setup 点 Download Now。
解压文件:
$ tar xvzf ansible-automation-platform-setup-<latest-version>.tar.gz
在没有互联网访问的情况下安装
如果您无法访问互联网,或者不想从在线存储库安装独立的组件和依赖项,请使用 Red Hat Ansible Automation PlatformBundle 安装程序。仍然需要访问 Red Hat Enterprise Linux 软件仓库。所有其他依赖项都包含在 tar 归档中。
- 进入 https://access.redhat.com/downloads/content/480
- 为 Ansible Automation Platform <latest-version> Setup Bundle 点 Download Now。
解压文件:
$ 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 订阅后,您便可访问继续安装所需的需要订阅服务的子资源。
流程
获取 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
附加订阅:
# 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. 先决条件
- 您已经从 Red Hat Ansible Automation Platform 产品软件中选择并获取了平台安装程序。
- 您需要在满足基本系统要求的机器上安装。
- 您已创建了 Red Hat Registry Service Account,按照创建 Registry 服务账户指南中的说明进行操作。
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
插件的更多信息,请参阅了解特权升级。
流程
进入安装程序
[Bundled installer]
$ cd ansible-automation-platform-setup-bundle-<latest-version>
[Online installer]
$ cd ansible-automation-platform-setup-<latest-version>
-
使用文本编辑器打开
清单
文件。 -
编辑
清单
文件参数,以指定您的安装场景。请按照以下示例操作。
2.1.3. Red Hat Ansible Automation Platform 单节点清单文件示例
本例描述了如何为自动化控制器的单一节点安装填充清单文件。
-
对于
pg_password
,不要使用特殊字符。可能会导致设置失败。 -
在
registry_username
和registry_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. 其他清单文件变量
变量 | Description | default |
---|---|---|
|
当设置为 |
|
示例
-
要启用 api 访问日志,将变量添加到清单中,标志作为
true
:
[all:vars:] admin_password = 'password' pg_host='' pg_port='' GALAXY_ENABLE_API_ACCESS_LOG=true
2.1.5. 设置脚本标志和额外变量
在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:
表 2.2. 标记
参数 | 描述 |
---|---|
| 显示帮助信息并退出 |
|
到 Ansible 清单文件的路径(默认: |
| 将额外的 Ansible 变量设置为 key=value 或 YAML/JSON |
| 在安装时执行数据库备份 |
| 在安装时执行数据库恢复 |
| 生成并发布一个 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. 额外变量
变量 | Description | default |
---|---|---|
| 安装自动化控制器时,请确保 Ansible 也为最新版本 |
|
| 安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。 |
|
| 在进行捆绑安装时获得捆绑软件仓库的目录 |
|
| 禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用 |
|
| 禁用 HSTS web-security policy 机制 |
|
| nginx 为 HTTP 侦听的端口 |
|
| nginx 为 HTTPS 侦听的端口 |
|
| 备份时要使用的临时位置 |
|
| 指定要从中恢复的备用文件 | None |
| 安装 Tower 所需的最小 RAM(应只在测试安装时修改) |
|
| 最小打开文件描述(应只在测试安装时修改) | None |
|
忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 |
|
例子
- 要升级内核:
./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 所需的参数更新清单
文件后,您可以运行设置脚本。
流程
运行
setup.sh
脚本$ ./setup.sh
安装将开始。
2.1.7. 验证自动化控制器安装
安装完成后,您可以通过使用插入到清单
文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。
流程
-
在
inventory
文件中找到为自动化控制器节点指定的 IP 地址。 -
使用您在
清单
文件中设置的 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 | |
通过客户脚本、管理作业等配置自动化控制器管理。 | |
使用代理服务器设置自动化控制器 | |
管理您与红帽共享的自动化控制器信息 | |
更详细地查看自动化控制器功能 |
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. 先决条件
- 您已经从 Red Hat Ansible Automation Platform 产品软件中选择并获取了平台安装程序。
- 您需要在满足基本系统要求的机器上安装。
- 您已创建了 Red Hat Registry Service Account,按照创建 Registry 服务账户指南中的说明进行操作。
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
插件的更多信息,请参阅了解特权升级。
流程
进入安装程序
[Bundled installer]
$ cd ansible-automation-platform-setup-bundle-<latest-version>
[Online installer]
$ cd ansible-automation-platform-setup-<latest-version>
-
使用文本编辑器打开
清单
文件。 -
编辑
清单
文件参数,以指定您的安装场景。请按照以下示例操作。
2.2.3. 带有外部管理数据库的独立自动化控制器的清单文件示例
本例描述了如何填充清单文件,以使用外部数据库部署自动化控制器的安装。
-
对于
pg_password
,不要使用特殊字符。可能会导致设置失败。 -
在
registry_username
和registry_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. 其他清单文件变量
变量 | Description | default |
---|---|---|
|
当设置为 |
|
示例
-
要启用 api 访问日志,将变量添加到清单中,标志作为
true
:
[all:vars:] admin_password = 'password' pg_host='' pg_port='' GALAXY_ENABLE_API_ACCESS_LOG=true
2.2.5. 设置脚本标志和额外变量
在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:
表 2.6. 标记
参数 | 描述 |
---|---|
| 显示帮助信息并退出 |
|
到 Ansible 清单文件的路径(默认: |
| 将额外的 Ansible 变量设置为 key=value 或 YAML/JSON |
| 在安装时执行数据库备份 |
| 在安装时执行数据库恢复 |
| 生成并发布一个 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. 额外变量
变量 | Description | default |
---|---|---|
| 安装自动化控制器时,请确保 Ansible 也为最新版本 |
|
| 安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。 |
|
| 在进行捆绑安装时获得捆绑软件仓库的目录 |
|
| 禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用 |
|
| 禁用 HSTS web-security policy 机制 |
|
| nginx 为 HTTP 侦听的端口 |
|
| nginx 为 HTTPS 侦听的端口 |
|
| 备份时要使用的临时位置 |
|
| 指定要从中恢复的备用文件 | None |
| 安装 Tower 所需的最小 RAM(应只在测试安装时修改) |
|
| 最小打开文件描述(应只在测试安装时修改) | None |
|
忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 |
|
例子
- 要升级内核:
./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 所需的参数更新清单
文件后,您可以运行设置脚本。
流程
运行
setup.sh
脚本$ ./setup.sh
安装将开始。
2.2.7. 验证自动化控制器安装
安装完成后,您可以通过使用插入到清单
文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。
流程
-
在
inventory
文件中找到为自动化控制器节点指定的 IP 地址。 -
使用您在
清单
文件中设置的 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 | |
通过客户脚本、管理作业等配置自动化控制器管理。 | |
使用代理服务器设置自动化控制器 | |
管理您与红帽共享的自动化控制器信息 | |
更详细地查看自动化控制器功能 |
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. 先决条件
- 您已经从 Red Hat Ansible Automation Platform 产品软件中选择并获取了平台安装程序。
- 您需要在满足基本系统要求的机器上安装。
- 您已创建了 Red Hat Registry Service Account,按照创建 Registry 服务账户指南中的说明进行操作。
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
插件的更多信息,请参阅了解特权升级。
流程
进入安装程序
[Bundled installer]
$ cd ansible-automation-platform-setup-bundle-<latest-version>
[Online installer]
$ cd ansible-automation-platform-setup-<latest-version>
-
使用文本编辑器打开
清单
文件。 -
编辑
清单
文件参数,以指定您的安装场景。请按照以下示例操作。
2.3.4. 独立自动化中心清单文件示例
本例描述了如何填充清单文件来部署自动化中心的独立实例。
-
对于 Red Hat Ansible Automation Platform 或自动化 hub:在
[automationhub]
组中添加一个自动化 hub 主机。您不能在同一节点上安装自动化控制器和自动化 hub。 -
为
[automationhub]
主机提供可访问 IP 地址或完全限定域名 (FDQN),以确保用户可以从不同节点从自动化中心同步和安装内容。不要使用 'localhost'。 -
在
registry_username
和registry_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. 其他清单文件变量
变量 | Description | default |
---|---|---|
|
当设置为 |
|
示例
-
要启用 api 访问日志,将变量添加到清单中,标志作为
true
:
[all:vars:] admin_password = 'password' pg_host='' pg_port='' GALAXY_ENABLE_API_ACCESS_LOG=true
2.3.6. 设置脚本标志和额外变量
在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:
表 2.10. 标记
参数 | 描述 |
---|---|
| 显示帮助信息并退出 |
|
到 Ansible 清单文件的路径(默认: |
| 将额外的 Ansible 变量设置为 key=value 或 YAML/JSON |
| 在安装时执行数据库备份 |
| 在安装时执行数据库恢复 |
| 生成并发布一个 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. 额外变量
变量 | Description | default |
---|---|---|
| 安装自动化控制器时,请确保 Ansible 也为最新版本 |
|
| 安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。 |
|
| 在进行捆绑安装时获得捆绑软件仓库的目录 |
|
| 禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用 |
|
| 禁用 HSTS web-security policy 机制 |
|
| nginx 为 HTTP 侦听的端口 |
|
| nginx 为 HTTPS 侦听的端口 |
|
| 备份时要使用的临时位置 |
|
| 指定要从中恢复的备用文件 | None |
| 安装 Tower 所需的最小 RAM(应只在测试安装时修改) |
|
| 最小打开文件描述(应只在测试安装时修改) | None |
|
忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 |
|
例子
- 要升级内核:
./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 所需的参数更新清单
文件后,您可以运行设置脚本。
流程
运行
setup.sh
脚本$ ./setup.sh
安装将开始。
2.3.8. 验证自动化中心安装
安装完成后,您可以通过使用插入到 inventory
文件中的 admin 凭据登录来验证自动化中心是否已成功安装。
流程
-
在
inventory
文件中找到为自动化 hub 节点指定的 IP 地址。 -
使用您在
清单
文件中设置的 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 中发布内部开发的集合 |
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. 先决条件
- 您已经从 Red Hat Ansible Automation Platform 产品软件中选择并获取了平台安装程序。
- 您需要在满足基本系统要求的机器上安装。
- 您已创建了 Red Hat Registry Service Account,按照创建 Registry 服务账户指南中的说明进行操作。
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
插件的更多信息,请参阅了解特权升级。
流程
进入安装程序
[Bundled installer]
$ cd ansible-automation-platform-setup-bundle-<latest-version>
[Online installer]
$ cd ansible-automation-platform-setup-<latest-version>
-
使用文本编辑器打开
清单
文件。 -
编辑
清单
文件参数,以指定您的安装场景。请按照以下示例操作。
2.4.4. 独立自动化中心清单文件示例
本例描述了如何填充清单文件来部署自动化中心的独立实例。
- 对于 Red Hat Ansible Automation Platform 或自动化 hub:在 '[automationhub] 组中添加一个自动化 hub 主机。您不能在同一节点上安装自动化控制器和自动化 hub。
-
为
[automationhub]
主机提供可访问 IP 地址或完全限定域名 (FDQN),以确保用户可以从不同节点从自动化中心同步和安装内容。不要使用 'localhost'。 -
在
registry_username
和registry_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. 其他清单文件变量
变量 | Description | default |
---|---|---|
|
当设置为 |
|
示例
-
要启用 api 访问日志,将变量添加到清单中,标志作为
true
:
[all:vars:] admin_password = 'password' pg_host='' pg_port='' GALAXY_ENABLE_API_ACCESS_LOG=true
2.4.6. 设置脚本标志和额外变量
在运行设置脚本以安装自动化控制器时,您还可以传递标志和额外变量:
表 2.14. 标记
参数 | 描述 |
---|---|
| 显示帮助信息并退出 |
|
到 Ansible 清单文件的路径(默认: |
| 将额外的 Ansible 变量设置为 key=value 或 YAML/JSON |
| 在安装时执行数据库备份 |
| 在安装时执行数据库恢复 |
| 生成并发布一个 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. 额外变量
变量 | Description | default |
---|---|---|
| 安装自动化控制器时,请确保 Ansible 也为最新版本 |
|
| 安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。 |
|
| 在进行捆绑安装时获得捆绑软件仓库的目录 |
|
| 禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用 |
|
| 禁用 HSTS web-security policy 机制 |
|
| nginx 为 HTTP 侦听的端口 |
|
| nginx 为 HTTPS 侦听的端口 |
|
| 备份时要使用的临时位置 |
|
| 指定要从中恢复的备用文件 | None |
| 安装 Tower 所需的最小 RAM(应只在测试安装时修改) |
|
| 最小打开文件描述(应只在测试安装时修改) | None |
|
忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 |
|
例子
- 要升级内核:
./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 所需的参数更新清单
文件后,您可以运行设置脚本。
流程
运行
setup.sh
脚本$ ./setup.sh
安装将开始。
2.4.8. 验证自动化控制器安装
安装完成后,您可以通过使用插入到清单
文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。
流程
-
在
inventory
文件中找到为自动化控制器节点指定的 IP 地址。 -
使用您在
清单
文件中设置的 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 中发布内部开发的集合 |
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. 先决条件
- 您已经从 Red Hat Ansible Automation Platform 产品软件中选择并获取了平台安装程序。
- 您需要在满足基本系统要求的机器上安装。
- 您已创建了 Red Hat Registry Service Account,按照创建 Registry 服务账户指南中的说明进行操作。
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
插件的更多信息,请参阅了解特权升级。
流程
进入安装程序
[Bundled installer]
$ cd ansible-automation-platform-setup-bundle-<latest-version>
[Online installer]
$ cd ansible-automation-platform-setup-<latest-version>
-
使用文本编辑器打开
清单
文件。 -
编辑
清单
文件参数,以指定您的安装场景。请按照以下示例操作。
3.1.4. 自动化控制器节点或非安装程序管理的数据库的清单文件示例
本例描述了如何填充清单文件以安装 Red Hat Ansible Automation Platform。此安装清单文件包含自动化控制器和自动化中心,以及自动化控制器节点或非安装程序管理的数据库上的数据库。
- 您不能在同一节点上安装自动化控制器和自动化 hub。
-
为
[automationhub]
主机提供一个可访问的 IP 地址,以确保用户可以从不同节点的 Private Automation Hub 同步内容。 -
在
registry_username
和registry_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. 标记
参数 | 描述 |
---|---|
| 显示帮助信息并退出 |
|
到 Ansible 清单文件的路径(默认: |
| 将额外的 Ansible 变量设置为 key=value 或 YAML/JSON |
| 在安装时执行数据库备份 |
| 在安装时执行数据库恢复 |
| 生成并发布一个 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. 额外变量
变量 | Description | default |
---|---|---|
| 安装自动化控制器时,请确保 Ansible 也为最新版本 |
|
| 安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。 |
|
| 在进行捆绑安装时获得捆绑软件仓库的目录 |
|
| 禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用 |
|
| 禁用 HSTS web-security policy 机制 |
|
| nginx 为 HTTP 侦听的端口 |
|
| nginx 为 HTTPS 侦听的端口 |
|
| 备份时要使用的临时位置 |
|
| 指定要从中恢复的备用文件 | None |
| 安装 Tower 所需的最小 RAM(应只在测试安装时修改) |
|
| 最小打开文件描述(应只在测试安装时修改) | None |
|
忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 |
|
例子
- 要升级内核:
./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 所需的参数更新清单
文件后,您可以运行设置脚本。
流程
运行
setup.sh
脚本$ ./setup.sh
安装将开始。
3.1.7. 验证自动化控制器安装
安装完成后,您可以通过使用插入到清单
文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。
流程
-
在
inventory
文件中找到为自动化控制器节点指定的 IP 地址。 -
使用您在
清单
文件中设置的 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 | |
通过客户脚本、管理作业等配置自动化控制器管理。 | |
使用代理服务器设置自动化控制器 | |
管理您与红帽共享的自动化控制器信息 | |
更详细地查看自动化控制器功能 |
3.1.8. 验证自动化中心安装
安装完成后,您可以通过使用插入到 inventory
文件中的 admin 凭据登录来验证自动化中心是否已成功安装。
流程
-
在
inventory
文件中找到为自动化 hub 节点指定的 IP 地址。 -
使用您在
清单
文件中设置的 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 中发布内部开发的集合 |
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. 先决条件
- 您已经从 Red Hat Ansible Automation Platform 产品软件中选择并获取了平台安装程序。
- 您需要在满足基本系统要求的机器上安装。
- 您已创建了 Red Hat Registry Service Account,按照创建 Registry 服务账户指南中的说明进行操作。
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
插件的更多信息,请参阅了解特权升级。
流程
进入安装程序
[Bundled installer]
$ cd ansible-automation-platform-setup-bundle-<latest-version>
[Online installer]
$ cd ansible-automation-platform-setup-<latest-version>
-
使用文本编辑器打开
清单
文件。 -
编辑
清单
文件参数,以指定您的安装场景。请按照以下示例操作。
3.2.4. 带有外部管理数据库的 Red Hat Ansible Automation Platform 清单文件示例
本例描述了如何填充清单文件以安装 Red Hat Ansible Automation Platform。此安装清单文件包含带有外部管理数据库的自动化控制器和自动化中心。
- 您不能在同一节点上安装自动化控制器和自动化 hub。
-
为
[automationhub]
主机提供一个可访问的 IP 地址,以确保用户可以从不同节点的 Private Automation Hub 同步内容。 -
在
registry_username
和registry_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. 标记
参数 | 描述 |
---|---|
| 显示帮助信息并退出 |
|
到 Ansible 清单文件的路径(默认: |
| 将额外的 Ansible 变量设置为 key=value 或 YAML/JSON |
| 在安装时执行数据库备份 |
| 在安装时执行数据库恢复 |
| 生成并发布一个 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. 额外变量
变量 | Description | default |
---|---|---|
| 安装自动化控制器时,请确保 Ansible 也为最新版本 |
|
| 安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。 |
|
| 在进行捆绑安装时获得捆绑软件仓库的目录 |
|
| 禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用 |
|
| 禁用 HSTS web-security policy 机制 |
|
| nginx 为 HTTP 侦听的端口 |
|
| nginx 为 HTTPS 侦听的端口 |
|
| 备份时要使用的临时位置 |
|
| 指定要从中恢复的备用文件 | None |
| 安装 Tower 所需的最小 RAM(应只在测试安装时修改) |
|
| 最小打开文件描述(应只在测试安装时修改) | None |
|
忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 |
|
例子
- 要升级内核:
./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 所需的参数更新清单
文件后,您可以运行设置脚本。
流程
运行
setup.sh
脚本$ ./setup.sh
安装将开始。
3.2.7. 验证自动化控制器安装
安装完成后,您可以通过使用插入到清单
文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。
流程
-
在
inventory
文件中找到为自动化控制器节点指定的 IP 地址。 -
使用您在
清单
文件中设置的 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 | |
通过客户脚本、管理作业等配置自动化控制器管理。 | |
使用代理服务器设置自动化控制器 | |
管理您与红帽共享的自动化控制器信息 | |
更详细地查看自动化控制器功能 |
3.2.8. 验证自动化中心安装
安装完成后,您可以通过使用插入到 inventory
文件中的 admin 凭据登录来验证自动化中心是否已成功安装。
流程
-
在
inventory
文件中找到为自动化 hub 节点指定的 IP 地址。 -
使用您在
清单
文件中设置的 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 中发布内部开发的集合 |
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. 先决条件
- 您已经从 Red Hat Ansible Automation Platform 产品软件中选择并获取了平台安装程序。
- 您需要在满足基本系统要求的机器上安装。
- 您已创建了 Red Hat Registry Service Account,按照创建 Registry 服务账户指南中的说明进行操作。
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
插件的更多信息,请参阅了解特权升级。
流程
进入安装程序
[Bundled installer]
$ cd ansible-automation-platform-setup-bundle-<latest-version>
[Online installer]
$ cd ansible-automation-platform-setup-<latest-version>
-
使用文本编辑器打开
清单
文件。 -
编辑
清单
文件参数,以指定您的安装场景。请按照以下示例操作。
4.1.4. Red Hat Ansible Automation Platform 多节点清单文件示例
本例描述了如何为自动化控制器的多节点集群安装填充清单文件。
- 您不能在同一节点上安装自动化控制器和自动化 hub。
-
为
[automationhub]
主机提供一个可访问的 IP 地址,以确保用户可以从不同节点的 Private Automation Hub 同步内容。 -
对于
pg_password
,不要使用特殊字符。可能会导致设置失败。 -
在
registry_username
和registry_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. 标记
参数 | 描述 |
---|---|
| 显示帮助信息并退出 |
|
到 Ansible 清单文件的路径(默认: |
| 将额外的 Ansible 变量设置为 key=value 或 YAML/JSON |
| 在安装时执行数据库备份 |
| 在安装时执行数据库恢复 |
| 生成并发布一个 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. 额外变量
变量 | Description | default |
---|---|---|
| 安装自动化控制器时,请确保 Ansible 也为最新版本 |
|
| 安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。 |
|
| 在进行捆绑安装时获得捆绑软件仓库的目录 |
|
| 禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用 |
|
| 禁用 HSTS web-security policy 机制 |
|
| nginx 为 HTTP 侦听的端口 |
|
| nginx 为 HTTPS 侦听的端口 |
|
| 备份时要使用的临时位置 |
|
| 指定要从中恢复的备用文件 | None |
| 安装 Tower 所需的最小 RAM(应只在测试安装时修改) |
|
| 最小打开文件描述(应只在测试安装时修改) | None |
|
忽略 preflight 检查,在安装到一个模板或其他非系统镜像时很有用(覆盖 |
|
例子
- 要升级内核:
./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 所需的参数更新清单
文件后,您可以运行设置脚本。
流程
运行
setup.sh
脚本$ ./setup.sh
安装将开始。
4.1.7. 验证自动化控制器安装
安装完成后,您可以通过使用插入到清单
文件中的 admin 凭据登录来验证自动化控制器是否已成功安装。
流程
-
在
inventory
文件中找到为自动化控制器节点指定的 IP 地址。 -
使用您在
清单
文件中设置的 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 | |
通过客户脚本、管理作业等配置自动化控制器管理。 | |
使用代理服务器设置自动化控制器 | |
管理您与红帽共享的自动化控制器信息 | |
更详细地查看自动化控制器功能 |
4.1.8. 验证自动化中心安装
安装完成后,您可以通过使用插入到 inventory
文件中的 admin 凭据登录来验证自动化中心是否已成功安装。
流程
-
在
inventory
文件中找到为自动化 hub 节点指定的 IP 地址。 -
使用您在
清单
文件中设置的 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 中发布内部开发的集合 |
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 字段:
流程
- 在自动化控制器中,进入到 Settings → Miscellaneous System。
在 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 字段中。
流程
- 在自动化控制器中,进入到 Settings → Miscellaneous System。
在 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 地址。
流程
- 在自动化控制器中,进入到 Settings → Miscellaneous System。
在 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. 控制自动化控制器的数据收集
您可以通过在设置菜单中的用户界面选项卡中设置参与级别来控制自动化控制器如何收集数据。
流程
- 登录到您的自动化控制器
- 进入 Settings → User Interface
从 User Tracking State 下拉列表中选择所需的数据收集级别:
- Off:阻止数据收集。
- Anonymous:启用数据收集功能,但不包括特定于您的用户数据.
- Detailed:启用数据收集,包括特定于您的用户数据。
- 点 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'}