Инструменты пользователя

Инструменты сайта


upgrade-security-server-new-722

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
upgrade-security-server-new-722 [2026/02/09 10:38]
infra
upgrade-security-server-new-722 [2026/02/09 11:12] (текущий)
infra
Строка 1: Строка 1:
 +<note warning>​Перед обновлением Ubuntu 20.04 на Ubuntu 22.04 настоятельно рекомендуется снять snapshot сервера и backup конфигурации X-Road!</​note>​
 +
 ====== Обновление Security Server Ubuntu 20.04 до 22.04 на месте ====== ​ ====== Обновление Security Server Ubuntu 20.04 до 22.04 на месте ====== ​
 +
 В этом документе описываются шаги, необходимые для обновления автономного хоста Security Server с версии Ubuntu 20.04 LTS до Ubuntu 22.04 LTS. Пожалуйста,​ внимательно прочитайте весь документ перед началом процесса обновления. Предполагается,​ что читатель знаком с дистрибутивом Ubuntu Linux и имеет опыт обновления версии Ubuntu. В этом документе описываются шаги, необходимые для обновления автономного хоста Security Server с версии Ubuntu 20.04 LTS до Ubuntu 22.04 LTS. Пожалуйста,​ внимательно прочитайте весь документ перед началом процесса обновления. Предполагается,​ что читатель знаком с дистрибутивом Ubuntu Linux и имеет опыт обновления версии Ubuntu.
  
 С обновлением до Ubuntu 22.04 LTS PostgreSQL обновляется с версии 12 до 14. С обновлением до Ubuntu 22.04 LTS PostgreSQL обновляется с версии 12 до 14.
  
-==== Подготовка====+==== Альтернативный метод обновления ​====
  
-  ​     Обновите все пакеты до последних версий:​ +<note tip>​Вместо обновления на месте, можно развернуть новую виртуальную машину с Ubuntu 22.04 и X-Road 7.2.2, затем восстановить конфигурацию из резервной копии. Этот метод безопаснее и быстрее,​ так как не затрагивает работающий сервер.</​note>​ 
-<​code>​  + 
-apt update && apt full-upgrade+==== Подготовка ==== 
 + 
 +  * Ознакомьтесь с примечаниями к выпуску Ubuntu и инструкциями по обновлению:​ 
 +    * 20.04 → 22.04 https://​wiki.ubuntu.com/​JammyJellyfish/​ReleaseNotes 
 + 
 +  ​* Обновите все пакеты до последних версий:​ 
 +<​code>​ 
 +sudo apt update && apt full-upgrade
 </​code>​ </​code>​
-  
-  *      Убедитесь,​ что версия программного обеспечения X-Road не ниже 7.2.2. 
-  
-  *      Рекомендуется:​ убедитесь,​ что у вас есть актуальная резервная копия (или моментальный снимок виртуальной машины) сервера и базы данных. 
-  ​ 
-  *      Используйте пользовательский интерфейс администратора,​ чтобы сделать резервную копию конфигурации сервера безопасности и загрузить ее в безопасное место. 
-  
-  *          Это позволяет восстановить конфигурацию сервера,​ если обновление по какой-либо причине не удалось. 
  
-  *      Остановите сервер ​безопасности и запретите его автоматический ​запуск при загрузке:​+  * Убедитесь, что версия программного обеспечения X-Road не ниже 7.2.2. 
 + 
 +  * Рекомендуется: убедитесь,​ что у вас есть актуальная ​резервная копия (или моментальный ​снимок виртуальной машины) сервера ​и базы данных. 
 + 
 +  * Используйте пользовательский интерфейс администратора, чтобы сделать резервную копию конфигурации Security Server ​и загрузить ее в безопасное место. 
 +    * Это позволяет восстановить ​конфигурацию сервера, если обновление по какой-либо причине не удалось. 
 + 
 +  * Резервная копия базы данных serverconf:
 <​code>​ <​code>​
-sudo systemctl stop "xroad-*" +sudo -iu postgres pg_dump ​-d serverconf ​-F c -f /var/lib/xroad/​backup/​serverconf_backup_$(date +%Y%m%d).sql
-$ sudo systemctl disable xroad-proxy xroad-signer xroad-confclient ​xroad-monitor xroad-opmonitor xroad-proxy-ui-api xroad-base +
-sudo systemctl list-unit-files | grep "​xroad"​+
 </​code>​ </​code>​
-  
-<note warning>​Этот пункт обязателен и не стоит его игнорировать. Перед обновлением ОБЯЗАТЕЛЬНО нужно отключить xroad и убрать их из автозапуска.</​note>​ 
  
