Настройка точек распространения¶
Настройка точек распространения — развёртывание дополнительных узлов RuDesktop в режиме исполнителя (INSTALL_MODE=executor), которые подключаются к общим Redis и PostgreSQL главного сервера, забирают оттуда задачи (например, выполнение политик) и выполняют их у себя — это снимает нагрузку с главного сервера и позволяет распараллелить выполнение задач между несколькими узлами
Регистрация и параметры точки распространения настраиваются на странице Точки распространения в веб-интерфейсе
Предупреждение
Версии сервера RuDesktop на главном узле и на точке распространения должны совпадать. После обновления главного сервера на новую версию точку распространения необходимо обновить до той же версии — иначе часть функциональности может работать некорректно
Сетевые порты и потоки данных¶
Точка распространения участвует в передаче файлов на устройства по цепочке главный сервер → точка распространения → конечное устройство. Ниже приведены сетевые соединения, которые нужно разрешить на межсетевом экране.
Соединение |
Инициатор |
Протокол |
Порт |
|---|---|---|---|
Кэширование файла: точка распространения загружает файл из хранилища главного сервера |
Точка распространения → главный сервер |
HTTPS (TCP) |
веб-порт главного сервера (по умолчанию |
Загрузка файла на устройство: устройство забирает файл с точки распространения |
Конечное устройство → точка распространения |
HTTPS (TCP) |
веб-порт точки распространения (по умолчанию |
Управляющий канал: запуск задач и получение результата (протокол RuDesktop) |
Конечное устройство и точка распространения → главный сервер (сервер подключений) |
WSS (WebSocket поверх TLS) |
|
Доступ к общим службам главного сервера |
Точка распространения → главный сервер |
Redis / PostgreSQL |
|
Управление по SSH (если для устройства выбран тип подключения SSH) |
Точка распространения → конечное устройство |
SSH (TCP) |
|
Примечание
Значение 443 приведено по умолчанию — фактически это веб-порт узла (параметр PUBLIC_PORT), заданный при установке. Если узел развёрнут на нестандартном порту (например, на ALT Server порт отличается от 443), укажите соответствующий порт
Важно
В штатном режиме (протокол RuDesktop) на управляемых устройствах не требуется открывать входящие порты — и управляющий канал, и загрузка файла выполняются исходящими соединениями от самого устройства. Входящий доступ по веб-порту нужен только на серверных узлах: главном сервере и точках распространения
Подключение точки распространения¶
Для подключения точки распространения к серверу RuDesktop выполните следующие шаги
Создание точки распространения в веб-интерфейсе¶
Создайте точку распространения на странице Точки распространения в веб-интерфейсе главного сервера. На этом этапе достаточно указать название и IPv4-адрес узла — параметры будут применены, когда узел выйдет на связь
Настройка главного сервера¶
Примечание
Этот раздел нужен, если Redis и PostgreSQL развёрнуты на самом главном сервере — для того, чтобы открыть к ним сетевой доступ с узла точки распространения. Если базы вынесены на отдельные серверы, настраивайте сетевой доступ на них и переходите сразу к разделу Настройка точки распространения
Чтобы подключить точку распространения к главному серверу, на котором развёрнуты Redis и Postgres, необходимо открыть к ним внешнее подключение
Для этого выполните следующие действия:
Чтобы открыть доступ к Redis и защитить его паролем, отредактируйте файл конфигурации, который находится по пути /etc/rudesktop/redis.conf
В файле найдите строку, начинающуюся с bind, и укажите IP-адрес сервера, например:
bind 127.0.0.1 192.168.10.10 -::1
И добавьте пароль
requirepass <ваш_пароль>Подсказка
Не забудьте заменить
<ваш_пароль>на актуальный и сложный парольВажно
Настройка
requirepassпотребует пароля для всех подключений, что усилит безопасность Redis-сервера
В файле /etc/default/rudesktop определите переменную, которая используется для указания адреса Redis:
REDIS_URL='redis://:<ваш_пароль>@127.0.0.1:32459'
Чтобы открыть доступ к Postgres только для определенных узлов, отредактируйте файл конфигурации, который находится по пути /etc/postgresql/<version>/main/postgresql.conf
Важно
Возможные пути на разных ОС:
postgresql.conf
/var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/<version>/data/postgresql.conf /etc/postgresql/<version>/main/postgresql.conf /usr/local/pgsql/data/postgresql.conf
pg_hba.conf
/var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/<version>/data/pg_hba.conf /etc/postgresql/<version>/main/pg_hba.conf /usr/local/pgsql/data/pg_hba.conf
В файле найдите строку, начинающуюся с listen_addresses, и укажите IP-адрес узла, которому вы хотите предоставить доступ, например:
listen_addresses = '*'
Откройте файл pg_hba.conf в той же директории и добавьте строку для разрешения доступа с нужного IP-адреса, например:
host all all 0.0.0.0/0 md5
Перезапустите службу postgresql:
sudo systemctl restart postgresql
Перезапустите сервер командой:
rude restart
Также вы можете развернуть Redis и Postgres отдельно от главного сервера RuDesktop по инструкциям и подключить главный сервер и точку распространения к ним
Настройка точки распространения¶
Добавьте репозиторий
mkdir -p /usr/share/keyrings/ wget -qO - https://storage.rudesktop.ru/repos/stable3.0/rudesktop.gpg | sudo gpg --dearmor -o /usr/share/keyrings/rudesktop.gpg echo "deb [signed-by=/usr/share/keyrings/rudesktop.gpg] https://storage.rudesktop.ru/repos/stable3.0 stable3.0 non-free" | sudo tee /etc/apt/sources.list.d/rudesktop.list apt-get update -y
Важно
Репозиторий доступен для
РЕД ОС,AlterOSиМСВСфераДля установки на другие операционные системы скачайте .rpm пакет и установите его вручную через пакетный менеджер
Добавьте файл
/etc/yum.repos.d/rudesktop.repoсо следующим содержимым:[rudesktop] name=Rudesktop baseurl=https://storage.rudesktop.ru/repos/stable3.0/rpms gpgcheck=0 enabled=1
Установите сервер RuDesktop с переменной
INSTALL_MODE=executorна узле:INSTALL_MODE=executor apt install rudesktop-server -yINSTALL_MODE=executor dnf install rudesktop-server -yВажно
Для
.rpmпакетов после установки сервера следует обязательно выполнить команду rude reinstallПредупреждение
При выполнении данной команды на ALT Server необходимо указать порт отличный от 443
Откройте файл по пути
/etc/default/rudesktopи добавьте следующее:SETUP_SERVER='Адрес главного сервера' REDIS_URL='Адрес и порт Redis' POSTGRES_HOST='Адрес БД' POSTGRES_PORT='Порт БД' POSTGRES_DB='Имя БД' POSTGRES_USER='Пользователь БД' POSTGRES_PASSWORD='Пароль БД'
Важно
SETUP_SERVER — укажите адрес главного сервера, например
192.168.10.10REDIS_URL — укажите адрес и порт Redis, если необходимо с паролем, например
redis://:password@192.168.10.10:32459POSTGRES — укажите настройки Postgres
Выполните команду, указав адрес главного сервера:
rude setup_server --skip-relay <АДРЕС_ГЛАВНОГО_СЕРВЕРА>Перезагрузите узел командой:
rude restartЗапустите задачу и убедитесь, что политики запустились на точке распространения. Перейдите на страницу Очередь задач — в колонке Точка распространения должно отображаться название настроенного узла
Проверка доступности Redis¶
Примечание
Раздел опциональный — нужен только для диагностики, если точка распространения не получает задачи
Чтобы убедиться, что узел может подключиться к Redis главного сервера:
Установите на узле пакет
redis-toolsПодключитесь к Redis главного сервера:
redis-cli -h <АДРЕС_ГЛАВНОГО_СЕРВЕРА> -p 32459Выполните авторизацию командой
AUTH:AUTH <ваш_пароль>Если в ответ возвращается
OK, авторизация успешнаВажно
Не передавайте пароль в командной строке через
-aили--pass— он может попасть в историю shell или быть виден другим пользователям через список процессов. Используйте интерактивныйAUTHпосле подключенияВыполните команду
PING. ОтветPONGозначает, что узел успешно установил соединение с Redis
Обновление точки распространения¶
После обновления главного сервера на новую версию обновите точку распространения до той же версии — иначе часть функциональности может работать некорректно.
Обновление выполняется на узле точки распространения:
Обновите пакет сервера RuDesktop:
apt-get update -y apt-get install --only-upgrade rudesktop-server -y
dnf update rudesktop-server -yПерезапустите узел:
rude restartУбедитесь, что точка снова вышла на связь: на вкладке «Информация об узле» страницы Точки распространения отобразится актуальная версия сервера