Состав дистрибутива#

В скриптах сборки Platform V Pangolin DB (PSQ) (далее – Pangolin DB) реализовано формирование составных компонентов zip-пакета и упаковка их в пакет PSQ-{version}-{OS}-distrib.zip.

Обозначения

Далее в разделе, в приведенных схемах дистрибутива, будут указаны следующие обозначения:

  • PSQ - код продукта СУБД Pangolin;

  • {OS} - наименование операционной системы и ее версия;

  • {product_version} - версия продукта (текущая версия: 6.5.1);

  • {short_version} - короткая версия продукта (текущая: 6.5);

  • {version_component} - версия компонента.

Составные части zip-пакета:

PSQ-{product_version}-{OS}-distrib.zip                    // Дистрибутив продукта Pangolin DB
├── PSQ-{product_version}-{OS}-cyclonedx-distrib.json     // SBOM-файл для продукта
├── PSQ-{product_version}-{OS}-documentation-distrib.zip  // Дистрибутив документации на программный продукт
├── PSQ-{product_version}-{OS}-documentation-distrib.pom
├── PSQ-{product_version}-{OS}-installer-distrib.zip      // Инструменты развертывания и обновления продукта
├── PSQ-{product_version}-{OS}-installer-distrib.pom
├── PSQ-{product_version}-{OS}-owned-distrib.zip          // Дистрибутив продукта
├── PSQ-{product_version}-{OS}-owned-distrib.pom
├── PSQ-{product_version}-{OS}-party-distrib.zip          // Архив со сторонними зависимостями (расширениями 3rd Party)
├── PSQ-{product_version}-{OS}-party-distrib.pom
├── PSQ-{product_version}-{OS}-swidtag-distrib.swidtag    // SWIDTAG-файл продукта
└── PSQ-{product_version}-{OS}-unpacker-distrib.sh        // Скрипт по формированию единого дистрибутива

Подготовленный к процессу установки дистрибутив продукта СУБД Pangolin содержит перечисленные ниже элементы:

