文档

5. 需求

注意

Tower 是一个完整的应用程序,安装过程会安装多个依赖项,如 PostgreSQL、Django、NGINX 等。

您需要在独立的 VM 或云实例上安装 Tower,并且不要在该机器上与其他应用程序共存(除了可能的监控或日志记录软件)。虽然 Tower 和 Ansible 是用 Python 编写的,但它们不仅仅是简单的 Python 库。因此,Tower 不能安装在 Python virtualenv 或任何类似的子系统中;您必须按照本指南中的安装说明进行安装。此外,**不要**更改 Python 3 的默认 alternative

对于基于 OpenShift 的部署,请参阅 OpenShift 部署和配置

Ansible Tower 有以下需求

从 Ansible Tower 3.8 开始,您**必须**在安装和运行 Ansible 自动化平台之前附加有效的订阅。**即使您已经拥有以前版本的有效许可证,您仍然需要在升级到 Tower 3.8 时再次提供您的凭据或订阅清单。**有关详细信息,请参阅 附加订阅

  • 支持的操作系统:

    • Red Hat Enterprise Linux 8.2 或更高版本 64 位 (x86)

    • Red Hat Enterprise Linux 7.7 或更高版本 64 位 (x86)

    • CentOS 7.7 或更高版本 64 位 (x86)

注意

对于自动化中心,需要 selinux-policy 包版本大于或等于 3.13.1-268.el7_9.2。如果您的设置启用了 rhel-7-server-rpms 存储库,则 _9.2 版本将与自动化中心一起自动拉取。此外,**不能**使用 RHUI 订阅来安装自动化中心。

注意

