Установка Логин Центра с помощью helm¶
Общая информация¶
Warning
Установка с помощью helm поддерживается с версии s-1.200.27.28 и
d-1.300.0.104 для версий 1.200 и 1.300 соответственно.
Info
- путь до директории с установщиком LC - путь до директории с манифестом
LC на платформе helm разворачивается на предварительно установленном
k3s. При запуске инсталлятора он получает передаваемые
параметры из манифеста передает их в values.yaml и пытается установить chart в
текущий контекст по пути /etc/rancher/k3s/k3s.yaml
Предварительная подготовка¶
Подключаемся к серверу через ssh протокол.
Переходим в аккаунт root с помощью команды
Затем скачиваем дистрибутив Логин Центра через терминал, если предоставлена прямая ссылка на nextcloud optimacros то с помощью команды
mkdir -p <path_to_lc_installer>
cd <path_to_lc_installer>
wget <direct_link>/download -O ИМЯ_ФАЙЛА.С_РАСШИРЕНИЕМ`
Сертификаты¶
Файлы должны называться bundle.crt и crt.key соответственно.
Подготовленные сертификаты¶
Если у вас уже есть заранее подготовленные сертификаты, переименуйте их и переместите в нужную директорию, например:
mv /home/username/company-certificate.crt <path_to_lc>/data/nginx/cert/bundle.crt
mv /home/username/company-certificate-key.key <path_to_lc>/data/nginx/cert/crt.key
Генерация самоподписанных сертификатов¶
Либо можно сгенерировать самоподписанные сертификаты:
cd <path_to_lc>/data/nginx/cert/
openssl req -newkey rsa:2048 -nodes -keyout crt.key -x509 -days 1095 -out bundle.crt
Ответьте на вопросы, которые задаст программа генерации
Установка вспомогательного ПО helm и k3s¶
Установка проводилась на ubuntu 24.04
k3s.
Подготовка манифеста и .env файла¶
Warning
С версии f-1.200.40.108 для хранения чувствительных данных используется .env файл
Пример файла :
NATS_USERNAME=user
NATS_PASSWORD=
NATS_SYSTEM_USERNAME=admin
NATS_SYSTEM_PASSWORD=
NATS_URL="nats://login-center-nats-srv.<ns-name>.svc.cluster.local:34222"
INIT_ADMIN_PASSWORD=
INIT_ADMIN_EMAIL=
MONGO_INITDB_ROOT_PASSWORD=
MONGO_INITDB_ROOT_USERNAME=
MONGO_URL="mongodb://user:pass@login-center-db-srv.<ns-name>.svc.cluster.local:32766"
REDIS_URL="redis://:@login-center-redis-srv.<ns-name>.svc.cluster.local:6379"
REDIS_HOST=redis
REDIS_PORT=6379
Для поля пароля базы данных (mongo.dbPassword), с помощью любого генератора паролей, сгенерируйте надёжный пароль длиной не более 20 символов.
Warning
Важно: пароль не должен содержать символов @:;/% - это приведет к багу установки.
Также необходимо сгенерировать пароли для полей секции nats - password и systemPassword. Их длина должна быть не менее 22 символов.
При отсутствие .env файла будет создан стандартный .env с пустыми значениям. Потребуется его заполнение и повторный запуск инсталятора.
Пример работы инсталятора без .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
Так же поддерживается хранение чувствительных данных через secret generic либо поставка секрета например через vault c нужными значениями.
kubectl create secret generic <имя секрета> -n lc
--from-literal=NATS_USERNAME=user
--from-literal=NATS_SYSTEM_USERNAME=admin
--from-literal=NATS_PASSWORD=
--from-literal=NATS_SYSTEM_PASSWORD=
--from-literal=MONGO_URL="mongodb://user:pass@login-center-db-srv.<ns-name>.svc.cluster.local:32766"
--from-literal=MONGO_DB=logincenter
--from-literal=MONGO_INITDB_ROOT_PASSWORD=user
--from-literal=MONGO_INITDB_ROOT_USERNAME=pass
--from-literal=INIT_ADMIN_PASSWORD=
--from-literal=NATS_URL="nats://login-center-nats-srv.<ns-name>.svc.cluster.local:34222"
--from-literal=REDIS_URL="redis://:@login-center-redis-srv.<ns-name>.svc.cluster.local:6379"
в манифесте передать имя секрета который указан выше
Согласно документации Описание полей 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: ""
namespace: <ns-name>
nodeName: <k3s_instance_hostname>
Для поля пароля базы данных (mongo.dbPassword), с помощью любого генератора паролей, сгенерируйте надёжный пароль длиной не более 20 символов.
Warning
Важно: пароль не должен содержать символов @:;/% - это приведет к багу установки.
Также необходимо сгенерировать пароли для полей секции nats - password и
systemPassword. Их длина должна быть не менее 22 символов.
Поле publicHostname в секции main должно быть заполнено значением доменного имени сервера, где будет работать LC вместо "defaulthost.com".
Установка¶
Создайте namespace
Warning
Обязательное условие иначе установка закончится с ошибкой
Теперь когда есть подготовленные манифест, сертификаты и дистрибутив, перейдите к установке LC. Для этого перейдите в директорию со скачанным ранее дистрибутивом, например, с помощью команды:
Выдайте файлу права на исполнение с помощью команды
Запустите инсталлятор с помощью команды
При работе инсталятор вывод будет следующий:
...
Uncompressing Optimacros Login Center 100%
Выбранная платформа: helm
Выбрано пространство имен: <ns-name>
Выбрано имя ноды кластера: <k3s_instance_hostname>
[Progress 0%] Запуск...
[Progress 1%] Поиск установленного приложения...
Платформа для установки: helm
Найдено установленное приложение по пути /om/login-center
[Progress 2%] Приложение: Optimacros Login Center
[Progress 3%] Проверка платформы...
[Progress 5%] Проверка сертификатов...
[Progress 6%] Сертификаты найдены
Исполнение скрипта платформы уровня 1
Определяем пространство имен приложения...
Обновляем значение поля namespace на lc в файле манифеста.
Определяем ноду для работы приложения...
Обновляем значение поля nodeName на <k3s_instance_hostname> в файле манифеста.
[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 пропущена (helm mode)
[Progress 20%] Выбрана платформая установки: helm
[Progress 40%] Копируем утилиты...
[Progress 45%] Генерируем и копируем шаблоны...
Исполнение скрипта платформы уровня 2
Определяем тип маршрутизации приложения...
Обнаружен Ingress Controller
Тип маршрутизации: ingress
Определяем Ingress-контроллер приложения...
Найден ingressClass: traefik
Используем ingressClass: traefik
Обновляем values.yaml helmchart...
...
После установки проверьте запущенные поды командой
Пример вывода команды (список подов и кол-во может отличаться в зависимости от версии):
lc1 login-center-access-586758889d-rlpzs 1/1 Running 0 4d23h
lc1 login-center-audit-756dbb5c7d-cmtfn 1/1 Running 0 4d23h
lc1 login-center-authentication-598988cbf8-k4dnf 1/1 Running 0 4d23h
lc1 login-center-core-68845f679c-7c5zv 1/1 Running 0 4d23h
lc1 login-center-db-78488d7bb-4vv7p 1/1 Running 0 4d23h
lc1 login-center-export-service-5978cd9545-zdjfk 1/1 Running 0 4d23h
lc1 login-center-frontend-c8b6bc87-bbxvs 1/1 Running 1 (4d23h ago) 4d23h
lc1 login-center-frontend-gateway-8496cfc89-z5xs6 1/1 Running 0 4d23h
lc1 login-center-nats-f8947fd9c-47lrr 1/1 Running 0 4d23h
lc1 login-center-nginx-649fd5c77-jgd5r 1/1 Running 0 4d23h
lc1 login-center-openid-cc887677-tldcm 1/1 Running 1 (4d23h ago) 4d23h
lc1 login-center-postgres-5f44cd58d6-42b7j 1/1 Running 0 4d23h
lc1 login-center-public-gateway-7858bc548b-flj7p 1/1 Running 1 (4d23h ago) 4d23h
lc1 login-center-redis-74c5cdd788-twhgz 1/1 Running 0 4d23h
lc1 login-center-resource-7bbb5448c4-mnlcv 1/1 Running 0 4d23h
lc1 login-center-rolemapper-6c74458c98-qp5t7 1/1 Running 0 4d23h
lc1 login-center-service-gateway-ff76bbb44-xj4nj 1/1 Running 0 4d23h
lc1 login-center-service-monitor-5b64986b94-mdb8f 1/1 Running 0 4d23h
lc1 login-center-syslog-858f9469b7-zd7hq 1/1 Running 0 4d23h
lc1 login-center-workspaceapi-cb95f8ccd-6bv6b 1/1 Running 0 4d23h
Можно проверить результат установки в браузере введя имя логин центра
