Часто задаваемые вопросы#

Список основных вопросов, возникающих в процессе установки и эксплуатации приложения.

Как настроить восстановление работоспособности приложения при сбое?#

В основе приложения лежит оркестратор Docker Swarm, который автоматически восстановит работоспособность приложения, если оно было аварийно завершено. Docker Swarm также восстановит работу приложения при перезагрузке сервера.

Добавьте сервис Docker в список автоматически загружаемых сервисов, чтобы приложение восстанавливало работоспособность без необходимости прибегать к ручным действиям.

sudo systemctl enable docker

Как сбросить данные неудачной установки или удалить приложение?#

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

sudo python3 script/uninstall.py

Внимание

Удаление приложения приведет к потере всех пользовательских данных.

Как сделать резервные копии баз данных?#

Создание резервной копии данных#

Для снятия резервных копий баз данных необходимо выполнить скрипт backup_db.py из директории установщика:

sudo python3 script/backup_db.py

После выполнения скрипта резервная копия данных будет сохранена по пути root_mount_path/backups/data_time, где:

  • data_time — метка времени создания бэкапа.

  • root_mount_path — путь к данным приложения, указанный в файле global.yaml.

Создаются следующие архивы:

  • mysql.tgz — архив с общими данными приложения (база пользователей, очереди задач и т.д.).

  • mysql_company_1.tgz — архив с данными пространства для общения (сообщения, данные файлов, участники и т.д.). Каждое пространство для общения имеет свою собственную базу данных.

  • configs.tgz — архив конфигурационных файлов (global.protected.yaml, global.yaml).

Восстановление данных из резервной копии#

Запустите скрипт для восстановления резервной копии:

sudo python3 script/restore_db.py

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

  • Выбрать нужный бэкап из списка доступных копий.

  • Подтвердить удаление текущих данных и завершение работы приложения.

После подтверждения начнется процесс восстановления данных из выбранного бэкапа и обновления приложения.

Настройка регулярного создания бэкапов#

Чтобы настроить регулярное создание резервных копий, добавьте выполнение скрипта в crontab. Откройте crontab для редактирования, выполнив команду:

sudo crontab -e

Затем добавьте следующую строку для выполнения бэкапа, например, каждый день в 02:00 утра:

0 2 * * * python3 /полный/путь/к/backup_db.py

Для настройки расписания выполнения бэкапа, можно воспользоваться сайтом crontab guru, который поможет легко подобрать нужное время. Полный путь к файлу backup_db.py можно получить с помощью команды, выполняемой в директории установщика:

realpath script/backup_db.py

Внимание

Пожалуйста, обратитесь к специалистам Compass в пространстве поддержки On-premise, Telegram или на почту support@getcompass.ru, чтобы получить индивидуальную поддержку.

Как обновить сертификат?#

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

Обновить сертификаты на хостовом веб-сервере:

sudo nginx -t && sudo nginx -s reload

Обновить сертификаты в контейнерах:

for container in $(sudo docker ps -q --filter "name=nginx"); do sudo docker exec $container sh -c "nginx -t && nginx -s reload"; done;

Как изменить IP-адрес в настройках приложения и базе данных?#

В директории установщика onpremise-installer найдите файл configs/global.yaml. Откройте его любым текстовым редактором и укажите новый IP-адрес для параметра host_ip:

host_ip: "<Новый IP адрес вашего сервера>"

Выполните команду обновления в директории установщика:

sudo python3 script/update.py

Выполните команду для обновления IP-адреса в базе данных контейнера php-monolith, подставив новый IP-адрес:

sudo docker exec -it $(sudo docker ps | grep php-monolith | awk '{print $1}') bash -c 'mysql -h"$MYSQL_HOST" -p"$MYSQL_ROOT_PASS" -D pivot_company_service -e "UPDATE domino_registry SET database_host = '\''<Новый IP адрес>'\'', code_host = '\''<Новый IP адрес>'\'';"'

Примечание

В двух примерах ниже указан путь /home/compass, который является значением по умолчанию. Если ваш путь отличается, уточните его в параметре root_mount_path в файле configs/global.yaml и замените в командах соответствующие значения.

Выполните замену старого IP на новый в файлах конфигурации приложения. Для этого используйте следующую команду, подставив соответствующие значения для старого и нового IP:

sed -i 's/<Старый IP адрес>/<Новый IP адрес>/g' /home/compass/company_configs/d1_domino/*

Обновите timestamp в конфигурационных файлах командой:

sed -i "s/[0-9]\{10\}/$(date +%s)/" /home/compass/company_configs/d1_domino/.timestamp.json && sed -i "s/[0-9]\{10\}/$(date +%s)/" /home/compass/company_configs/.timestamp.json

Перезапустите микросервисы, используя следующую команду:

for service in $(sudo docker service ls | grep go- | awk '{print $1}'); do sudo docker service update --force -d $service; done;

Как перенести Compass на новый сервер?#

Сохранение и отправка данных приложения на новый сервер#

Для переноса данных на другой сервер требуется прокинуть ключ без passphrase(passphrase при создании ключа нужно оставить пустым) на удаленный сервер, где будет разворачиваться копия:

ssh-keygen -t rsa -b 4096
ssh-copy-id remote_server_user@remote_server_ip

Для сохранения и отправки данных приложения необходимо выполнить скрипт backup_all_data.py из директории установщика.

В скрипт передается параметр -dst, в котором:

  • remote_server_user — логин для подключения к удаленному серверу.

  • remote_server_ip — ip удаленного сервера.

  • remote_backup_folder - папка, в которую необходимо сохранить копию данных (например /home/).

sudo python3 script/backup_all_data.py -dst remote_server_user@remote_server_ip:remote_backup_folder

После выполнения скрипта резервная копия данных будет сохранена по пути remote_backup_folder на новом сервере.

В папку remote_backup_folder/installer копируется инсталлятор приложения, чтобы вы могли им воспользоваться на новом сервере.

Разворачивание приложения на новом сервере#

Если на новом сервере отсутствует пользователь www-data, нужно его создать.

sudo useradd -u 33 -g www-data -M -s /usr/sbin/nologin www-data

Перенесите инсталлятор из папки remote_backup_folder/compass/installer в отдельную папку на новом сервере, где:

  • remote_backup_folder - папка, в которую был перенесены данные Compass.

Измените по необходимости параметры в файле конфигурации installer_folder/configs/global.yaml:

  • host_ip на IP нового сервера.

  • root_mount_path на новое расположение данных Compass на сервере.

Перенесите данные приложения в папку root_mount_path, которая указана в файле конфигурации installer_folder/configs/global.yaml.

Установите необходимые права на перенесенные данные сервера в папке root_mount_path.

sudo chown -R root:root root_mount_path
sudo chown -R www-data:www-data root_mount_path/company_configs
sudo chown -R www-data:www-data root_mount_path/default_file
sudo chown -R www-data:www-data root_mount_path/files
sudo chown -R www-data:www-data root_mount_path/tmp_files

Запустите скрипт для восстановления резервной копии из папки с инсталлятором:

sudo python3 script/restore_db.py

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

  • Выбрать нужный бэкап из списка доступных копий.

  • Подтвердить удаление текущих данных и завершение работы приложения. Если на новом сервере не было установлено приложение Compass, то ничего удалено не будет.

После подтверждения начнется процесс восстановления данных из выбранного бэкапа и обновления приложения.


Напишите нам в пространстве поддержки On-premise, Telegram или на почту support@getcompass.ru, чтобы получить индивидуальную демонстрацию функционала и помощь по вопросам интеграции мессенджера в вашей компании.