Обновление AppSec.Code с 16.7.5 до 26.1.1¶
Настоящая инструкция описывает запуск артефакта миграции для пути обновления 16.7.5 → 26.1.1. Она включает поэтапную смену образов ядра AppSec.Code и при необходимости отдельное обновление PostgreSQL.
Перед началом выполните полное резервное копирование (данные AppSec.Code, база данных, конфигурация и секреты). На время работы скриптов экземпляр будет недоступен.
Стадия 0. Состав артефакта и назначение скриптов¶
В архиве поставляются скрипты для развёртывания AppSec.Code с помощью Docker Compose.
| Скрипт | Назначение |
|---|---|
upgrade_migrate_16_7_5_to_26_1_1.sh |
Основной сценарий: последовательно подставляет в docker-compose.yml образы из утверждённой цепочки версий, на каждом шаге останавливает стек, поднимает контейнер, дожидается готовности AppSec.Code, завершения batched background migrations, выполняет gitlab:check и gitlab-ctl reconfigure. Перед переходом на ветку 17.x один раз вызывает скрипт обновления PostgreSQL. |
upgrade_postgres.sh |
Обновление внешнего контейнера PostgreSQL до версии, совместимой с новым ядром (метод дампа/восстановления, правка compose и конфигурации БД). Вызывается из основного скрипта на нужном этапе; при ручном запуске требует согласования с README в артефакте. |
Скрипты ожидают, что в текущей рабочей директории лежит файл docker-compose.yml с сервисом AppSec.Code (и при необходимости — с внешним PostgreSQL). При отсутствии файла основной скрипт завершится с ошибкой.
Стадия 1. Скачивание архива из артифкатория¶
Подставьте учётные данные пользователя, имеющего право на чтение репозитория code-raw-release.
cd /путь_к_каталогу_с_docker-compose.yml
curl -fL --user 'ВАШ_ЛОГИН:ВАШ_ПАРОЛЬ' -O \
'https://registry.appsec.global/repository/code-raw-release/migrations/migrations_upgrade_16.7.5-26.1.1.zip'
Рекомендуется не сохранять пароль в истории shell: используйте переменные окружения или запрос пароля интерактивно, если ваш процесс допускает это.
Стадия 2. Распаковка архива¶
Распакуйте содержимое в тот же каталог, где находится docker-compose.yml вашего экземпляра AppSec.Code:
Убедитесь, что рядом с docker-compose.yml появились скрипты из архива.
Стадия 3. Права на исполнение¶
Установите необходимые права на исполнение:
Стадия 4. Запуск в tmux и планирование окна обслуживания¶
Полный цикл может занять от четырёх часов и дольше (фоновые миграции БД, перезапуски, проверки). Запланируйте окно обслуживания и уведомите пользователей.
tmux new -s appseccode-upgrade-16
# внутри сессии:
cd /путь_к_каталогу_с_docker-compose.yml
./upgrade_migrate_16_7_5_to_26_1_1.sh
Полезные команды:
- Отключиться от tmux без остановки сценария:
Ctrl+b, затемd. - Подключиться снова:
tmux attach -t appseccode-upgrade-16.
Стадия 5. Ожидание успешного завершения¶
Дождитесь завершения скрипта с кодом 0 и отсутствия сообщений ERROR в выводе. После этого проверьте веб-интерфейс, вход, репозитории и CI по чек-листу вашей организации.
При сбое не удаляйте бэкапы и данные до разбора логов контейнера AppSec.Code и PostgreSQL; при необходимости обратитесь к подробному README внутри распакованного архива или к владельцам пакета миграций.
Дополнительно общие сведения об обновлении можно посмотреть в разделе Обновление.