首页 > 解决方案 > 升级 Ansible Tower - 小升级

问题描述

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

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

标签: ansibleansible-toweransible-awx

解决方案


编辑:最初的问题与升级 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.

推荐阅读