Перейти к содержанию

Установка Логин Центра на клиентский сервер

Получение дистрибутива

LC на платформе Docker разворачивается на предварительно установленном Docker. При запуске инсталлятора он получает передаваемые параметры, а также проверяет наличие существующей версий LC если ранее уже производилась установка и выполняет импорт настроек приложения.

Предварительная подготовка

Подключаемся к серверу через ssh протокол.

Переходим в аккаунт root с помощью команды:

sudo su

Затем скачиваем дистрибутив Логин Центра через терминал. Если предоставлена прямая ссылка на nextcloud optimacros то с помощью команды:

wget <direct_link>/download -O ИМЯ_ФАЙЛА.С_РАСШИРЕНИЕМ

clean_install_1

Далее нам необходимо установить на сервере docker. Устанавливаем самую актуальную версию docker, следуя инструкции c официального сайта, для соответствующей Операционной Системы, согласно инструкции по предварительной установке:

Warning

Установка Docker в системе РЭД ОС имеет нюансы. Смотрите подробнее...

Интерактивная установка LC

Далее мы подготавливаем необходимые директории на сервере под Логин Центр.

Warning

Внимание, для установки ЛЦ на один сервер с воркспейсом шаги будут отличаться, необходимо ознакомиться с инструкцией по совместной установке далее по тексту рассматривается инструкция по отдельной установке ЛЦ

Для этого переходим в папку om с помощью команды:

cd /om

Создаём там необходимые директории login-center с помощью команды:

mkdir -p {login-center,login-center-installer}

Warning

С версии f-1.200.40.108 для хранения чувствительных данных используется .env файл

Пример файла:

NATS_USERNAME=user
NATS_PASSWORD=
NATS_SYSTEM_USERNAME=admin
NATS_SYSTEM_PASSWORD=
NATS_URL=nats://nats:4222
INIT_ADMIN_PASSWORD=
INIT_ADMIN_EMAIL=
MONGO_INITDB_ROOT_PASSWORD=
MONGO_INITDB_ROOT_USERNAME=
MONGO_URL="mongodb://user:pass@db:27017"
REDIS_URL="redis://:@redis:6379"
REDIS_HOST=redis
REDIS_PORT=6379

Заполните .env файл вашими значениями для дальнейшей установки с помощью команд

cd login-center
vi .env

Для поля пароля базы данных (mongo.dbPassword), с помощью любого генератора паролей, сгенерируйте надёжный пароль длиной не более 20 символов.

Warning

Важно: пароль не должен содержать символов @:;/% - это приведет к багу установки.

Также необходимо сгенерировать пароли для полей секции nats - password и systemPassword. Их длина должна быть не менее  22 символов.

В случае если .env файл не был создан при запуске инсталятор выдаст следующее сообщение:

[Progress 17%] .env не найден, создаём из шаблона
Файл .env создан: /om/login-center/.env
[Progress 18%] Синхронизация .env с шаблоном
[Progress 18%] Запуск env-importer
env-importer: старт
env-importer: generate URLs
env-importer: завершён
[Progress 19%] Проверка заполненности .env
Переменная не заполнена: NATS_PASSWORD
Переменная не заполнена: NATS_SYSTEM_PASSWORD
Переменная не заполнена: INIT_ADMIN_PASSWORD
Переменная не заполнена: INIT_ADMIN_EMAIL
Переменная не заполнена: MONGO_INITDB_ROOT_PASSWORD
Переменная не заполнена: MONGO_INITDB_ROOT_USERNAME
Заполните все переменные в /om/login-center/.env

Далее необходимо заполнить manifest в нём содержатся настройки приложения

Пример заполнения:

vim /om/login-center/manifest.yml

Описание полей manifest.yml файла

main:
  app: "login-center"
  publicHostname: "lc.mycompany.com"
initialization:
  firstWorkspaceName: "Test"
  firstWorkspaceHostname: "ws.mycompany.com"
  allowUIAddUsers: true
mongo:
  version: "0.0.2"
nginx:
  version: "1.7-1.31.1-alpine3.23"
  workspaceProxyUrl: ""
exportService:
  allowExport: "true"
audit:
  maskUserTokenInAudit: "true"
  concurrentSessionsLimit: "0"
node:
  extraCaCerts: ""
vault:
  secretName: ""
routeType: # ingress | gateway
ingress:
  ingressClassName: ""
gateway:
  name: ""
  namespace: ""

Поле publicHostname в секции main должно быть заполнено значением доменного имени сервера, где будет работать LC вместо "defaulthost.com".

После подготовки манифеста и env файла, нам необходимо положить ssl-сертификаты в директорию /om/login-center/data/nginx/cert, Файлы должны называться bundle.crt и crt.key соответственно. Если у вас уже есть заранее подготовленные сертификаты, переименовываем их и помещаем в нужную директорию. Например:

mv /home/username/company-certificate.crt /om/login-center/data/nginx/cert/bundle.crt
mv /home/username/company-certificate-key.key /om/login-center/data/nginx/cert/crt.key

Либо можно сгенерировать самоподписанные сертификаты:

cd /om/login-center/data/nginx/cert/
openssl req -newkey rsa:2048 -nodes -keyout crt.key -x509 -days 1095 -out bundle.crt

Отвечаем на вопросы, которые задаст программа генерации.

Теперь когда мы подготовили директорию для установки Логин Центра, манифест или env, сертификаты, и скачали дистрибутив, нам необходимо будет установить его. Для этого переходим в директорию со скачанным ранее дистрибутивом, например, с помощью команды:

cd /home/username

Выдаём файлу права с помощью команды

chmod +x login-center-версия.sh

В зависимости от версии ЛЦ, имя инсталлятора может отличаться. Например: installer-f-1.100.0.0.sh или login-center-1.12.sh

