В этом документе описываются шаги, необходимые для обновления автономного хоста Security Server с версии Ubuntu 20.04 LTS до Ubuntu 22.04 LTS. Пожалуйста, внимательно прочитайте весь документ перед началом процесса обновления. Предполагается, что читатель знаком с дистрибутивом Ubuntu Linux и имеет опыт обновления версии Ubuntu.
С обновлением до Ubuntu 22.04 LTS PostgreSQL обновляется с версии 12 до 14.
sudo apt update && 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 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"
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. 14> main
sudo pg_lsclusters Ver Cluster Port Status Owner Data directory Log file 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-14-main.log sudo pg_dropcluster --stop 14 main
sudo pg_upgradecluster --method=upgrade --link 12 main
sudo pg_upgradecluster --method=upgrade --link 12 main sudo pg_lsclusters Ver Cluster Port Status Owner Data directory Log file 12 main 5433 down 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
Удалить старые репозитории:
sudo rm -rf /etc/apt/sources.list.d/*
Импортировать GPG ключ репозитория:
wget -qO - https://deb.tunduk.kg/key.pub | sudo tee /etc/apt/keyrings/xroad.asc
Добавить репозиторий в список источников пакетов ОС:
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
Произвести обновление системы:
sudo apt 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-unit-files | grep "xroad"
Стартовать службы X-Road:
sudo systemctl start "xroad-*"
или
sudo systemctl start xroad-proxy
Установка выполнена успешно, если запущены системные службы и пользовательский интерфейс отвечает. Чтобы убедиться, что сервисы X-Road находятся в запущенном состоянии, задайте команду:
sudo systemctl list-units "xroad*"
Убедившись, что обновление базы данных прошло успешно, удалите старую базу данных и удалите устаревшие пакеты PostgreSQL:
sudo pg_dropcluster 12 main sudo apt purge postgresql-12 sudo apt autoremove
pg_upgradecluster --method=upgrade --link 12 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
После обновления рекомендуется проверить:
Проверка размера баз данных:
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 journalctl -u xroad-proxy -n 100
Автор Даниил Горбенко