ansible - 升级 Ansible Tower - 小升级
问题描述
任何人都有将 Ansible Tower 3.4 升级到 3.6 的正确指令集?(Ansible 2.5,数据库 - postgres 9.6)
找到Ansible Doc,但没有详细说明。谢谢
解决方案
编辑:最初的问题与升级 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
.
推荐阅读
- c# - 容器化的 .net 核心应用程序无法连接到容器化的 mongo db
- java - Android SecretKey AES 和 JWK:如何转换
- arrays - useState 钩子在 setState 之后不断返回 initailState
- windows - “出了点问题”,Visual Studio 社区中的错误
- java - 使用 try-with-resources 或在“finally”子句中关闭此“语句”
- python - Windows 上的 IPython 无法导入 geopandas
- swift - 使用出队的 dequeueReusableCell - 出队后单元格的 textField
- javascript - 如何在Javascript中获取不包含在另一个数组中的数组项
- linux - 如何打印一些linux进程的命令行
- function - PyQt5 多个按钮和 1 个函数来更改按钮文本