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

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


обновление_сервера_безопасности_убунту2004

Это старая версия документа!


ВНИМАНИЕ! ЭТО ТЕСТОВАЯ СТРАНИЦА! НЕ ПОВТОРЯЙТЕ КОМАНДЫ!
Перед обновлением Ubuntu18.04 на Ubuntu20.04 настоятельно рекомендуется снять snapshot сервера, и backup версии 6.26.3!

Обновление Security Server Ubuntu 18.04 до 20.04 на месте

В этом документе описываются шаги, необходимые для обновления автономного хоста Security Server с версии Ubuntu 18.04 LTS до Ubuntu 20.04 LTS. Пожалуйста, внимательно прочитайте весь документ перед началом процесса обновления. Предполагается, что читатель знаком с дистрибутивом Ubuntu Linux и имеет опыт обновления версии Ubuntu.

С обновлением до Ubuntu 20.04 LTS PostgreSQL обновляется с версии 10 до 12.

Альтернативный метод: Обновление Security Server до Ubuntu 20.04 с использованием резервной копии конфигурации

Подготовка

При обновлении системы, в которой используется аппаратный модуль безопасности: убедитесь, что HSM совместим с Ubuntu 20.04, и ознакомьтесь с документацией по модулю HSM для получения инструкций по обновлению.

  • Ознакомьтесь с примечаниями к выпуску Ubuntu и инструкциями по обновлению:
  • Обновите все пакеты до последних версий:
 
apt update && apt full-upgrade
  • Убедитесь, что версия программного обеспечения X-Road не ниже 6.25.0.
  • Рекомендуется: убедитесь, что у вас есть актуальная резервная копия (или моментальный снимок виртуальной машины) сервера и базы данных.
  • Используйте пользовательский интерфейс администратора, чтобы сделать резервную копию конфигурации сервера безопасности и загрузить ее в безопасное место.
  • Это позволяет восстановить конфигурацию сервера, если обновление по какой-либо причине не удалось.
  • Остановите сервер безопасности и запретите его автоматический запуск при загрузке:
$systemctl stop "xroad-*"
$systemctl disable xroad-proxy xroad-signer xroad-confclient xroad-jetty xroad-monitor xroad-opmonitor 
$systemctl list-units "xroad-*"
Этот пункт обязателен и не стоит его игнорировать. Перед обновлением ОБЯЗАТЕЛЬНО нужно отключить xroad и убрать их из автозапуска.
  • При необходимости сделайте резервную копию базы данных журнала сообщений. Без резервного копирования сбой в процессе обновления может привести к потере данных.
  • Использование pg_dump является простым вариантом, но может быть проблематичным, если база данных очень велика:
$sudo -iu postgres pg_dump -d messagelog -F c -f <dump_file> 
  • Уменьшение размера дампа базы данных журнала сообщений: По умолчанию база данных журнала сообщений хранит записи сообщений за 30 дней, но можно (временно) изменить время хранения, чтобы уменьшить количество записей в базе данных, тем самым уменьшив размер дамп базы данных. Изменение параметра не имеет немедленного эффекта, поскольку по умолчанию очистка журнала сообщений выполняется два раза в день (в полдень и в полночь). Дополнительную информацию см. в Руководстве пользователя Security Server.
  • При необходимости сделайте резервную копию заархивированных файлов журнала сообщений.
  • Обратите внимание, что некоторые зарегистрированные сообщения могут быть еще не заархивированы и существовать только в базе данных.
  • При желании сделайте резервную копию базы данных оперативного мониторинга (если установлен xroad-opmonitoring). Без резервного копирования сбой в процессе обновления может привести к потере данных.
$sudo -iu postgres pg_dump -d "op-monitor" -F c -f <dump_file>

Обновление Ubuntu 18.04 до 20.04

  • Установите update-manager-core, если он еще не установлен.
$dpkg -l | grep "update-manager-core"
  • Убедитесь, что для строки подсказки в файле /etc/update-manager/release-upgrades установлено значение «lts».
$grep "Prompt=lts" /etc/update-manager/release-upgrades
  • Запустите средство обновления с помощью команды
$do-release-upgrade
  • Следуйте инструкциям на экране.
  • Когда обновление будет завершено, перезагрузитесь при появлении запроса.

Обновление программного обеспечения X-Road

Обновите базу данных

  • Процесс обновления Ubuntu по умолчанию создает пустой экземпляр базы данных, который следует удалить перед обновлением старой базы данных до версии 12.
  • Просмотрите экземпляры базы данных с помощью pg_lsclusters и удалите лишние.
  • Не удаляйте версию 10 (основную), работающую через порт 5432.
$pg_dropcluster --stop <version, e.g. 12> main

Пример

$pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
10  main    5432 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
12  main    5433 online postgres /var/lib/postgresql/12/main  /var/log/postgresql/postgresql-12-main.log
  
