Перейти к основному содержимому
Версия: 2.5

Установка

Дистрибутив Памир реализован в виде образа формата 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

При первом входе новый пользователь будет переадресован на окно смены пароля.