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

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

Обозначения

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

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

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

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

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

  • {base_version} - базовая версия продукта (текущая: 7);

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

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

PSQ-{product_version}-{OS}-distrib.zip                    // Дистрибутив продукта СУБД Pangolin
├── PSQ-{product_version}-{OS}-cyclonedx-distrib.json     // SBOM-файл для продукта
├── PSQ-doc-{product_version}-distrib.zip                 // Дистрибутив документации на программный продукт
├── PSQ-doc-{product_version}.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
    ├── debug/                               // Набор пакетов для установки отладочных символов, собранных для основных модулей и утилит
    │   ├── pangolin-backup-tools-debuginfo-{version_component}-{OS}.x86_64.rpm
    │   ├── pangolin-dbms-{base_version}-debuginfo-{product_version}-{OS}.x86_64.rpm
    │   ├── pangolin-dbms-{base_version}-client-debuginfo-{product_version}-{OS}.x86_64.rpm
    │   ├── pangolin-dbms-{base_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
    │   ├── pangolin-full-debuginfo-{product_version}-{OS}.x86_64.rpm                  // Мета-пакет (см. раздел «Мета-пакеты для процесса ручной пошаговой установки СУБД Pangolin»)
    │   └── utilities/
    │       ├── pangolin-auth-password-debuginfo-{product_version}-{OS}.x86_64.rpm
    │       ├── pangolin-certs-rotate-debuginfo-{product_version}-{OS}.x86_64.rpm
    │       └── pangolin-security-utilities-debuginfo-{product_version}-{OS}.x86_64.rpm
    │
    ├── documentation/                            // Содержит документацию к продукту СУБД Pangolin
    │   └── PSQ
    │       ├── index.html                        // Разводящая страница на комплект документации
    │       └── {product_version}                 // Каталог с документацией программного продукта
    │           ├── html
    │           │   ├── _downloads/               // Прикрепленные к документам файлы
    │           │   │   └── <...>
    │           │   ├── _images/                  // Иллюстрации для документации
    │           │   │   └── <...>
    │           │   └── <...>
    │           ├── documents/                    // Собранная из исходников статика
    │           │   └── <...>
    │           └── info/                         // Содержит информационные JSON файлы
    │               └── <...>
    │
    ├── installer/                                      // Содержит инструменты развертывания и обновления
    │   ├── ansible.cfg                                 // Конфигурационный файл для работы Ansible
    │   ├── collection/                                 // collection-скрипты для Ansible
    │   │   └── <...>
    │   ├── files/                                      // Библиотека 'libkms_substitute_plugin.so'
    │   │   └── <...>
    │   ├── group_vars/                                 // Групповые переменные Ansible
    │   │   └── <...>
    │   ├── inventories/                                // Инвентарные файлы Ansible
    │   │   └── <...>
    │   ├── playbook_clean.yaml                         // Сценарий запуска очистки виртуальной машины
    │   ├── playbook_create_pangolin_local_repo.yaml    // Сценарий создания локального репозитория rpm-пакетов
    │   ├── playbook_install_old.yaml
    │   ├── playbook_install_new.yaml
    │   ├── playbook_install.yaml                       // Сценарий запуска различных схем развертывания
    │   ├── playbook_major_update_new.yaml
    │   ├── playbook_major_update.yaml                  // Сценарий запуска обновления с переносом данных (запускается автоматически через основной playbook_updates)
    │   ├── playbook_minor_update_new.yaml
    │   ├── playbook_minor_update.yaml                  // Сценарий запуска обновления исполняемых файлов (запускается автоматически через основной playbook_updates)
    │   ├── playbook_scouting.yaml                      // Сценарий запуска разведчик перед обновлением
    │   ├── playbook_updates.yaml                       // Сценарий запуска обновления, который определяет тип обновления и запускает необходимый playbook
    │   ├── readme.txt                                  // Содержит версию текущего дистрибутива СУБД Pangolin
    │   ├── roles/                                      // Содержит скрипты ролевой модели
    │   │   └── <...>
    │   ├── scripts/                                    // Набор вспомогательных скриптов и шаблонов для настройки стенда
    │   │   └── update_error_types.yml                  // Список возможных ошибок каждого типа работы инсталлятора
    │   ├── 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.sh) и его вспомогательные скрипты
    │       │   └── <...>
    │       ├── license_verify                                              // Инструмент для верификации лицензии Pangolin
    │       │   └── psql_rsa_verify
    │       ├── secret_storage_client_bundle                                // Набор утилит хранилища секретов Pangolin
    │       │   └── <...>
    │       └── psql_get_password_hash                                      // Утилита получения хеша пароля Pangolin
    │           └── <...>
    │
    ├── pangolin-backup-tools-{version_component}-{OS}.x86_64.rpm                         // Инструменты резервного копирования
    ├── pangolin-dbms-{base_version}-{product_version}-{OS}.x86_64.rpm                    // Пакет СУБД Pangolin с серверной частью
    ├── pangolin-dbms-{base_version}-client-{product_version}-{OS}.x86_64.rpm             // Пакет СУБД Pangolin с клиентской частью
    ├── pangolin-dbms-{base_version}-libpq-{product_version}-{OS}.x86_64.rpm              // Пакет с libpq частью СУБД
    ├── pangolin-dbms-{base_version}-libpq-dev-{product_version}-{OS}.x86_64.rpm          // Пакет с libpq develop частью СУБД
    ├── pangolin-manager-{version_component}-{OS}.x86_64.rpm                              // Оркестратор кластера Pangolin
    ├── pangolin-pooler-{version_component}-{OS}.x86_64.rpm                               // Менеджер пулов соединений Pangolin
    ├── pangolin-orchestrated-{product_version}-{OS}.x86_64.rpm                   // Мета-пакет (см. раздел «Мета-пакеты для процесса ручной пошаговой установки СУБД Pangolin»)
    ├── pangolin-core-{product_version}-{OS}.x86_64.rpm                           // Мета-пакет (см. раздел «Мета-пакеты для процесса ручной пошаговой установки СУБД Pangolin»)
    ├── pangolin-manager-dcs-{product_version}-{OS}.x86_64.rpm                    // Мета-пакет (см. раздел «Мета-пакеты для процесса ручной пошаговой установки СУБД Pangolin»)
    ├── pangolin-full-{product_version}-{OS}.x86_64.rpm                           // Мета-пакет (см. раздел «Мета-пакеты для процесса ручной пошаговой установки СУБД Pangolin»)
    ├── regid.2011-07.ru.sbertech_psq-{product_version}.swidtag                           // SWIDTAG-файл продукта
    │
    ├── repositories/                                   // Содержит структуру и метаданные репозиториев (шаблоны), которые будут использованы для дальнейшей установки и обновления
    │   └── <...>
    │
    ├── timescaledb/                                    // Расширение для работы с временными рядами
    │   └── pangolin-timescaledb-{base_version}-apache-{version_component}-{OS}-x86_64.rpm
    │
    ├── utilities/
    │   ├── pangolin-auth-password-{product_version}-{OS}.x86_64.rpm         // Утилита засекречивания паролей, представленных в открытом виде
    │   ├── 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        // Пакет позволяет развернуть виртуальное окружения для корректного запуска сценариев автоматизированного развертывания/обновления
            ├── pangolin-backup-tools-venv/
            │   └── pangolin-backup-tools-venv-{version_component}-{OS}.x86_64.rpm
            ├── pangolin-manager-venv/
            │   └── pangolin-manager-venv-{version_component}-{OS}.x86_64.rpm
            ├── citus/
            │   └── pangolin-citus-{version_component}-{OS}.x86_64.rpm                    // Расширение, которое преобразует PostgreSQL в распределенную базу данных для высокой производительности в любом масштабе
            ├── license_rest_api/                                                         // Сервер лицензий MVP Rest Licensing
            │   └── pangolin-license-rest-client-{product_version}-{OS}.x86_64.rpm
            ├── migration_tools/
            │   └── pangolin-pgloader-{version_component}-{OS}.x86_64.rpm                 // Утилита миграции данных из MySQL, SQLite и SQL Server
            ├── pg_anon/
            │   └── pangolin-pg-anon-{version_component}-{OS}.x86_64.rpm                  // Утилиты для реализации обфускации (анонимизации) данных
            ├── pg_background/
            │   ├── pangolin-pg-background-{version_component}-{OS}.x86_64.rpm            // Расширение для управления пользовательскими фоновыми процессами
            │   └── pg_background-src.tar.gz                                              // Исходный код компонента
            ├── pg_dbms_lock/
            │   ├── pangolin-pg-dbms-lock-{version_component}-{OS}.x86_64.rpm             // Утилита для создания пользовательских блокировок
            │   └── pg_dbms_lock-src.tar.gz                                               // Исходный код компонента
            ├── pgcopydb/
            │   ├── pangolin-pgcopydb-{version_component}-{OS}.x86_64.rpm                 // Утилита для автоматизации копирования базы данных на другой сервер
            │   └── pgcopydb.tar.gz                                                       // Исходный код компонента
            ├── pgq/
            │   └── pangolin-pgq-{version_component}-{OS}.x86_64.rpm                      // Расширение для организации монопольных очередей сообщений
            ├── pgq_coop/
            │   └── pangolin-pgq-coop-{version_component}-{OS}.x86_64.rpm                 // Утилита для организация кооперативных очередей сообщений
            ├── pgqd/
            │   └── pangolin-pgqd-{version_component}-{OS}.x86_64.rpm                     // Менеджер для поддержки очередей сообщений
            ├── pgrouting/
            │   ├── pangolin-pgrouting-{version_component}-{OS}.x86_64.rpm                // Расширение, добавляющее поддержку геопространственной маршрутизации и другие функции сетевого анализа
            │   └── pgrouting-src.tar.gz                                                  // Исходный код компонента
            ├── pgsql_http/
            │   └── pangolin-pgsql-http-{version_component}-{OS}.x86_64.rpm               // Расширение для поддержки HTTP-клиента на уровне СУБД, позволяющее обращаться к REST-сервисам посредством SQL-запросов
            ├── pldebugger/
            │   └── pangolin-pldebugger-{version_component}-{OS}.x86_64.rpm               // Расширение, предоставляющее API для выполнения функций с возможностью остановки в заданной точке, пошаговым выполнением и просмотром значений переменных
            ├── plpgsql_check/
            │   └── pangolin-plpgsql-check-{version_component}-{OS}.x86_64.rpm            // Статический анализатор кода PL/pgSQL для PostgreSQL
            ├── postgis/
            │   ├── pangolin-postgis-{version_component}-{OS}.x86_64.rpm                  // Утилита добавляет поддержку географических объектов
            │   └── <...>                                                                 // Библиотеки необходимые для поддержки различных геоданных
            ├── timescaledb/
            │   └── pangolin-timescaledb-community-{version_component}-{OS}.x86_64.rpm    // Расширение для работы с временными рядами
            └── pcloudn-{version_component}-distrib.tar.gz                                // Оператор Pangolin CloudNative для построения кластерной конфигурации в среде оркестрации Kubernetes