Обновление Ansible Башня - Незначительное улучшение - PullRequest
1 голос
/ 07 января 2020

Кто-нибудь получил надлежащий набор инструкций для обновления Ansible Tower 3.4 до 3.6? (Ansible 2,5, база данных - postgres 9,6)

Найдено Ansible Выполнено c, но не в деталях. Спасибо

Ответы [ 2 ]

2 голосов
/ 08 января 2020

РЕДАКТИРОВАТЬ: Первоначальный вопрос касался обновления 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.
1 голос
/ 07 января 2020

Обновления в AWX не поддерживаются ansible / redhat. Только коммерческая лицензия Tower позволяет получить доступ к сценариям и процедурам для этого.

Из FAQ по проекту awx

В: Могу ли я обновить одну версию AWX на другой?

A: Прямые обновления на месте между версиями AWX не поддерживаются. Можно переносить данные между различными версиями AWX с помощью инструмента tower-cli. Чтобы выполнить миграцию между различными экземплярами AWX, следуйте инструкциям на https://github.com/ansible/awx/blob/devel/DATA_MIGRATION.md.

Ссылочная ссылка в проекте github AWX научит вас экспортировать текущие данные с помощью tower-cli и повторно импортируйте его в новую версию, которую вы устанавливаете. Обратите внимание, что все учетные данные экспортируются с пустыми секретами, поэтому вам придется обновлять их паролями / секретами после импорта.

...