在 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.7 时会自动安装所需的 Node.js 版本来运行 Tower 用户界面。
安装 Ansible Tower v3.7.1 或更高版本将会安装一个比 RHEL 7.7 附带的版本更新的 rsyslog 版本。如需更多详情,请参阅 Ansible Tower Administration Guide 指南中的 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。
您可以在 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 时可使用的一些额外变量。
变量 |
描述 |
默认 |
|
安装 Tower 时确保 Ansible 也是最新的 |
|
|
安装 Tower 时还创建 Demo Org 、项目 、凭证 、作业模板等。 |
|
|
在进行捆绑安装时获得捆绑软件仓库的目录 |
|
|
禁用使用 nginx 的 HTTPS 数据,这在将 HTTPS 数据卸载到负载均衡器时非常有用。 |
|
|
nginx 为 HTTP 侦听的端口 |
|
|
nginx 为 HTTPS 侦听的端口 |
|
|
放置 setup.sh -b 备份的位置 |
|
|
备份时要使用的临时位置 |
|
|
指定要从中恢复的备用文件 |
(无) |
|
安装 Tower 所需的最小 RAM(应只在测试安装时修改) |
|
|
最小打开文件描述(应只在测试安装时修改) |
|
|
忽略 preflight 检查,在安装到模板或其他非系统镜像时很有用(会覆盖 |
|
以下是常见情况示例 - 请根据您的具体情况进行适当修改。
升级内核:
./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>
作为安装 Ansible Tower 的一部份,您可能需要考虑如何配置代理和 websocket 以使 websocket 配置与您的 nginx / 负载均衡器配置相一致的问题。如需更多详情,请参阅本指南的 ag_proxy_support 部分。
Tower 可以在启用了 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>
如需了解更多详细信息,请参阅: 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。
为了使 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。不需要进行额外的安装或配置。
Ansible Tower 不再支持 Ubuntu。如需更多与 Ubuntu 相关的信息,请参阅 Ansible Tower Installation and Reference Guide 以前的版本。
对于基于 OpenShift 的部署,请参考 OpenShift Deployment and Configuration。