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)

  • 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. A valid subscription needs to be attached to the Automation Hub node only. Other nodes do not need to have a valid subscription/pool attached. See 附加订阅 for detail.

  • For customers installing Tower behind Satellite, prepare your Tower nodes by installing the Katello RPM specific to your satellite instance. See Installing Satellite instances on Tower for more information.

  • 为清单源新创建的配置会包含默认插件配置值。 如果您希望 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 证书替换它们,但文件名不能变。

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

  • 安装 Automation Platform 或更高版本将会安装一个比 RHEL 附带的版本更新的 rsyslog 版本。如需更多详情,请参阅 Ansible Tower Administration Guide 指南中的 Tower 日志记录和聚合 部分。

  • 不建议您使用通过 Active Directory(AD)或 LDAP 进行身份验证的服务帐户(如 PostgreSQL、Redis 等)来安装 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.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. Installing Satellite instances on Tower

Satellite users will need to install the Katello RPM for your Satellite instance on the Tower node prior to installing Tower. This RPM automatically configures Subscription Manager to use Satellite as its content source, and the hostname value gets updated in /etc/rhsm/rhsm.conf.

注解

If you were to install the Katello RPM after installing Tower, Tower would not have access to the rhsm.conf-- which it relies on for applying a subscription from Satellite. This is because the Tower installer sets an ACL rule on the rhsm.conf file, therefore, a subscription is unable to be applied if that file does not exist, gets later overwritten, or the user does not have the right permissions to access the file.

For detail on how to register a host with a Satellite server, refer to the Registration section of the Satellite documentation.