Запускаем инсталлятор с помощью команды:

./login-center-версия.sh

Во время установки инсталлятор запросит путь для установки у пользователя интерактивно. По умолчанию путь для установки /opt/om/login-center, мы меняем на ту, которую мы подготовили (/om/login-center).

install_docker_4

Процесс установки в зависимости от версии будет выглядеть подобным образом:

...
[Progress 0%] Запуск...
[Progress 1%] Поиск установленного приложения...
Платформа для установки: docker
Найдено установленное приложение по пути /om/login-center
[Progress 2%] Приложение: Optimacros Login Center
[Progress 3%] Проверка платформы...
[Progress 5%] Проверка сертификатов...
[Progress 6%] Сертификаты найдены
[Progress 7%] Найден манифест приложения в папке установки.
[Progress 8%] Обновление манифеста приложения.
[Progress 15%] Получение значений манифеста
[Progress 16%] Проверка .env файла
[Progress 17%] .env найден
[Progress 18%] Синхронизация .env с шаблоном
[Progress 18%] Запуск env-importer
env-importer: старт
env-importer: generate URLs
env-importer: завершён
[Progress 19%] Проверка заполненности .env
[Progress 20%] Выбрана платформая установки: docker
[Progress 40%] Копируем утилиты...
[Progress 45%] Генерируем и копируем шаблоны...
[Progress 48%] Инициализация установщика Docker...
[Progress 60%] Отчистка возможных старых версий контейнеров Docker...
[Progress 50%] Удаляем старые версии...
[Progress 75%] Установка образов Docker...
[Progress 76%] Импорт архивов образов...
Loaded image: optimacros/mongo:0.0.2
Loaded image: redis:8.8.0-alpine
Loaded image: optimacros/websocket_gateway:0.1.22
Loaded image: optimacros/websocket_gateway:latest
Loaded image: optimacros/http_gateway:0.6.19
Loaded image: optimacros/http_gateway:latest
Loaded image: optimacros/service_monitor:0.1.17
Loaded image: optimacros/service_monitor:latest
Loaded image: optimacros/nats:1.2.5-2.12.6-alpine3.23
Loaded image: optimacros/nats:latest
Loaded image: optimacros/frontend:1.200.dev.108
Loaded image: optimacros/openid:1.200.dev.108
Loaded image: optimacros/access:1.200.dev.108
Loaded image: optimacros/audit:1.200.dev.108
Loaded image: optimacros/resource:1.200.dev.108
...

Затем увидим вот такую консоль, это значит что Логин Центр успешно установлен:

Манифест: ./docker-compose.yml
[+] up 19/19
  Network optimacros                       Created                                                                 0.0s
  Container optimacros_lc_export-service   Started                                                                 1.7s
  Container optimacros_nginx               Started                                                                 2.0s
  Container optimacros_nats                Started                                                                 0.9s
  Container optimacros_lc_authentication   Started                                                                 2.2s
  Container optimacros_lc_workspaceapi     Started                                                                 2.0s
  Container optimacros_lc_frontend_gateway Started                                                                 1.3s
  Container optimacros_lc_access           Started                                                                 1.3s
  Container optimacros_db                  Started                                                                 2.2s
  Container optimacros_lc_resource         Started                                                                 0.8s
  Container optimacros_lc_service_monitor  Started                                                                 0.8s
  Container optimacros_lc_syslog           Started                                                                 1.0s
  Container optimacros_lc_audit            Started                                                                 1.1s
  Container optimacros_lc_service_gateway  Started                                                                 1.1s
  Container optimacros_redis               Started                                                                 2.2s
  Container optimacros_lc_openid           Started                                                                 1.6s
  Container optimacros_lc_core             Started                                                                 0.9s
  Container optimacros_lc_public_gateway   Started                                                                 0.9s
  Container optimacros_lc_frontend         Started                                                                 1.9s
[Progress 99%] Для хранения чувствительных данных используется /om/login-center/.env удалите критичные данные из /om/login-center/manifest.yml
[Progress 100%] Завершено!

Можно проверять результат установки в браузере введя имя хоста нашего логин центра.

Автоматизированная установка LC на платформе Docker

Для автоматизированной установки LC необходимо, чтобы на сервере, где производится установка уже была папка, где будет установлен LC.

В папке установки должна присутствовать вложенная папка data/nginx/cert, в которой должны быть файлы сертификатов bundle.crt и crt.key.

В папке установки должен находиться файл манифеста manifest.yml с заполненными полями.

Сам инсталлятор следует запускать с передачей ему параметров платформы и пути для установки:

./installer.версия.sh -- -p docker -d путь_установки

При этих условиях инсталлятор распакует Docker образы и запустит LC автоматически, не прерываясь и не задавая вопросов.

Возможные ошибки

  1. Инсталлятор выдаёт ошибку со следующим содержимым: install_error_1

    Это говорит о том, что по заданным путям отсутствуют файлы сертификатов. Затем мы переходим в директорию, где лежит Логин Центр

    Необходимо выполнить шаги описанные выше по добавлению сертификатов

  2. Инсталлятор, запущенный в режиме автоматической установки, выдаёт ошибку со следующим содержимым:

    install_error_2

    Значит необходимо заполнить файл manifest.yml следуя шаблону, который описан выше.

  3. Инсталлятор, выдаёт предупреждение, со следующим содержимым: install_error_3

    Возможно была опечатка в пути установки. Либо последний сохранённый путь установки ошибочный. Проверить и/или изменить его можно в файле: /var/lib/login-center/optimacros_lc.

    Варианты решений:

    • Запустить инсталлятор в стандартом режиме и указать путь установки, когда данный путь появится на экране.
    • Очистить или изменить на нужное значение, файл /var/lib/login-center/optimacros_lc