Обновление при помощи инструмента Pangolin Installer
При переходе к данному разделу предполагается, что изучена информация общего блокаавтоматизированного обновления.
В составе дистрибутива в папке installer поставляется инструмент Pangolin Installer.
Запуск обновления с помощью инструмента Pangolin Installer предназначен скорее для пользователей, которые хотят максимально упростить все процессы по использованию сценариев и не погружаться в тонкости их запуска. Инструмент предоставляет интуитивный запуск сценария, не требующего от пользователя никаких дополнительных шагов, кроме установки rpm/deb-пакета инструмента с помощью пакетного менеджера.
Общая информация
Сценарий обновления состоит из обязательного запуска сценария разведки, в ходе которого пользователь получает всю необходимую ему информацию о состоянии текущего стенда с СУБД, и непосредственно сценария обновления, который можно запускать только когда разведчик выдает «success» сообщение.
Полный список проверок и возможных возникающих WARNING-сообщений представлен в разделе «Проверка готовности к обновлению».
Процесс разведки и обновления может осуществляться по различным алгоритмам, существенно различающимися по времени выполнения и сложности (зависит от объема и типа изменений между версиями):
- Обновление исполняемых файлов: обновление, при котором осуществляется замена старых файлов (исполняемых, конфигурационных, файлов расширений) на их обновленные версии, и/или добавляются новые утилиты, которые отсутствовали в предыдущих версиях. Характеризуется малым временем выполнения и возможностью обновления без прерывания работы сервиса.
- Обновление с переносом данных: обновление, при котором, помимо обновления файлов, осуществляется изменение структуры или состава данных в системных каталогах обновляемых БД. Характеризуется дополнительным набором предварительным проверок, обновлением с прерыванием работы сервиса и рекомендацией по созданию резервной копии перед обновлением.
Под изменением структуры или состава данных понимается:
- изменение состава системных таблиц;
- изменение состава системных представлений;
- изменение состава системных функций;
- изменение списка встроенных типов данных;
- изменение формата хранения данных (включая изменения в алгоритме засекречивания).
Обновление при помощи инструмента Pangolin Installer требует меньше действий и погружения в процесс. Все проверки и типы обновления реализуются «внутри» данного инструмента.
В процессе обновления будет обновлен Pangolin DBMS и версии всех утилит, входящих в состав продукта.
При обновлении происходит процесс слияния пользовательских настроек и настроек, отвечающих требованиям новой версии СУБД, в конфигурационных файлах:
postgres.yml(в случае кластерной конфигурации);pangolin-pooler.ini(в случае наличия компонента Pangolin Pooler);pg_hba.conf;postgresql.conf(в случае решения standalone).
В случае ошибки при обновлении срабатывает механизм прерывания работы обновления версии СУБД, позволяющий остановить процесс обновления и вернуть версию СУБД в состояние до обновления.
Подготовка к обновлению
Перед запуском скрипта обновления добавьте в файлы sudoerc основного узла, реплики и арбитра строку user_ansible ALL=(ALL:ALL) NOPASSWD: ALL.
Шаг 1. Подготовка дистрибутива
Предварительно скачайте и распакуйте дистрибутив новой версии.
Шаг 2. Установка утилиты Pangolin Installer
-
Установите rpm/deb-пакет
pangolin-installer, поставляемый в каталогеinstaller/дистрибутива продукта:- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install pangolin-installer-{product_version}-{OS}.x86_64.rpmsudo apt install pangolin-installer-{product_version}_amd64.debsudo apt-get install pangolin-installer-{product_version}-{OS}.x86_64.rpmПодсказкаПример заполненной команды:
cd distributive
sudo dnf install installer/pangolin-installer-8.2.0-sberlinux9.x86_64.rpm
Шаг 3. Ознакомление с параметрами Pangolin Installer (опционально)
Для вывода на экран справки по Pangolin Installer в режиме terminal выполните команду:
Путь до утилиты:/opt/pangolin-installer/bin/.
pangolin-installer terminal --help
Вывод команды pangolin-installer terminal --help
Использование: pangolin-installer terminal [-h] [--version] [--product_version] [--debug] -c CONFIG [-a {info,install,clean,updates,scouting,configure_roles,configure_ist,diag}] [-v] [--no_archive_logs] [--force] [--wont-clean-hosts]
Опции:
-h, --help Вывести справку по команде
--version Версия pangolin-installer
--debug Включить функцию дебага pangolin-installer – подробное сообщение о процессе выполнения (по умолчанию=False)
-c CONFIG, --config CONFIG Путь до конфигурационного файла
-a {info,install,clean,updates,scouting,configure_roles,configure_ist,diag}, --action {info,install,clean,updates,scouting,configure_roles,configure_ist,diag}
Тип действий для запуска процесса установки или обновления (не обязательный параметр, по умолчанию работает автоопределение процесса установки). Поддерживаемые типы:
info - вывод информации о хосте и типе автоопределенного action
install - запуск процесса установки
clean - запуск очистки стенда
updates - запуск обновление хоста
scouting - запуск процесса проверки перед обновлением
configure_roles - запуск процесса ролевой модели
configure_ist - запуск процесса установки СЗИ
diag - запуск сбора диагностической информации
--no_archive_logs Выключить архивирование директории с логами (по умолчанию=False)
--force Принудительно запускать action (По умолчанию=False)
--wont-clean-hosts Выключить запуск очистки перед установкой (По умолчанию=False)
Запуск сценария обновления
Обновление СУБД Pangolin через Pangolin Installer подразумевает под собой этапы:
- Инициализация и заполнение конфигурационного файла Pangolin Installer.
- Запуск сценария обновления.
- Проверка готовности к обновлению (выполняется автоматически).
- Завершение обновления СУБД (вывод информации утилиты о результате выполнения обновления).
Шаг 1. Инициализация и заполнение конфигурационного файла Pangolin Installer
-
Выполните команду инициализации конфигурационного файла:
pangolin-installer init -t/--terminalВ случае, если установка СУБД ранее была выполнена без использования инструмента Pangolin Installer, в результате выполнения команды создастся начальный конфигурационный файл
config.yml. -
Отредактируйте созданный файл
config.ymlс помощью текстового редактора.Обозначения
Заполните информацию о конечных узлах и параметрах подключения, в случае отсутствия заполненной данной информации ранее:
- В поле
hosts, заполните параметры хостов (ip/dns,password,usersname). - В
local_distr_pathукажите полный путь к дистрибутиву новой версии. - В
pangolin_license_pathукажите полный путь до лицензионного файла с названием файла. Пример:/home/admin/distributive/license.json.
Пример заполненного конфигурационного файла
config.ymlобязательными параметрами:примечаниеДоступ по SSH-ключу не осуществляется, возможен только доступ по паролю.
- для cluster-конфигурации
- для standalone-конфигурации
hosts:
master:
hostname: <IP-Address>
password: password
username: user
replica:
hostname: <IP-Address>
password: password
username: user
arbiter:
hostname: <IP-Address>
password: password
username: user
local_distr_path: /home/admin/distributive
pangolin_license_path: /home/admin/distributive/license.jsonhosts:
master:
hostname: <IP-Address>
password: password
username: user1
local_distr_path: /home/admin/distributive
pangolin_license_path: /home/admin/distributive/license.jsonПодсказкаВ случае использования standalone конфигурации необходимо удалить параметры хостов реплики и арбитра, аналогично примеру.
Внимание!Для обновления набора компонентов СУБД Pangolin необходимо, чтобы все требуемые пакеты с новой версией были доступны в репозитории на конечном хосте. Убедитесь, что репозиторий содержит необходимый набор пакетов компонентов СУБД Pangolin с новой версией или активируйте параметр
tune_pangolin_local_repoв конфигурационном файле, что позволяет скриптами автоматизации предварительно настроить собственный локальный репозиторий. Автоматическая настройка локального репозитория доступна только в скриптах разведки. - В поле
-
(Опционально) Установите необходимые конфигурационные параметры для настройки процесса обновления СУБД Pangolin. Перечень доступных параметров находится в разделе «Список доступных конфигурационных параметров для автоматизированных сценариев установки и обновления» документа «Справочная информация».
Шаг 2. Запуск процесса обновления
-
Запустите процесс обновления Pangolin. Выполните команду:
pangolin-installer terminal -c <path_to_config>/config.yml -a updatesВозможные параметры запуска установки:
- флаг
-cпредполагает заполнение пути до конфигурационного файла; - без указания атрибута
-aбудет запущено автоопределение процесса действий установка/обновление; - если указан флаг
-a install– будет запущен процесс установки/переустановки; - если указан флаг
-a updates– будет запущен процесс обновления.
- флаг
-
Во время запуска проверки перед обновлением и самим обновлением, утилитой будет выведена информация о ходе выполнения этапов.
Пример вывода:
Вывод об успешном обновлении stanalone конфигурации
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| scouting |
+----------------------+---------+-----+-------+---------------------------+-----------+------------+-----------------------------------+---------------------------+---------------+
| Node | Action | CPU | MEM | Disk available | OS | Version OS | Packages Installed | Packages Update | Configuration |
+----------------------+---------+-----+-------+---------------------------+-----------+------------+-----------------------------------+---------------------------+---------------+
| node: master | updates | 4 | 12 GB | /dev 5.9G | SberLinux | 8.8 | pangolin-pooler (x.x.x) | pangolin-pooler (x.x.x) | standalone |
| ip/dns: (IP-Address) | | | | /dev/shm 5.9G | | | platform-v-pangolin-dbms (x.x.x) | pangolin-dbms (x.x.x) | |
| | | | | /run 5.9G | | | pangolin-timescaledb (x.x.x) | | |
| | | | | /sys/fs/cgroup 5.9G | | | | | |
| | | | | / 45G | | | | | |
| | | | | /boot 668M | | | | | |
| | | | | /tmp 4.6G | | | | | |
| | | | | /run/user/1002 1.2G | | | | | |
+----------------------+---------+-----+-------+---------------------------+-----------+------------+-----------------------------------+---------------------------+---------------+
Выполняемая задача: scouting
🟢 Роль MAIN PLAY - Завершена! [Время выполнения: 0:06:52] Задач выполнено: 628 | | |####################################################################################################|
🟢 Роль COMMON - Завершена! [Время выполнения: 0:02:49] Задач выполнено: 335 | | |####################################################################################################|
Success: S03001:Разведка перед обновлением успешно выполнена.
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| updates |
+----------------------+---------+-----+-------+---------------------------+-----------+------------+-----------------------------------+---------------------------+---------------+
| Node | Action | CPU | MEM | Disk available | OS | Version OS | Packages Installed | Packages Update | Configuration |
+----------------------+---------+-----+-------+---------------------------+-----------+------------+-----------------------------------+---------------------------+---------------+
| node: master | updates | 4 | 12 GB | /dev 5.9G | SberLinux | 8.8 | pangolin-pooler (x.x.x) | pangolin-pooler (x.x.x) | standalone |
| ip/dns: (IP-Address) | | | | /dev/shm 5.9G | | | platform-v-pangolin-dbms (x.x.x) | pangolin-dbms (x.x.x) | |
| | | | | /run 5.9G | | | pangolin-timescaledb (x.x.x) | | |
| | | | | /sys/fs/cgroup 5.9G | | | | | |
| | | | | / 45G | | | | | |
| | | | | /boot 668M | | | | | |
| | | | | /tmp 4.6G | | | | | |
| | | | | /run/user/1002 1.2G | | | | | |
+----------------------+---------+-----+-------+---------------------------+-----------+------------+-----------------------------------+---------------------------+---------------+
Процедура проверки перед обновлением прошла успешно. Начать обновление? (Y/N): y
Выполняемая задача: updates
🟢 Роль MAIN PLAY - Завершена! [Время выполнения: 0:00:13] Задач выполнено: 11 | | |####################################################################################################|
🟢 Роль PANGOLIN_CHECKS - Завершена! [Время выполнения: 0:13:29] Задач выполнено: 849 | | |####################################################################################################|
🟢 Роль COMMON - Завершена! [Время выполнения: 0:01:08] Задач выполнено: 142 | | |####################################################################################################|
🟢 Роль PANGOLIN_LICENSE - Завершена! [Время выполнения: 0:00:07] Задач выполнено: 6 | | |####################################################################################################|
🟢 Роль PANGOLIN_AUTH_REENCRYPT - Завершена! [Время выполнения: 0:00:52] Задач выполнено: 28 | | |####################################################################################################|
🟢 Роль PANGOLIN_CERTS_ROTATE - Завершена! [Время выполнения: 0:00:29] Задач выполнено: 29 | | |####################################################################################################|
🟢 Роль PANGOLIN_SECURITY_UTILITIES - Завершена! [Время выполнения: 0:00:12] Задач выполнено: 10 | | |####################################################################################################|
🟢 Роль PANGOLIN_MANAGER - Завершена! [Время выполнения: 0:00:00] Задач выполнено: 4 | | |####################################################################################################|
🟢 Роль PANGOLIN_DBMS - Завершена! [Время выполнения: 0:05:05] Задач выполнено: 147 | | |####################################################################################################|
🟢 Роль PANGOLIN_POOLER - Завершена! [Время выполнения: 0:00:27] Задач выполнено: 16 | | |####################################################################################################|
🟢 Роль PANGOLIN_TUNER - Завершена! [Время выполнения: 0:00:12] Задач выполнено: 9 | | |####################################################################################################|
🟢 Роль PANGOLIN_DIAGNOSTIC_TOOL - Завершена! [Время выполнения: 0:00:11] Задач выполнено: 10 | | |####################################################################################################|
🟢 Роль FINALLY - Завершена! [Время выполнения: 0:00:32] Задач выполнено: 29 | | |####################################################################################################|
🟢 Роль CONFIGURE - Завершена! [Время выполнения: 0:00:20] Задач выполнено: 45 | | |####################################################################################################|
🟢 Роль FINALLY - Завершена! [Время выполнения: 0:01:29] Задач выполнено: 92 | | |####################################################################################################|
🟢 Роль PANGOLIN_BACKUP_TOOLS - Завершена! [Время выполнения: 0:00:52] Задач выполнено: 100 | | |####################################################################################################|
Success: S05001:Обновление успешно завершено.
+-------------------------------------------------------------------------------------+
| after updates |
+----------------------+---------------+----------------------------------------------+
| Node | Action | Packages Installed |
+----------------------+---------------+----------------------------------------------+
| node: master | after updates | pangolin-backup-tools-venv (<version>) |
| | | pangolin-backup-tools (<version>) |
| ip/dns: (IP-Address) | | pangolin-pooler (<version>) |
| | | pangolin-dbms-8.x (<version>) |
| | | pangolin-tuner (<version>) |
| | | pangolin-auth-reencrypt (<version>) |
| | | pangolin-dbms-8.x-client (<version>) |
| | | pangolin-certs-rotate (<version>) |
| | | pangolin-timescaledb-apache (<version>) |
| | | pangolin-security-utilities (<version>) |
| | | pangolin-diagnostic-tool (<version>) |
| | | pangolin-installer-venv-controlled (<version>) |
| | | |
+----------------------+---------------+----------------------------------------------+
Дальнейшие шаги
Для проверки успешности завершения обновления рекомендуется обратиться к шагам «Проверки результата» в общем блоке автоматизированного обновления.