Инструкция по установке обновлений Мессенджера версии 26.2
Назначение документа
В инструкции описана установка обновлений Мессенджера для standalone и распределенной инсталляции. Процесс обновления двух видов инсталляций практически идентичен и имеет незначительные отличия, которые выделены по тексту инструкции.
Документ предназначен для использования администраторами организации.
Если последнее обновление Мессенджер и ВКС проводилось более трех версий назад, свяжитесь с технической поддержкой для помощи с обновлением.
Внимание
При обновлении системы c версии 26.1 до версии 26.2 при отправке медиафайлов не создаются превью. Для исправления после завершения обновления выполните в консоли под пользователем root один из вариантов:
Вариант 1:
rm -f /opt/tmp/gofiles/gofiles_upload
И перезапуск пода files-0.
Вариант 2:
chmod -R 755 /opt/tmp/gofiles/gofiles_upload
chown root:root /opt/tmp/gofiles/gofiles_upload
И перезапуск пода files-0.
Внимание
При обновлении Мессенджера и ВКС с версии 26.1 до 26.2 после миграции операционной системы во время перехода в установщик по адресу http://<ваш домен>:8888 может произойти автоматическое перенаправление на страницу /install. Это мешает обновлению.
Чтобы решить проблему, отредактируйте файл конфигурации установщика:
-
Откройте файл /home/deployer/deployerParams.yaml.
-
Приведите параметры к следующему виду:
deploy_state: welcome: true issimple: false install: currentStep: servers complete: true -
Сохраните изменения.
Предварительные условия
Представители VK предоставили вам следующие данные:
- Ссылку на скачивание дистрибутива Мессенджера, чартов и образов.
- Пароль от архива с дистрибутивом.
- Лицензионный ключ.
- Комплект документации.
Для обновления Мессенджера вам понадобится:
-
Дополнительная виртуальная машина под регистри/установщик VK WorkSpace. Настройка машины описана в разделе ниже.
Всегда выделяйте отдельную виртуальную машину под регистри/установщик. Требования к машине:
-
Минимальный рекомендуемый объем памяти SSD — 300 ГБ.
-
vCPU — 4.
-
RAM — 4 ГБ.
Требований к операционной системе для виртуальной машины под регистри/установщик не предъявляется.
Если Мессенджер будет доступен в интернете, поднимите на машине под регистри/установщик внешний IPv4 адрес. Адрес может быть поднят как внутри виртуальной машины, так и проброшен через NAT. Преобразование сетевых адресов (NAT) должно быть вида 1-в-1 (сеть в сеть), то есть с сохранением номера порта. Иначе видео и голосовые звонки могут не работать.
-
-
Доступ к портам: 22, 80, 443.
-
Утилита для распаковки zip-архивов, например 7-Zip или Unzip.
-
Заведите в DNS запись, указывающую на виртуальную машину с регистри — registry.vkteams.example.com.
Предварительные действия
Создайте виртуальную машину под регистри/установщик
Внимание
Примеры команд ниже даны для операционной системы РЕД ОС версии 7.3.5
Шаг 1. Настройте виртуальную машину
Все команды выполняются под пользователем root.
-
Установите Wget и cURL:
-
Установите систему управления конфигурациями Ansible-core 2.11 и модуль OpenShift:
-
Выключите SELinux:
-
Установите rsync (опционально):
-
Выключите firewalld:
-
Установите утилиту yq:
-
Перезагрузите виртуальную машину:
Шаг 2. Создайте пользователя deployer
В командной строке выполните последовательность команд:
useradd -G wheel -U -m -s /bin/bash deployer
DEPLOYER_PASSWORD=<ЗАДАТЬ ПАРОЛЬ ДЛЯ ПОЛЬЗОВАТЕЛЯ>
echo deployer:"$DEPLOYER_PASSWORD" | chpasswd
usermod -aG redos deployer
usermod -aG adm deployer
echo "deployer ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/90-cloud-init-users
Внимание
Дальнейшее обновление будет производиться под созданным пользователем deployer. Если вы планируете обновлять под другим пользователем, это необходимо учитывать в дальнейшем. Учитывайте, что пользователь должен иметь права администратора.
Перелогиньтесь под пользователя deployer.
Шаг 3. Сгенерируйте SSH-ключи
Сгенерируйте SSH-ключи для доступа установщика к серверу Мессенджера:
su - deployer
ssh-keygen -t rsa -f "$HOME/.ssh/id_rsa"
cat .ssh/id_rsa.pub > .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
Приватная часть ключа будет использоваться при запуске установщика. Имя пользователя может быть другое, но пользователь должен иметь доступ к виртуальным машинам инсталляции.
Для корректной работы установщика в настройках SSH должен быть разрешен TCP Forwarding. Чтобы изменить настройку TCP Forwarding, нужно в файле /etc/ssh/sshd_config установить следующее значение:
Шаг 4. Распакуйте дистрибутив Мессенджера
Скачайте архив с установщиком в домашний каталог пользователя deployer и распакуйте его:
Внимание
После распаковки не удаляйте никакие файлы. По завершении обновления допускается только удаление архива, из которого был распакован дистрибутив.
Шаг 5. Скачайте архивы с чартами и образами
Скачайте архивы с чартами и образами в каталог source в домашнем каталоге пользователя deployer:
Не распаковывайте.
Шаг 6. Проверьте наличие конфигурационных файлов Ansible
Проверить в домашнем каталоге пользователя deployer файлы .ansible.cfg и .vault_password. Вывод не должен быть пустым:
ls -la | grep -E "*.*ansible.cfg|.vault"
-rw-r--r--. 1 deployer deployer 65 июн 11 14:08 .ansible.cfg
-rw-r--r--. 1 deployer deployer 31 июн 11 14:08 .vault_password
Настройте виртуальную машину под Мессенджер
В случае распределенной инсталляции выполните данные настройки на всех нодах Мессенджера.
Шаг 1. Настройте операционную систему
Установите РЕД ОС — версия 7.3с, версия ядра — не выше 6.1.162. Пример настройки параметров ОС описан ниже.
Внимание
Установка данных параметров возможна только после консультации с вашими системными администраторами.
-
Создайте файл /etc/sysctl.d/98-vkworkspace.conf с настройками Sysctl:
-
Создайте файл /etc/security/limits.d/98-vkworkspace-limits.conf с настройками лимитов:
-
Внесите изменение в конфигурации /etc/systemd/system.conf:
-
Примените изменения:
Или перезагрузите операционную систему.
Шаг 2. Настройте виртуальную машину
-
Установите интерпретатор Python версии 3.
-
Выключите SELinux:
-
Установите rsync (опционально):
-
Выключите firewalld:
Шаг 3. Создайте пользователя deployer
-
В командной строке выполните последовательность команд:
useradd -G wheel -U -m -s /bin/bash deployer DEPLOYER_PASSWORD=<ЗАДАТЬ ПАРОЛЬ ДЛЯ ПОЛЬЗОВАТЕЛЯ> echo deployer:"$DEPLOYER_PASSWORD" | chpasswd usermod -aG redos deployer usermod -aG adm deployer echo "deployer ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/90-cloud-init-usersВнимание
Вся дальнейшая установка будет производиться под созданным пользователем deployer. Если вы планируете устанавливать под другим пользователем, это необходимо учитывать при дальнейшей установке. Учитывайте, что пользователь должен иметь права администратора.
-
Выполните следующие команды под пользователем deployer в домашнем каталоге:
-
В файл .ssh/authorized_keys скопируйте публичную часть ключа — из файла id_rsa.pub на машине с установщиком/регистри у пользователя deployer. В случае распределенной инсталляции скопируйте публичную часть ключа на все ноды с Мессенджером.
-
Перезагрузите виртуальную машину:
Обновление Мессенджера
Запустите установщик VK WorkSpace
Шаг 1. Запустите установщик как сервис
Установщик рекомендуется запускать как сервис. При таком запуске не придется прибегать к дополнительным мерам (screen, tmux, nohup), позволяющим установщику продолжить работу в случае потери соединения по SSH.
Важно
Для подключение администратора к веб-интерфейсу установщика используется порт 8888. Рекомендуется настроить защиту порта через firewall либо наложенными средствами (TLS-proxy). Не рекомендуется оставлять установщик включенным, если вы не проводите работы по установке и настройке системы. Запустили установщик → Провели установку → Выключили установщик. Если нужна донастройка системы, то снова включите установщик.
Чтобы запустить установщик как сервис, на виртуальной машине под установщик/регистри выполните команду:
sudo ./onpremise-deployer_linux -concurInstallLimit 5 \
-serviceEnable -serviceMake -serviceUser deployer
По умолчанию выставлен лимит в 5 потоков, при необходимости вы можете увеличить количество потоков до 10, однако это увеличит и нагрузку на систему. Использование более чем 10 потоков не рекомендуется.
Ответ в случае успешного запуска установщика выглядит следующим образом:
deployer.service was added/updates
see status: <systemctl status deployer.service>
can`t restart rsyslog services: [exit status 5]
OUT: Failed to restart rsyslog.service: Unit rsyslog.service not found.
deployer.service was enable and started
see status: <systemctl status deployer.service>
Примечание
Невозможность включения службы rsyslog не повлияет на корректность работы сервиса.
Шаг 2. Перейдите в установщик
Перейдите в веб-интерфейс установщика — в адресной строке браузера укажите адрес http://server-ip-address:8888. Если перейти по этому адресу не удается, убедитесь, что firewall был отключен.
На стартовой странице нажмите на кнопку Установить.
Примечание
Если веб-интерфейс не открывается, проверьте журналы:
И убедитесь, что порт 8888 слушают:Шаг 3. Добавьте лицензионный ключ
Введите лицензионный ключ или выберите файл:
Нажмите Сохранить и Далее.
Шаг 4. Выберите продукт
-
В правом верхнем углу нажмите на значок i → Продукты.
-
В разделе VK WorkSpace включите флаг Мессенджер VK WorkSpace:
Нажмите на кнопку Далее.
-
В разделе Мессенджер включите флаг Внутренний репозиторий. Нажмите на кнопку Далее.
Шаг 5. Добавьте сервер регистри/установщика
Добавьте в установщик виртуальную машину под установщик/регистри:
Откроется форма добавления сервера. Заполните поля:
-
IP-адрес — адрес виртуальной машины под установщик/регистри.
-
Имя сервера — укажите короткое имя сервера (без домена) или оставьте поле пустым.
-
Имя пользователя — укажите имя того пользователя, под которым запущен установщик. В рассматриваемом примере это пользователь deployer.
-
При необходимости настройте дополнительные поля:
- Пароль — необходимо ввести пароль пользователя, под которым запущен установщик, если он был задан при создании. Появляется, если в поле Приватный ключ выбрана опция Использовать авторизацию по паролю. Поле не заполняется при использовании приватного ключа.
- Пропустить проверку некритичных требований — если отметить чекбокс, будет пропущена проверка версии ядра и флагов процессора (sse2, avx). В большинстве случаев выбор чекбокса не требуется.
- Сервер во внешней (dmz) зоне — Оставьте чекбокс пустым.
-
Поле IP-адрес для голосового трафика оставьте пустым.
-
В поле Метки добавьте:
- server = ansible
- project = vkteams
-
Нажмите на кнопку Добавить сервер — сервер отобразится в веб-интерфейсе установщика. Если после добавления сервера под ним отображается уведомление «Не найден интерфейс для межсерверного взаимодействия», нажмите на иконку шестеренки напротив имени этого сервера и выберите интерфейс. Нажмите Обновить.
-
Нажмите на кнопку Далее и обновите страницу.
Шаг 6. Укажите сетевые настройки
Установщик автоматически вычисляет некоторые сетевые параметры. Эти параметры необходимо проверить и дополнить, если не все из них были определены.
-
Перейдите в раздел Настройки в верхнем меню, на вкладку Сети. Нажмите на иконку редактирования.
-
Укажите Подсеть, используемая VK WorkSpace на серверах. Убедитесь, что она имеет доступ на 80-й или 443-й порт.
-
Укажите Подсеть, используемая внутри контейнеров — 10.32.0.0/16.
-
Нажмите на кнопку Сохранить и перейдите к следующему шагу.
Шаг 7. Укажите доменные имена
Подробную информацию о создании доменных имен вы найдете в разделе про настройку DNS-зоны.
Перейдите на вкладку Доменные имена.
Нажмите на иконку редактирования и заполните поля:
- Название вашей компании.
- Сайт вашей компании.
- Основной домен для сервисов.
- Домен для облачных хранилищ — укажите основной домен для сервисов.
- Использовать отдельный домен для Мессенджера — галку не ставьте.
Нажмите на кнопку Сохранить для перехода к следующему шагу.
После сохранения доменных имен появятся ошибки. Они пропадут после добавления SSL-сертификатов на следующем шаге.
Шаг 8. Добавьте SSL-сертификаты
-
На вкладке Доменные имена нажмите на кнопку Добавить сертификат под заголовком SSL-сертификаты.
-
В открывшейся форме введите сертификат и ключ. Их необходимо указать полностью, включая:
-----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----и-----BEGIN PRIVATE KEY----- и -----END PRIVATE KEY-----. -
Нажмите на кнопку Сохранить.
Есть второй вариант:
- Нажмите на кнопку Выбрать файл.
- Укажите путь к файлу с сертификатом .crt.
- Укажите путь к файлу с ключом .key.
- Кликните по кнопке Сохранить.
Примечание
Приватный ключ должен быть добавлен в открытом виде, без секретной фразы. Закодированный ключ отличается от открытого наличием слова ENCRYPTED: BEGIN ENCRYPTED PRIVATE KEY.
Если всё верно, в интерфейсе не будет отображаться ошибок и красной подсветки. Нажмите на зеленую кнопку Далее.
Шаг 9. Настройте K3s для работы с установщиком
Чтобы установщик мог взаимодействовать с кластером K3s:
-
Для standalone-установки — разрешите на сервере Мессенджера доступ серверу установщика к порту 6443.
Для распределенной инсталляции — разрешите на одной из первых трех нод доступ серверу установщика к порту 6443.
-
Настройте K3s.
Для standalone-установки — выполните данные настройки ниже на сервере для Мессенджера.
Для распределенной инсталляции — выполните настройки ниже на той же ноде, что и шаг 1.
3.1. В файле /etc/systemd/system/k3s.service добавьте параметр:
3.2. Перезапустите K3s для применения изменений:
-
Проверьте соединение установщика с текущим сервером — на сервере под регистри/установщик выполните команду:
Должно произойти успешное подключение по SSH.
Шаг 10. Импортируйте инсталляцию со старой версией в установщик
На сервере с регистри/установщиком вызовите скрипт, передав в качестве параметров имя пользователя deployer и IP-адрес сервера из предыдущего шага:
sh /home/deployer/projects/vkteams/ansible/prepare/roles/migration/files/fetch_data.sh <логин технического пользователя> <IP-адрес текущего сервера>
Пример:
sh /home/deployer/projects/vkteams/ansible/prepare/roles/migration/files/fetch_data.sh deployer node02.company.co
Проверьте, что в выводе результатов работы скрипта отсутствуют ошибки миграции.
Скрипт автоматически выполняет следующие действия:
- Скачивает конфигурационные файлы.
- Добавляет в установщик SSH-ключ пользователя deployer.
- Переносит ноды текущей инсталляции из ctfacts. Серверы Мессенджера не требуют ручного добавления в установщик.
- Добавляет кластер K3s
- Переносит секреты для Helm.
Шаг 11. Добавьте Ansible playbook
смотреть правки от Куприянова
-
Нажмите Добавить → Несколько Ansible Playbook:
-
Выберите роль «ansible-vkteams-registry». Выберите гипервизор под регистри/установщик. Режим генерации — На одном из серверов. Нажмите на кнопку Добавить:
Добавленная роль отобразится в разделе VK WorkSpace. Нажмите на кнопку запуска добавленной роли (синяя стрелка напротив добавленной роли):
-
Перейдите на вкладку Сети. В поле Список DNS-серверов... укажите DNS-сервер. Нажмите на кнопку Сохранить.
-
Вернитесь на главную страницу установщика и нажмите Добавить → Несколько Ansible Playbook. Выберите роль «ansible-vkteams-pre_upgrade».
Для standalone-установки выберите гипервизор под Мессенджер. Режим генерации — На одном из серверов. Нажмите на кнопку Добавить:
Для распределенной инсталляции выберите все гипервизоры, на которых будет развернут Мессенджер. Режим генерации — На одном из серверов. Нажмите на кнопку Добавить.
Добавленная роль отобразится в разделе VK WorkSpace. Нажмите на кнопку запуска добавленной роли (синяя стрелка напротив добавленной роли).
-
Аналогично добавьте роли «ansible-vkteams-cluster» и «ansible-puppet-modules» на гипервизорах под Мессенджер.
Внимание
Запускайте роли в указанной последовательности:
1. ansible-vkteams-registry
2. ansible-vkteams-pre_upgrade1
3. ansible-vkteams-cluster1
4. ansible-puppet-modulesЕсли после завершения выполнения роли ansible-vkteams-cluster1 в установщике отображаются два кластера ext-k8s
1. Подключитесь к серверу под регистри/установщик по SSH.
2. В файле /home/deployer/computes.yaml удалите блок, который начинается с - role: ext-k8s и hostname: ext-k8s1:
```yaml - role: ext-k8s hostname: ext-k8s1 facts: netinterfaces: [] osversion: "" homedir: "" hostname: "" osname: "" packagemanager: "" composecommand: "" fullcomposecommand: "" kubernetesfacts: dnsAddr: "" imageRepository: registry.registry.svc.cluster.local kubernetesVersion: 1.31.10-3.el7 networking: dnsDomain: cluster.local podSubnet: 10.32.128.0/17 serviceSubnet: 10.31.0.0/16 human_name: | deployer-1 extK8SParams: namespace: workspace masterUrl: https://100.70.80.82:6443 zone: "" labels: server: - local-k8s ``` При этом роль с <b>hostname: ext-k8s2</b> должна остаться.<br/> 5. Выполните команду: ``` sudo systemctl restart deployer ```
Шаг 12. Запустите установку
-
Нажмите на логотип в левом верхнем углу веб-интерфейса, чтобы перейти к общей строке состояния.
-
Запустите автоматическую установку — нажмите на кнопку Play рядом с общей строкой состояния в верхней части экрана:
-
Подтвердите запуск автоматической установки, нажав на кнопку Запустить. Перед запуском автоматической установки оставьте включенными все проверки.
В зависимости от этапа установки будет меняться цвет индикатора:
- Серый — в ожидании начала генерации;
- Синий — в процессе генерации;
- Желтый — шаг будет повторен (автоматически);
- Красный — ошибка.
Ожидайте завершения установки. Пока процесс идет, рядом со строкой состояния будет отображаться красная кнопка Stop. Дождитесь завершения установки Мессенджера.
Если в процессе установки и настройки системы происходят изменения конфигурации, некоторые задачи могут потребовать повторного выполнения. Для повторного запуска необходимо нажать на кнопку Play в общей строке состояния в верхней части экрана или рядом с названием конкретного контейнера.
Если после запуска автоустановки напротив контейнера ansible-vkteams-registry1 отображается красный индикатор незавершенной задачи или общая строка состояния имеет красную секцию, и процесс установки остановился
1. Нажмите на шестеренку напротив контейнера ansible-vkteams-registry1.2. Нажмите на иконку корзины.
3. В окне подтверждения укажите «ansible-vkteams-registry1» и нажмите на кнопку Удалить:

