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

Инструкция по установке приложений на уже настроенную VM

Подготовка кластера microk8s

Для работы ELMA Bot нужно включить два аддона: ingress и hostpath-storage. Для их включения выполните команды:

Text Only
microk8s enable ingress
microk8s enable hostpath-storage

Создание TLS-секрета в kubectl

Перед установкой бота в helm-чартах в values.yaml нужно будет указать имя TLS-секрета с файлами сертификатов. Для создания этого секрета выполните команду:

Text Only
kubectl create secret tls elma-bot-tls --cert=elma-bot.crt --key=elma-bot.key

Создание секрета для монтирования в контейнеры

Перед установкой бота в helm-чартах в values.yaml нужно будет указать имя конфигмапа с файлом корневого сертификата, который будет монтироваться в контейнеры для правильной работы сервисов. Для создания этого конфигмапа выполните команду:

Text Only
kubectl create configmap elma-bot-root-ca --from-file=elma-bot-cert.crt=elma-bot-CA.crt

Название конфигмапа указывается в настройке global.tlsCAConfigMapName в чартах бота.

Установка ELMA Bot

Загрузка файлов для оффлайн установки

Перед установкой ELMA Bot в закрытом контуре необходимо сначала выкачать файлы установки для последующего переноса в закрытый контур.

Обратите внимание: Выкачивание всех требуемых для установки файлов может занять много времени и около 20 ГБ места на диске

Для выкачивания файлов выполните команду:

Text Only
1
2
3
curl -fsSL -o charts-offline-bot.sh https://dl.elma365.com/extensions/elma-bot/latest/charts-offline-bot.sh && \
chmod +x charts-offline-bot.sh && \
./charts-offline-bot.sh --pull

Загрузка образов в Harbor

Перед загрузкой образов нужно сначала создать в Harbor проект "elma-bot" и сделать его публичным (свойство public).

Затем можно перейти в папку elma-bot-X.Y.Z, в которую загрузились оффлайн-файлы скриптом и выполнить команду:

Text Only
sudo ./charts-offline-bot.sh --push --uri harbor.[домен]:8443/elma-bot --creds admin:Harbor12345 --tls-verify false

Измените в команде пароль администратора, если меняли его при установке Harbor. Операция потребует еще около 10 ГБ дискового пространства.

Установка баз данных

Для работы ELMA Bot требуется установка баз данных и других стандартных компонентов: mongoDb, redis, rabbitmq, elasticsearch и minio.

Существует три способа их установки:

  1. Самостоятельная установка или использование уже установленных компонентов.

  2. Установка с помощью helm-чартов elma365-dbs. Это удобно, если планируется также установка ELMA 365.

  3. Установка с помощью helm-чартов elma-bot-dbs. В этом случае устанавливаются только компоненты, необходимые для работы ELMA Bot.

В первом случае необходимо прописывать строки подключения и учетные данные сторонних сервисов в чартах elma-bot, во втором и в третьем случаях стандартные значения должны подходить, но их также можно изменить, например, поменять стандартные пароли.

Установка чартов elma-bot-dbs

Перейдите в папку elma-bot-X.Y.Z/charts/elma-bot-dbs и отредактируйте файл values-dbs.yaml:

  • Настройте логины, пароли и размеры хранилищ для сервисов, если нужно
  • Настройте параметры приватного репозитория для загрузки образов
    • В значениях [сервис].image.registry для каждого сервиса укажите адрес проекта в Harbor: harbor.[домен]:8443/elma-bot
  • Если необходимо, укажите адрес хоста в настройках minio (требуется для ELMA 365 и необязательно для работы ELMA Bot)

Важно: Некоторые реализации хранилища S3, например, Yandex Object Storage, требуют уникальных имен бакетов среди всех пользователей хранилища. Поэтому рекомендуется для имен бакетов в настройке minio.defaultBuckets добавлять уникальный префикс, например company-name-product-name-.

Для установки выполните команду:

Text Only
helm upgrade --install elma-bot-dbs ./elma-bot-dbs -f values-dbs.yaml --timeout=30m --wait

Установка чартов elma-bot

Перейдите в папку elma-bot-X.Y.Z/charts/elma-bot и отредактируйте файл values.yaml:

  • Если планируется установка ELMA 365, заполните найстройки:
    • global.elma365Integration
    • в настройке elma365TlsSecret укажите elma-bot-tls (или другое имя, если у ELMA 365 отдельный сертификат)
    • в настройке global.hydra.enabled должно быть true
  • Для установки в закрытом контуре установите значение global.useInPrivateNetwork в true
    • И укажите полный путь к папке elma-bot-X.Y.Z/data в настройке global.storage.offlineDataPath
  • Если необходимо монтировать файл сертификата в качестве доверенного, укажите название конфигмапа с сертификатом в настройке global.tlsCAConfigMapName (как создать конфигмап см. выше)
  • Укажите имя хоста в настройке global.host
  • Укажите полный путь к локальному репозиторию Harbor в настройке global.image.repository. Путь должен заканчиваться на crph9k6gr6scu5er72ha, например: harbor.[домен]:8443/elma-bot/crph9k6gr6scu5er72ha
  • Замените имя секрета в настройке global.ingress.existingTLSSecret на elma-bot-tls
  • При необходимости использования режима подпутей вместо поддоменов, замените значение настройки global.routing.mode с DOMAIN на PATH (подробнее в README.md в папке с чартами)
  • При необходимости замените пароли пользователей по умолчанию в настройке global.defaultUserPasswords

Важно: Некоторые реализации хранилища S3, например, Yandex Object Storage, требуют уникальных имен бакетов среди всех пользователей хранилища. Поэтому рекомендуется для имен бакетов в настройке db.s3.buckets добавлять уникальный префикс, например company-name-product-name-.

Для установки выполните команду:

Text Only
helm upgrade --install elma-bot . -f values.yaml --timeout=30m --wait

Установка ELMA 365

Установка ELMA 365 производится в соответствии с документацией ELMA 365, например https://elma365.com/ru/help/platform/downloadin-images-elma365.html

Не забудьте внести изменения в чарты elma365 и elma365-dbs, необходимые для включения интеграции с ELMA Bot.