-        ​     ​При необходимости сделайте резервную копию базы данных журнала сообщений. Без резервного копирования сбой в процессе обновления может привести к потере данных. +  ​Остановите Security Server ​и запретите его автоматический запуск при ​загрузке:
-  *          См. https://​www.postgresql.org/​docs/​12/​backup.html. +
-  *          Использование pg_dump является простым вариантом,​ но может быть проблематичным, ​если база ​данных очень велика:+
 <​code>​ <​code>​
-sudo -iu postgres pg_dump ​-d serveconf ​-F c -f <​dump_file> ​+sudo systemctl stop "xroad-*" 
 +sudo systemctl disable xroad-proxy xroad-signer xroad-confclient xroad-monitor xroad-opmonitor xroad-proxy-ui-api xroad-base 
 +sudo systemctl list-unit-files | grep "​xroad"​
 </​code>​ </​code>​
 +
 +<note warning>​Этот пункт обязателен и не стоит его игнорировать. Перед обновлением ОБЯЗАТЕЛЬНО нужно отключить xroad и убрать их из автозапуска.</​note>​
  
 ==== Обновление Ubuntu 20.04 до 22.04 ==== ==== Обновление Ubuntu 20.04 до 22.04 ====
-  ​* Установите update-manager-core,​ если он еще не установлен.+ 
 +  ​* Установите update-manager-core,​ если он еще не установлен:
 <​code>​ <​code>​
-dpkg -l | grep "​update-manager-core"​+dpkg -l | grep "​update-manager-core"​
 </​code>​ </​code>​
-  ​* Убедитесь,​ что для строки подсказки в файле /​etc/​update-manager/​release-upgrades установлено значение «lts».+ 
 +  ​* Убедитесь,​ что для строки подсказки в файле /​etc/​update-manager/​release-upgrades установлено значение «lts»:
 <​code>​ <​code>​
-sudo grep "​Prompt=lts"​ /​etc/​update-manager/​release-upgrades+sudo grep "​Prompt=lts"​ /​etc/​update-manager/​release-upgrades
 </​code>​ </​code>​
-  ​* Запустите средство обновления с помощью команды ​+ 
 +  ​* Запустите средство обновления с помощью команды:
 <​code>​ <​code>​
-sudo do-release-upgrade+sudo do-release-upgrade
 </​code>​ </​code>​
 +
   * Следуйте инструкциям на экране.   * Следуйте инструкциям на экране.
 +
   * Когда обновление будет завершено,​ перезагрузитесь при появлении запроса.   * Когда обновление будет завершено,​ перезагрузитесь при появлении запроса.
-  ​+
 ==== Обновление программного обеспечения X-Road ==== ==== Обновление программного обеспечения X-Road ====
-=== Обновите базу данных === + 
 +=== Обновите базу данных === 
   * Процесс обновления Ubuntu по умолчанию создает пустой экземпляр базы данных,​ который следует удалить перед обновлением старой базы данных до версии 14.   * Процесс обновления Ubuntu по умолчанию создает пустой экземпляр базы данных,​ который следует удалить перед обновлением старой базы данных до версии 14.
 +
   * Просмотрите экземпляры базы данных с помощью pg_lsclusters и удалите лишние.   * Просмотрите экземпляры базы данных с помощью pg_lsclusters и удалите лишние.
 +
   * //Не удаляйте версию 12 (основную),​ работающую через порт 5432//.   * //Не удаляйте версию 12 (основную),​ работающую через порт 5432//.
 +
 <​code>​ <​code>​
-sudo pg_dropcluster --stop <​version,​ e.g. 12> main+sudo pg_dropcluster --stop <​version,​ e.g. 14> main
 </​code>​ </​code>​
 +
 === Пример === === Пример ===
 +
 <​code>​ <​code>​
-sudo pg_lsclusters+sudo pg_lsclusters
 Ver Cluster Port Status Owner    Data directory ​              Log file Ver Cluster Port Status Owner    Data directory ​              Log file
