Установка
Дистрибутив Памир реализован в виде образа формата ISO 9660.
Для установки Памир данный образ необходимо смонтировать любым доступным способом (через системные/сторонние приложения). В корне образа должны присутствовать 3 директории:
- server/ (или probe/ в дистрибутиве пробы Памир)
- deps/
- install/
Исполняемый файл инсталлятора pamir-installer расположен в корне образа ISO.
Конфигурационные файлы и ресурсы установки находятся в поддиректории install/.
Для установки необходимо вызвать ./pamir-installer install и следовать указаниям
инсталлятора. Инсталлятор автоматически произведет все необходимые проверки и
загрузит требуемые образы контейнеров, после чего запустит сервисы приложения.
Порядок установки
1. Монтирование образа ISO
sudo mount -o loop ./pamir-1.0.0-a3c92513-1738699172-astra1.7.iso /media/cdrom
2. Запуск установочного исполняемого файла
cd /media/cdrom
./pamir-installer install
Инсталлятор осуществляет проверку дистрибутива операционной системы, версию ОС, наличие Docker Engine, а также при необходимости предложит мигрировать каталог с данными Docker Engine на другой диск.
В случае, если Памир уже установлен, инсталлятор определяет это автоматически и выполняет обновление: обновляет только изменившиеся образы контейнеров, применяет миграции базы данных и перезапускает сервисы.
Команды инсталлятора
Инсталлятор принимает следующие команды:
install— установка или обновление приложения. Инсталлятор автоматически определяет, выполняется ли первичная установка или обновление существующей инсталляции. При обновлении последовательно выполняются: остановка сервисов, применение миграций БД, загрузка изменившихся образов контейнеров, запуск приложения и очистка старых образов.uninstall— удаление приложения. Останавливает и удаляет контейнеры и образы. Тома с данными и директория приложения не удаляются.uninstall --purge— полное удаление приложения, включая тома с данными, образы контейнеров и директорию приложения. Операция необратима.migrate— ручное применение миграций базы данных. Останавливает приложение, применяет миграции и запускает приложение снова.
Общие флаги инсталлятора:
--log-level <LEVEL>— уровень детализации логов (DEBUG,INFO,WARN,ERROR). По умолчаниюINFO.--noninteractive— отключает интерактивные запросы; использует значения из переменных окружения или действия по умолчанию.--no-color— отключает цветной вывод в терминале.
Флаги команды install:
--force— принудительно перезагружает все образы контейнеров, даже если они не изменились.--skip-image-load— пропускает загрузку образов (полезно, если образы уже загружены).--skip-migrations— пропускает применение миграций БД.--profiles <профили>— устанавливает только сервисы, соответствующие указанным профилям (через запятую). Список доступных профилей приведён в разделе Изменение набора запускаемых сервисов.--services <сервисы>— устанавливает только перечисленные сервисы по имени (через запятую). Может комбинироваться с--profiles.
Выборочная установка компонентов
По умолчанию инсталлятор устанавливает полный набор компонентов Памир. При необходимости можно ограничить установку конкретными профилями или сервисами — например, развернуть только backend без API Gateway и фронтенда, или только отдельные сервисы.
# Установить только сервисы профилей backend и db
./pamir-installer install --profiles backend,db
# Установить конкретные сервисы по имени
./pamir-installer install --services auth,monitoring,database
# Комбинирование: профиль и дополнительный сервис
./pamir-installer install --profiles backend --services opensearch
Сервисы backend (auth, docker-tool, license, monitoring, notification, srm, task-tool) в настоящий момент не могут быть запущены на разных хостах.
При ограниченной установке инсталлятор:
- загружает только образы контейнеров для выбранных сервисов;
- добавляет управляемый блок в
docker-compose.additional.yml, отключая неактивные сервисы черезprofiles: !override [never]— пользовательский контент файла вне этого блока не затрагивается; - применяет миграции баз данных только если среди выбранных сервисов есть сервисы с миграциями;
- пропускает проверку целостности образов контейнеров, принадлежащих исключительно отключённым сервисам.
Сохранение выборки и обновление
Для обновления Памир до полного набора компонентов после выборочной установки необходимо удалить файл конфигурации инсталлятора, который расположен в директории приложения с именем .pamir-installer-config (например, $HOME/.pamir/.pamir-installer-config), и запустить установку без указания выборочных флагов.
rm -f $HOME/.pamir/.pamir-installer-config
cd /media/cdrom0
./pamir-installer install
Выбранный набор сохраняется в файле .pamir-installer-config в каталоге приложения.
При последующих обновлениях без явных флагов --profiles / --services инсталлятор
автоматически использует сохранённую конфигурацию. Если файл конфигурации отсутствует,
выполняется полная установка: управляемый блок в docker-compose.additional.yml удаляется.
При установке с флагом --profiles утилита pamirctl автоматически получает конфигурационный
файл ~/.pamirctl.yml с параметром app_profiles, что позволяет сразу запускать правильный
набор сервисов без ручной настройки.
Если в docker-compose.additional.yml уже определён сервис, который нужно отключить,
инсталлятор выдаст предупреждение и пропустит его. Для ручного отключения такого сервиса
добавьте в пользовательскую секцию файла:
services:
имя-сервиса:
profiles: !override [never]
Тем же способом отключается штатный контейнер СУБД при переводе системы на внешний сервер PostgreSQL — процедура переезда описана в разделе Внешний сервер PostgreSQL.
Контроль целостности инсталлятора
В ходе установки и обновления инсталлятор автоматически проверяет целостность конфигурационных файлов и образов контейнеров на носителе. Эталонные контрольные суммы встроены в бинарник инсталлятора при сборке.
Поведение при нарушении целостности:
- Образы контейнеров — несоответствие контрольной суммы блокирует установку.
- Конфигурационные файлы — несоответствие контрольной суммы установку не блокирует,
но фиксируется в лог с уровнем
WARN.
При обновлении также фиксируются факты замены конфигурационных файлов и образов контейнеров (с указанием старого и нового значений).
Лог-файл инсталлятора создаётся при каждом запуске:
/var/log/pamir-installer-YYYY-MM-DD-HH-MM-SS.log— при запуске от суперпользователя;~/.pamir-installer-YYYY-MM-DD-HH-MM-SS.log— при запуске от обычного пользователя.
Лог полезен для аудита установки и обновлений, а также для диагностики ошибок, связанных с целостностью дистрибутива.
Настройка публичного адреса API системы
Переменная PUBLIC_API_URL — это публичный адрес который будет использоваться для формирования callback маршрутов.
Порядок настройки Env переменных.
Используется когда система должна сообщить внешнему миру, как к ней обратиться:
Установка docker-compose (опционально)
Для штатной работы Памир самостоятельная установка docker-compose не требуется —
всеми сервисами управляет утилита pamirctl. Однако наличие docker-compose в системе
полезно для ручного администрирования: удобного просмотра логов контейнеров, траблшутинга,
а также повторного прогона миграций БД
без переустановки или обновления приложения.
docker-compose (docker compose plugin версии не ниже 2.27.0) поставляется в комплекте
с дистрибутивом и находится в ISO-образе сервера по пути deps/docker-compose.
Чтобы установить его вручную, скопируйте плагин из дистрибутива:
- в директорию плагинов Docker CLI
/usr/local/lib/docker/cli-plugins/— чтобы он вызывался какdocker compose; - в директорию из
PATH(например,/usr/local/bin/) — чтобы он вызывался как отдельная командаdocker-compose.
# из корня смонтированного ISO-образа
# 1) как плагин Docker CLI (docker compose)
sudo install -Dm755 deps/docker-compose /usr/local/lib/docker/cli-plugins/docker-compose
# 2) как отдельная команда в PATH (docker-compose)
sudo install -Dm755 deps/docker-compose /usr/local/bin/docker-compose
Если в системе уже присутствует более новая версия docker-compose, устанавливать плагин
из дистрибутива не следует — используйте имеющийся.
Учётная запись по умолчанию
При первом запуске приложения существует учетная запись суперпользователя со следующими данными:
Логин: admin
Пароль: admin
При первом входе новый пользователь будет переадресован на окно смены пароля.