Documentation

3. 常规安装注意事项

  • 在 RHEL 8 上运行 Ansible Tower 需要 Ansible 2.8 或更高版本。老版本的 Ansible 不能在 RHEL 8 中工作。

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

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

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

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

  • 请注意,Tower 的安装需要在一个可以通过互联网从信任的第三方(如 Ansible 的软件仓库、您的 OS 厂商的软件仓库)安装软件的机器上进行。在一些情况下,还需要可以访问 Python Package Index (PyPI)。如果您需要可以在一个没有网络连接的环境中进行安装,请参阅 使用捆绑 Tower 安装程序 并通过红帽客户门户网站(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_FILE})
        -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.
        -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_http_port

nginx 为 HTTP 侦听的端口

80

nginx_https_port

nginx 为 HTTPS 侦听的端口

443

rabbitmq_enable_manager

将插件安装到 nginx 中以启用 RabbitMQ 管理器,除非有需要,不应该启用它。如果启用,需要进行适当的安全处理。

False

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. 附加安装提示

3.2.1. 平台特有的安装注意事项

3.2.1.1. 在启用了 FIPS 模式的系统中安装 Tower

Tower 可以在启用了 FIPS 模式的系统中运行,但要记住有一些限制:

  • 只支持 Enterprise Linux 7+。当 Ansible Tower 在启用了 FIPS 模式的环境中工作时,必须使用 RHEL 附带的标准 python。不支持在 Tower 中使用任何非标准、非系统的 python。

  • 默认情况下,Tower 使用基于密码的身份验证来配置 PostgreSQL,在安装过程中运行的 CREATE USER 需要使用 md5。要从启用了 FIPS 的系统中运行 Tower 安装程序,在清单(inventory)文件中指定 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>
    

如需了解更多详细信息,请参阅: https://access.redhat.com/solutions/1519083

  • 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 设置备注

  • 为了使 Ansible Tower 可以在 RHEL 8 上运行,需要安装 Ansible 2.8 或更高的版本。Ansible 2.8 及更高版本是 RHEL 8 支持的版本。

  • 从 Ansible Tower 3.5 开始,Tower 使用 Python 3,它会在安装 Tower 时在 RHEL 8 中自动安装。

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

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

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

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

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

3.2.1.3. Ubuntu 设置备注

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

3.2.1.4. OpenShift 上的配置和安装

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