下一个主要版本的 Ansible Tower 将不支持 Red Hat Enterprise Linux 7 或 CentOS(任何版本)作为安装平台。

  • 当前支持的 Mozilla Firefox 或 Google Chrome 版本

    • 其他符合 HTML5 标准的网络浏览器可能可以使用,但未经全面测试或支持。

  • 至少 2 个 CPU 用于自动化平台安装。有关确定特定配置中叉数所需 CPU 容量的详细信息,请参阅Ansible Tower 用户指南中的 容量算法 部分。

  • 至少 4 GB RAM 用于自动化平台安装

    • 4 GB RAM(Vagrant 试用安装的最低和推荐内存)

    • 4 GB RAM(外部独立 PostgreSQL 数据库的最低内存)

    • 有关特定 RAM 需求的信息,请参阅Ansible Tower 用户指南中的 容量算法 部分,以确定基于特定配置中叉数所需的容量。

  • 20 GB 专用硬盘空间 用于 Tower 服务节点

    • 20 GB 需求中的 10 GB 必须专门用于 /var/,Tower 在其中存储其文件和工作目录

    • 存储卷的基准 IOPS 至少应为 750。

  • 20 GB 专用硬盘空间 用于包含数据库的节点(推荐 150 GB+

    • 存储卷的基准 IOPS 应很高(1000 或更高)。

    • 所有 Tower 数据都存储在数据库中。数据库存储量会随着管理的主机数量、运行的作业数量、存储在事实缓存中的事实数量以及每个作业中的任务数量而增加。例如,在 250 台主机上每小时(每天 24 次)运行一次的剧本,其中包含 20 个任务,将在每个星期将超过 800000 个事件存储在数据库中。

    • 如果数据库中没有预留足够的存储空间,则需要定期清除旧的作业运行和事实。有关更多信息,请参阅Ansible Tower 管理指南中的 管理作业

  • 需要 64 位支持(内核和运行时)

  • PostgreSQL 版本 10.x 是运行 Ansible Tower 3.7 和更高版本的必需版本。备份和还原适用于当前 Ansible Tower 版本支持的 PostgreSQL 版本。

  • Ansible 版本 2.9 是运行 Ansible Tower 版本 3.8 和更高版本的必需版本

注意

您不能使用上述版本之前版本的 PostgreSQL 和 Ansible 来运行 Ansible Tower 3.7 和更高版本。如果它们不存在,安装脚本会安装这两个组件。

  • 对于自动化中心:从 Ansible Tower 3.8 开始,自动化中心将作为 Ansible Tower 的内容提供者,这需要 Ansible Tower 部署和自动化中心部署同时运行。Tower 和自动化中心可以在 RHEL 7 或 8 上运行,但只有 Tower(而不是自动化中心)支持 OpenShift Container Platform (OCP)。

  • 对于 Amazon EC2:

    • 实例大小为 m4.large 或更大

    • 如果主机数量超过 100 台,则实例大小为 m4.xlarge 或更大

5.1. 关于自动化平台需求的补充说明

实际的 RAM 需求因 Tower 将同时管理的主机数量而异(这由作业模板中的 forks 参数或系统 ansible.cfg 文件控制)。为了避免可能的资源冲突,Ansible 建议每 10 个叉使用 1 GB 内存 + 2 GB 预留内存供 Tower 使用,有关更多详细信息,请参阅 容量算法。如果 forks 设置为 400,则建议使用 40 GB 内存。

对于我们安装 Ansible Tower 的主机,Tower 会检查 umask 是否设置为 0022。如果没有,则设置将失败。请确保将 umask=0022 设置为避免遇到此错误。

当然可以解决更多数量的主机,但如果叉数小于主机总数,则需要对主机进行更多遍扫描。当使用滚动更新或使用 Tower 中内置的配置回调系统时,可以避免这些 RAM 限制,其中每个请求配置的系统都会进入队列,并尽快处理;或者在 Tower 正在生成或部署图像(例如 AMI)的情况下。所有这些都是管理大型环境的有效方法。如有更多问题,请联系 Ansible,访问 Red Hat 客户门户网站 https://access.redhat.com/

由 Ansible 自动化平台管理的系统的需求与 Ansible 相同,请参阅:https://docs.ansible.org.cn/ansible/latest/installation_guide/intro_installation.html#prerequisites

5.1.1. 显著的 PostgreSQL 更改

自动化平台使用 PostgreSQL 10.x,它是 RHEL 7 上的 SCL 包,以及 RHEL8 上的应用程序流。升级到 PostgreSQL 10.x 时需要注意的一些更改是

  • PostgreSQL 用户密码现在将在存储在数据库中之前使用 SCRAM-SHA-256 安全散列算法进行散列。

  • 您不再需要在安装时在清单文件中提供 pg_hashed_password,因为 PostgreSQL 10.x 现在可以更安全地存储用户密码。如果用户在安装程序的清单文件中提供密码(pg_password),则 PostgreSQL 会在安装过程中将该密码 SCRAM-SHA-256 散列。**不要**在 pg_password 中使用特殊字符,因为这可能会导致设置失败。

  • 由于 Ansible Tower 和自动化中心在 3.8 中使用 PostgreSQL 的软件集合版本,因此必须启用 rh-postgresql10 scl 才能访问数据库。管理员可以使用 awx-manage dbshell 命令,该命令会自动启用 PostgreSQL SCL。

  • 如果您只需要确定您的 Tower 实例是否可以访问数据库,可以使用命令 awx-manage check_db

5.1.2. PostgreSQL 配置

您也可以选择将 PostgreSQL 数据库配置为独立的节点,这些节点不由自动化平台安装程序管理。当自动化平台安装程序管理数据库服务器时,它会使用通常推荐用于大多数工作负载的默认值配置服务器。但是,您可以为独立的数据库服务器节点调整这些 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 服务器的更多详细信息,请参阅。

5.2. Ansible 软件要求

虽然自动化平台依赖于 Ansible Playbook 并在安装 Tower 之前需要安装最新稳定版本的 Ansible,但不再需要手动安装 Ansible。

在全新安装时,Tower 会安装最新版本的 Ansible 2.9 包。

如果您执行捆绑的自动化平台安装,安装程序会尝试从捆绑包中为您安装 Ansible(及其依赖项)(有关更多信息,请参阅使用捆绑的 Ansible 自动化平台安装程序)。

如果您选择自行安装 Ansible,自动化平台安装程序会检测到已安装 Ansible,并且不会尝试重新安装它。请注意,您必须使用类似yum的包管理器安装 Ansible,并且必须安装最新稳定版本才能使自动化平台正常工作。Ansible Tower 版本 3.8 及更高版本需要 Ansible 版本 2.9。