Развертывание и настройка сервисов групповых политик, версия 25.4
Назначение документа
В документе описаны шаги для развертывания и включения сервисов следующих групповых политик:
- Политика доступности разделов меню Супераппа VK WorkSpace.
- Политика обязательных чатов и каналов Мессенджер и ВКС.
- Политика привилегий.
В инструкции для упрощения сервер/установщик Почты VK WorkSpace и сервер/установщик Панели администратора VK WorkSpace названы «сервер/установщик VK WorkSpace». Документ предназначен для использования администраторами организации.
Общий план развертывания и включения сервисов групповых политик:
- Проверьте, что у вас есть все необходимое для развертывания и включения сервисов групповых политик.
- Включите функциональность групповых политик в веб-интерфейсе установщика VK WorkSpace.
- Выполните предварительные действия для развертывания и настройки сервисов групповых политик.
-
Разверните и настройте сервисы необходимых групповых политик:
-
Настройте переменные окружения на сервере VK WorkSpace.
-
Получите доступ к функциональности групповых политик.
Функциональность отсутствует в базовой сборке. Чтобы подключить ее для одного или всех доменов инсталляции, обратитесь в службу поддержки.
После развертывания и включения сервисов дальнейшая настройка групповых политик происходит в Панели администратора VK WorkSpace в соответствии с инструкцией.
Действия с политиками после развертывания и настройки:
- Выключить политику привилегий и политику обязательных чатов и каналов можно в панели администратора VK WorkSpace. Чтобы выключить политику доступности мини-аппов, перейдите в соответствующий раздел данной инструкции.
-
Если появился новый веб-апп или мини-апп и его нужно добавить в Суперапп, следуйте инструкции ниже.
-
Добавление в карту новых инстансов для сервисов Vipper и Pacman происходит автоматически. Чтобы добавить в карту новый инстанс сервиса Chat-gp, следуйте инструкции ниже.
Дополнительная документация
Групповые политики — в документе описана работа с групповыми политиками в Панели администратора VK WorkSpace.
Настройка интеграции Мессенджер и ВКС и Почты VK WorkSpace — в документе описана настройка интеграции Почты VK WorkSpace и Мессенджер и ВКС.
Настройка интеграции Мессенджер и ВКС с Панелью администратора VK WorkSpace — в документе описана настройка интеграции Мессенджер и ВКС версии 24.5 и выше и панели администратора VK WorkSpace версии 1.23 и выше.
Архитектура и описание системы Мессенджер и ВКС — в документе описаны сервисы Мессенджер и ВКС, обеспечивающие функциональность групповых политик. Не является частью публичной документации, обратитесь к представителю VK, чтобы ознакомиться с документом.
Предварительные условия
- Доступ к веб-интерфейсу Kafka.
- Доступ к серверу Мессенджер и ВКС.
- Доступ к веб-интерфейсу установщика VK WorkSpace http://<company_domain>:8888.
- Доступ к серверу VK WorkSpace и к панели администратора VK WorkSpace https://biz.<company_domain>.
-
Сетевой доступ между сервисами Мессенджер и ВКС и сервисами VK WorkSpace:
Откуда Куда Порт/протокол Zastava Birich (Kafka) TCP/10032 Birich (Kafka) Zastava TCP/10032 Zastava Pub TCP/12501 Vipper Pub TCP/12501 Pacman Pub TCP/12501 Pacman Pub HTTP -
Чат-бот для рассылки нотификаций, если необходимо уведомлять пользователей об изменении политики привилегий и политики обязательных чатов и каналов. Создайте нового бота или используйте существующего.
Вы можете разрешить боту писать первым — в таком случае уведомления будут получать все пользователи. Это можно сделать командой:
Если бот не может писать первым — пользователи не будут получать уведомления, пока не напишут в боте /start.
Также боту необходимо выдать разрешение на отправку deeplink:
1. Включите функциональность в веб-интерфейсе установщика VK WorkSpace
- Перейдите в веб-интерфейс установщика VK WorkSpace по адресу http://<company_domain>:8888.
- Нажмите на кнопку
в правом верхнем углу и выберите пункт Продукты. -
В списке продуктов выберите опцию Система групповых политик. Для использования Apache Kafka внутри инсталляции выберите опцию Kafka внутри инсталляции:
-
Нажмите на кнопку Сохранить.
- Перейдите на вкладку AdminPanel.
- Если у вас кластерная инсталляция, распределите контейнеры по гипервизорам. Если инсталляция на одну виртуальную машину, нажмите на кнопку Сгенерировать автоматически, чтобы сгенерировать контейнеры для работы групповых политик.
-
Запустите автоматическую установку нажатием на кнопку
в правом верхнем углу: -
Подтвердите запуск автоматической установки, нажав на кнопку Запустить во всплывающем окне.
-
После окончания установки перейдите в список контейнеров и соберите данные, которые вам понадобится для дальнейшей настройки на стороне Мессенджер и ВКС:
-
Адреса Kafka — при использовании Kafka внутри инсталляции необходимо в конфигурационном файле сервиса Zastava указать адреса машин, на которых установлены сервисы bi-kafka:
-
Адрес сервиса PUB1 — адреса машин, на которых установлены сервисы pub, необходимо будет указать далее в конфигурационных файлах сервисов Pacman, Chat-gp и Vipper.
-
2. Выполните предварительные действия
Перед тем как включать отдельные групповые политики, выполните на сервере Мессенджер и ВКС шаги, описанные ниже:
Шаг 1. Проверьте настройку сервиса Godmod и мини-аппов
Выполните данный шаг, если настраиваете политику доступности мини-аппов. Если вы настраиваете другую политику, перейдите к следующему шагу.
-
Если у вас новая инсталляция Мессенджер и ВКС, сначала настройте веб-аппы и мини-аппы (см. дополнительную документацию) и проверьте корректность их работы и только потом переходите к развертке и настройке сервисов групповых политик. Все веб-аппы и мини-аппы инсталляции, такие как почта, календарь, облако, должны быть настроены до запуска миграции мини-аппов и анонсирования групповых политик.
Если Мессенджер и ВКС установлен давно и все веб-аппы и мини-аппы работают корректно, перейдите к пункту 2.
-
Проверьте, что в конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json в секциях desktop и mobile присутствует вкладка messenger и стоит на первом месте:
а также указана версия API>=120:
Если вы внесли изменения в /usr/local/nginx-im/html/myteam/myteam-config.json:
-
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции:
-
Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):
-
Шаг 2. Настройте права для административного пользователя
Перед анонсированием политики убедитесь, что у пользователя, из-под которого будет осуществляться анонс, имеются необходимые права.
-
Перейдите в конфигурационный файл /usr/local/etc/k8s/helmwave/store/myteam-admin.yml и в секциях MiniApps, Management и Settings установите для поля default значение allow:
-
Примените изменения.
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции:
Шаг 3. Авторизуйтесь под учетной записью администратора
-
На сервере Мессенджер и ВКС сгенерируйте OTP с помощью команды:
-
Авторизуйтесь:
После этого в cookieFile.txt происходит запись cookie, который нужно использовать в дальнейших запросах с флагом -b. Примеры запросов будут приведены для каждой из политик ниже. В рамках одной сессии достаточно авторизоваться таким образом один раз.
Шаг 4. Настройте сервис Zastava
Сервис отвечает за взаимодействие с панелью администратора VK WorkSpace и передачу событий групповых политик в сервисы Мессенджер и ВКС. При изменении политики сервис Pravda на стороне в панели администратора VK WorkSpace создает событие и отправляет его в Kafka (подробнее см. в документе с описанием архитектуры Мессенджер и ВКС. Не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом).
Перейдите в конфигурационный файл сервиса Zastava /usr/local/etc/zastava-1.yaml и заполните поля:
-
В секции kafka:
kafka: addresses: - 100.70.81.231:10032 - 100.70.81.219:10032 - 100.70.81.231:10032 consumer_group: "zastava-consumer" topic: "birich" retry_topic: "birich-retry" dlq_topic: "birich-dlq" actions_topic: "action" actions_retry_topic: "birich-action-retry" poll_limit: 1000 retry_delay_ms: 3000 retry_count_max: 3 consume_preferring_lag: 1 max_buffered_records: 10000 fetch_max_partition_bytes: 1000где:
-
address — адреса машин и порт bi-kafka из шага Настройки в веб-интерфейсе установщика VK WorkSpace.
-
consumer_group — название группы потребителей Kafka. Может быть произвольным, главное, чтобы оно совпадало между всеми инстансами сервиса Zastava.
-
topic — топик для получения событий изменений, относительно пользователя. Не меняйте название топика.
-
retry_topic — служебный топик для логики ретраев и отложенной доставки сообщений. Не меняйте название топика.
-
dlq_topic — служебный топик для недоставленных сообщений. Анализ сообщений из этого топика может быть полезен для определения проблем. Не меняйте название топика.
-
actions_topic — топик для получения действий, применяемых к пользователям в соответствии с назначаемыми политиками. Не меняйте название топика.
-
actions_retry_topic — служебный топик для логики ретраев и отложенной доставки сообщений. Не меняйте название топика.
-
poll_limit — ограничение на количество одновременно забираемых сообщений из брокера.
-
retry_delay_ms — пауза между попытками повторно доставить сообщение.
-
retry_count_max — максимальное число попыток доставить сообщение.
-
consume_preferring_lag — служебный параметр потребителя топиков Kafka, оставьте без изменений.
-
max_buffered_records — служебный параметр потребителя топиков Kafka, оставьте без изменений.
-
fetch_max_partition_bytes — служебный параметр потребителя топиков Kafka, оставьте без изменений.
-
-
В секции schekolda укажите для поля max_parallel значение «4»:
Поле max_parallel отвечает за количество одновременных запросов в сервис Zastava. Этот параметр можно использовать для ограничения потока исходящих запросов. При выставлении значения «0» количество исходящих запросов не будет ограничено. Рекомендованное значение на данный момент: «4».
-
В секции etcd укажите эндпоинты и префикс ключей для доступа в etcd (сервис PUB1):
где:-
endpoints — адрес сервиса PUB1 из шага Настройки в веб-интерфейсе установщика VK WorkSpace.
-
/gp/vkt/ — префикс ключей для доступа в etcd, оставьте без изменений. Он используется при обновлении групповой политики.
Внимание
Эндпоинты и префикс ключей для доступа в etcd должны совпадать с указанными в конфигурации сервиса Pravda и в конфигурации конкретных сервисов групповых политик.
-
-
Перезапустите сервис Zastava командой:
Шаг 5. Создайте топики в Kafka
При использовании Kafka внутри инсталляции
Если вы используете Kafka внутри инсталляции, необходимые топики создадутся автоматически.
Чтобы проверить, что необходимые топики созданы:
- Перейдите в веб-интерфейс установщика VK WorkSpace по адресу http://<company_domain>:8888.
-
Перейдите в список контейнеров, найдите контейнер bi-kafka и нажмите на пиктограмму
-
Выберите Проверить для графы create_topics:
После нажатия на кнопку запустится проверка необходимых топиков.
Если в контейнере недостает топиков, для графы create_topics тег done изменится на needRefresh. Нажмите на кнопку Запустить.
По умолчанию создается 10 партиций для каждого топика. Чтобы увеличить количество партиций:
-
Подключитесь к контейнеру bi-kafka:
-
Следуйте инструкции из документации Apache Kafka.
При использовании внешнего сервиса Kafka
Если вы используете внешний сервис Kafka, перейдите в его веб-интерфейс и создайте все топики из секции kafka конфигурационного файла /usr/local/etc/zastava-1.yaml (см. шаг 1 выше).
Количество партиций для каждого топика — не менее max_parralel * <количество инстансов> / 2. Рекомендуется при возможности сразу установить количество партиций равное max_parralel * <количество инстансов>.
Большее число партиций не является проблемой (и число партиций у существующего топика, как правило, можно увеличить).
Таким образом, для двух инстансов сервиса Zastava с max_parralel = 4 рекомендуется для начала установить по восемь партиций в каждом топике.
Если топиков нет и доступа к веб-интерфейсу Kafka тоже нет
Создайте топики при помощи утилиты kcat. Будьте осторожны, так как топики будут иметь некоторое заранее сконфигурированное администратором Kafka количество партиций, которое может не совпадать с желаемым. Прибегать к этой инструкции следует только при отсутствии других вариантов.
Чтобы создать топики:
-
На сервере Мессенджер и ВКС выполните команды ниже:
sudo docker run -it --network=host edenhill/kcat:1.7.1 -b b <IP-адрес_Kafka> -P -t birich -Z # (нажмите ctrl-d, чтобы послать eof) sudo docker run -it --network=host edenhill/kcat:1.7.1 -b b <IP-адрес_Kafka> -P -t action -Z # (нажмите ctrl-d, чтобы послать eof) sudo docker run -it --network=host edenhill/kcat:1.7.1 -b b <IP-адрес_Kafka> -P -t birich-action-retry -Z # (нажмите ctrl-d, чтобы послать eof) sudo docker run -it --network=host edenhill/kcat:1.7.1 -b b <IP-адрес_Kafka> -P -t birich-retry -Z # (нажмите ctrl-d, чтобы послать eof) sudo docker run -it --network=host edenhill/kcat:1.7.1 -b b <IP-адрес_Kafka> -P -t birich-dlq -Z #( нажмите ctrl-d, чтобы послать eof) # Посмотрите список топиков sudo docker run -it --network=host edenhill/kcat:1.7.1 -b <IP-адрес_Kafka> -L -
Перезапустите сервис Zastava командой:
3. Включите политику доступности мини-аппов в приложении VK WorkSpace
На сервере Мессенджер и ВКС выполните шаги, представленные ниже:
Шаг 1. Выполните скрипт миграции мини-аппов
-
Для корректной работы скрипта откройте доступ на запросы в сервис Go-files:
-
В конфигурационном файле Nginx /usr/local/nginx-im/confv2/nginx.conf в секции geo $prod_ip укажите IP-адрес сервера Мессенджер и ВКС:
-
Перезапустите Nginx:
-
Перед запуском скрипта миграции проверьте доступность сервиса Go-files, который хранит файлы. Ниже приведен пример команды для отправки локального svg-файла на удаленный сервер:
гдеcurl --location --request POST 'http://files-n.<company_domain>/s2s/api/v1/direct_upload?uid=example@mail.ru' --header 'Content-Type: image/svg' -d '@<some_svg_path>'— путь до локального файла с расширением .svg. Если сервис недоступен, то
-
-
Перейдите в директорию /usr/local/gp_deploy/ и запустите скрипт миграции веб-аппов и мини-аппов командой:
В результате работы скрипта в сервисах Avon и Gulliver появится информация о веб-аппах и веб-аппах, присутствующих в инсталляции.
Примечание
Для обновления информации о мини-аппах (в ситуации, когда необходимо исправить конфиг, название мини-аппа или иконку) скрипт можно запустить с ключом
–update.
Пример:Список перенесенных в инсталляцию мини-аппов будет сохранен в файле created_miniapps.txt.
-
Чтобы проверить список перенесенных мини-аппов, выполните команду:
В выводе команды отобразятся перенесенные мини-аппы с типом webapp и native:
- ['calendar', 5, true, 'webapp'] - ['calls', 3, true, 'native'] - ['cloud', 8, false, 'webapp'] - ['mail', 6, false, 'webapp'] - ['messenger', 17, true, 'native'] - ['miniapp-8fe88e60-4100-4c6d-9a25-5aa40d525c37', 1, true, 'miniapp'] - ['orgstructure', 7, false, 'webapp'] - ['tasks', 2, true, 'webapp']Проверьте, что присутствуют все необходимые мини-аппы для инсталляции.
-
Активируйте все перенесенные мини-аппы
Пример команды для активации мини-аппа календарей:
Шаг 2. Активируйте сервис Pacman
Сервис отвечает за реализацию групповой политики доступности веб-аппов и мини-аппов и находится в инсталляции в неактивном состоянии. Сервис надо активировать и развернуть.
Чтобы активировать сервис:
-
Перейдите в конфигурационный файл /usr/local/etc/k8s/helmwave/projects.yml и удалите из секции disabled сервис Pacman.
-
Запустите деплой сервиса.
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции:
-
Создайте карту сервиса:
Пример названия инстанса сервиса в карте: pacman.<имя_ноды>.pacman -1
Шаг 3. Разверните сервис Pacman
Перейдите в конфигурационный файл сервиса Pacman /usr/local/etc/k8s/helmwave/projects/pacman/values/pacman.yml и укажите:
-
В секции pravda укажите адрес эндпоинта API групповых политик:
-
В секции cache укажите размер и тип кэша:
На данный момент поддерживаются два типа кэша:
-
none;
-
lru — рекомендованное значение.
-
-
Заполните секции version, endpoints и connection:
live_config: riad: version: "/gp/vkt/pacman/1" endpoints: - "100.70.80.52:12501" policies: # см. описание в пункте ниже connection: uri: "pacman" protocol: "ipros" params: {}где:
-
version — ключ, по которому панель администратора VK WorkSpace будет искать конфигурацию. Имеет вид prefix/имя_сервиса/версия. Важно убедиться, что префикс совпадает с указанным в настройках сервисов Pravda и Zastava.
-
endpoints — адрес etcd-сервера PUB1 из шага Настройки в веб-интерфейсе установщика VK WorkSpace.
-
connection — секция настроек доставки сообщений для сервиса Zastava. Оставьте как в примере выше.
-
-
Заполните секцию policies:
Если вы выполнили скрипт миграции мини-аппов, возьмите секцию policies из примера ниже, скорее всего, вам не потребуется ее менять:
live_config: riad: version: "/gp/vkt/pacman/1" endpoints: - "10.32.0.1:12501" policies: - name: orderpolicy title: Order Policy payload: permissions: - name: desktopOrder title: Разделы десктоп и веб-версий description: Выбранные сервисы будут отображаться в интерфейсе Супераппа в левом навигационном баре сверху вниз type: SortableMultiSelectList list_values: meta: - name: mobileOrder title: Разделы мобильной версии description: Выбранные сервисы будут отображаться в интерфейсе Супераппа type: SortableMultiSelectList list_values: meta: connection: uri: pacman protocol: ipros params: {}Оставьте секции list_values и meta пустыми. В таком случае порядок мини-аппов и настройки по умолчанию будут собраны из сервиса Avon.
Чтобы изменить порядок мини-аппов или значения по умолчанию, заполните секции list_values и meta для mobileOrder и desktopOrder. Пример заполненных секций ниже:
live_config: riad: version: "/gp/vkt/pacman/1" endpoints: - "100.70.80.52:12501" policies: - name: orderpolicy title: Order Policy payload: permissions: - name: desktopOrder title: Разделы десктоп и веб-версий Супераппа description: Выбранные сервисы будут отображаться в интерфейсе Супераппа в левом навигационном баре сверху вниз type: SortableMultiSelectList list_values: - cloud - messenger - calendar - calls - mail - orgstructure - tasks #- miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a meta: messenger: default_position: 1 hidable: false movable: false tasks: default_position: 2 hidable: false movable: true calls: default_position: 5 hidable: false movable: true mail: default_position: 4 hidable: true movable: true calendar: default_position: 3 hidable: true movable: true orgstructure: default_position: 6 hidable: true movable: true cloud: default_position: 7 hidable: true movable: true #miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a: #display: Тестовый мини-апп #default_position: 8 #hidable: true #movable: true - name: mobileOrder title: Порядок мини-аппов в мобильном клиенте description: Пользователям разрешено пользоваться мини-аппами на мобильном клиенте type: SortableMultiSelectList list_values: - cloud - messenger - calendar - calls - mail - orgstructure - tasks - services #- miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a meta: services: default_position: 1 display: "Сервисы" hidable: false movable: false messenger: default_position: 2 hidable: false movable: false tasks: default_position: 4 hidable: false movable: true calls: default_position: 3 hidable: false movable: true mail: default_position: 6 hidable: true movable: true calendar: default_position: 5 hidable: true movable: true orgstructure: default_position: 7 hidable: true movable: true cloud: default_position: 8 hidable: true movable: true #miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a: #display: Тестовый мини-апп #default_position: 9 #hidable: true #movable: true connection: uri: "pacman" protocol: "ipros" params: {}В примере выше перечислены все поддерживаемые нативные и веб-аппы, у них указаны правильные признаки hidable и movable и правильный порядок.
Если в инсталляции отсутствует тот или иной веб-апп (например, почта или облако) — достаточно закомментировать соответствующие секции и упоминание в секции list_values.
Мини-аппы можно добавить по аналогии с закомментированным miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a в примере выше. miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a — ID миниаппа, который можно получить в боте Metabot.
Внимание
Все веб-аппы и мини-аппы, не упомянутые в секции policies:
- не будут доступны для конфигурирования через групповые политики в панели администратора VK WorkSpace;
- не будут отображаться в Супераппе после включения флага group-policy-enabled на шаге 5 ниже.
Перечислите все нативные и веб-аппы, доступные в инсталляции, а также все актуальные мини-аппы в системе, для которых нужна иконка в Супераппе.
Несмотря на то, что все неанонсированные мини-аппы не будут доступны для конфигурирования через групповые политики, они всё ещё будут доступны по ссылке. Групповая политика разделов в текущей реализации управляет отображением разделов, но не доступом.Информация из раздела meta используется только для отображения в интерфейсе панели администратора VK WorkSpace:
-
Значения values и icon в meta на данный момент не используются.
-
Для hidable и movable указаны значения по умолчанию — true. При необходимости могут быть скорректированы на false.
-
Если default_position прописан хотя бы для одного из аппов, то тогда он должен быть прописан для всех аппов. Кроме того, при выставлении этого параметра через конфиг значения должны быть уникальными. Если нарушено одно из этих условий, при попытке донести в etcd будет код ответа 400. Если default_position не прописывается в конфиге, то он запрашивается из сервиса Avon, в таком случае мини-аппы могут быть не по порядку в клиентском приложении.
Внимание
desktopOrder должен быть описан раньше mobileOrder, иначе в панели администратора VK WorkSpace секции настройки поменяются местами. Секция services обязательно должна быть описана при помощи поля display.
-
-
Перезапустите сервис Pacman.
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции:
Шаг 4. Анонсируйте политику доступности мини-аппов
-
Убедитесь, что выполнены предварительные действия для анонсирования политики.
-
В консоли выполните команду:
curl 'http://admin.<domain>/api/miniapp/announcePolicy' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -b cookieFile.txt \ -d ''Если код ответа не 200 — посмотрите логи сервиса Pacman:
Если код ответа 200 — перейдите по адресу https://biz.<company_domain>.ru/vkwsgp/api/v1/settings/vkt/pacman/ и проверьте групповую политику в панели администратора VK WorkSpace.
Шаг 5. Включите политику доступности мини-аппов
Для всей инсталляции:
-
В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json укажите для поля group-policy-enabled значение true:
Поле group-policy-enabled отвечает за то, чтобы приложения начали получать список мини-аппов в соответствии с настроенной групповой политикой. -
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции:
-
Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):
Для определенного домена:
-
В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json укажите для поля default значение false, а для домена — true:
-
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции:
-
Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):
Шаг 6. Включите политику в панели администратора VK WorkSpace
Работа с политикой доступности мини-аппов в панели администратора VK WorkSpace описана в документе Групповые политики.
4. Включите политику обязательных чатов и каналов в Мессенджер и ВКС
На сервере Мессенджер и ВКС выполните шаги, представленные ниже:
Шаг 1. Активируйте сервис Chat-gp
Сервис отвечает за реализацию групповой политики обязательных чатов и каналов и находится в инсталляции в неактивном состоянии. Сервис надо активировать и развернуть.
Чтобы активировать сервис:
-
В конфигурационном файле /usr/local/etc/k8s/helmwave/projects.yml удалите из секции disabled сервис Chat-gp.
-
Запустите деплой сервиса.
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции:
-
Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):
-
Создайте карту сервиса:
Внимание
Chat-gp не должен иметь "-" в названии карты.
Пример правильного названия инстанса сервиса в карте — chatgp.onpremise.chatgp-1.
Пример неправильного названия инстанса сервиса в карте — chatgp.onpremise.chat-gp-1. -
Создайте сервис для каждого экземпляра инстанса:
где:
-
chatgp.onpremise.chatgp-1 — алиас.
-
onpremise — имя ipros-ноды.
-
main — тип (slave, main, dup, mirror, fallback или none).
Распределите все бакеты по карте равномерно:
-
Шаг 2. Разверните сервис Chat-gp
Перейдите в конфигурационный файл сервиса Chat-gp /usr/local/etc/k8s/helmwave/projects/chatgp/values/chatgp.yml и заполните поля:
-
В секции zastava:
где:
-
timeout — таймаут обработчика сообщений сервиса Zastava. Рекомендуется оставить без изменений.
-
long_task_ttl — ограничение времени жизни для асинхронных запросов обработки добавления в чат. Рекомендуется оставить без изменений.
Примечание
Значения можно изменить для избежания подвисаний при обработке сообщений из сервиса Zastava и возникновении нежелательных ретраев.
-
-
В секции notifier при необходимости включите уведомления пользователей об изменении политики:
notifier: bot: enabled: true token: "${TOKEN}" bot_api: "http://[[ .Release.Store.hosts.botApiExternal ]]/bot/v1/" timeout: 10s retry_count: 3 retry_pause: 600msгде:
-
enabled: true — включает уведомления пользователей.
-
token — укажите токен бота, от которого будут приходить уведомления (см. предусловия).
-
-
В секции live_config укажите правильный ключ и адрес etcd-сервера:
live_config: riad: version: "/gp/vkt/chatgp/1" endpoints: - 100.70.80.52:12501 policies: - name: obligatory_chats title: The policy of obligatory chats payload: permissions: - name: obligatory_chats title: The policy of obligatory chats description: The policy of obligatory chats type: MultiSelectList limit_scope: false value_source: type: chat actions: on_add_item: on_remove_item: connection: uri: chatgp protocol: ipros params: {}где endpoints — адрес сервиса PUB1 из шага Настройки в веб-интерфейсе установщика VK WorkSpace
Внимание
Конфигурацию политики в секции policies оставьте без изменений.
-
Перезапустите сервис Chat-gp.
Для инсталляции на одну виртуальную машину:
Для кластерной инсталляции:
Шаг 3. Настройте сервис Mchat-st
-
Запустите скрипт для выставления creator_sn у старых чатов (без его запуска старые чаты не будут отображаться в Панели администратора VK WorkSpace):
-
Чтобы понять, где запущен мастер Mchat-st, а где реплика, выполните:
Пример вывода команды:
node mchat-st-1 (2147483648 buckets) srv mchat-st.vkt-4vm-1388-standart-01.mchat-st-1 10.32.88.0:2525 alive main srv mchat-st.vkt-4vm-1388-standart-02.mchat-st-1 10.32.64.0:2525 alive slave node mchat-st-2 (2147483648 buckets) srv mchat-st.vkt-4vm-1388-standart-03.mchat-st-1 10.32.0.1:2526 alive main srv mchat-st.vkt-4vm-1388-standart-04.mchat-st-1 10.32.96.0:2525 alive slaveМастерами будут инстансы, напротив которых написано «main», репликами — «slave». В примере выше мастеры запущены на vkt-4vm-1388-standart-01 и vkt-4vm-1388-standart-03, реплики — на vkt-4vm-1388-standart-02 и vkt-4vm-1388-standart-04.
-
Подключитесь к виртуальным машинам с репликами,
-
Остановите сервис Mchat-st, сделайте копию данных и запустите сервис снова. Из примера выше данные команды надо выполнить на vkt-4vm-1388-standart-02 и vkt-4vm-1388-standart-04:
-
Подключитесь к виртуальным машинам с мастерами (из примера выше это vkt-4vm-1388-standart-01 и vkt-4vm-1388-standart-03) и выставите в real mode:
-
Запустите скрипт:
-
Проверьте, есть ли ошибки в логах /oap/icq/logs/mchat-st-1.log. Если есть, то перезапустите скрипт.
-
Чтобы посмотреть процесс скрипта:
По завершении скрипта будет вывод:
Данный скрипт запускается один раз при первичной настройке групповой политики.
-
-
Перезапустите сервис Mchat-st командой:
Шаг 4. Настройте сервис Gbld-mchat
-
Перейдите в конфигурационный файл сервиса /usr/local/etc/k8s/helmwave/projects/gbld-mchat/values/gbld-mchat/application.yml и добавьте в конце строчку:
-
Для применения изменений на одну виртуальную машину выполните команду:
Затем перезапустите сервис с новой конфигурацией:
Для кластерной инсталляции:
HELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t gbld-mchat --dependencies=falseЗатем перезапустите сервис с новой конфигурацией:
Шаг 5. Анонсируйте политику обязательных чатов
- Убедитесь, что выполнены предварительные действия для анонсирования политики.
-
Выполните в консоли команду:
Шаг 6. Включите политику в панели администратора VK WorkSpace
Работа с политикой обязательных чатов и каналов в панели администратора VK WorkSpace описана в документе Групповые политики.
5. Включите политику привилегий
На сервере Мессенджер и ВКС выполните шаги, представленные ниже:
Шаг 1. Активируйте сервис Vipper
Сервис отвечает за реализацию групповой политики привилегий и находится в инсталляции в неактивном состоянии. Сервис надо активировать и развернуть.
Чтобы активировать сервис:
-
Перейдите в конфигурационный файл /usr/local/etc/k8s/helmwave/projects.yml и удалите из секции disabled сервис Vipper.
-
Запустите деплой сервиса:
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции:
-
Создайте карту сервиса:
Пример названия инстанса сервиса в карте: vipper.<имя_ноды>.vipper-1
Шаг 2. Разверните сервис Vipper
Чтобы развернуть сервис:
-
Перейдите в конфигурационный файл сервиса Vipper /usr/local/etc/k8s/helmwave/projects/vipper/values/vipper.yml и в секции keycloak укажите доступы до сервиса Keycloak:
-
В секции notifier при необходимости включите уведомления пользователей об изменении политики:
notifier: bot: enabled: true token: "${TOKEN}" bot_api: "http://[[ .Release.Store.hosts.botApiExternal ]]/bot/v1/" timeout: 10s retry_count: 3 retry_pause: 600msгде:
-
enabled: true — включает уведомления пользователей.
-
token — укажите токен бота, от которого будут приходить уведомления (см. предусловия).
-
-
В секции live_config укажите правильный ключ и адрес etcd-сервера:
live_config: riad: version: "/gp/vkt/vipper/3" endpoints: - "100.70.176.132:12501" policies: - name: "vipspolicy" title: VIP-S policy payload: permissions: - name: "allowDisturb" title: "Уровень полномочий" description: "Обычный — не позволяет писать, звонить, добавлять в чаты и звонки руководство и высшее руководство, но позволяет взаимодействие с пользователями с обычным, доверенным и доверенным высшего руководства уровнем полномочий. \n\nДоверенные руководства — позволяет писать, звонить, добавлять в чаты и звонки пользователей с любым уровнем полномочий, кроме высшего руководства. \n\nРуководство — запрещает обычным пользователям писать, звонить и добавлять в чаты и звонки руководство и позволяет взаимодействие с пользователями с любым уровнем полномочий, кроме высшего руководства. \n\nДоверенные высшего руководства — позволяет писать, звонить, добавлять в чаты и звонки пользователей с любым уровнем полномочий. \n\nВысшее руководство — запрещает обычным пользователям, доверенным руководства, руководству писать, звонить и добавлять в чаты и звонки высшее руководство и позволяет взаимодействие с пользователями с любым уровнем полномочий." type: "List" list_values: ["Regular", "VIP4", "VIP3", "VIP2", "VIP1"] limit_scope: false meta: Regular: display: "Обычный" VIP4: display: "Доверенные руководства" VIP3: display: "Руководство" VIP2: display: "Доверенный высшего руководства" VIP1: display: "Высшее руководство" connection: uri: "vipper" protocol: "ipros" params: {}где endpoints — адрес сервиса PUB1 из шага Настройки в веб-интерфейсе установщика VK WorkSpace.
Внимание
Конфигурацию политики в секции policies оставьте без изменений.
-
Перезапустите сервис Vipper.
Для инсталляции на одну виртуальную машину:
Для кластрной инсталляции:
Шаг 3. Настройте сервис Gbld-mchat
-
Перейдите в конфигурационный файл сервиса /usr/local/etc/k8s/helmwave/store/vip_enable.yml и укажите:
-
Для примените изменения на одну виртуальную машину выполните команду:
Затем перезапустите сервис с новой конфигурацией:
Для кластерной инсталляции:
HELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t gbld-mchat --dependencies=falseЗатем перезапустите сервис с новой конфигурацией:
Шаг 4. Настройте сервис Nomail
-
Перейдите в конфигурационный файл сервиса /usr/local/etc/nomail-1.conf и добавьте в поле nomail.keycloak.additional.extra.fields значение «memberOf»:
-
Перезапустите сервис командой:
Шаг 5. Настройте сервис Boss
-
Перейдите в конфигурационный файл сервиса /usr/local/etc/k8s/helmwave/store/vip_enable.yml и укажите:
-
Перезапустите сервис командой:
Шаг 6. Анонсируйте политику привилегий
-
Убедитесь, что выполнены предварительные действия для анонсирования политики.
-
В консоли выполните команду:
Шаг 7. Включите политику в панели администратора VK WorkSpace
Работа с политикой привилегий в панели администратора VK WorkSpace описана в документе Групповые политики.
6. Настройте переменные окружения на сервере VK WorkSpace
-
Подключитесь к серверу VK WorkSpace, на котором установлен контейнер pravdapg1.
-
Получите имена политик:
Вывод команды будет следующим:
id | name | title | description | app_name | service_name | revision ---+------------------+-----------------+-------------+----------+--------------+--------- 4 | obligatory_chats | Группы и каналы | | vkt | chatgp | 1 6 | vipspolicy | VIP-S policy | | vkt | vipper | 1 2 | orderpolicy | Order Policy | | vkt | pacman | 3 (3 rows) -
Установить переменные окружения с уникальными значениями для политик в формате "app_name:service_name:name" для ролей:
-
bizf
-
biz-celery-worker-pdd
-
biz-celery-worker-pdd-check
-
biz-celery-worker-pdd-high
-
biz-celery-worker-update
-
biz-celery-beat
-
biz-pravda-kafka-consumer
GP_MINI_APPS_LIST_UNIQUE_NAME: vkt:pacman:orderpolicy GP_REQUIRED_CHATS_UNIQUE_NAME: vkt:chatgp:obligatory_chats GP_VIP_UNIQUE_NAME: vkt:vipper:vipspolicyгде:
-
GP_MINI_APPS_LIST_ID — orderpolicy.
-
GP_REQUIRED_CHATS_POLITIC_ID — obligatory_chats.
-
GP_VIP_ID — vipspolicy.
-
-
Перейдите в веб-интерфейс установщика VK WorkSpace по адресу http://<company_domain>:8888 и запустите автоустановку нажатием на кнопку
в правом верхнем углу.
7. Выполните настройки в веб-интерфейсе установщика Почты
Шаг 1. Выполните шаг upload_pravda_defaults для контейнера pravda
- Перейдите в веб-интерфейс установщика.
- В списке контейнеров найдите контейнер pravda1.
-
Выполните шаг upload_pravda_defaults.
Шаг 2. Получите идентификаторы политик в Панели администратора
- Авторизуйтесь в Панели администратора по адресу https://biz.<ваш домен>/.
- Перейдите в интерфейс с настройками системы по адресу https://biz.<ваш домен>/admin/misc/.
- На главной странице, в блоке Запрос через Клиент, в поле Клиент: введите GPGetPoliciesClient.
-
Нажмите Отправить.
-
В ответ вы получите структуру данных в формет JSON. Среди этих данных находятся идентификаторы групповых политик. Например, начало ответа выглядит так:
{ "paging": { "results_count": 6 }, "data": [ { "id": 2, # Данный идентификатор по каждой политике нужно будет далее указать в веб-интерфейсе установщика "name": "orderpolicy", "title": "Доступность разделов", "description": null, ...В блоке data расположен массив объектов с данными о групповых политиках. Рекомендуем скопировать ответ из веб-интерфейса в один из редакторов на вашем компьютере для удобной работы. В этом массиве нам нужны идентификаторы политик из поля id, этот идентификатор расположен рядом с названиями политики (поля name и title).
Шаг 3. Выполните настройки в веб-интерфейсе установщика
- В веб-интерфейсе установщика, перейдите в раздел Настройки -> Переменные окружения.
- В левом боковом меню найдите bizf.
- Нажмите кнопку редактировать
. - Нажмите на кнопку + Добавить.
-
Поля Название переменной и Значение переменной заполните в соответствии с таблицей ниже. Идентификаторы политик нужно взять с из JSON, полученного на Шаге 2.
Название переменной Значение переменной GP_MINI_APPS_LIST_POLICY_ID Идентификатор политики с "name": "orderpolicy"GP_REQUIRED_CHATS_POLICY_ID Идентификатор политики с "name": "obligatory_chats"GP_VIP_POLICY_ID Идентификатор политики с "name": "vipspolicy"GP_CLOUD_USER_QUOTA_POLICY_ID Идентификатор политики с "name": "clouduserquota"GP_CLOUD_FOLDER_PERMISSIONS_POLICY_ID Идентификатор политики с "name": "cloudfolderpermissions"GP_CLOUD_FOLDER_PERMISSIONS_AVAILABLE_RIGHTS Укажите значение: 1,64 -
Нажмите Сохранить.
-
Выполните шаг up_container для контейнера bizf.
Как выключить групповые политики
Политика привилегий и политика обязательных чатов и каналов выключаются в панели администратора VK WorkSpace. Подробное описание см. в документе Групповые политики.
Чтобы выключить политику доступности мини-аппов для конкретного домена или всей инсталляции:
- Перейдите панель администратора VK WorkSpace https://biz.<company_domain> и отключите групповую политику.
-
Подключитесь к серверу Мессенджер и ВКС и выключите политику:
Для всех доменов инсталляции:
В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json в секции group-policy-enabled для поля default укажите значение false:
Для определенного домена:
В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json в секции group-policy-enabled для поля default укажите значение true, а для домена — false:
-
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции:
-
Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):
Как обновить политику доступности мини-аппов в приложении VK WorkSpace
Чтобы добавить новый веб-апп или мини-апп в приложении, выполните шаги ниже:
-
На сервере Мессенджер и ВКС перейдите в конфигурационный файл сервиса Pacman /usr/local/etc/k8s/helmwave/projects/pacman/values/pacman.yml.
-
В секции riad поднимите версию ключа /gp/vkt/, например: "/gp/vkt/pacman/4" → "/gp/vkt/pacman/5":
-
Если необходимо изменить порядок мини-аппов или настройки по-умолчанию, заполните секцию policies (формат секции описан выше).
-
Перезапустите сервис Pacman.
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции: -
В конфигурационном файле /usr/local/etc/k8s/helmwave/store/myteam-admin.yml в секциях MiniApps, Management и Settings установите для поля default значение allow:
myteamAdminPermission: resources: Analytics: default: allow groups: [] Export: default: allow groups: [] Settings: default: allow groups: [] Information: default: allow groups: [] Management: default: allow groups: [] MiniApps: default: allow groups: []Примените изменения.
Для инсталляции на одну виртуальную машину выполните команду:
Для кластерной инсталляции:
-
Анонсируйте политику:
В консоли выполните команду:
curl 'http://admin.<domain>/api/miniapp/announcePolicy' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -b cookieFile.txt \ -d ''Если код ответа не 200 — посмотрите логи сервиса Pacman:
Если отображается ошибка авторизации — авторизуйтесь под учетной записью администратора и заново анонсируйте политику.
Если код ответа 200 — перейдите по адресу https://biz.<company_domain>.ru/vkwsgp/api/v1/settings/vkt/pacman/ и проверьте групповую политику в панели администратора VK WorkSpace.
Как добавить новый инстанс сервиса групповой политики в карту
Добавление в карту новых инстансов для сервисов Vipper и Pacman происходит автоматически.
Чтобы добавить в карту новый инстанс сервиса Chat-gp:
-
На сервере Мессенджер и ВКС создайте сервис для каждого экземпляра инстанса:
echo "ctlr_add_srv chatgp.mk-cluster-24-3-03. chatgp-2 mk-cluster-24-3-03 main" | nc ctlr.service.onpremise.consul 4020где:
-
chatgp.mk-cluster-24-3-03.chatgp-2 — алиас.
-
mk-cluster-24-3-03 — имя ноды.
-
main — тип (slave, main, dup, mirror, fallback или none).
-
-
Перейдите в конфигурационный файл сервиса Chat-gp /usr/local/etc/k8s/helmwave/projects/chatgp/values/chatgp.yml и в секции configs под полем mountPath добавьте новый инстанс:
volumes: configs: mountPath: /usr/local/etc/ chatgp-1: * chatgp chatgp-2: * chatgp #добавьте новый инстанс configMaps:Внимание
Chat-gp не должен иметь "-" в названии инстанса.
Пример правильного названия инстанса сервиса в карте — chatgp.<имя_ноды>.chatgp-2.
Пример неправильного названия инстанса сервиса в карте — chatgp.<имя_ноды>.chat-gp-2. -
Запустите деплой сервиса:








