文档

3. 通用安装说明

Ansible Tower 和 Automation Hub 已合并,提供了一个名为 Ansible Automation Platform 的统一平台体验。从 Ansible Tower 3.8 开始,以前称为 Tower 安装程序的程序现在可以安装整个 Automation Platform。有关更多详细信息,请参阅 安装 Ansible Automation Platform

  • Automation Platform **需要** Ansible 2.9。Ansible 2.9.x 将是 Tower 3.8 上安装的唯一受支持版本。

  • 从 Ansible Tower 3.8 开始,Automation Hub 将充当 Ansible Tower 的内容提供者,这需要 Ansible Tower 部署和 Automation Hub 部署同时运行。Tower 和 Automation Hub 可以运行在 RHEL 7 或 8 上,但只有 Tower(而不是 Automation Hub)在 OpenShift Container Platform (OCP) 上受支持。

  • 从 Ansible Tower 3.8 开始,您 **必须** 在安装和运行 Ansible Automation Platform 之前附加有效的订阅。**即使您已经拥有来自以前版本的有效许可证,在升级到 Tower 3.8 时,您仍然必须再次提供您的凭据或订阅清单。**有效订阅需要附加到 Automation Hub 节点。其他节点 **不需要** 附加有效的订阅/池。有关详细信息,请参阅 附加订阅

  • 对于在 Satellite 后面安装 Tower 的客户,请通过安装特定于您的卫星实例的 Katello RPM 来准备您的 Tower 节点。有关更多信息,请参阅 在 Tower 上安装 Satellite 实例

  • 为清单来源创建的新配置将包含默认的插件配置值。如果您希望 3.8 中新创建的清单来源与 3.7 来源的输出相匹配,则必须为该来源应用特定的一组配置值。为了确保向后兼容性,Tower 使用每个来源的“模板”强制清单插件的输出采用旧版格式。有关每个来源及其相应的模板,请参阅《Ansible Automation Platform 安装和参考指南》中的 支持的清单插件模板,以帮助您迁移到新的清单插件输出样式。

  • 如果您需要访问 HTTP 代理才能从您的操作系统供应商安装软件,请确保在运行 setup.sh 之前,相应地设置环境变量“HTTP_PROXY”。

  • Tower 安装程序在 /etc/tower/tower.cert/etc/tower/tower.key 中创建自签名的 SSL 证书和密钥文件,用于 HTTPS 通信。如果您希望,可以在安装后用您自己的自定义 SSL 证书替换它们,但文件名必须相同。有关更多信息,请参阅 使用自定义证书

  • 安装 Ansible Automation Platform 会自动安装运行 Tower 用户界面的 Node.js 的必要版本。

  • 如果使用 Ansible 版本 1.8 或更高版本,请确保在 Tower 机器上的 ansible.cfg 中未启用使用 Redis 的事实缓存。

  • 请注意,Tower 安装必须从能够从可信第三方位置(如 Ansible 的软件库和您的操作系统供应商的软件库)安装软件的互联网连接机器上运行。在某些情况下,还需要访问 Python Package Index (PyPI)。如果您需要能够在断开连接的环境中安装,并且捆绑的安装程序不是您的解决方案(请参阅 使用捆绑的 Ansible Automation Platform 安装程序),请联系 Red Hat 客户门户上的 Ansible https://access.redhat.com/

  • 如果在 OpenShift 上安装 Tower,请参阅 OpenShift 部署和配置

3.1. 与 Tower 一起传递的标志和额外的变量

您可以在 Ansible Tower 安装程序中使用的标志和/或额外的变量包括(但不限于)以下内容

Usage: setup.sh [Options] [-- Ansible Options]

Options:
  -i INVENTORY_FILE     Path to ansible inventory file (default: inventory)
  -e EXTRA_VARS         Set additional ansible variables as key=value or YAML/JSON
                        i.e. -e bundle_install=false will force an online install

  -b                    Perform a database backup in lieu of installing
  -r                    Perform a database restore in lieu of installing
  -k                    Generate and distribute a new SECRET_KEY

  -h                    Show this help message and exit

Ansible Options:
  Additional options to be passed to ansible-playbook can be added following the -- separator

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

下表显示了在安装 Tower 期间可以使用的一些额外的变量。

变量

描述

默认值

upgrade_ansible_with_tower

安装 Tower 时,确保 Ansible 也更新。

False

create_preload_data

安装 Tower 时,也创建演示组织、项目、凭据、作业模板等。

True

bundle_install_folder

从捆绑包安装时,将捆绑的库放在哪里。

/var/lib/tower-bundle

nginx_disable_https

通过 nginx 禁用 HTTPS 流量,这在将 HTTPS 卸载到负载均衡器时很有用。

False

nginx_disable_hsts

禁用 HSTS 网络安全策略机制。

False

nginx_http_port

配置 nginx 监听 HTTP 的端口。

80

nginx_https_port

配置 nginx 监听 HTTPS 的端口。

443

backup_dest

将 setup.sh -b 的备份放在哪里。

{{ playbook_dir }}

backup_dir

备份时使用的临时位置。

/var/backups/tower/

restore_backup_file

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

(无)

required_ram

安装 Tower 所需的最小 RAM(仅应在测试安装时更改)。

3750

min_open_fds

最小打开文件描述符(仅应在测试安装时更改)。

4096

ignore_preflight_errors

忽略预检检查,在安装到模板或其他非系统映像时很有用(覆盖 required_rammin_open_fds)。

