Пакет установки
В данном разделе приведено описание дистрибутива и установщика системы.
Описание дистрибутива
Дистрибутив системы рассчитан на автономную установку в существующий кластер Kubernetes без необходимости доступа к сети Интернет. Дистрибутив представляет собой самораспаковывающийся run-файл (bash-скрипт) с полезной нагрузкой.
Дистрибутив состоит из компонентов установщика и модулей платформы.
Компоненты установщика
-
Скрипт установки (bash).
-
Скрипт управления экземпляром платформы evoctl.
-
Плейбуки Ansible.
-
Вспомогательные утилиты (исполняемые файлы:
helm
,jq
,yq
).
Модули платформы
-
Модуль evo.infra, содержащий следующие компоненты:
-
Инфраструктурные сервисы:
-
мониторинг: kube-prometheus-stack;
-
контроллер: ingress-nginx;
-
провайдеры хранилища: local-path-provisioner и piraeus;
-
логирование: loki и promtail;
-
балансировщик нагрузки: metallb;
-
сервер метрик: metrics-server.
-
-
Сторонние сервисы:
-
ClickHouse;
-
NATS;
-
Consul;
-
Dkron;
-
MinIO;
-
PostgreSQL.
-
-
-
Архивы модулей платформы.
Описание установщика
Установщик системы — это самораспаковывающийся run-файл (bash-скрипт) с полезной нагрузкой.
Формат имени файла: evo.platform_<version>.run
Для вывода встроенной справки запустите run-файл evo.platform_<version>.run с параметром -h
или --help
:
./evo.platform_<version>.run --help
Если файл не имеет прав на выполнение, установите их с помощью команды
|
Результат
Usage: evo.platform_<version>.run [OPTIONS] Self-extracting installer for R-Vision EVO Platform, version: <version>. Available main actions: - new installation; - upgrading existing installation; - removing product; - downloading additional packages; - unpacking packages. Options: -c, --check only check if system is ready for installation, don't execute actions -h, --help show usage -V, --version show version -v, --verbose verbose output -d, --debug debug mode -y, --yes don't ask user confirmation --skip-integrity skip integrity check before unpacking Supported variables: - ACCEPTED don't ask user confirmation - ACTION_MODE action from list: install, update, remove, unpack, download, check - VERBOSE verbose output - DEBUG debug mode - SETUP_ROOT_DIR setup root directory, default: /opt - SKIP_INTEGRITY skip integrity check before unpacking Required resources (for installation process only): CPU, cores: 1 RAM, Gb: 2 DISK, Gb: 20 (in /opt/r-vision) INODES: 5000 (in /opt/r-vision)
Структура каталогов
Установщик содержит как общие разделяемые компоненты, так и специфичные для продукта.
По умолчанию распаковка выполняется в каталог /opt
, например /opt/r-vision
. Корневой каталог (/opt
по умолчанию) можно изменить с помощью переменной SETUP_ROOT_DIR
.
Таким образом:
-
/opt
— корневой каталог установщика; -
/opt/r-vision
— каталог производителя.
Если пользователь не имеет права записи в каталог /opt
, необходимо предварительно создать каталог производителя и назначить его владельцем пользователя, от имени которого будет выполняться установка.
sudo mkdir -pv /opt/r-vision
sudo chown -R <user>:<group> /opt/r-vision
Здесь:
-
<user>
— имя пользователя; -
<group>
— группа, в которую входит пользователь.
Пример возможной структуры каталогов после распаковки
/opt/r-vision/ # каталог производителя ├── common # общие компоненты установщика │ ├── ansible # роли и плейбуки Ansible │ ├── bin # утилиты │ │ ├── evoctl │ │ ├── helm │ │ ├── jq │ │ └── yq │ ├── lib # библиотека bash-функций │ ├── logs # логи установщика │ └── platform.yaml # манифест дистрибутива ├── core # каталог модуля core │ ├── helm │ ├── images │ └── module.yaml ├── infra # каталог модуля infra │ ├── helm │ ├── images │ ├── menu.sh │ ├── module.yaml │ ├── postinstall.sh │ └── preinstall.sh ├── siem # каталог модуля siem │ ├── helm │ ├── images │ ├── menu.sh │ ├── module.yaml │ ├── postinstall.sh │ └── preinstall.sh └── space # каталог модуля space ├── helm ├── images ├── module.yaml ├── postinstall-space.sh └── preinstall-space.sh
Логирование
Все действия логируются. При каждом запуске установщика создается новый лог-файл в каталоге logs
системы. В лог сохраняется более подробная информация, чем выводится на экран, даже в verbose-режиме. Также в лог сохраняется информация об операционной системе, ресурсах, программном окружении и переменных. Значения переменных с именами, содержащими pass
или private
, маскируются.
Пример системной информации в логе
System information: OS ID: redos OS name: RED OS MUROM (7.3.4) Kernel: 6.1.52-1.el7.3.x86_64 User: user CPU, cores: 8 RAM, GB: 16 App directory info: Directory: /opt/r-vision Free space: 53G Free inodes: 50903398 Suitable tools: bash|4.0.0: 5.2.9 gunzip: 1.9.0 sed: 4.5.0 tar: 1.30.0 diff: 3.6.0 ansible|2.9: 2.12.5 kubectl: 1.26.3 python3|3.6.8: 3.8.18 curl: 7.85.0 whiptail: 0.52.21 dialog: <not installed> Environment: ------------ HOME=/home/user LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 TERM=xterm-256color TEST_PASSWORD=<masked> private_key=<masked> USER=user ------------
Интерфейс установщика
Для взаимодействия с пользователем используется консольная диалоговая утилита whiptail
. Если она не установлена, используется режим консоли.
У пользователя интерактивно запрашиваются необходимые параметры установки, выполняется проверка введенных значений.
Также поддерживается неинтерактивный режим установки с получением параметров из переменных окружения, определенных в env-файле.
Встроенная справка установщика
Usage: evo.platform_<version>.run [OPTIONS] Self-extracting installer for R-Vision EVO Platform, version: 1.0.0. Available main actions: - new installation; - upgrading existing installation; - removing product; - downloading additional packages; - unpacking packages. Options: -c, --check only check if system is ready for installation, don't execute actions -h, --help show usage -V, --version show version -v, --verbose verbose output -d, --debug debug mode -y, --yes don't ask user confirmation --skip-integrity skip integrity check before unpacking Supported variables: - ACCEPTED don't ask user confirmation - ACTION_MODE action from list: install, update, remove, unpack, download, check - VERBOSE verbose output - DEBUG debug mode - SETUP_ROOT_DIR setup root directory, default: /opt - SKIP_INTEGRITY skip integrity check before unpacking Required resources (for installation process only): CPU, cores: 1 RAM, Gb: 2 DISK, Gb: 20 (in /opt/r-vision) INODES: 5000 (in /opt/r-vision)
Порядок работы установщика
Процесс работы установщика состоит из следующих этапов:
-
Подготовка (общий этап для всех продуктов R-Vision, работающих на платформе Kubernetes):
-
Проверка соответствия программным и аппаратным требованиям для работы установщика.
-
Проверка целостности файла установщика.
-
Обнаружение и проверка целостности загружаемых пакетов.
-
Выбор режима работы установщика:
-
Новая установка в существующий кластер Kubernetes.
-
Обновление предыдущей версии.
-
Удаление установленного экземпляра системы.
-
Распаковка имеющихся архивов.
-
Скачивание недостающих пакетов.
-
-
-
Действия, специфичные для выбранного режима работы установщика.
При выборе установки, обновления или удаления выполняется распаковка пакетов в каталог продукта или их удаление из каталога, а управление передается скрипту установщика системы.