Обновление при помощи инструмента Pangolin Installer#

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

Обновление при помощи инструмента Pangolin Installer проходит по такому же сценарию, как и обновление при помощи Ansible плейбуков, но требует меньше действий и погружения в процесс. Все те же проверки и типы обновления реализуются «внутри» данного инструмента.

Подготовка к обновлению#

В случае обновления с использованием Pangolin Installer проверка готовности к обновлению выполняется автоматически и запуск скрипта-разведчика не требуется.

Шаг 1. Подготовка дистрибутива#

Предварительно скачайте и распакуйте дистрибутив новой версии.

Шаг 2. Установка утилиты Pangolin Installer#

  1. Установите rpm/deb-пакет pangolin-installer:

    sudo dnf install pangolin-installer-{version_component}-{OS}.x86_64.rpm
    
    sudo apt install pangolin-installer-{version_component}_amd64.deb
    
    sudo apt-get install pangolin-installer-{version_component}-{OS}.x86_64.rpm
    

    Пример заполненной команды:

    cd distributive
    sudo dnf install installer/utilities/pangolin-installer-1.0.0-sberlinux9.x86_64.rpm
    

Шаг 3. Ознакомление с параметрами Pangolin Installer (опциональный)#

Для вывода на экран справки по Pangolin Installer в режиме terminal выполните команду:

Путь до утилиты: /opt/pangolin-ansible-venv-controller/bin/.

pangolin-installer terminal --help
Вывод команды pangolin-installer terminal –help
Использование: pangolin-installer terminal [-h] [--version] [--debug] -c CONFIG [-a {info,install,clean,updates,scouting,configure_roles}] [-v] [--no_archive_logs] [--force] [--vault-password-file VAULT_PASSWORD_FILE]

Опции:

  -h, --help                    Вывести справку по команде

  --version                     Версия pangolin-installer

  --debug                       Включить функцию дебага pangolin-installer – подробное сообщение о процессе выполнения (по умолчанию=False)

  -c CONFIG, --config CONFIG    Путь до конфигурационного файла

  -a {info,install,clean,updates,scouting,configure_roles}, --action {info,install,clean,updates,scouting,configure_roles}

                                Тип действий для запуска процесса установки или обновления (не обязательный параметр, по умолчанию работает автоопределение процесса установки). Поддерживаемые типы:

                                    info - вывод информации о хосте и типе автоопределенного action
                                    install - запуск процесса установки
                                    clean - запуск очистки стенда
                                    updates - запуск обновление хоста
                                    scouting - запуск процесса проверки перед обновлением
                                    configure_roles - запуск процесса ролевой модели

  -v                            Уровень логирования в ansible-playbook (по умолчанию=vvv)

  --no_archive_logs             Выключить архивирование директории с логами (по умолчанию=False)

  --force                       Принудительно запускать action (по умолчанию=False)

  --vault-password-file VAULT_PASSWORD_FILE

                                Путь до файла vault, который нужен для запуска ansible-playbook

Запуск сценария обновления#

Обновление СУБД Pangolin через Pangolin Installer подразумевает под собой этапы:

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

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

  3. Проверка готовности к обновлению (выполняется автоматически).

  4. Завершение обновления СУБД (вывод информации утилиты о результате выполнения обновления).

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

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

    pangolin-installer init -t/--terminal
    

    В результате выполнения команды создается начальный конфигурационный файл config.yml, предназначенный для дальнейшей настройки.

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

    Обозначения

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

    • В поле hosts, заполните параметры хостов (ip/dns, password, usersname).

    • В local_distr_path укажите полный путь к дистрибутиву новой версии.

    • В pangolin_license_path укажите полный путь до лицензионного файла с названием файла. Пример: /home/admin/distributive/license.json.

    Пример настроенного конфигурационного файла config.yaml:

    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
    
    hosts:
        master:
            hostname: <ip-address>
            password: password
            username: user1
    local_distr_path: /home/admin/distributive
    pangolin_license_path: /home/admin/distributive/license.json
    

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

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

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

    pangolin-installer terminal -c 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-7.1 (<version>)                |
    |                      |               | pangolin-tuner (<version>)                   |
    |                      |               | pangolin-auth-reencrypt (<version>)          |
    |                      |               | pangolin-dbms-7.1-client (<version>)         |
    |                      |               | pangolin-certs-rotate (<version>)            |
    |                      |               | pangolin-timescaledb-apache (<version>)      |
    |                      |               | pangolin-security-utilities (<version>)      |
    |                      |               | pangolin-diagnostic-tool (<version>)         |
    |                      |               | pangolin-ansible-venv-controlled (<version>) |
    |                      |               |                                              |
    +----------------------+---------------+----------------------------------------------+
    

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

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