$pg_dropcluster --stop 12 main
  • Обновите старую базу данных до версии 12.
Вспомогательный скрипт Ubuntu pg_upgradecluster по умолчанию создает дамп старой базы данных, что может потребовать много времени и свободного места на диске, если база данных большая. Параметр –method=upgrade вместо этого использует pg_upgrade, а параметр –link позволяет избежать копирования файлов данных. (!)Использование –link требует, чтобы новая и старая базы данных находились в одной и той же файловой системе. См. https://www.postgresql.org/docs/12/pgupgrade.html для получения подробной информации и инструкций по восстановлению.
$pg_upgradecluster --method=upgrade --link 10 main

Пример

$ sudo pg_upgradecluster --method=upgrade --link 10 main
 
$ sudo pg_lsclusters
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    5432 online postgres /var/lib/postgresql/12/main  /var/log/postgresql/postgresql-12-main.log

Обновите репозиторий пакетов X-Road, чтобы он указывал на пакеты Ubuntu 20.04.

  • Обновите репозиторий apt:
$apt-add-repository -r "deb https://artifactory.niis.org/xroad-release-deb bionic-current main"
$apt-add-repository "deb https://artifactory.niis.org/xroad-release-deb focus-current main"

(или отредактируйте файл /etc/apt/sources.list напрямую)

Обновите пакеты

$apt update && apt full-upgrade
$systemctl enable "xroad-*"
$systemctl start "xroad-*"
или
$systemctl list-unit-files | grep "xroad"
$systemctl enable xroad-base.service xroad-confclient.service xroad-monitor.service xroad-opmonitor.service xroad-proxy-ui-api.service xroad-proxy.service xroad-signer.service

Убедитесь, что службы сервера безопасности работают и система отвечает

systemctl list-units "xroad-*" "postgresql@*"
 
UNIT                       LOAD   ACTIVE SUB     DESCRIPTION                                             
postgresql@12-main.service loaded active running PostgreSQL Cluster 12-main
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.service        loaded active running X-Road Proxy
xroad-proxy-ui-api.service loaded active running X-Road Proxy UI REST API
xroad-signer.service       loaded active running X-Road signer

* если установлены надстройки для мониторинга

Удаление старой базы данных и устаревших пакетов

Убедившись, что обновление базы данных прошло успешно, удалите старую базу данных и удалите устаревшие пакеты PostgreSQL.

$pg_dropcluster 10 main
$apt purge postgresql-10
$apt autoremove

Поиск неисправностей

  • Если восстановление после сбоя обновления невозможно и имеется резервная копия/моментальный снимок, можно восстановить его и начать заново.
  • Если ничего не помогло, выполните чистую установку Ubuntu 20.04 и восстановите конфигурацию сервера безопасности из резервной копии.
  • Если возникает проблема с locale, в данном случае нужно сделать export всех необходимых локалей. Пример проблемы:
pg_upgradecluster --method=upgrade --link 10 main
Stopping old cluster...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_ADDRESS = "ru_RU.UTF-8",
	LC_NAME = "ru_RU.UTF-8",
	LC_MONETARY = "ru_RU.UTF-8",
	LC_PAPER = "ru_RU.UTF-8",
	LC_IDENTIFICATION = "ru_RU.UTF-8",
	LC_TELEPHONE = "ru_RU.UTF-8",
	LC_MEASUREMENT = "ru_RU.UTF-8",
	LC_TIME = "ru_RU.UTF-8",
	LC_NUMERIC = "ru_RU.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
Error: The locale requested by the environment is invalid:
  LANG: en_US.UTF-8
  LC_ADDRESS: ru_RU.UTF-8
  LC_IDENTIFICATION: ru_RU.UTF-8
  LC_MEASUREMENT: ru_RU.UTF-8
  LC_MONETARY: ru_RU.UTF-8
  LC_NAME: ru_RU.UTF-8
  LC_NUMERIC: ru_RU.UTF-8
  LC_PAPER: ru_RU.UTF-8
  LC_TELEPHONE: ru_RU.UTF-8
  LC_TIME: ru_RU.UTF-8
Error: Could not create target cluster

Решение:

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_ADDRESS=en_US.UTF-8
export LC_IDENTIFICATION=en_US.UTF-8
export LC_MEASUREMENT=en_US.UTF-8
export LC_MONETARY=en_US.UTF-8
export LC_NAME=en_US.UTF-8
export LC_NUMERIC=en_US.UTF-8
export LC_PAPER=en_US.UTF-8
export LC_TELEPHONE=en_US.UTF-8
export LC_TIME=en_US.UTF-8
update-locale
Следующий шаг - Пошаговая инструкция по обновлению сервера безопасности Тундук с версии 6.26.3 до версии 7.2.1 на Ubuntu20.04

Автор Даниил Горбенко

обновление_сервера_безопасности_убунту2004.1681236389.txt.gz · Последние изменения: 2023/04/11 18:06 — infra