Установка коробочной версии на одной машине (single-node deployment)

Введение

Запуск сервиса на одной виртуальной машине это самый простой способ развертывания приложения. Так же такой подход является самым простым для поддержки, но имеет повышенный риск отказа сервиса (при недоступности сервера по техническим причинам, проведения обновлений и других причинах).

Далее приведен пример взаимодействия компонентов при работе с коробочной версией

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

Минимальные системные требования

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

  • одна или несколько deb/rpm совместимая машина на Linux OS, мы рекомендуем ubuntu 20.04

  • 8+ GB RAM на каждую машину

  • 4+ CPU для каждой машины

  • 60+ GB свободного места на диске

  • Для запуска необходимо, чтобы у машин был выход в интернет. Минимальный набор доступных внешних сервисов для работы системы будет рассмотрен далее в этой статье (в разделе FAQ)

  • У пользователя, под которым запускается установка приложения, должен быть sudo доступ

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

Какие шаги нужно будет предпринять?

Установку и внедрение можно разбить на несколько этапов:

  1. Подготовка к установке и установка Qolio. Эту работу чаще всего может выполнить системный администратор организации, которая устанавливает приложение

  2. Обеспечение интеграций с сервисами компании (телефонией, тикетными системами и другими). На этом шаге необходимо участие администратора системы со стороны организации, например администратор Amocrm или администратор Oktell.

  3. Дальнейшая эксплуатация системы. На этом этапе мы помогаем вам настроить Qolio, получать новые версии приложения и обеспечиваем тех. поддержку.

На всех этапах компания Qolio предоставляет техническую поддержку и консультации в требуемом объеме.

1. Подготовка к установке и установка Qolio

Эту работу чаще всего может выполнить системный администратор организации, которая устанавливает приложение Qolio. Для установки требуется сделать настройки инфраструктуры, описанные далее:

  1. Компания Qolio передает Клиенту необходимые для установки ресурсы:

    • Ключ доступа к docker репозиторию с образами программы

    • Лицензионный код

    • email и пароль админа, с помощью которого можно будет войти в систему (вы можете сообщить нам какой email хотите использовать для первого админского доступа Qolio, далее этот email и пароль можно будет сменить только через обращение в тех. поддержку)

  2. Админ со стороны Клиента создает виртуальную машину и настраивает ее доступ в сеть и интернет. Минимальный набор ресурсов необходимых для установки описан далее.

  3. Админ создает 2 доменных имени внутри сети - один для фронтенда Qolio, другой - для бэкенда. Фронтенд это домен через который будет осуществляться доступ сотрудников ОКК, а бэкенд это API сервис, на котором размещены сервисы для обеспечения работы программы. Например, это могут быть следующие варианты: qolio.example.io для доступа сотрудников и qolio-api.example.io для API сервера.

  4. (необязательно) Админ выпускает ssl сертификаты для доменов (для фронтенда и бэкенда). Эти сертификаты понадобятся далее при установке. Поддерживаются ssl_protocols TLSv1.2 TLSv1.3.

  5. Админу необходимо запустить базу данных PostgreSQL с версией 12+ в сети организации и создать базу данных и пользователя для работы Qolio. Далее следуют важные замечания по настройке базы:

    1. Пользователь базы данных, через которого подключается приложение Qolio, должен обладать правами на создание базы данных. Если в PostgreSQL уже есть база данных и ее создание не нужно, нужно проставить в config.yml настройку create_database: false

    2. Обязательный компонент PostgreSQL - postgresql12-contrib и расширение pgcrypto

    3. Если база находится на одной и той же виртуальной машине с qolio, нужно указать network_mode: host в config.yml

  6. (необязательно) Создать пользователя для доступа к SMTP серверу, который будет использоваться для рассылки оповещений.

  7. Админ заполняет конфигурационный файл на виртуальной машине, предназначенной для работы Qolio и запускает скрипты установки приложения. Процесс Установки рассмотрен детальнее далее в этой статье.