-12  main    5432 online postgres /​var/​lib/​postgresql/​12/​main ​ /​var/​log/​postgresql/​postgresql-10-main.log +12  main    5432 online postgres /​var/​lib/​postgresql/​12/​main ​ /​var/​log/​postgresql/​postgresql-12-main.log 
-14  main    5433 online postgres /​var/​lib/​postgresql/​14/​main ​ /​var/​log/​postgresql/​postgresql-12-main.log +14  main    5433 online postgres /​var/​lib/​postgresql/​14/​main ​ /​var/​log/​postgresql/​postgresql-14-main.log 
-   + 
-sudo pg_dropcluster --stop ​12 main+sudo pg_dropcluster --stop ​14 main
 </​code>​ </​code>​
 +
   * Обновите старую базу данных до версии 14.   * Обновите старую базу данных до версии 14.
  
 <note important>​Вспомогательный скрипт Ubuntu pg_upgradecluster по умолчанию создает дамп старой базы данных,​ что может потребовать много времени и свободного места на диске, если база данных большая. Параметр --method=upgrade вместо этого использует pg_upgrade, а параметр --link позволяет избежать копирования файлов данных. <note important>​Вспомогательный скрипт Ubuntu pg_upgradecluster по умолчанию создает дамп старой базы данных,​ что может потребовать много времени и свободного места на диске, если база данных большая. Параметр --method=upgrade вместо этого использует pg_upgrade, а параметр --link позволяет избежать копирования файлов данных.
-(!)Использование --link требует,​ чтобы новая и старая базы данных находились в одной и той же файловой системе. См. https://​www.postgresql.org/​docs/​12/​pgupgrade.html для получения подробной информации и инструкций по восстановлению.</​note>​+(!) Использование --link требует,​ чтобы новая и старая базы данных находились в одной и той же файловой системе. См. https://​www.postgresql.org/​docs/​14/​pgupgrade.html для получения подробной информации и инструкций по восстановлению.</​note>​ 
 <​code>​ <​code>​
-sudo pg_upgradecluster --method=upgrade --link ​10 main+sudo pg_upgradecluster --method=upgrade --link ​12 main
 </​code>​ </​code>​
 +
 === Пример === === Пример ===
 +
 <​code>​ <​code>​
-sudo pg_upgradecluster --method=upgrade --link ​10 main +sudo pg_upgradecluster --method=upgrade --link ​12 main 
-  + 
-sudo pg_lsclusters+sudo pg_lsclusters
 Ver Cluster Port Status Owner    Data directory ​              Log file Ver Cluster Port Status Owner    Data directory ​              Log file
-10  ​main ​   5433 down   ​postgres /​var/​lib/​postgresql/​10/main  /​var/​log/​postgresql/​postgresql-10-main.log +12  ​main ​   5433 down   ​postgres /​var/​lib/​postgresql/​12/main  /​var/​log/​postgresql/​postgresql-12-main.log 
-12  ​main ​   5432 online postgres /​var/​lib/​postgresql/​12/main  /​var/​log/​postgresql/​postgresql-12-main.log+14  ​main ​   5432 online postgres /​var/​lib/​postgresql/​14/main  /​var/​log/​postgresql/​postgresql-14-main.log
 </​code>​ </​code>​
 +
 === Обновите репозиторий пакетов X-Road, чтобы он указывал на пакеты Ubuntu 22.04, версии 7.2.2 === === Обновите репозиторий пакетов X-Road, чтобы он указывал на пакеты Ubuntu 22.04, версии 7.2.2 ===
  
-Удалить репозитории ​https://​deb.tunduk.kg/​ubuntu20.04-7.2.2+Удалить ​старые ​репозитории:​
 <​code>​ <​code>​
-sudo rm -rf /​etc/​apt/​sources.list.d/​*+sudo rm -rf /​etc/​apt/​sources.list.d/​*
 </​code>​ </​code>​
  
-Импортировать GPG ключ репозитория+Импортировать GPG ключ репозитория:
 <​code>​ <​code>​
-wget -qO - https://​deb.tunduk.kg/​key.pub | sudo tee /​etc/​apt/​keyrings/​xroad.asc ​+wget -qO - https://​deb.tunduk.kg/​key.pub | sudo tee /​etc/​apt/​keyrings/​xroad.asc
 </​code>​ </​code>​
  
-Добавить репозиторий в список источников пакетов ОС+Добавить репозиторий в список источников пакетов ОС:
 <​code>​ <​code>​
-echo "deb [signed-by=/​etc/​apt/​keyrings/​xroad.asc] https://​deb.tunduk.kg/​ubuntu22.04-7.2.2 /" |  sudo tee -a /​etc/​apt/​sources.list.d/​xroad.list+echo "deb [signed-by=/​etc/​apt/​keyrings/​xroad.asc] https://​deb.tunduk.kg/​ubuntu22.04-7.2.2 /" | sudo tee -a /​etc/​apt/​sources.list.d/​xroad.list
 </​code>​ </​code>​
  
-Произвести ​обновление ​обновление системы+Произвести обновление системы:
 <​code>​ <​code>​
