В этом документе описываются шаги, необходимые для обновления программного обеспечения X-Road Security Server с версии 7.2.2 до версии 7.3.2 на Ubuntu 22.04 LTS. Пожалуйста, внимательно прочитайте весь документ перед началом процесса обновления. Предполагается, что читатель знаком с дистрибутивом Ubuntu Linux и имеет опыт администрирования серверов безопасности X-Road.
dpkg -l | grep xroad
Все пакеты должны показывать версию 7.2.2.
sudo apt update && sudo apt full-upgrade
sudo -iu postgres pg_dump -d serverconf -F c -f /var/lib/xroad/backup/serverconf_backup_$(date +%Y%m%d).sql
sudo cp -r /etc/xroad /etc/xroad.backup.$(date +%Y%m%d)
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'.
Если 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
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/ в веб-браузере. Для входа используйте учётную запись, заданную при установке.
Перейдите в раздел Keys and Certificates и убедитесь, что OCSP статус сертификатов — «Good».
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 11:
java -version
Ожидаемый результат должен содержать openjdk version «11.x.x».
/etc/xroad/services/local.conf есть строка с JAVA_HOME — удалите её. Это актуально только для серверов, которые обновлялись с версий до 7.0.0.
В случае проблем после обновления:
Если перед обновлением был сделан snapshot виртуальной машины — восстановите его.
Удалить репозиторий 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
Если конфигурация повреждена, восстановите её из резервной копии:
sudo -u xroad /usr/share/xroad/scripts/restore_xroad_proxy_configuration.sh \ -s <security server ID> \ -f /var/lib/xroad/backup/<backup_file>.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
Убедитесь, что сервис 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
Если после обновления токен не активен:
—-
Автор Кирилл Захаров, Даниил Горбенко