Nexus OSS обновление (с миграцией БД)

Средний рейтинг
Еще нет оценок
Мой рейтинг:

Всем привет.

Потребовалось обновить OSS Nexus 3 до последней, на момент написания заметки, версии — 3.76.0

Nexus — это система для организации репозиториев будь то для docker или чего-то другого.

Начиная с версии 3.71 отказались от OrientDB и надо выполнить миграцию на H2 или Potgresql. Так же больше не поддерживается Java 8 или 11 версии.

Начнем…

!!!НЕ забывайте про резервное копирование Nexus перед началом обновления и\или любые другими действиями, которые могут привести к повреждению\потере данных!!!

Подготовка.

На момент заметки у нас была установлена вот такая версия:

Для начала обновимся до последней версии, которая еще поддерживает  OrientDB — 3.70.3 (ссылка внизу на всякий случай).

Скачать архив:

Распаковать:

можно добавить ключ -v для вывода в консоль.

Теперь переместим распакованный каталог, где находится Nexus. У меня это /opt:

Тут же у меня символическая ссылка

Остановим службу:

Удалим ссылку:

и создадим новую:

проверим:

Теперь или скопируем файлы конфигурации из прошлой версии, либо отредактируем — кому как удобно. Файлы:

  • bin/nexus.rc
  • bin/nexus.vmoptions

Назначим права на каталоги:

Запустим сервис:

Проверим статус сервиса:

Проверим в браузере:

Как посмотреть что используется OrientDB?

Залогинимся под админской учеткой и перейдем:

Support —> System Information

И тут либо поискать, либо промотать и найти nexus.orient.enabled

 

Java

Т.к. новая версия хочет Java 17, то надо установить, если еще не установлена:

И проверить:

[свернуть]

Миграция БД OrientDB -> H2

Теперь надо сделать миграцию БД с Orinet в Postgresql или H2.

Т.к. для миграции на PostgreSQL надо иметь PRO версию, то буду пробовать на H2, хотя  с ней никогда не работал ранее.

Для начала сделаем резервную копию БД, т.к. это одно из условий миграции:

Perform a full backup using the backup task.

Copy the backup to a clean working location on a different filesystem so that any extraction doesn’t impact the existing production system.

Это делается в самом Nexus: Configuration (шестеренка) —> Tasks —> Create task

Жмём на Create task и выбираем — Admin — Export databases for backup

Тут указываем:

  • Task name: — название задачи. Произвольное, понятное для вас;
  • Backup location: — расположение где будет лежать резервная копия (я заранее подготовил каталог);
  • Task frequency: — когда выполнять. Я указал Manual.
  • Остальные параметры по своему усмотрению.

Жмём Create task.

Вернулись к списку заданий. Теперь можем перейти в новое задание и запустить его:

И увидим, что задача запущена:

И можно посмотреть, что создаются резервные копии:

А в списке задач будет наше задание в состоянии выполнения:

Ждем выполнения. Потом задание должно перейти в статус Waiting и результат Ok:

Скачаем утилиту миграции:

Проверим версию Java.

Должна быть 8 или 11 во время миграции БД. Потом можно будет изменить на 17-ю, т.к. новая версия Nexus не поддерживает 8-ю или 11-ю версию. Изменить можно так:

И выбрать 8-ю версию. Потом еще раз проверить командой:

Одно из условий миграции звучит так:

If migrating off of OrientDB, you will run the database migrator utility from this location.

Стало быть скопируем или переместим утилиту к БД:

Запустим миграцию:

До запуска надо оставить nexus, но если этого не сделать, то будет запрос на его установку:

И утилита написала вот такую ошибку:

migration error

No backup files (*.bak) 

[свернуть]

Перенесу ее в каталог с бэкапами и оттуда запущу.

Большой лог под спойлером:

лог миграции

[свернуть]

На выходе получилось вот такое:

 

Теперь надо сделать так:

Copy the resultant nexus.mv.db file to your $data-dir/db directory.

И поправим права:

Теперь такое:

Edit the $data-dir/etc/nexus.properties file and add the following line:

nexus.datastore.enabled=true

У меня это выгляди так:

А теперь вообще вот такое пишут:

Проверим статус и запустим, если не запущено:

 

Обновление Nexus до последней версии.

Скачать новый релиз, на момент написания — 3.76.0-03:

Процесс обновления описан выше.

После переключить Java на 17-ю версию.

Для удаленного доступа к БД H2 надо:

Остановить Nexus:

Добавить в файл — /opt/sonatype-work/nexus3/etc/nexus.properties следующие строки:

Но тем не менее, БД доступна только локально. Пока, как вариант, надо пробросить туннель и в таком случае можно будет зайти.

Вот ссылка.

 

 

 

Ссылки:

установка Nexus в Ubuntu 22.04 | сохраненная копия

Загрузка утилиты миграции

 

If you found an error, highlight it and press Shift + Enter or to inform us.

Фото аватара

Дмитрий

родился, учился, работаю-учусь

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии