Обновление операционной системы SberLinux FSTEC 9.2 на версию 9.3 FSTEC с обновлением версии СУБД Pangolin
В статье описан порядок обновления операционной системы SberLinux FSTEC 9.2 до версии 9.3 FSTEC на сервере с предустановленной СУБД Pangolin.
Предусловия
- Права
sudoна целевом сервере; - Доступ к интернету для скачивания rpm-пакетов или настроенный локальный репозиторий;
- Отсутствие активных подключений к БД во время обновления;
- Распакованный дистрибутив Pangolin 6.4.5 или 7.2.1 в каталоге
~/pangolin/.
Инструкция применима к конфигурациям standalone и cluster. Выполните каждый шаг на всех узлах. Обновляйте только те компоненты, которые присутствуют на исходном стенде. Если компонента нет — пропустите соответствующий шаг.
Перед началом убедитесь, что yum/dnf-репозитории настроены корректно.
Обновление СУБД осуществляется от пользователя с правами sudo, пользователя postgres и пользователя kmadmin_pg.
Перед началом процедуры обновления убедитесь, что на сервере установлена одна из следующих версий СУБД Pangolin:
- Pangolin 6.4.4;
- Pangolin 7.2.0.
Сохраните дистрибутив СУБД Pangolin для SberLinux FSTEC 9 на каждый узел в каталог ~/pangolin/.
Обновление операционной системы подразумевает полную недоступность кластера СУБД Pangolin.
Шаг 1. Подготовка виртуальной машины к процедуре обновления ОС
1.1 Остановка Pangolin Manager (опционально)
Для конфигурации с Pangolin Manager переведите компонент в режим паузы. Выполните на хосте master:
sudo -iu postgres
pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml pause
pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml list clustername
exit
1.2 Остановка компонентов СУБД Pangolin
В кластерной конфигурации выполните остановку сначала на узле replica, затем на узле master.
- Остановка компонентов без прав
root - Остановка компонентов с правами
root
Для конфигурации с Pangolin Manager выполните на узлах replica и master:
sudo systemctl stop pangolin-pooler
sudo systemctl stop pangolin-certs-rotate
sudo systemctl stop pangolin-auth-reencrypt@postgres
sudo systemctl stop pangolin-auth-reencrypt@kmadmin_pg
sudo systemctl stop pangolin-manager
sudo -iu postgres
Путь к данным СУБД зависит от версии Pangolin:
- Для Pangolin 6.x:
export PGDATA=/pgdata/{version_dir}/data, где{version_dir}—06; - Для Pangolin 7.x:
export PGDATA=/pgdata/{version_dir}/data, где{version_dir}—07.
export PGDATA=/pgdata/{version_dir}/data
pg_ctl stop -D $PGDATA
exit
Для конфигурации без Pangolin Manager выполните на узле master:
sudo systemctl stop pangolin-pooler
sudo systemctl stop pangolin-certs-rotate
sudo systemctl stop pangolin-auth-reencrypt@postgres
sudo systemctl stop pangolin-auth-reencrypt@kmadmin_pg
Если на узле присутствует файл postgresql.service, выполните:
sudo systemctl stop postgresql
Если файл postgresql.service отсутствует, выполните:
sudo -iu postgres
export PGDATA=/pgdata/{version_dir}/data
pg_ctl stop -D $PGDATA
exit
Для конфигурации с Pangolin Manager выполните на узлах replica и master:
sudo -iu postgres
export PGDATA=/pgdata/{version_dir}/data
systemctl --user stop pangolin-pooler
systemctl --user stop pangolin-certs-rotate
systemctl --user stop pangolin-auth-reencrypt
systemctl --user stop pangolin-manager
pg_ctl stop -D $PGDATA
exit
sudo -iu kmadmin_pg
systemctl --user stop pangolin-auth-reencrypt
exit
Для конфигурации без Pangolin Manager выполните на узле master:
sudo -iu postgres
export PGDATA=/pgdata/{version_dir}/data
systemctl --user stop pangolin-pooler
systemctl --user stop pangolin-certs-rotate
systemctl --user stop pangolin-auth-reencrypt
Если на узле присутствует файл postgresql.service, выполните:
systemctl --user stop postgresql
Если файл postgresql.service отсутствует, выполните:
pg_ctl stop -D $PGDATA
exit
sudo -iu kmadmin_pg
systemctl --user stop pangolin-auth-reencrypt
exit
1.3 Проверка остановки компонентов
Убедитесь, что все компоненты корректно остановлены:
sudo ps aux | grep -E "pangolin-pooler|pangolin-manager|postgresql|pangolin-certs-rotate|pangolin-auth-reencrypt@postgres|pangolin-auth-reencrypt@kmadmin_pg|etcd" | grep -v grep
Выполните принудительную остановку процессов, если команда вернула результат:
sudo kill -9 <pid>
sudo ps aux | grep -E "pangolin-pooler|pangolin-manager|postgresql|pangolin-certs-rotate|pangolin-auth-reencrypt@postgres|pangolin-auth-reencrypt@kmadmin_pg|etcd" | grep -v grep
1.4 Резервная копия файлов etcd (опционально)
Создайте резервную копию для конфигурации с etcd:
mkdir -p ~/pangolin_backups/{etcd_lib,etcd_etc,services_backup}
sudo cp -rf /usr/lib/systemd/system/etcd.service ~/pangolin_backups/services_backup/
sudo cp -rf /var/lib/etcd/ ~/pangolin_backups/etcd_lib
sudo cp -rf /etc/etcd/ ~/pangolin_backups/etcd_etc
1.5 Резервная копия файла pangolin-pooler.ini (опционально)
Создайте резервную копию, если файл pangolin-pooler.ini присутствует в конфигурации:
sudo cp -rf /etc/pangolin-pooler/pangolin-pooler.ini ~/pangolin_backups/
1.6 Резервная копия файла postgres.yml (опционально)
Создайте резервную копию для конфигурации с Pangolin Manager:
sudo cp -rf /etc/pangolin-manager/postgres.yml /etc/pangolin-manager/postgres.yml.backup
Шаг 2. Обновление ОС
2.1 Обновление версии SberLinux 9.2 FSTEC до SberLinux 9.3 FSTEC
Замените содержимое файла /etc/yum.repos.d/sbel_local.repo на следующие значения репозиториев:
[SBERLINUX-BASE]
name=SBERLINUX-BASE
baseurl=http://smirror.slo/sberlinux_fstec/beta/SBEL_fstec-9.3-20260729.2/sberlinux-9-for-x86_64-baseos-rpms/
gpgcheck=0
enabled=1
[SBERLINUX-BASEOS-EXTRA]
name=SBERLINUX-BASEOS-EXTRA
baseurl=http://smirror.slo/sberlinux_fstec/beta/SBEL_fstec-9.3-20260729.2/sberlinux-9-for-x86_64-baseos-extra-rpms/
gpgcheck=0
enabled=1
Проверьте, что служба fapolicyd остановлена. Если служба активна, остановите:
sudo systemctl stop fapolicyd
Выполните обновление:
sudo dnf update --allowerasing
Перезагрузите систему:
sudo systemctl reboot
2.2 Проверка версии ОС
Убедитесь, что версия ОС изменена корректно:
cat /etc/os-release
Ожидаемый результат
NAME="SberLinux"
VERSION="9.3 (Naroda-fst)"
ID="sberlinux"
ID_LIKE="rhel sberlinux fedora"
VERSION_ID="9.3"
PLATFORM_ID="platform:el9"
PRETTY_NAME="SberLinux 9.3 (Naroda-fst)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:sberlinux:sberlinux:9::baseos"
HOME_URL="https://sbertech.ru/"
DOCUMENTATION_URL="https://sbertech.ru/"
BUG_REPORT_URL="https://sbertech.ru/"
SBERLINUX_MANTISBT_PROJECT="SberLinux-9"
SBERLINUX_MANTISBT_PROJECT_VERSION="9.3"
REDHAT_SUPPORT_PRODUCT="SberLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.3"
Шаг 3. Восстановление работы СУБД Pangolin
3.1 Установка переменных для обновления
Задайте переменные среды в соответствии с целевой версией Pangolin:
- Для Pangolin 6.4.5
- Для Pangolin 7.2.1
export PANGOLIN_VER=6.4.5
export PANGOLIN_MANAGER_VER=2.4.1
export os="sberlinux9"
export PANGOLIN_VER=7.2.1
export PANGOLIN_MANAGER_VER=3.1.1
export PANGOLIN_POOLER_VER=1.6.3
export os="sberlinux9"
3.2 Установка venv-пакетов (опционально)
Установите venv-пакет для конфигурации с Pangolin Manager:
sudo dnf install -y --allowerasing ~/pangolin/pangolin-manager-venv/pangolin-manager-venv-$PANGOLIN_MANAGER_VER-$os.x86_64.rpm
Если используется Pangolin Backup Tools:
sudo dnf install -y --allowerasing ~/pangolin/pangolin-backup-tools-venv/pangolin-backup-tools-venv-$PANGOLIN_VER-$os.x86_64.rpm
3.3 Обновление СУБД Pangolin
В случае кластерной конфигурации выполните обновление пакетов сначала на узле replica, затем на узле master.
Установите rpm-пакеты компонентов Pangolin в соответствии с целевой версией СУБД:
- Для конфигурации с Pangolin 6.4.5
- Для конфигурации с Pangolin 7.2.1
Обновите базовый пакет СУБД:
sudo dnf install -y --allowerasing ~/pangolin/pangolin-dbms-6.4-$PANGOLIN_VER-$os.x86_64.rpm
Обновите клиентскую часть СУБД:
sudo dnf install -y ~/pangolin/pangolin-dbms-6.4-client-$PANGOLIN_VER-$os.x86_64.rpm
Обновите компонент libpq, если он был установлен:
sudo dnf install -y ~/pangolin/pangolin-dbms-6.4-libpq-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/pangolin-dbms-6.4-libpq-dev-$PANGOLIN_VER-$os.x86_64.rpm
Обновите пакет компонента Pangolin Backup Tools, если он используется:
sudo dnf install -y ~/pangolin/pangolin-backup-tools-$PANGOLIN_VER-$os.x86_64.rpm
Обновите пакет утилит, если они были установлены:
sudo dnf install -y ~/pangolin/utilities/pangolin-auth-reencrypt-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/utilities/pangolin-certs-rotate-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/utilities/pangolin-security-utilities-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/utilities/pangolin-auth-password-$PANGOLIN_VER-$os.x86_64.rpm
Обновите базовый пакет СУБД:
sudo dnf install -y --allowerasing ~/pangolin/pangolin-dbms-7-$PANGOLIN_VER-$os.x86_64.rpm
Обновите пакеты процедурных языков из untrusted-части, если они используются:
sudo dnf install -y ~/pangolin/pangolin-dbms-7-plperl-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/pangolin-dbms-7-pltcl-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/pangolin-dbms-7-plpython3-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/pangolin-dbms-7-bool-plperl-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/pangolin-dbms-7-hstore-plperl-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/pangolin-dbms-7-hstore-plpython3-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/pangolin-dbms-7-jsonb-plperl-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/pangolin-dbms-7-jsonb-plpython3-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/pangolin-dbms-7-ltree-plpython3-$PANGOLIN_VER-$os.x86_64.rpm
Обновите клиентскую часть СУБД:
sudo dnf install -y ~/pangolin/pangolin-dbms-7-client-$PANGOLIN_VER-$os.x86_64.rpm
Обновите компонент libpq, если он был установлен:
sudo dnf install -y ~/pangolin/pangolin-dbms-7-libpq-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/pangolin-dbms-7-libpq-dev-$PANGOLIN_VER-$os.x86_64.rpm
Обновите пакет компонента Pangolin Backup Tools, если он используется:
sudo dnf install -y ~/pangolin/pangolin-backup-tools-$PANGOLIN_VER-$os.x86_64.rpm
Обновите пакет утилит, если они были установлены:
sudo dnf install -y ~/pangolin/utilities/pangolin-auth-reencrypt-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/utilities/pangolin-certs-rotate-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/utilities/pangolin-security-utilities-$PANGOLIN_VER-$os.x86_64.rpm
sudo dnf install -y ~/pangolin/utilities/pangolin-auth-password-$PANGOLIN_VER-$os.x86_64.rpm
Установите пакет Pangolin Manager для конфигурации с Pangolin Manager:
sudo dnf install -y ~/pangolin/pangolin-manager-$PANGOLIN_MANAGER_VER-$os.x86_64.rpm
3.4 Восстановление сервисных файлов etcd (опционально)
Восстановите сервисные файлы из резервной копии, если в конфигурации используется etcd:
sudo cp -rf ~/pangolin_backups/etcd_lib/etcd /var/lib/
sudo cp -rf ~/pangolin_backups/etcd_etc/etcd/ /etc/
sudo cp -rf ~/pangolin_backups/services_backup/etcd.service /usr/lib/systemd/system/etcd.service
sudo chown -R postgres:postgres /var/lib/etcd /etc/etcd /usr/lib/systemd/system/etcd.service
sudo systemctl daemon-reload
3.5 Восстановление файла pangolin-pooler.ini (опционально)
Если файл pangolin-pooler.ini был ранее скопирован, восстановите его из резервной копии:
sudo cp -rf ~/pangolin_backups/pangolin-pooler.ini /etc/pangolin-pooler/
sudo chown postgres:postgres /etc/pangolin-pooler/pangolin-pooler.ini
3.6 Восстановление файла postgres.yml (опционально)
Для конфигурации с Pangolin Manager выполните удаление временного файла и восстановление резервной копии:
rm -rf /etc/pangolin-manager/postgres.yml
mv /etc/pangolin-manager/postgres.yml.backup /etc/pangolin-manager/postgres.yml
sudo chown postgres:postgres /etc/pangolin-manager/postgres.yml
3.7 Восстановление конфигурационных файлов компонентов
Если компоненты используются в СУБД, восстановите файлы, сохраненные пакетным менеджером с суффиксом .rpmsave.
Для компонента pangolin-backup-tools удалите временный файл и восстановите оригинальный из .rpmsave:
cd /etc/pangolin-backup-tools/
rm backup-tools-env
mv backup-tools-env.rpmsave backup-tools-env
Для компонента pangolin-manager удалите временный файл и восстановите оригинальный из .rpmsave:
cd /etc/pangolin-manager/
rm postgres.yml
mv postgres.yml.rpmsave postgres.yml
3.8 Обновление версий в приветствии dynmotd.sh
Замените отображаемые версии Pangolin и Pangolin Manager в файле приветствия dynmotd.sh:
- Для Pangolin 6.4.5
- Для Pangolin 7.2.1
sudo sed -i 's/Manager version : 2.4.0/Manager version : 2.4.1/' /usr/local/sbin/dynmotd.sh
sudo sed -i 's/Pangolin version : 06.004.04/Pangolin version : 06.004.05/' /usr/local/sbin/dynmotd.sh
sudo sed -i 's/Manager version : 3.1.0/Manager version : 3.1.1/' /usr/local/sbin/dynmotd.sh
sudo sed -i 's/Pangolin version : 07.002.00/Pangolin version : 07.002.01/' /usr/local/sbin/dynmotd.sh
Команды sed зависят от точного совпадения строк в файле dynmotd.sh. Перед выполнением проверьте актуальное содержимое файла.
Шаг 4. Запуск компонентов СУБД Pangolin
4.1 Запуск компонентов СУБД Pangolin
В кластерной конфигурации выполните запуск сначала на узле replica, затем на узле master.
- Запуск компонентов без прав
root - Запуск компонентов с правами
root
Для конфигурации с Pangolin Manager выполните на узлах replica и master:
sudo systemctl start pangolin-pooler
sudo systemctl start pangolin-certs-rotate
sudo systemctl start pangolin-auth-reencrypt@postgres
sudo systemctl start pangolin-auth-reencrypt@kmadmin_pg
sudo systemctl start pangolin-manager
Путь к данным СУБД зависит от версии Pangolin:
- Для Pangolin 6.4.5:
{version_dir}—06; - Для Pangolin 7.2.1:
{version_dir}—07.
sudo -iu postgres
export PGDATA=/pgdata/{version_dir}/data
pg_ctl start -D $PGDATA
exit
Для конфигурации без Pangolin Manager выполните на узле master:
sudo systemctl start pangolin-pooler
sudo systemctl start pangolin-certs-rotate
sudo systemctl start pangolin-auth-reencrypt@postgres
sudo systemctl start pangolin-auth-reencrypt@kmadmin_pg
Если на узле присутствует файл postgresql.service, выполните:
sudo systemctl start postgresql
Если файл postgresql.service отсутствует, выполните:
sudo -iu postgres
export PGDATA=/pgdata/{version_dir}/data
pg_ctl start -D $PGDATA
exit
Для конфигурации с Pangolin Manager выполните на узлах replica и master:
sudo -iu postgres
export PGDATA=/pgdata/{version_dir}/data
systemctl --user start pangolin-pooler
systemctl --user start pangolin-certs-rotate
systemctl --user start pangolin-auth-reencrypt
systemctl --user start pangolin-manager
pg_ctl start -D $PGDATA
exit
sudo -iu kmadmin_pg
systemctl --user start pangolin-auth-reencrypt
exit
Для конфигурации без Pangolin Manager выполните на узле master:
sudo -iu postgres
export PGDATA=/pgdata/{version_dir}/data
systemctl --user start pangolin-pooler
systemctl --user start pangolin-certs-rotate
systemctl --user start pangolin-auth-reencrypt
Если на узле присутствует файл postgresql.service, выполните:
systemctl --user start postgresql
Если файл postgresql.service отсутствует, выполните:
pg_ctl start -D $PGDATA
exit
sudo -iu kmadmin_pg
systemctl --user start pangolin-auth-reencrypt
exit
4.2 Проверка конфигурации Pangolin Manager (опционально)
Для конфигурации с Pangolin Manager выполните повторное чтение конфигурационного файла и перезагрузку кластера.
Выполните только на хосте master:
sudo -iu postgres
pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml resume
exit
Шаг 5. Проверка корректности запуска компонентов
5.1 Проверка версии СУБД
Подключитесь к базе данных от пользователя postgres и выполните запрос для проверки версии Pangolin:
sudo -iu postgres
psql -c "SELECT product_version();"
exit
Ожидаемый результат:
- Для Pangolin 6.4.5:
06.004.05; - Для Pangolin 7.2.1:
07.002.01.
5.2 Проверка версии при использовании Pangolin Manager
Подключитесь к серверу от пользователя postgres и выполните команду для проверки версии Pangolin Manager:
sudo -iu postgres
pangolin-manager-ctl version
exit
Ожидаемый результат:
- Для Pangolin 6.4.5:
2.4.1; - Для Pangolin 7.2.1:
3.1.1.
5.3 Проверка статуса при использовании кластера
Подключитесь к серверу от пользователя postgres и выполните команду для проверки статусов узлов кластера:
sudo -iu postgres
pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml list clustername
exit
Ожидаемый результат: статус master на узле master и sync_standby на узле replica
Заключение
После выполнения описанных шагов операционная система будет обновлена до SberLinux FSTEC 9.3. Все компоненты СУБД Pangolin будут перезапущены с актуальными бинарными файлами. Для верификации корректности работы используйте чек-лист проверки состояния.