Перед обновлением X-Road настоятельно рекомендуется снять snapshot сервера и backup конфигурации X-Road!
====== Обновление Security Server X-Road с версии 7.2.2 до версии 7.3.2 на Ubuntu 22.04 ======
В этом документе описываются шаги, необходимые для обновления программного обеспечения X-Road Security Server с версии 7.2.2 до версии 7.3.2 на Ubuntu 22.04 LTS. Пожалуйста, внимательно прочитайте весь документ перед началом процесса обновления. Предполагается, что читатель знаком с дистрибутивом Ubuntu Linux и имеет опыт администрирования серверов безопасности X-Road.
Данное обновление не затрагивает версию операционной системы и PostgreSQL. Обновляется только программное обеспечение X-Road.
==== Подготовка ====
* Убедитесь, что текущая версия X-Road — 7.2.2:
dpkg -l | grep xroad
Все пакеты должны показывать версию **7.2.2**.
* Убедитесь, что все пакеты системы обновлены:
sudo apt update && sudo apt full-upgrade
* ОПЦИОНАЛЬНО: убедитесь, что у вас есть актуальная резервная копия (или моментальный снимок виртуальной машины) сервера.
* Сделайте резервную копию конфигурации Security Server через пользовательский интерфейс:
* Откройте веб-интерфейс **https://SECURITYSERVER:4000/**
* Перейдите в **Settings → Back Up and Restore**
* Нажмите **Back Up Configuration** и скачайте файл бэкапа в безопасное место.
* Дополнительно сделайте резервную копию базы данных (ОПЦИОНАЛЬНО):
sudo -iu postgres pg_dump -d serverconf -F c -f /var/lib/xroad/backup/serverconf_backup_$(date +%Y%m%d).sql
* Сделайте резервную копию конфигурационных файлов X-Road:
sudo cp -r /etc/xroad /etc/xroad.backup.$(date +%Y%m%d)
Не пропускайте этап резервного копирования. В случае неудачного обновления бэкап позволит восстановить работоспособность сервера.
==== Обновление X-Road ====
=== Шаг 1. Остановить службы X-Road и убедиться что службы остановлены ===
sudo systemctl stop "xroad-*" && sudo systemctl list-units "xroad*"
UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
=== Шаг 2. Заменить репозиторий пакетов ===
Если GPG-ключ /etc/apt/keyrings/xroad.asc отсутствует, предварительно выполните:
sudo wget -qO - https://deb.tunduk.kg/key.pub | sudo tee /etc/apt/keyrings/xroad.asc
Остановить службы X-Road, заменить репозиторий на версию 7.3.2 и выполнить полное обновление пакетов:
sudo systemctl stop "xroad-*" && sudo rm /etc/apt/sources.list.d/xroad.list && echo "deb [signed-by=/etc/apt/keyrings/xroad.asc] https://deb.tunduk.kg/ubuntu22.04-7.3.2 /" | sudo tee /etc/apt/sources.list.d/xroad.list && sudo apt-get update && sudo apt-get -y full-upgrade
=== Шаг 3. Запустить службы X-Road ===
sudo systemctl start "xroad-*"
Или запустить через основной сервис:
sudo systemctl start xroad-proxy
==== Проверка после обновления ====
=== Проверка версии пакетов ===
dpkg -l | grep xroad
Все пакеты должны показывать версию **7.3.2**.
=== Проверка состояния служб ===
sudo systemctl list-units "xroad*"
Ожидаемый результат:
UNIT LOAD ACTIVE SUB DESCRIPTION
xroad-addon-messagelog.service loaded active running X-Road Messagelog Archiver
xroad-base.service loaded active exited X-Road initialization
xroad-confclient.service loaded active running X-Road confclient
xroad-monitor.service loaded active running X-Road Monitor
xroad-opmonitor.service loaded active running X-Road opmonitor daemon
xroad-proxy-ui-api.service loaded active running X-Road Proxy UI REST API
xroad-proxy.service loaded active running X-Road Proxy
xroad-signer.service loaded active running X-Road signer
=== Проверка веб-интерфейса ===
Откройте **https://SECURITYSERVER:4000/** в веб-браузере. Для входа используйте учётную запись, заданную при установке.
Для запуска веб-интерфейса требуется некоторое время. Вы можете увидеть ошибку «502 Bad Gateway» — подождите 1-2 минуты и обновите страницу.
=== Проверка OCSP статуса сертификатов ===
Перейдите в раздел **Keys and Certificates** и убедитесь, что OCSP статус сертификатов — «Good».
Если OCSP статус «Unknown» — перезапустите службу ''systemctl restart xroad-proxy'' или дождитесь автоматического обновления (по умолчанию раз в 48 минут). Также можно проверить статус в разделе **Diagnostics**.
=== Проверка логов ===
sudo journalctl -u xroad-proxy -n 100 --no-pager
sudo journalctl -u xroad-signer -n 50 --no-pager
Убедитесь, что в логах нет критических ошибок.
==== Пост-обновление: что нужно знать ====
=== Автоматические бэкапы ===
Начиная с версии 7.3.0, расписание автоматических бэкапов задаётся не через cron, а через параметр в файле ''/etc/xroad/conf.d/local.ini''.
Если вы ранее изменяли расписание бэкапов в файле ''/etc/cron.d/xroad-proxy'', перенесите настройку вручную:
sudo nano /etc/xroad/conf.d/local.ini
Добавьте или отредактируйте секцию:
[configuration-client]
proxy-configuration-backup-cron=0 15 3 * * ?
После изменения перезапустите конфигурационный клиент:
sudo systemctl restart xroad-confclient
=== Переименованные свойства конфигурации ===
Следующие свойства Security Server считаются устаревшими (deprecated), но продолжают работать:
^ Старое свойство ^ Новое свойство ^
| ''request.sizelimit.regular'' | ''proxy-ui-api.request-sizelimit-regular'' |
| ''request.sizelimit.binary.upload'' | ''proxy-ui-api.request-sizelimit-binary-upload'' |
| ''ratelimit.requests.per.second'' | ''proxy-ui-api.rate-limit-requests-per-second'' |
| ''ratelimit.requests.per.minute'' | ''proxy-ui-api.rate-limit-requests-per-minute'' |
Рекомендуется при возможности перейти на новые имена свойств.
=== Проверка Java версии ===
Убедитесь, что используется Java 11:
java -version
Ожидаемый результат должен содержать ''openjdk version "11.x.x"''.
Если в файле ''/etc/xroad/services/local.conf'' есть строка с ''JAVA_HOME'' — удалите её. Это актуально только для серверов, которые обновлялись с версий до 7.0.0.
==== Откат обновления ====
В случае проблем после обновления:
=== Вариант 1: Восстановление из snapshot ===
Если перед обновлением был сделан snapshot виртуальной машины — восстановите его.
=== Вариант 2: Откат пакетов на версию 7.2.2 ===
Удалить репозиторий 7.3.2:
sudo rm /etc/apt/sources.list.d/xroad.list
Добавить репозиторий 7.2.2:
echo "deb [signed-by=/etc/apt/keyrings/xroad.asc] https://deb.tunduk.kg/ubuntu22.04-7.2.2 /" | sudo tee /etc/apt/sources.list.d/xroad.list
Выполнить переустановку:
sudo apt-get update
sudo apt-get install --reinstall xroad-securityserver xroad-proxy xroad-signer xroad-confclient xroad-proxy-ui-api xroad-monitor xroad-opmonitor xroad-addon-messagelog xroad-addon-opmonitoring xroad-base
=== Вариант 3: Восстановление конфигурации из бэкапа ===
Если конфигурация повреждена, восстановите её из резервной копии:
sudo -u xroad /usr/share/xroad/scripts/restore_xroad_proxy_configuration.sh \
-s \
-f /var/lib/xroad/backup/.tar
==== Поиск неисправностей ====
=== Службы не стартуют после обновления ===
Проверьте логи конкретного сервиса:
sudo journalctl -u xroad-proxy -n 200 --no-pager
sudo journalctl -u xroad-signer -n 200 --no-pager
sudo journalctl -u xroad-proxy-ui-api -n 200 --no-pager
=== Ошибка «502 Bad Gateway» не пропадает ===
Убедитесь, что сервис ''xroad-proxy-ui-api'' запущен:
sudo systemctl status xroad-proxy-ui-api
Если сервис не запускается, проверьте лог:
sudo tail -100 /var/log/xroad/proxy_ui_api.log
=== Проблемы с базой данных ===
Проверьте доступность базы данных:
sudo -u postgres psql -c "SELECT pg_database.datname,
pg_size_pretty(pg_database_size(pg_database.datname)) AS size
FROM pg_database
WHERE datname IN ('serverconf', 'messagelog', 'op-monitor');"
При необходимости восстановите базу данных из резервной копии:
sudo -iu postgres pg_restore -d serverconf -c /var/lib/xroad/backup/serverconf_backup_YYYYMMDD.sql
=== Проблемы с токеном ===
Если после обновления токен не активен:
* Перейдите в **Keys and Certificates**
* Нажмите **Log In** на нужном токене и введите PIN-код
----
Автор Кирилл Захаров, Даниил Горбенко