-sudo apt update && apt full-upgrade+sudo apt update && apt full-upgrade
 </​code>​ </​code>​
  
-Включить все службы X-Road в автозагрузку+Включить все службы X-Road в автозагрузку:
 <​code>​ <​code>​
-sudo systemctl enable xroad-proxy xroad-signer xroad-confclient xroad-monitor xroad-opmonitor xroad-proxy-ui-api+sudo systemctl enable xroad-proxy xroad-signer xroad-confclient xroad-monitor xroad-opmonitor xroad-proxy-ui-api
 </​code>​ </​code>​
  
-Проверить все ли службы включены+Проверить все ли службы включены:
 <​code>​ <​code>​
-sudo systemctl list-units "xroad-*"+sudo systemctl list-unit-files | grep "​xroad"​
 </​code>​ </​code>​
 +
 Стартовать службы X-Road: Стартовать службы X-Road:
 <​code>​ <​code>​
-sudo systemctl start "​xroad-*"​+sudo systemctl start "​xroad-*"​
 </​code>​ </​code>​
 +
 или или
 +
 <​code>​ <​code>​
-sudo systemctl start xroad-proxy+sudo systemctl start xroad-proxy
 </​code>​ </​code>​
 +
 Установка выполнена успешно,​ если запущены системные службы и пользовательский интерфейс отвечает. Чтобы убедиться,​ что сервисы X-Road находятся в запущенном состоянии,​ задайте команду:​ Установка выполнена успешно,​ если запущены системные службы и пользовательский интерфейс отвечает. Чтобы убедиться,​ что сервисы X-Road находятся в запущенном состоянии,​ задайте команду:​
 <​code>​ <​code>​
-sudo systemctl list-units "​xroad*"​+sudo systemctl list-units "​xroad*"​
 </​code>​ </​code>​
  
 === Удаление старой базы данных и устаревших пакетов === === Удаление старой базы данных и устаревших пакетов ===
  
-Убедившись,​ что обновление базы данных прошло успешно,​ удалите старую базу данных и удалите устаревшие пакеты PostgreSQL.+Убедившись,​ что обновление базы данных прошло успешно,​ удалите старую базу данных и удалите устаревшие пакеты PostgreSQL:
 <​code>​ <​code>​
-sudo pg_dropcluster 12 main +sudo pg_dropcluster 12 main 
-sudo apt purge postgresql-12 +sudo apt purge postgresql-12 
-sudo apt autoremove+sudo apt autoremove
 </​code>​ </​code>​
  
-=== Поиск неисправностей ===+==== Поиск неисправностей ===
   * Если восстановление после сбоя обновления невозможно и имеется резервная копия/​моментальный снимок,​ можно восстановить его и начать заново.   * Если восстановление после сбоя обновления невозможно и имеется резервная копия/​моментальный снимок,​ можно восстановить его и начать заново.
-  ​* Если ничего не помогло,​ выполните чистую установку Ubuntu ​20.04 и восстановите конфигурацию ​сервера безопасности ​из резервной копии.+ 
 +  ​* Если ничего не помогло,​ выполните чистую установку Ubuntu ​22.04 и восстановите конфигурацию ​Security Server ​из резервной копии. 
   * Если возникает проблема с locale, в данном случае нужно сделать export всех необходимых локалей. Пример проблемы:​   * Если возникает проблема с locale, в данном случае нужно сделать export всех необходимых локалей. Пример проблемы:​
  
 <​code>​ <​code>​
-pg_upgradecluster --method=upgrade --link ​10 main+pg_upgradecluster --method=upgrade --link ​12 main
 Stopping old cluster... Stopping old cluster...
 perl: warning: Setting locale failed. perl: warning: Setting locale failed.
Строка 190: Строка 221:
 export LC_TIME=en_US.UTF-8 export LC_TIME=en_US.UTF-8
 update-locale update-locale
 +</​code>​
 +
 +==== Проверка работы ====
 +
 +После обновления рекомендуется проверить:​
 +
 +  * Доступность веб-интерфейса Security Server
 +  * Работу всех сервисов X-Road
 +  * Размер и состояние баз данных
 +  * Логи на наличие ошибок
 +
 +Проверка размера баз данных:​
 +<​code>​
 +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'​);"​
 +</​code>​
 +
 +Проверка логов:
 +<​code>​
 +sudo journalctl -u xroad-proxy -n 100
 </​code>​ </​code>​
  
upgrade-security-server-new-722.1770633481.txt.gz · Последние изменения: 2026/02/09 10:38 — infra