В этом документе описываются шаги, необходимые для обновления автономного хоста 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 для получения инструкций по обновлению.
sudo apt update && apt full-upgrade
$ 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"
$ sudo -iu postgres pg_dump -d messagelog -F c -f <dump_file>
$ sudo -iu postgres pg_dump -d "op-monitor" -F c -f <dump_file>
$ dpkg -l | grep "update-manager-core"
$ sudo grep "Prompt=lts" /etc/update-manager/release-upgrades
$ sudo do-release-upgrade
$ sudo pg_dropcluster --stop <version, e.g. 12> main
$ sudo 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 $ sudo pg_dropcluster --stop 12 main
$ sudo 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
Удалить репозитории https://deb.ordo.gov.kg/ubuntu18.04-6.26.3
$ sudo rm -rf /etc/apt/sources.list.d/*
Добавить репозиторий в список источников пакетов ОС
$ echo "deb https://deb.ordo.gov.kg/ubuntu20.04-6.26.3 /" | sudo tee -a /etc/apt/sources.list.d/xroad.list
Произвести обновление обновление системы
$ sudo apt-get update && apt full-upgrade
Включить все службы X-Road в автозагрузку
$ sudo systemctl enable xroad-proxy xroad-signer xroad-confclient xroad-monitor xroad-opmonitor xroad-proxy-ui-api
Проверить все ли службы включены
$ sudo systemctl list-units "xroad-*"
Стартовать службы X-Road:
$ sudo systemctl start "xroad-*"
или
$ sudo systemctl start xroad-proxy
Установка выполнена успешно, если запущены системные службы и пользовательский интерфейс отвечает. Чтобы убедиться, что сервисы X-Road находятся в запущенном состоянии, задайте команду:
$ sudo systemctl list-units "xroad*"
Убедившись, что обновление базы данных прошло успешно, удалите старую базу данных и удалите устаревшие пакеты PostgreSQL.
$ sudo pg_dropcluster 10 main $ sudo apt purge postgresql-10 $ sudo apt autoremove
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
Автор Евгений Порядин, Тоомас Мёльдер, Ян Райк, Даниил Горбенко