2. Обеспечение интеграций с сервисами компании

Для этого шага понадобится администратор телефонии, тикетной системы организации или другой системы с которой работает организация. Есть 2 способа передавать данные о коммуникациях организации в Qolio:

  1. Передавать данные из телефонии/тикетной системы напрямую через API Qolio. В этом случае интеграция реализуется специалистами со стороны организации, которая обслуживает телефонию/тикетную системы.

  2. Так же есть возможность подключить готовые интеграции с SaaS системами, такими как Zendesk, Kayako, Bitrix, Infinity X и другие. Для получения списка таких интеграций проконсультируйтесь с поддержкой.

3. Эксплуатация системы

На этом этапе:

  1. Customer Success отдел Qolio помогает сконфигурировать систему в соответсвии с требованиями бизнес процессов организации. Для этого требуется взаимодействие ОКК организации и Qolio Customer Success отдела

  2. Мы помогаем вам получить обновления версий Qolio. Qolio оповещает через email рассылку о выходе новых версий. Для обновления версии приложения нужен системный администратор со стороны организации с доступом к виртуальной машине c Qolio. Как это делать рассмотрено в разделе FAQ.

  3. Техническая поддержка осуществляется через чат на сайте qolio.io и доступна в рабочее время компании Qolio.

Процесс установки в деталях

Для установки на Ubuntu 18.04 или более поздние версии можно использовать стандартный инсталятор.

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

  • файл с ключом доступа к docker registry (key.json), этот файл предоставляется со стороны компании DealApp по запросу

  • код лицензии (license_code), который так же предоставляется со стороны компании DealApp по запросу

  • файл конфигурации (config.yml) с настройками лицензии и доступа к

Настройка

Вся настройка установки происходит через YML файл конфигурации

Создание файла конфигурации

Файл конфигурации должен быть в формате YAML со следующей структурой:

---
version: release-1.29.1
backend_url: "https://api.example.com"
frontend_url: "https://app.example.com"
database_host: db.example.com
database_name: dealapp_example_db
database_user: postgres
database_password: example
database_port: 5432
smtp_address: mail.example.com
smtp_domain: example.com
smtp_username: email_user
smtp_password: example_password
default_email: no-reply@example.com
license_code: example_license_code
create_database: true
support_chart: true
# common_ssl_certificate_path: ..
# common_ssl_certificate_key_path: ..
# http_proxy: ...
# https_proxy: ...

Поля конфигурации

version

Версия Qolio (текущая активная release-1.25.0), о появлении новых версий мы оповещаем в рассылке и в документации

license_code

Лицензионный код, который предоставляется со стороны DealApp, с помощью него осуществляется предварительная конфигурация системы

backend_url

Адрес, по которому будет доступен API сервер (обратите внимание, что backend_url и frontend_url должны быть разными значениями)

frontend_url

Адрес, по которому доступен фронтенд (обратите внимание, что backend_url и frontend_url должны быть разными значениями)

database_host

Адрес хоста с базой данных Postgresql 12

database_name

Имя базы данных (ее можно не создавать, DealApp сам создаст и настроит ее при первом старте)

database_user

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

database_password

Пароль пользователя для подключения к базе данных

database_port

Порт для подключения к базе данных

smtp_address

Адрес SMTP сервера, который используется для рассылки уведомлений

smtp_domain

Домен, который используется для рассылки

smtp_username

Имя пользователя для подключения к SMTP серверу. Если не указывать smtp_username и smtp_password, то подключение будет производиться без авторизации

smtp_password

Пароль для подключения к SMTP серверу, используется вместе с smtp_username

smtp_port

Порт для подключения к почтовому серверу. По умолчанию это 465.

default_email

email, который будет использоваться для рассылки уведомлений

common_ssl_certificate_path