PSQ-{product_version}-distrib/
└── distributive/                            // Каталог с распакованным дистрибутивом продукта Pangolin DB
    ├── debug/                               // Набор пакетов для установки отладочных символов, собранных для основных модулей и утилит
    │   ├── pangolin-backup-tools-debuginfo-{version_component}-{OS}.x86_64.rpm
    │   ├── pangolin-dbms-{short_version}-debuginfo-{product_version}-{OS}.x86_64.rpm
    │   ├── pangolin-dbms-{short_version}-client-debuginfo-{product_version}-{OS}.x86_64.rpm
    │   ├── pangolin-dbms-{short_version}-libpq-debuginfo-{product_version}-{OS}.x86_64.rpm
    │   ├── pangolin-manager-debuginfo-{version_component}-{OS}.x86_64.rpm
    │   ├── pangolin-pooler-debuginfo-{version_component}-{OS}.x86_64.rpm
    │   └── utilities/
    │       ├── pangolin-certs-rotate-debuginfo-{product_version}-{OS}.x86_64.rpm
    │       └── pangolin-security-utilities-debuginfo-{product_version}-{OS}.x86_64.rpm
    │
    ├── documentation/                            // Содержит документацию к продукту Pangolin DB
    │   └── PSQ
    │       ├── index.html                        // Разводящая страница на комплект документации
    │       └── {product_version}                 // Версия программного продукта
    │           ├── html
    │           │   ├── _downloads/               // Прикрепленные к документам файлы
    │           │   │   └── <...>
    │           │   ├── _images/                  // Иллюстрации для документации
    │           │   │   └── <...>
    │           │   └── <...>
    │           ├── documents/                    // Собранная из исходников статика 
    │           │   └── <...>
    │           └── info/                         // Содержит информационные json файлы
    │               └── <...>
    │
    ├── installer/                                      // Содержит инструменты развертывания и обновления
    │   ├── ansible.cfg                                 // Конфигурационный файл для работы Ansible
    │   ├── callback_plugins/                           // Подключаемый модуль Ansible для реализации индикатора выполнения
    │   │   └── <...>
    │   ├── collection/                                 // collection-скрипты для ansible
    │   │   └── <...>
    │   ├── files/                                      // Библиотека 'libkms_substitute_plugin.so'
    │   │   └── <...>
    │   ├── group_vars/                                 // Групповые переменные Ansible
    │   │   └── <...>
    │   ├── inventories/                                // Инвентарные файлы Ansible
    │   │   └── <...>
    │   ├── playbook_clean.yaml                         // Сценарий запуска очистки виртуальной машины    
    │   ├── playbook_create_pangolin_local_repo.yaml    // Сценарий создания локального репозитория rpm-пакетов (основной части, исключая 3rd Party)
    │   ├── playbook_install.yaml                       // Сценарий запуска различных схем развертывания
    │   ├── playbook_major_update.yaml                  // Сценарий запуска обновления с переносом данных
    │   ├── playbook_minor_update.yaml                  // Сценарий запуска обновления без переноса данных (исполняемых файлов)
    │   ├── playbook_scouting.yaml                      // Сценарий запуска разведчик перед обновлением
    │   ├── playbook_updates.yaml                       // Сценарий запуска для определения типа обновления для установки
    │   ├── readme.txt                                  // Содержит версию текущего дистрибутива Pangolin DB
    │   ├── roles/                                      // Содержит скрипты ролевой модели
    │   │   └── <...>
    │   ├── scripts/                                    // Набор вспомогательных скриптов и шаблонов для настройки стенда                                
    │   │   ├── make_all_module.sh                      // Скрипт сборки модулей релизной версии pangolin-installer
    │   │   ├── pangolin_tuner                          // Инструмент для работы с конфигурацией СУБД Pangolin, предназначенный для оптимизации производительности баз данных в различных сценариях использования
    │   │   │   └── <...>
    │   │   ├── role_model_clean_scripts                // Скрипты очистки ролевой модели
    │   │   │   └── <...>
    │   │   ├── pangolin-installer                      // Каталог для pangolin-installer
    │   │   │   └── <...>
    │   │   ├── custom_dev.yml                          // Шаблон для установки/обновления Pangolin DB по умолчанию
    │   │   ├── update_error_types.yml                  // Список возможных ошибок каждого типа работы инсталлятора
    │   │   └── yamllint                                // Утилита для проверки корректности и валидности передаваемых в скрипты установки/обновления параметров
    │   │   │   └── <...>
    │   ├── scripts_external/                           // Набор скриптов по автоматической настройке СЗИ на стенде и/или развертывания ролевой модели
    │   │   └── <...>
    │   ├── templates/                                  // Набор шаблонов конфигурационных файлов
    │   │   ├── pangolin_auth_reencrypt_templates/      // 
    │   │   │   └── enc_util.cfg.j2                     // Шаблон конфигурационного файла утилиты перешифрования pangolin_auth_reencrypt
    │   │   ├── pangolin_certs_rotate_templates/        // 
    │   │   │   └── pangolin-certs-rotate.yml.j2        // Шаблон конфигурационного файла сервиса ротации сертификатов pangolin-certs-rotate
    │   │   ├── patroni_templates/                      // 
    │   │   │   └── postgres.yml.j2                     // Шаблон основного файла конфигурации компонента Pangolin Manager
    │   │   ├── pgbouncer_templates                     // 
    │   │   │   └── pangolin-pooler.ini.j2              // Шаблон основного файла конфигурации компонента Pangolin Pooler
    │   │   ├── postgresql_templates                    // 
    │   │   │   ├── pg_hba.conf.j2                      // Шаблон конфигурационного файла настройки аутентификации pg_hba.conf
    │   │   │   └── postgresql.conf.j2                  // Шаблон конфигурационного файла postgresql.conf ядра PostgreSQL для управления параметрами СУБД 
    │   │   └── custom_config_sample.yml                // Шаблон конфигурационного файла для развертывания СУБД
    │   └── utilities/                                                      // Набор утилит для корректной работы скриптов развертывания/обновления
    │       ├── pangolin-installer-{version_component}-{OS}.x86_64.rpm      // Инструмент установки СУБД для упрощения использования скриптов автоматизации 
    │       ├── pg_inplace_upgrade                                          // Инструмент для обновления (inplace_upgrade) и его вспомогательные скрипты
    │       │   └── <...>  
    │       ├── license_verify                                              // Инструмент для верификации лицензии Pangolin DB
    │       │   └── psql_rsa_verify 
    │       ├── secret_storage_client_bundle                                // Набор утилит хранилища секретов Pangolin DB
    │       │   └── <...>  
    │       └── psql_get_password_hash                                      // Утилита получения хеша пароля Pagolin DB
    │           └── <...>  
    │
    ├── pangolin-backup-tools-{version_component}-{OS}.x86_64.rpm                         // Инструменты резервного копирования
    ├── pangolin-dbms-{short_version}-{product_version}-{OS}.x86_64.rpm                   // Пакет СУБД Pangolin с серверной частью
    ├── pangolin-dbms-{short_version}-{product_version}-client-{OS}.x86_64.rpm            // Пакет СУБД Pangolin с клиентской частью
    ├── pangolin-dbms-{short_version}-libpq-{product_version}-{OS}.x86_64.rpm             // Пакет с libpq частью СУБД
    ├── pangolin-dbms-{short_version}-libpq-dev-{product_version}-{OS}.x86_64.rpm         // Пакет с libpq develop частью СУБД
    ├── pangolin-manager-{version_component}-{OS}.x86_64.rpm                              // Оркестратор кластера Pangolin DB
    ├── pangolin-pooler-{version_component}-{OS}.x86_64.rpm                               // Менеджер пулов соединений Pangolin DB
    ├── regid.2011-07.ru.sbertech_psq-{product_version}.swidtag                           // SWIDTAG-файл продукта
    │
    ├── repositories/                                   // Содержит структуру и метаданные репозиториев (шаблоны), которые будут использованы для дальнейшей установки и обновления
    │   └── <...>
    │
    ├── timescaledb/                                    // Расширение для работы с временными рядами
    │   └── pangolin-timescaledb-{short_version}-apache-{version_component}-{OS}-x86_64.rpm
    │
    ├── utilities/
    │   ├── pangolin-auth-reencrypt-{product_version}-{OS}.x86_64.rpm        // Сервис для автоматического перешифрования параметров подключения
    │   ├── pangolin-certs_rotate-{product_version}-{OS}.x86_64.rpm          // Сервис ротации сертификатов
    │   ├── pangolin-diagnostic_tool-{product_version}-{OS}.x86_64.rpm       // Утилита формирования диагностического отчета
    │   ├── pangolin-tuner-{version_component}-{OS}.x86_64.rpm               // Утилита для работы с конфигурацией СУБД Pangolin, предназначенный для оптимизации производительности БД в различных сценариях использования
    │   └── pangolin-security-utilities-{product_version}-{OS}.x86_64.rpm    // Утилиты для настройки защиты администратора, TDE и безопасной конфигурации
    │
    └── 3rdparty/                                                                       // Содержит архив со сторонними зависимостями (различные модули и расширения)
        └── 3rdparty.tar.gz
            ├── <...>                                                                   // Расширения 3rd Party (подробнее в документе «Описание расширений продукта СУБД Pangolin»)
            ├── pangolin-ansible-venv-controlled-{product_version}-{OS}.x86_64.rpm      // Набор pip-пакетов для развертывания виртуального окружения (на целевых хостах), необходимый для корректного запуска ansible-скриптов
            └── pangolin-ansible-venv-controller-{product_version}-{OS}.x86_64.rpm      // Пакет позволяет развернуть виртуальное окружения для корректного запуска сценариев автоматизированного развертывания/обновления