Установка YuChat
Предварительна я настройка
Для корректной работы сервера выполните предварительную настройку.
Внимание! Установку YuChat должен осуществлять пользователь Linux с опытом администрирования. Предварительная настройка зависит от ОС.
ОС Ubuntu/Debian
Для предварительной настройки при использовании ОС Ubuntu/Debian:
- Установите ОС Ubuntu 22.04 LTS или Ubuntu 20.04 LTS. Воспользуйтесь официальным источником для установки дистрибутива: https://ubuntu.com/download/server
Внимание! Во время установки ОС выделите под корневой «/» раздел 32 Гб, под SWAP раздел выделить 8 Гб, оставшееся место выделите под раздел «/var/lib/docker».
- Удалите пакеты snapd и ufw с помощью команды: apt autoremove --purge snapd ufw
- Установите программное обеспечение 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
-
Установите дополнительное ПО (см. ниже).
Для установки дополнительного ПО:
-
Выполните установку 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
- Укажите параметры хранения журналов в Docker в каталоге /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "1g"
}
}
Выполните:
systemctl restart docker
ОС Astra Linux Орел
Для предварительной настройки при использовании ОС Astra Linux Орел:
- Установите ОС Astra Linux Орел. Во время установки на шаге выбора «Выбор программного обеспечения» выделите Базовые средства, Средства удаленного доступа SSH.
- Установите Docker помощью команды:
apt install docker.io
-
Установите дополнительное ПО (см. ниже).
Выполните установку NTP-сервера с помощью команды:
apt install chrony
Если имеются источники точного времени внутри компании, в файл /etc/chrony/chrony.conf внесите серверы NTP.
Удалите или закомментируйте строку pool и укажите свои сервера.
Пример:
server ntp1.local
server ntp2.local
server ntp3.local
Перезапустите службу для применения изменений:
systemctl restart chrony
Установка комплекса
Все описанные действия должны выполняться на узле-менеджере кластера в случае если узлов несколько и на самом узле если он один.
- Разархивируйте комплект поставки (yuchat.zip)
unzip yuchat.zip
- Используйте переданные разработчиком учетные данные для входа в регистр образов.
docker login \-u Login \-p Password registry.yuchat.ai
- Отредактируйте конфигурационные файлы сервисов:
- В папке configuration находятся конфигурационные файлы под каждый из сервисов. В них можно настроить конфигурацию под свое окружение, но желательно придерживаться дефолтной конфигурации.
- В файлах в папке env заполните все переменные окружения соответствующими значениями из предустановленного ПО (PostgreSQL, Redis, RabbitMQ).
- Добавьте роли на узлы
Роль 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
- Переведите один из узлов (или единственный) в режим swarm:
docker swarm init
- Запустите размещение комплекса на узлах (узле):
docker stack deploy \-c stack.yml yuchat
- Проверьте состояние устан овки (она может занимать до 5 минут):
docker stack ps
В случае когда один или несколько контейнеров имеют статус Error, обратитесь к разработчику для диагностики.