Перед обновлением 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-код ---- Автор Кирилл Захаров, Даниил Горбенко