1

任何人都有将 Ansible Tower 3.4 升级到 3.6 的正确指令集?(Ansible 2.5,数据库 - postgres 9.6)

找到Ansible Doc,但没有详细说明。谢谢

4

2 回答 2

3

编辑:最初的问题与升级 AWX 有关。它已经过编辑,现在与升级 Ansible Tower 有关。我下面的回答仅适用于升级 AWX。

如果您使用docker-compose 安装方法并指向postgres_data_dir主机上的持久目录,则升级 AWX 很简单。我在 2018 年部署了 AWX 2.0.0,并将其升级到每个后续版本(当前运行 9.1.0)都没有问题。下面是我的升级方法,它保留了所有数据,包括升级之间的秘密,并且不依赖于使用 tower cli / awx cli 工具。

AWX 路径假设:

现有安装:/opt/awx

新版本:/tmp/awx

AWX 库存文件假设:

use_docker_compose=true
postgres_data_dir=/opt/postgres
docker_compose_dir=/var/lib/awx

手动升级流程:

  • 在继续之前备份您的 AWX 主机!考虑备份您的 postgres 数据库。
  • 下载新版本的 AWX 并解压到 /tmp/awx
  • 确保主机上安装了补丁包。
  • 创建一个包含新库存文件和现有库存文件之间差异的补丁文件:

diff -u /tmp/awx/installer/inventory /opt/awx/installer/inventory > /tmp/awx_inv_patch

  • 用差异修补新的库存文件:

patch /tmp/awx/installer/inventory < /tmp/awx_inv_patch

  • 验证文件现在是否匹配:

diff -s /tmp/awx/installer/inventory /opt/awx/installer/inventory

  • 将新的发布目录复制到现有目录:

cp -Rp /tmp/awx/* /opt/awx/

  • 在之后编辑和/var/lib/awx/docker-compose.yml更改版本号以匹配您要升级的 AWX 的新版本。image: ansible/awx_web:image: ansible/awx_task:
  • 停止当前的 AWX 容器:

cd /var/lib/awx

docker-compose stop

  • 运行安装程序:

cd /opt/awx/inventory

ansible-playbook -i inventory install.yml

AWX 开始升级过程,该过程通常在几分钟内完成。我通常会监视升级进度,docker logs -f awx_web直到我看到RESULT 2 / OKREADY出现为止。

  • 如果一切都按预期工作,我会关闭容器,拉取然后使用 docker-compose 重新创建它们:

cd /var/lib/awx

docker-compose stop

docker-compose pull && docker-compose up --force-recreate -d

  • 如果一切仍按预期工作,我删除/tmp/awx/tmp/awx_inv_patch.
于 2020-01-08T04:37:11.853 回答
1

ansible/redhat 不支持 AWX 中的升级。只有商业塔许可证允许访问脚本和程序来执行此操作。

来自awx 项目常见问题解答

问:我可以从一个版本的 AWX 升级到另一个版本吗?

答:不支持 AWX 版本之间的直接就地升级。可以使用 tower-cli 工具在不同版本的 AWX 之间迁移数据。要在不同的 AWX 实例之间迁移,请按照https://github.com/ansible/awx/blob/devel/DATA_MIGRATION.md上的说明进行操作。

github AWX 项目上的参考链接将教您如何导出当前数据tower-cli并在您安装的新版本中重新导入。请注意,所有凭据都使用空白密码导出,因此您必须在导入后使用密码/密码更新它们。

于 2020-01-07T09:32:33.000 回答