Перейти к основному содержимому

Обновление операционной системы 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.

Для конфигурации с 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

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:

export PANGOLIN_VER=6.4.5
export PANGOLIN_MANAGER_VER=2.4.1
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 в соответствии с целевой версией СУБД:

Обновите базовый пакет СУБД:

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

Установите пакет 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:

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
примечание

Команды sed зависят от точного совпадения строк в файле dynmotd.sh. Перед выполнением проверьте актуальное содержимое файла.

Шаг 4. Запуск компонентов СУБД Pangolin​

4.1 Запуск компонентов СУБД Pangolin​

В кластерной конфигурации выполните запуск сначала на узле replica, затем на узле master.

Для конфигурации с 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

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 будут перезапущены с актуальными бинарными файлами. Для верификации корректности работы используйте чек-лист проверки состояния.