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

Обновление при помощи инструмента 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

  1. Установите rpm/deb-пакет pangolin-installer, поставляемый в каталоге installer/ дистрибутива продукта:

    sudo dnf 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 подразумевает под собой этапы:

  1. Инициализация и заполнение конфигурационного файла Pangolin Installer.
  2. Запуск сценария обновления.
  3. Проверка готовности к обновлению (выполняется автоматически).
  4. Завершение обновления СУБД (вывод информации утилиты о результате выполнения обновления).

Шаг 1. Инициализация и заполнение конфигурационного файла Pangolin Installer

  1. Выполните команду инициализации конфигурационного файла:

    pangolin-installer init -t/--terminal

    В случае, если установка СУБД ранее была выполнена без использования инструмента Pangolin Installer, в результате выполнения команды создастся начальный конфигурационный файл config.yml.

  2. Отредактируйте созданный файл config.yml с помощью текстового редактора.

    Обозначения

    Заполните информацию о конечных узлах и параметрах подключения, в случае отсутствия заполненной данной информации ранее:

    • В поле hosts, заполните параметры хостов (ip/dns, password, usersname).
    • В local_distr_path укажите полный путь к дистрибутиву новой версии.
    • В pangolin_license_path укажите полный путь до лицензионного файла с названием файла. Пример: /home/admin/distributive/license.json.

    Пример заполненного конфигурационного файла config.yml обязательными параметрами:

    примечание

    Доступ по SSH-ключу не осуществляется, возможен только доступ по паролю.

    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.json
    Подсказка

    В случае использования standalone конфигурации необходимо удалить параметры хостов реплики и арбитра, аналогично примеру.

    Внимание!

    Для обновления набора компонентов СУБД Pangolin необходимо, чтобы все требуемые пакеты с новой версией были доступны в репозитории на конечном хосте. Убедитесь, что репозиторий содержит необходимый набор пакетов компонентов СУБД Pangolin с новой версией или активируйте параметр tune_pangolin_local_repo в конфигурационном файле, что позволяет скриптами автоматизации предварительно настроить собственный локальный репозиторий. Автоматическая настройка локального репозитория доступна только в скриптах разведки.

  3. (Опционально) Установите необходимые конфигурационные параметры для настройки процесса обновления СУБД Pangolin. Перечень доступных параметров находится в разделе «Список доступных конфигурационных параметров для автоматизированных сценариев установки и обновления» документа «Справочная информация».

Шаг 2. Запуск процесса обновления

  1. Запустите процесс обновления Pangolin. Выполните команду:

    pangolin-installer terminal -c <path_to_config>/config.yml -a updates

    Возможные параметры запуска установки:

    • флаг -c предполагает заполнение пути до конфигурационного файла;
    • без указания атрибута -a будет запущено автоопределение процесса действий установка/обновление;
    • если указан флаг -a install – будет запущен процесс установки/переустановки;
    • если указан флаг -a updates – будет запущен процесс обновления.
  2. Во время запуска проверки перед обновлением и самим обновлением, утилитой будет выведена информация о ходе выполнения этапов.

    Пример вывода:

    Вывод об успешном обновлении 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>) |
    | | | |
    +----------------------+---------------+----------------------------------------------+

Дальнейшие шаги

Для проверки успешности завершения обновления рекомендуется обратиться к шагам «Проверки результата» в общем блоке автоматизированного обновления.