Documentation

3. 常规安装注意事项

Ansible Tower 和 Automation Hub 已被整合为一个统一的平台,称为 Ansible Automation Platform。从 Ansible Tower 3.8 开始,以前的 Tower 安装程序可以作为 Automation Platform 整体安装。如需更多信息,请参阅 Installing 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 上运行,但 OpenShift Container Platform(OCP)上只支持 Tower(不支持 Automation Hub)

  • 从 Ansible Tower 3.8 开始,在安装和运行 Ansible Automation Platform 前,必须**附加了有效的订阅。**如果您已经拥有来自以前版本的有效许可证,在升级到 Tower 3.8 时,仍必须提供您的凭证或订阅清单。 有效的订阅只需要附加到 Automation Hub 节点。 其他节点不需要附加有效的订阅/池。 详情请查看 附加订阅

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

  • 为清单源新创建的配置会包含默认插件配置值。 如果您希望 3.8 中新创建的清单源与 3.7 源的输出匹配,必须为该源应用一组特定的配置值。为了实现向后兼容,Tower 对每个源都使用"templates"将清单插件的输出强制到旧格式。如需了解更多的相关信息,请参阅 Ansible Automation Platform Installation and Reference Guide 中的 支持的清单插件模板

  • 如果您需要通过操作系统厂商的 HTTP 代理来安装软件,请确保在运行 setup.sh 前正确地设置了 "HTTP_PROXY" 环境变量。

  • Tower 安装程序会为 HTTPS 通讯生成自签名 SSL 证书及密钥文件 /etc/tower/tower.cert/etc/tower/tower.key。如果需要,您可以在安装后使用您自己地 SSL 证书替换它们,但文件名不能变。请参阅 使用自定义证书

  • 在安装 Ansible Automation Platform 时会自动安装所需的 Node.js 版本来运行 Tower 用户界面。

  • 如果使用 Ansible 版本 1.8 或更高版本,请确保 Tower 机器的 ansible.cfg 上没有启用使用 Redis 的 fact 缓存。

  • 请注意,Tower 的安装需要在一个可以通过互联网从信任的第三方(如 Ansible 的软件仓库、您的 OS 厂商的软件仓库)安装软件的机器上进行。在一些情况下,还需要可以访问 Python Package Index (PyPI)。如果您需要可以在一个没有网络连接的环境中进行安装且无法使用捆绑的安装程序(请参阅 使用捆绑的 Ansible Automation Platform 安装程序 ),请通过红帽客户门户网站( https://access.redhat.com/)联系 Ansible。

  • 如果在 OpenShift 上安装 Tower,请参阅 OpenShift Deployment and Configuration

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 时还创建 Demo Org 、项目 、凭证 、作业模板等。

True

bundle_install_folder

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

/var/lib/tower-bundle

nginx_disable_https

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

False

nginx_disable_hsts

禁用 HSTS web-security policy 机制

False

nginx_http_port

nginx 为 HTTP 侦听的端口

80

nginx_https_port

nginx 为 HTTPS 侦听的端口

443

backup_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

忽略 preflight 检查,在安装到模板或其他非系统镜像时很有用(会覆盖 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 web 服务器所服务的自定义证书。它在安装时会复制为 /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。不支持在 Tower 中使用任何非标准、非系统的 python。

  • 默认情况下,Tower 使用基于密码的身份验证来配置 PostgreSQL,在安装过程中运行的 CREATE USER 需要使用 md5。要从启用了 FIPS 的系统中运行 Tower 安装程序,在清单(inventory)文件中指定 pg_password不要pg_password 中使用特殊的字符,因为它可能会导致设置失败:

    pg_password='choose-a-password'
    

    详情请查看 设置清单(Inventory)文件

    如果您在 inventory 文件中提供安装程序的密码(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>
    
  • Ansible 中需要使用 paramiko 库的功能与 FIPS 不兼容。这些功能包括设置 ansible_connection=paramiko 做为传输,使用需要利用 ncclient NETCONF 库的网络模块。

  • TACACS+ 协议使用 md5 来混淆授权数据包的内容。启用了 FIPS 模式的系统不支持 TACACS+ Authentication

  • RADIUS 协议使用 md5 来加密 Access-Request 查询中的密码;启用了 FIPS 模式的系统不支持 RADIUS Authentication

3.2.1.2. Red Hat Enterprise Linux 及 CentOS 设置的备注

  • PackageKit 可能会经常影响到安装/更新机制。如果安装了 PackageKit,则考虑在运行设置(setup)过程前禁用或删除它。

  • 只支持 "targeted" SELinux 策略。targeted 策略可以被设置为 disabled 、permissive 或 enforcing。

  • 当执行捆绑的安装时,请参考 使用捆绑的 Ansible Automation Platform 安装程序

  • 当安装 Ansible Tower 时,您只需要运行 setup.sh,Tower 所需的所有软件仓库都会被自动安装。

  • 在设置过程中会自动安装最新版本的 Ansible。不需要进行额外的安装或配置。

3.2.1.3. Ubuntu 设置备注

Ansible Tower 不再支持 Ubuntu。如需更多与 Ubuntu 相关的信息,请参阅 Ansible Automation Platform Installation and Reference Guide 以前的版本。

3.2.1.4. OpenShift 上的配置和安装

对于基于 OpenShift 的部署,请参考 OpenShift Deployment and Configuration

3.2.1.5. 在 Tower 上安装 Satellite 实例

在安装 Tower 之前,Satellite 用户需要在 Tower 节点上为您的 Satellite 实例安装 Katello RPM。此 RPM 会自动将订阅管理器配置为使用 Satellite 作为其内容源,hostname 值会在 ``/etc/rhsm/rhsm.conf``中被更新。

注解

如果您要在安装 Tower 安装 Katello RPM,Tower 将无法访问 rhsm.conf-- 它依赖于通过 Satellite 应用订阅。这是因为 Tower 安装程序在 rhsm.conf 文件中设置 ACL 规则,因此如果该文件不存在,则无法应用订阅,或者用户没有权限访问该文件。

有关如何在 Satellite 服务器中注册主机的详情,请参考 Satellite 文档的 Registration 部分。