РЕДАКТИРОВАТЬ: Первоначальный вопрос касался обновления AWX. Он был отредактирован и теперь относится к обновлению Ansible Башни. Мой ответ ниже относится только к обновлению AWX.
Если вы использовали docker -компонентный метод установки и указали postgres_data_dir
на постоянный каталог на хосте, обновляя AWX это просто. Я развернул AWX 2.0.0 в 2018 году и обновил его до каждого последующего выпуска (в настоящее время работает 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
и измените номера версий после image: ansible/awx_web:
и image: ansible/awx_task:
, чтобы соответствовать новой версии AWX, которую вы обновляете до . - Остановить текущие контейнеры 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 -составить:
cd /var/lib/awx
docker-compose stop
docker-compose pull && docker-compose up --force-recreate -d
- Если все все еще работая как положено, я удаляю
/tmp/awx
и /tmp/awx_inv_patch
.