Перейти к основному содержимому

Установка YuChat

Предварительная настройка

Для корректной работы сервера выполните предварительную настройку.

Внимание! Установку YuChat должен осуществлять пользователь Linux с опытом администрирования. Предварительная настройка зависит от ОС.

ОС Ubuntu/Debian

Для предварительной настройки при использовании ОС Ubuntu/Debian:

  1. Установите ОС Ubuntu 22.04 LTS или Ubuntu 20.04 LTS. Воспользуйтесь официальным источником для установки дистрибутива: https://ubuntu.com/download/server

Внимание! Во время установки ОС выделите под корневой «/» раздел 32 Гб, под SWAP раздел выделить 8 Гб, оставшееся место выделите под раздел «/var/lib/docker».

  1. Удалите пакеты snapd и ufw с помощью команды: apt autoremove --purge snapd ufw
  2. Установите программное обеспечение Docker. Для установки воспользуйтесь официальным источником: https://docs.docker.com/install/linux/docker-ce/ubuntu/

Внимание! Если ПO Docker распаковано из пакета snapd, удалите его и выполните установку из официального источника. Пример кода для установки Docker:

apt-get remove docker docker-engine docker.io containerd runc
apt-get update
apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --
dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \ "deb [arch=$(dpkg --print-architecture)
signedby=/usr/share/keyrings/docker-archive-keyring.gpg]
https://download.docker.com/linux/ubuntu \ $(lsb_release -cs)
stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io
  1. Установите дополнительное ПО (см. ниже).

    Для установки дополнительного ПО:

  2. Выполните установку NTP-сервера с помощью команды:

apt install chrony

Если имеются источники точного времени внутри компании, в файл /etc/chrony/chrony.conf внесите серверы NTP в виде:

server ntp1.local
server ntp2.local
server ntp3.local

Пример кода:

systemctl enable chrony
systemctl restart chrony

Для проверки подключения к NTP-серверам используйте следующую команду:

chronyc sources -v
  1. Укажите параметры хранения журналов в Docker в каталоге /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "1g"
}
}

Выполните:

systemctl restart docker

ОС Astra Linux Орел

Для предварительной настройки при использовании ОС Astra Linux Орел:

  1. Установите ОС Astra Linux Орел. Во время установки на шаге выбора «Выбор программного обеспечения» выделите Базовые средства, Средства удаленного доступа SSH.
  2. Установите Docker помощью команды:
apt install docker.io
  1. Установите дополнительное ПО (см. ниже).

    Выполните установку NTP-сервера с помощью команды:

apt install chrony

Если имеются источники точного времени внутри компании, в файл /etc/chrony/chrony.conf внесите серверы NTP.

Удалите или закомментируйте строку pool и укажите свои сервера.

Пример:

server ntp1.local
server ntp2.local
server ntp3.local

Перезапустите службу для применения изменений:

systemctl restart chrony

Установка комплекса

Все описанные действия должны выполняться на узле-менеджере кластера в случае если узлов несколько и на самом узле если он один.

  1. Разархивируйте комплект поставки (yuchat.zip)
unzip yuchat.zip
  1. Используйте переданные разработчиком учетные данные для входа в регистр образов.
docker login \-u Login \-p Password registry.yuchat.ai
  1. Отредактируйте конфигурационные файлы сервисов:
  • В папке configuration находятся конфигурационные файлы под каждый из сервисов. В них можно настроить конфигурацию под свое окружение, но желательно придерживаться дефолтной конфигурации.
  • В файлах в папке env заполните все переменные окружения соответствующими значениями из предустановленного ПО (PostgreSQL, Redis, RabbitMQ).
  1. Добавьте роли на узлы
    Роль main указывается на узле, куда будут установлены основные сервисы API:
docker node update \--label-add yuchat.role.main=true

Роль media указывается на узле, куда будут установлены сервисы для обеспечения видео- и аудиозвонков:

docker node update \--label-add yuchat.role.media=true

Роль storage указывается на узле, куда будут установлены postgresql и minio:

docker node update \--label-add yuchat.role.storage=true

Роль exchange указывается на узле, куда будут установлены redis и rabbitmq:

docker node update \--label-add yuchat.role.exchange=true
  1. Переведите один из узлов (или единственный) в режим swarm:
docker swarm init
  1. Запустите размещение комплекса на узлах (узле):
docker stack deploy \-c stack.yml yuchat
  1. Проверьте состояние установки (она может занимать до 5 минут):
docker stack ps

В случае когда один или несколько контейнеров имеют статус Error, обратитесь к разработчику для диагностики.