Сертификат для доменов frontend_url и backend_url (файл certificate.crt), который будет использоваться nginx (поддерживаются ssl_protocols TLSv1.2 TLSv1.3)

common_ssl_certificate_key_path

Приватный ключ сертификата (файл certificate.key), который будет использоваться nginx

create_database

Конфигурационная опция, которая говорит о том, будет ли создаваться база или нет

http_proxy / https_proxy

Поля для настройки http proxy, ожидается, что оба этих значения будут заполнены

ldap_enabled

метка о том, что установка работает LDAP

network_mode

установите в "host", чтобы докер контейнеры использовали сеть инстанса, на котором они запущены. это даст возможность создать базу и подключиться базу данных на том же хосте что и qolio

support_chart

добавить в приложении чат поддержки (который работает через intercom.com)

🚨 Обратите внимание, что backend_url и frontend_url должны быть разными значениями.

Настройка подключения к почтовому сервису

Если вы хотите запустить подключение к почтовому сервису без авторизации, установите smtp_port в 25 (или ваше значение) и не указывайте smtp_username и smtp_password.

Запуск инсталятора

Инсталятор выполняет следующие действия:

  • Установка пакетов зависимостей: docker, docker-compose, nginx, ruby и yc cli

  • Логин docker в Docker Registry с помощью ключа доступа (key.json)

  • Настройка docker compose и nginx исходя из предоставленного конфига (config.yml). Конфигурация docker-compose.yml сохраняется в папку /etc/dealapp

  • Установка systemd сервис для DealApp

  • Запуск необходимых сервисов в Ubuntu

После того, как подготовлены ключ доступа к Docker Registry (demo-registry-key.json) и файл конфигурации (config.yml) готовы, можно приступать к установке. Установка запускается одной командой, в которой передается путь к файлам конфигурации и ключу от Docker Registry:

Значения параметров:

  • --config-file - путь к файлу конфигурации

  • --registry-key - путь к файлу с ключом для доступа к Docker Registry

Дальнейшая работа с сервисом Qolio

Проверить работу сервиса можно с помощью команды sudo service dealapp status

$ sudo service dealapp status
 dealapp.service - Run DealApp Docker Compose
   Loaded: loaded (/etc/systemd/system/dealapp.service; enabled; vendor preset: enabled)
   Active: active (exited) since Fri 2020-07-24 11:04:12 UTC; 33min ago
 Main PID: 1289 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 2339)
   CGroup: /system.slice/dealapp.service

Jul 24 11:04:12 box-tester systemd[1]: Started Run DealApp Docker Compose.
Jul 24 11:04:20 box-tester docker-compose[1289]: Creating network "dealapp_default" with the default driver
Jul 24 11:04:21 box-tester docker-compose[1289]: Creating dealapp_frontend_1 ...
Jul 24 11:04:21 box-tester docker-compose[1289]: Creating dealapp_redis_1    ...
Jul 24 11:04:25 box-tester docker-compose[1289]: [131B blob data]
Jul 24 11:04:25 box-tester docker-compose[1289]: Creating dealapp_api_1      ...
Jul 24 11:04:29 box-tester docker-compose[1289]: [100B blob data]

Перезапустить сервис можно с помощью команды sudo service dealapp restart

Логи сервиса можно получить с помощью команды sudo docker-compose logs -f внутри папки /etc/dealapp или команды sudo journalctl -u docker.service

Настроить опции для эндпоинтов (в том числе получить более гибкую возможность настроить сертификатов) можно через конфигурацию nginx в файле /etc/nginx/conf.d/nginx.conf

Для того, чтобы обновить настройки сервиса нужно запустить заново установку с обновленным файлом конфигурации (config.yml).

Видео с процессом установки

Процесс установки можно увидеть в этом видео:

При возникновении вопросов обращайтесь в нашу службу поддержки через окошко диалога на нашем сайте qolio.io. Спасибо 😊

Last updated