False

3.1.1. 示例

以下是常见场景的示例 - 请务必提供适合您特定情况的值。

  • 要升级核心:

    ./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
    
  • 要通过将清单文件作为参数传递给安装脚本,来覆盖清单文件:

    setup.sh -i <inventory file>
    

3.1.2. 使用自定义证书

您可以在默认安装过程中自带证书,因此不需要依赖提供的自签名证书。Ansible Tower 安装程序提供三个变量,允许您配置 Tower 部署的 TLS 方面

web_server_ssl_cert

安装节点上自定义证书的路径,Tower 网络服务器将提供该证书。在安装时,它将被复制为 /etc/tower/tower.cert

web_server_ssl_key

安装节点上私钥的路径,证书已使用该私钥生成。在安装时,它将被复制为 /etc/tower/tower.key

custom_ca_cert

要作为系统捆绑包中的可信项添加的自定义证书颁发机构。它将被加载到 Tower CA 受信存储中。

3.2. 其他安装提示

您可能需要考虑如何在安装 Ansible Tower 时配置您的代理和 Websocket,以使 Websocket 配置与您的 nginx/负载均衡器配置保持一致。有关更多详细信息,请参阅本指南以下部分中的 代理支持

3.2.1. 平台特定的安装说明

3.2.1.1. 在启用了 FIPS 模式的系统上安装 Automation Platform

Ansible Automation Platform 可以在启用了 FIPS 模式的系统上运行,但需要注意一些限制

  • 仅支持 Enterprise Linux 7 及更高版本。为了使 Ansible Tower 在 FIPS 模式下正常工作,必须使用 RHEL 附带的标准 python。因此,使用任何非标准、非系统 python 运行 Tower 将不被支持。

  • 默认情况下,Tower 使用基于密码的身份验证配置 PostgreSQL,此过程依赖于在安装时运行 CREATE USER 时使用 md5。要在启用 FIPS 的系统上运行 Tower 安装程序,请在您的清单文件中指定 pg_password不要pg_password 中使用特殊字符,因为这可能会导致设置失败。

    pg_password='choose-a-password'
    

    有关更多详细信息,请参阅 设置清单文件

    如果您在安装程序的清单文件中提供了密码(pg_password),PostgreSQL 将在安装过程中对该密码进行 SCRAM-SHA-256 散列。

  • ssh-keygen 命令以某种格式(RFC4716)生成密钥,该格式在过程中的某个时刻(作为对输入密码短语执行的转换的一部分)使用 md5 散列算法。在强制执行 FIPS 的系统上,md5 处于完全禁用状态,因此这些类型的加密 SSH 密钥(由密码短语保护的 RFC4716 私钥)将无法使用。启用 FIPS 模式后,您导入到 Ansible Tower 的任何加密 SSH 密钥必须PKCS8 格式的密钥。可以通过运行以下 openssl 命令将现有的 AES128 密钥转换为 PKCS8

    $ openssl pkcs8 -topk8 -v2 aes128 -in <INPUT_KEY> -out <NEW_OUTPUT_KEY>
    

有关更多详细信息,请参阅:https://access.redhat.com/solutions/1519083

  • 使用使用 paramiko 库的 Ansible 功能将不符合 FIPS。这包括将 ansible_connection=paramiko 设置为传输方式,以及使用利用 ncclient NETCONF 库的网络模块。

  • TACACS+ 协议使用 md5 来混淆授权数据包的内容;TACACS+ 身份验证 不支持在启用 FIPS 模式的系统上使用。

  • RADIUS 协议使用 md5Access-Request 查询中加密密码;RADIUS 身份验证 不支持在启用 FIPS 模式的系统上使用。

3.2.1.2. Red Hat Enterprise Linux 和 CentOS 设置的注意事项

  • PackageKit 经常会干扰安装/更新机制。如果在运行设置过程之前安装了 PackageKit,请考虑将其禁用或删除。

  • 仅支持“定向” SELinux 策略。定向策略可以设置为禁用、允许或强制执行。

  • 执行捆绑安装时,请参阅 使用捆绑的 Ansible Automation Platform 安装程序 了解更多信息。

  • 安装 Ansible Tower 时,您只需要运行 setup.sh,Tower 所需的任何存储库都会自动安装。

  • 最新版本的 Ansible 将在设置过程中自动安装。无需进行其他安装或配置。

3.2.1.3. Ubuntu 设置的注意事项

Ansible Tower 不再支持 Ubuntu。有关 Ubuntu 的详细信息,请参阅 Ansible Automation Platform 安装和参考指南 的早期版本。

3.2.1.4. OpenShift 上的配置和安装

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

3.2.1.5. 在 Tower 上安装 Satellite 实例

Satellite 用户需要在安装 Tower 之前在 Tower 节点上安装您的 Satellite 实例的 Katello RPM。此 RPM 会自动配置 Subscription Manager 以使用 Satellite 作为其内容源,并且 hostname 值会在 /etc/rhsm/rhsm.conf 中更新。

注意

如果您在安装 Tower 之后安装 Katello RPM,Tower 将无法访问 rhsm.conf - 它依赖于此文件来从 Satellite 应用订阅。这是因为 Tower 安装程序在 rhsm.conf 文件上设置了 ACL 规则,因此,如果该文件不存在、后来被覆盖或用户没有访问该文件的权限,则无法应用订阅。

有关如何将主机注册到 Satellite 服务器的详细信息,请参阅 Satellite 文档的 注册 部分。