4. Запустите автоматическую установку.
Если после запуска ansible-vkteams-post_upgrade1 напротив контейнера ansible-ansible-vkteams-post_upgrade1 отображается красный индикатор незавершенной задачи или общая строка состояния имеет красную секцию
1. Посмотрите логи установщика командой:journalctl -u deployer |fgrep "read map from disk: cant read file open"
````
В выводе команды будут сервисы Мессенджера, для которых появляется ошибка. В нашем примере это сервисы Fate и Scribl:
Если после запуска автоустановки отображаются ошибки


1. Остановите установщик командой: 2. Пропишите в /etc/systemd/system/deployer.service флаг -devel:
3. Выполните команду: 4. Запустите установщик: 5. Нажмите на кнопку Play рядом c общей строкой состояния в верхней части экрана. Снимите все чекбоксы и нажмите на кнопку Запустить.
Когда установка будет завершена, соответствующий статус отобразится в строке состояния.
Шаг 13. Завершение миграции сервисов в Kubernetes
После завершения автоустановки:
-
Нажмите Добавить → Несколько Ansible Playbook. Выберите роль «ansible-vkteams-post_upgrade».
-
Для standalone-установки выберите гипервизор под Мессенджер. Режим генерации — На одном из серверов. Нажмите на кнопку Добавить.
Для распределенной инсталляции выберите все гипервизоры, на которых будет развернут Мессенджер. Режим генерации — На одном из серверов. Нажмите на кнопку Добавить.
-
Добавленная роль отобразится в разделе VK WorkSpace. Нажмите на кнопку запуска добавленной роли (синяя стрелка напротив добавленной роли).
Установка считается завершенной.
Проверки после обновления
По прошествии 15 минут после подключитесь к ней по SSH и выполните следующие проверки инсталляции:
-
Правильность версии релиза:
-
Состояние служб:
Если в выводе есть статус «degradate», то список служб, которые завершились с ошибкой, можно посмотреть при помощи команды:
-
Готовность сервисов Мессенджер и ВКС:
Все сервисы должны находиться в состоянии alive.
-
Состояние подов Kubernetes:
Все сервисы должны быть состоянии Running.
-
Понаблюдайте за нагрузкой CPU и памяти при помощи утилиты K9s.
Также выполните проверки функциональностей Мессенджерf и ВКС. Рекомендуется проводить тест при помощи разных типов клиентов, например веб и десктоп.
-
Базовые функциональности:
- Возможность залогиниться в учетной записи.
- Отправить/получить текстовое сообщение с одного клиента на другой и обратно. Убедиться, что сообщения пришли.
- Удалить отправленные сообщения у себя и у всех. Убедиться, что сообщения успешно удаляются.
- Отправить/получить фото/видео/gif с одного клиента на другой и обратно. Проверить, что есть превью.
- Отправить/получить голосовое сообщение с одного клиента на другой и обратно. Убедиться, что запись полноценная и хорошего качества.
- Открыть витрину стикеров, открыть стикерпак. Убедиться, что все отображается корректно.
- Отправить/получить стикер с одного клиента на другой и обратно. Убедиться, что у стикера есть превью.
- Открыть собственный профиль и профиль другого пользователя.
-
Группы:
- Создать группу/канал.
- Добавить пользователя в канал
- Отправить/получить несколько сообщений, которые содержат стикеры и файлы. Убедиться, что сообщения доходят до всех участников.
- Заблокировать/разблокировать участника.
- Закрепить сообщение.
- Удалить пользователя.
- Удалить группу/канал.
-
Звонки:
- Позвонить пользователю. Добавить еще одного пользователя в звонок.
- Создать ссылку на звонок, перейти в звонок по ссылке.
- Проверить работу длительных звонков (около 5 минут).
-
Статусы:
- Поставить/удалить статусы.
Если настроена интеграция с Почтой VK WorkSpace
Если у вас настроена интеграция с Почтой VK WorkSpace настройте отображение сервисов Почты, Диска и Календаря в клиентском приложении.
Начиная с версии Мессенджер и ВКС 25.4 для корректного отображения сервисов необходимо донести в конфигурационный файл /usr/local/nginx-im/html/myteam/myteam-config.json конфигурацию в соответствии с шагами 4 и 5 инструкции https://biz.mail.ru/docs/on-premises/vk-teams/mail-integration/index.html#10-vk-teams









