Documentation

5. 要求

注解

Tower 是一个完整的应用程序,它的安装过程包括安装一些依赖软件,如 PostgreSQL、Django、NGINX 和其他一些软件。Tower 需要在一个独立的虚拟机或云实例上安装,而不能和其他应用程序位于同一个机器上(相关的监控和日志程序除外)。虽然 Tower 和 Ansible 都是使用 Python 开发的,但它们并不是只使用简单的 Python 库。因此,Tower 不能在一个 Python virtualenv 或其他相似子系统上安装。您需要按照本指南中的内容安装它。如需了解基于 OpenShift 部署的信息,请参阅 OpenShift Deployment and Configuration

Ansible Tower 有以下要求:

Starting with Ansible Tower 3.8, you must have valid subscriptions attached before installing and running the Ansible Automation Platform. Even if you already have valid licenses from previous versions, you must still provide your credentials or a subscriptions manifest again upon upgrading to Tower 3.8. See 附加订阅 for detail.

  • 支持的操作系统

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

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

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

注解

For Automation Hub, selinux-policy package version greater or equal to 3.13.1-268 is required. Also, RHUI subscriptions cannot be used to install Automation Hub.

注解

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

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

    • 其它兼容 HTML5 其它兼容 HTML5 的网络浏览器可能可以正常工作,但没有经过充分测试并不被支持。。

  • 2 CPUs minimum for Automation Platform installations. Refer to the capacity algorithm section of the Ansible Tower User Guide for determining the CPU capacity required for the number of forks in your particular configuration.

  • 最少 4 GB RAM 用于 Automation Platform 安装

    • 4 GB RAM(Vagrant trial 版本安装的最小和推荐值)

    • 4 GB RAM(外部独立 PostgreSQL 数据库最小值)

    • 对于特定 RAM 的要求,请参考 Ansible Tower User Guidecapacity algorithm 部分以确定您具体配置中 fork 数量所需的 RAM。

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

    • 20 GB 中的 10 GB 必须专用 /var/,Tower 在这个目录中存储其文件和并进行工作。

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

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

    • 存储卷的基础线 IOPS 评级应该比较高(1000 或更高)。

    • 所有 Tower 数据都存储在数据库中。随着所管理的主机数量、运行作业的数量、在 fact 缓存中的 face 数量以及每个独立作业中的任务数量的增加,数据库存储量也会随之增加。例如,一个每小时运行一次(一天 24 次),在 250 个主机上运行且有 20 个任务的 playbook,每周会在数据库中保存超过 800000 个事件。

    • 如果没有为数据库保留足够空间,旧的作业和 fact 将会被定期清除。请参阅 Ansible Tower Administration Guide 中的 Management Jobs 以获得更多信息

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

  • Ansible Tower 3.7 或更新的版本需要运行 PostgreSQL 10 。备份和恢复*只在**您当前的 Ansible Tower 所支持的 PostgreSQL 版本中可以正常工作。

  • Ansible 版本 2.9 需要 运行 Ansible Tower 版本 3.8 或更新版本

注解

您不能使用比上述版本旧的 PostgreSQL 和 Ansible 版本来运行 Ansible Tower 3.7 版本及之后的版本。安装脚本会在这些软件不存在时安装它们。

  • 对于 Automation Hub:从 Ansible Tower 3.8 开始,Automation Hub 将充当 Ansible Tower 的内容供应商,这需要 Ansible Tower 部署和 Automation Hub 部署一起运行。Tower 和 Automation Hub 可以在 RHEL 7 或 8 上运行,但 OpenShift Container Platform(OCP)上只支持 Tower(不支持 Automation Hub)

  • 对于 Amazon EC2

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

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

5.1. 关于 Automation Platform 要求的额外备注

虽然其他操作系统在技术上可能会正常工作,但目前只支持上述列表中的配置来进行 Automation Platform 安装。如果您确实需要在不支持的操作系统中运行 Tower,请通过红帽客户门户网站(https://access.redhat.com/)联络 Ansible 团队。Ansible 项目提供了管理其他操作系统(节点)的信息,并有更广的支持列表。

实际 RAM 的要求取决于 Tower 同时管理的主机数量(它由作业模板或系统文件 ansible.cfg 中的 forks 参数控制)。为了避免可能的资源冲突,Ansible 建议每 10 的 fork 需要 1 GB 内存再加上 2 GB 保留内存用于 Tower。请参阅 capacity algorithm。如果 forks 被设置为 400,建议使用 40 GB 内存。

对于安装 Ansible Tower 的主机,Tower 会检查 umask 是否被设置为 0022。如果没有,则设置过程会失败。请确定设置 umask=0022 以避免出现这个错误。

大量主机可以被处理,但如果 fork 数量小于主机的总数,则在主机间需要更多的 pass。在以下情况下,这些 RAM 的限制在以下情况下会被忽略:当使用滚动升级时;或使用 Tower 中内建的置备 callback 系统(这里每个系统请求配置都会进入一个队列,并尽快被处理)时;或 Tower 在生成或部署镜像(如 AMI)时。这些情况会出现在管理大型系统时。如有其他问题,请通过红帽客户门户网站( https://access.redhat.com/)联络 Ansible 团队。

由 Ansible Automation Platform 管理的系统的要求与 Ansible 相同: http://docs.ansible.com/intro_getting_started.html

5.1.1. 显著的 PostgreSQL 变化

Automation Platform 使用 PostgreSQL 10,它在 RHEL 7 上是一个 SCL 软件包,在 RHEL8 上是一个应用程序流。在升级到 PostgreSQL 10 时,请注意以下变化:

  • 现在,在将 PostgreSQL 用户密码保存到数据库前,会使用 SCRAM-SHA-256 安全散列算法对其进行处理。

  • 您将不再需要在安装时在 inventory 文件中提供 pg_hashed_password,因为 PostgreSQL 10 现在可以安全地保存用户的密码。如果用户为安装程序在 inventory 文件中提供了密码 (pg_password),做为安装过程的一部分,PostgreSQL 会对这个密码进行 SCRAM-SHA-256 散列处理。**不要**在 pg_password 中使用特殊字符,因为可能会导致设置失败。

  • 因为 Ansible Tower 和 Automation Hub 在 3.8 中使用 PostgreSQL 的 Software Collections 版本,所以 rh-postgresql10 scl 必须被启用才可以访问数据库。管理员可以使用 awx-manage dbshell 命令,它会自动启用 PostgreSQL SCL。

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

5.1.2. PostgreSQL 配置

另外,您可以将 PostgreSQL 数据库配置为不是由 Automation Platform 安装程序管理的独立节点。当 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 documentation tuning your PostgreSQL server

5.2. Ansible 软件要求

虽然 Automation Platform 依赖于 Ansible Playbook,在安装 Tower 前需要安装最新版本的 Ansible,但它不再需要手动安装 Ansible。

Upon new installations, Tower installs the latest release package of Ansible 2.9.

如果执行捆绑的 Automation Platform 安装,安装程序会尝试从捆绑包中安装 Ansible(及其依赖软件包)。详情请参阅 使用捆绑的 Ansible Automation Platform 安装程序

如果您选择自己手动安装 Ansible,Automation Platform 安装程序会检测到已安装了 Ansible,并将不会尝试重新安装它。请注意,您必须使用软件包管理程序(如 yum)来安装 Ansible,并且必须安装最新的稳定版本才可以使 Automation Platform 正常工作。Ansible Tower 3.8 及更新的版本最少需要 Ansible 2.9。