Пришла задачка принять в эксплуатацию старый сервер с XWiki на борту. Обязательное условие — устранить все уязвимости безопасности, по сути, нужен Upgrade XWiki.
Текущая версия XWiki Debian 10.6.1. Обновлять будем до XWiki Debian 12.1.
XWiki досталась "странненькая", часть функций не работала, в том числе экспорт данных в XAR, что не позволило просто перенести данные в новую чистую XWiki. Поэтому, план обновления такой:
- Обновляем текущую XWiki до версии XWiki Debian 12.1.
- Устанавливаем отдельно чистую версию XWiki Debian 12.1.
- С помощью Экспорта/Импорта переносим данные из старой XWiki в новую.
В данной статье рассмотрим только первую часть плана. Про вторую и третью я уже писал.
Установка чистой XWiki здесь:
XWiki — установка на Ubuntu 18.04 LTS
Экспорт/Импорт XWiki здесь:
XWiki — экспорт и импорт
Ссылки
https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Upgrade
Upgrade XWiki
Делаю резервную копию сервера, нам понадобятся старые конфиги.
Обновляю репозиторий.
apt-get update
Останавливаю web-сервер:
service tomcat8 stop
После переноса данных на новую чистую XWiki старый сервер мне уже будет не нужен, поэтому, обновляю всё:
apt-get upgrade
В том числе обновляются все пакеты xwiki-tomcat8-pgsql:
В процессе обновления всплывает окно:
Предлагают выбрать, что сделать с файлом настроек xwiki.cfg:
- установить версию из пакета
- сохранить установленную локальную версию
- показать различия между версиями
- показать различия между версиями параллельно
- показать 3-х стороннее различие между доступными версиями
- 3-х стороннее слияние доступных версия (эксперимен. режим)
- запустить новую оболочку для прояснения ситуации
У меня есть резервная копия xwiki.cfg, поэтому я устанавливаю версию из пакета. Все нужные настройки я потом перенесу в конфигурационный файл из резервной копии.
Снова всплывает окно:
Предлагают выбрать, что сделать с файлом настроек hibernate.cfg.xml:
- установить версию из пакета
- сохранить установленную локальную версию
- показать различия между версиями
- показать различия между версиями параллельно
- показать 3-х стороннее различие между доступными версиями
- 3-х стороннее слияние доступных версия (эксперимен. режим)
- запустить новую оболочку для прояснения ситуации
В данном файле у меня указаны параметры подключения к базе данных Postgresql. Бэкап файла у меня есть, устанавливаю версию из пакета.
Перезагружаю сервер:
reboot
После перезагрузки сервера смотрим на XWiki в браузере:
Инициализация XWiki.
И посыпались ошибки. В консоли:
FATAL: no PostgreSQL user name specified in startup packet
Логично, файлы xwiki.cfg и hibernate.cfg.xml теперь дефолтные. Правим их, внося настройки подключения к базе данных и прочие. Перезагружаем web-сервер XWiki:
service tomcat8 restart
Открывается Мастер распространения или Distribution Wizard. Продолжить.
Мастер распространения обнаруживает, что текущая версия сборки XWiki Standard Flavor 10.6.1 не совместима с текущим дистрибутивом. Предлагают обновить до версии 12.1. Обновить.
Начинается проверка обновления.
Отображается список всех обновлений, которые будут установлены. Продолжить.
Начинается обновление, в процессе которого мы столкнёмся с самым сложным.
Мастер не может автоматически обновить все документы, неизбежно возникнут конфликты. Мы можем выбрать одну из версий, старую или новую. Можно объединить документы вместе. Это вам решать. Я разрешил порядка 300 таких конфликтов... Продолжить.
В итоге XWiki обновится. Теперь мне осталось экспортировать данные и перенести их в новую чистую XWiki.