Перенос TrueConf Server с Windows на Linux
Часто для экономии средств на лицензии Microsoft, удобства администрирования и повышения устойчивости к вредоносному ПО происходит переход с Windows на Linux. При этом важно, чтобы программное обеспечение имело обратную совместимость. Компания TrueConf дорожит временем своих клиентов, поэтому мы позаботились о том, чтобы вы смогли без проблем перенести данные с одного сервера на другой.
Для успешного переноса данных TrueConf Server и последующего тестирования рекомендуем использовать отдельную машину (физический сервер или виртуальную машину). После того как перенос будет осуществлён, вы сможете проверить корректность всех настроек и перерегистрировать лицензию (привязать к новой конфигурации HW-ключ). В нашем примере мы будем использовать перенос данных по сети, поэтому ваши машины (текущая и новая) должны быть доступны друг другу. В случае, если это не представляется возможным, используйте съёмный носитель для переноса данных.
Шаг 1. Обновление TrueConf Server
Для успешной миграции новый устанавливаемый сервер на ОС Linux должен быть той же версии, что и оригинальный на ОС Windows. В нашем Linux репозитории всегда находится последняя версия дистрибутива. Мы не предоставляем старые версии сервера по соображениям безопасности, поэтому рекомендуем обновить сервер на Windows до последней версии. О том, как это сделать, читайте в нашей статье.
Шаг 2. Подготовка необходимых данных
Для осуществления миграции вам понадобится регистрационный ключ вашего TrueConf Server и перечисленные ниже резервные копии.
Регистрационный ключ
Узнать регистрационный ключ непосредственно из панели управления TrueConf Server невозможно из соображений безопасности. Ключ приходил вам в письме при регистрации вашего экземпляра. Вы можете найти его с помощью поиска по содержимому, указав Server ID – он отображается в панели управления по пути Информация о сервере → Информация.
Основные данные
Реестр
В реестре хранятся данные о пользователях, группах, псевдонимах, конференциях, трансляциях, настройки сервера (параметры LDAP, SIP/H.323, WebRTC, федерации и др.). О переносе реестра мы расскажем далее в статье.
База данных
В базе данных хранятся данные из раздела Отчёты TrueConf Server, в том числе история чатов.
Определение используемого порта
Чтобы экспорт данных прошёл успешно, вы должны указать используемый номер порта для подключения к БД. По умолчанию это — 5444
.
Т.к. порт мог меняться (например, остался старый 5432
при обновлении с версий TrueConf Server старее 5.2.9), то для определения текущего значения выполните команду в терминале:
1 |
findstr port "C:\Program Files\TrueConf Server\database\conf\postgresql.conf" |
Экспорт
Запустите командную строку от имени администратора и перейдите по пути:
1 |
cd /d [backup] |
где [backup]
– каталог, в который будет экспортирована БД TrueConf Server, например:
1 |
cd /d D:\backup |
После чего для экспорта выполните команду:
1 |
"C:\Program Files\TrueConf Server\database\bin\pg_dumpall.exe" -p 5444 -U postgres -c -f tcs.dump |
Настройки HTTPS
Если у вас настроен HTTPS, то файлы ключа и сертификата хранятся в каталоге [installation_path]\httpconf\ssl
,
где [installation_path]
– путь установки сервера. При желании вы можете переместить их на новый сервер. О том, как это сделать мы расскажем далее в статье.
Дополнительные данные
Записи видеозвонков и конференций
При автоматической записи на стороне сервера проходящих сеансов видеосвязи файлы по умолчанию сохраняются в каталоге Recordings
внутри рабочей папки сервера. Чтобы уточнить их расположение, проверьте значение поля Путь в разделе Записи панели управления.
При желании вы можете переместить их на новый сервер. О том, как это сделать мы расскажем далее в статье.
Файлы чатов
Файлы, которые передавались в переписках между пользователями вашего сервера, по умолчанию сохраняются в каталоге files
в рабочей папке TrueConf Server. Чтобы уточнить их расположение, перейдите к полю Путь в разделе Файловое хранилище панели управления.
При желании вы можете переместить их на новый сервер. О том, как это сделать и с какими проблемами вы можете столкнуться мы расскажем далее в статье.
Аватары пользователей
Аватары зарегистрированных на вашем сервере пользователей хранятся в каталоге avatars
в рабочей папке TrueConf Server. При желании вы можете переместить их на новый сервер. О том, как это сделать мы расскажем далее в статье.
Шаг 3. Установка TrueConf Server
О том, как установить TrueConf Server из файла и репозиториев, описано в данной статье.
Шаг 4. Импорт данных на ОС Linux
sudo -V
.Перед выполнением дальнейших действий отключите службы Труконф:
1 2 3 4 |
sudo systemctl stop trueconf-web sudo systemctl stop trueconf-manager sudo systemctl stop trueconf-php sudo systemctl stop trueconf-bridge |
В дальнейших командах используются такие параметры, которые вам надо заменить на свои значения:
{login}
– учетная запись пользователя, который состоит в группе Администраторы.{ip}
– IP адрес машины с Windows.
HTTPS и веб-настройки
Для переноса TLS-сертификата и его ключа воспользуемся утилитой SCP (Secure Copy Protocol). Для этого:
- Выполните копирование содержимого папки ssl:
1sudo scp -r '{login}@{ip}:"C:/Program Files/TrueConf Server/httpconf/ssl/*"' /opt/trueconf/server/etc/webmanager/ssl/ - После переноса папки необходимо выдать ей нужные права:
12sudo chown trueconf:trueconf /opt/trueconf/server/etc/webmanager/ssl/*sudo chmod 644 /opt/trueconf/server/etc/webmanager/ssl/*
Конфигурационные файлы
- Для переноса других конфигурационных файлов утилитой SCP:
12sudo scp -T '{login}@{ip}:"C:/Program Files/TrueConf Server/httpconf/opt/listen.conf"' /opt/trueconf/server/etc/webmanager/opt/sudo scp -T '{login}@{ip}:"C:/Program Files/TrueConf Server/httpconf/opt/local_only_admin_24.conf"' /opt/trueconf/server/etc/webmanager/opt/ - После переноса файлов необходимо выдать им нужные права:
12sudo chown trueconf:trueconf /opt/trueconf/server/etc/webmanager/opt/listen.conf /opt/trueconf/server/etc/webmanager/opt/local_only_admin_24.confsudo chmod 644 /opt/trueconf/server/etc/webmanager/opt/listen.conf /opt/trueconf/server/etc/webmanager/opt/local_only_admin_24.conf
Записи звонков и конференций
C:/TrueConf/Recordings/
. Если у вас используется другой каталог, то в пункте 2 данной инструкции укажите корректный путь.- Для переноса всех записей воспользуемся утилитой SCP:
1sudo scp -r {login}@{ip}:C:/TrueConf/Recordings/* /opt/trueconf/server/var/lib/recordings/ - После переноса записей необходимо выдать им нужные права:
12sudo chown trueconf:trueconf /opt/trueconf/server/var/lib/recordings/*sudo chmod 644 /opt/trueconf/server/var/lib/recordings/*
Файлы
Перенесите файлы на машину Linux в каталог по умолчанию /opt/trueconf/server/var/lib/files
. Сделать это можно разными способами, например, используя USB-накопитель или SCP. При этом независимо от используемого способа у вас могут возникнуть трудности, которые мы разобрали ниже.
C:/TrueConf/files/
. Если у вас используется другой каталог, то в пункте 2 данной инструкции укажите корректный путь.- Для переноса всех файлов воспользуемся утилитой SCP:
1sudo scp -r {login}@{ip}:C:/TrueConf/files/* /opt/trueconf/server/var/lib/files/ - После переноса файлов необходимо выдать им нужные права:
123sudo chown -R trueconf:trueconf /opt/trueconf/server/var/lib/files/*sudo find /opt/trueconf/server/var/lib/files/* -type d -exec chmod 755 {} \;sudo find /opt/trueconf/server/var/lib/files/* -type f -exec chmod 644 {} \;
Далее исправьте абсолютные пути Windows в некоторых файлах, как написано ниже.
Трудности при переносе файлов
Длина имени
При переносе стоит учитывать, что часть файлов может не сохраниться. Это происходит из-за разного ограничения длины имени файла в ОС. Используемая в Windows файловая система NTFS поддерживает имена файлов длиной до 256-ти символов UTF-16. В свою очередь для ext4, обычно используемой ФС в Linux, предельная длина имени файла является 255 байт в UTF-8, то есть максимум 255 латинских символов и 127 для других языков (например, кириллицы).
Из-за этого файлы с длинным русским названием просто не смогут сохраниться из-за ограничений ядра Linux.
Решение:
Для решения данной проблемы вы можете использовать другую файловую систему для Linux или сохранить проблемные файлы (с длинными названиями) для передачи их пользователям.
Использование SCP
При перемещении файлов с помощью SCP (Secure Copy Protocol) могут возникнуть ошибки:
- «неожиданное имя файла»;
- изменилось название файла с символами, отличными от латиницы.
Некоторые системы не поддерживают определенные символы в именах файлов, поэтому если вам попадётся такой файл, то это может привести к возникновению ошибки.
Решение:
После переноса убедиться, что все файлы с отличными от латиницы символами в названии перенеслись правильно. В противном случае вручную переименовать такие файлы, основываясь на данных оригинального сервера.
Исправление абсолютных путей
Для того чтобы файлы корректно скачивались в чатах необходимо исправить абсолютный путь во всех служебных файлах *.resume_data. Для этого перейдите в каталог с файлами и в терминале выполните команду (в ней используются пробелы в качестве разделителя):
1 |
sed -i 's save_path[1-9]*:C:\\TrueConf\\files\\ save_path75:/opt/trueconf/server/var/lib/files/ ' *.resume_data |
Аватары пользователей
- Для переноса всех аватаров воспользуемся утилитой SCP:
1sudo scp -r {login}@{ip}:C:/TrueConf/avatars/* /opt/trueconf/server/var/lib/avatars/ - После переноса аватаров необходимо выдать им нужные права:
12sudo chown trueconf:trueconf /opt/trueconf/server/var/lib/avatars/*sudo chmod 644 /opt/trueconf/server/var/lib/avatars/*
База данных
Определение используемого порта
Чтобы импорт данных прошёл успешно, вы должны указать используемый номер порта для подключения к БД. По умолчанию это — 5444
:
Т.к. порт мог меняться (например, остался старый 5433
при обновлении с версий TrueConf Server старее 5.2.9), то для определения текущего значения выполните команду в терминале:
1 |
grep port /opt/trueconf/server/etc/database/postgresql.conf |
Импорт
Перезапустите службу базы данных, чтобы разорвать с ней все активные подключения:
1 |
sudo systemctl restart trueconf-db |
Далее для импортирования БД вам нужно выполнить следующие шаги:
- Откройте терминал, если он закрыт.
- Скопируйте экспортированный файл в каталог c базой данных:
1sudo cp /home/$USER/backups/tcs.dump /opt/trueconf/server/bin/database - Войдите под пользователем postgres:
1sudo su postgres -s /bin/bash - Перейдите в каталог с базой данных:
1cd /opt/trueconf/server/bin/database - Выполните команду для импорта с указанием используемого порта:
1./psql -p 5444 -f tcs.dumpИмпорт данных может занять продолжительное время в том случае, если у вас на сервере большое количество чатов. - После этого выйдите из пользователя postgres c помощью команды:
1exit
Реестр
Перенос данных реестра
Для переноса данных из реестра выполните:
- Подключитесь к удаленной машине по SSH используя учетную запись администратора:
1sudo ssh {login}@{ip} - В открывшейся терминальной сессии выполните команду для экспорта реестра:
1"C:\Program Files\TrueConf Server\tc_regkey.exe" export "" registry.csv
Файл будет сохранен в каталог пользователя под которым был выполнено подключениеC:/Users/{login}/
. - Завершите сессию с помощью команды:
1exit - Выполните копирование файла registry.csv:
1sudo scp -r {login}@{ip}:C:/Users/{login}/registry.csv /home/$USER/registry.csv
Удаление несовместимых строк
Для успешного переноса реестра из бэкап-файла нужно удалить не совместимые с ОС Linux строки. Для этого в терминале выполните:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
sed -i '/install_version/d' /home/$USER/registry.csv sed -i '/Configuration,Working Directory/d' /home/$USER/registry.csv sed -i '/ConfDefault,Working Directory/d' /home/$USER/registry.csv sed -i '/Configuration,Executable Path/d' /home/$USER/registry.csv sed -i '/Configuration,Recordings Path/d' /home/$USER/registry.csv sed -i '/Configuration,Ffmpeg Path/d' /home/$USER/registry.csv sed -i '/Configuration,Push Script/d' /home/$USER/registry.csv sed -i '/Configuration,File Storage Path/d' /home/$USER/registry.csv sed -i '/Configuration,version/d' /home/$USER/registry.csv sed -i '/Configuration,DB Connection String/d' /home/$USER/registry.csv sed -i '/Configuration\\ConfDefault,Working Directory/d' /home/$USER/registry.csv sed -i '/WebManager,server_dir/d' /home/$USER/registry.csv sed -i '/WebManager,db_port/d' /home/$USER/registry.csv sed -i '/WebManager,group_security/d' /home/$USER/registry.csv sed -i '/WebManager,group_admin/d' /home/$USER/registry.csv sed -i '/WebManager,client_path/d' /home/$USER/registry.csv sed -i '/WebManager\\API\\AccessTokens/d' /home/$USER/registry.csv sed -i '/WebManager\\API\\RefreshTokens\\/d' /home/$USER/registry.csv sed -i '/Transceivers/d' /home/$USER/registry.csv |
Замена IP-адреса
Если ваш новый сервер имеет другой IP-адрес, тогда в терминале выполните команду (в ней используются пробелы в качестве разделителя):
1 |
sed -i "s x.x.x.x y.y.y.y " /home/$USER/registry.csv |
где:
x.x.x.x
– старый IP-адрес, например, 192.168.0.1
.
y.y.y.y
– новый IP-адрес, например, 192.168.1.1
.
Импорт настроек
После этого в терминале выполните команду для импорта настроек реестра:
1 |
sudo /opt/trueconf/server/bin/vcs/tc_regkey import "" /home/$USER/registry.csv |
После выполнения импорта перезапустите с помощью последовательного выполнения команд следующие службы TrueConf:
1 2 3 4 5 |
sudo systemctl restart trueconf-db sudo systemctl start trueconf-manager sudo systemctl start trueconf-web sudo systemctl start trueconf-php sudo systemctl start trueconf-bridge |
LDAP
Если у вас была настроена интеграция с LDAP, то вам необходимо сбросить настройки, потому что в Windows и Linux используются разные значения по умолчанию LDAP параметров. Для этого в панели управления сервером перейдите в LDAP / Active Directory → Настройки LDAP → Дополнительно и последовательно нажмите кнопки По умолчанию и Применить. Если в блоке Дополнительно вы настраивали свои какие-то параметры, то понадобится указать их заново и сохранить настройки.
Kerberos SSO
Если у вас была настроена аутентификация через протокол Kerberos, то вам необходимо заново загрузить keytab-файл в панели управления сервером.
Шаг 5. Проверка переноса данных
Перейдите в панель управления и проверьте перенос данных:
- пользователи их аватары;
- конференции;
- сообщения чата;
- настройки SMTP;
- настройки шлюза;
- отчеты;
- и другое.
Также с помощью клиентского приложения проверьте:
- авторизацию на сервере, в том числе если настроены SSO/ADFS;
- адресную книгу, список чатов, конференции в планировщике;
- доступность скачивания старых файлов из чатов.
Если во время импорта произошли ошибки, (например, вы допустили какую-то ошибку в команде, и данные не перенеслись), то начисто удалите сервер и повторите шаги 2 и 3.
Если импорт прошел успешно, то вам необходимо обратиться в техническую поддержку для сброса аппаратного ключа HW key. Исправление аппаратного ключа, к которому привязана ваша лицензия, производится технической поддержкой TrueConf совершенно бесплатно. Для этого вам нужно отправить заявку, в которой необходимо указать ID вашего сервера. После того, как техническая поддержка исправит аппаратный ключ, перерегистрируйте сервер.
Желаем удачных конференций!