Решение проблем с публикацией приложений RemoteApp
В этой статье я подробно опишу, как взаимодействуют JumpServer, RDS Server и Tinker, чтобы можно было выяснить, в чем проблема.
Описание процесса интеграции RDS и JumpServer.
1. JumpServer подключается по SSH к серверу RDS:
- устанавливает там сервис Tinker, которому сообщает адрес JS (параметр Core API)
- создает локальные сервисные УЗ вида js_* и jms_* на RDS
- добавляет созданные УЗ в группу "Remote Desktop Users"
Важно: группа "Remote Desktop Users" может называться по-другому в Windows, название может зависеть от языка ОС, если эти УЗ не присутствуют в группе, нужно будет добавить их вручную.
2. Tinker связывается с JumpServer по заданному адресу (параметр Core API)
- Tinker сообщает, что он работает, и статус RDS становится "online".
- Загружает дистрибутивы выбранных апплетов, например, Chrome и DBeaver загружаются с сервера JS по тому же адресу, указанному в Core API. Другие апплеты он может пытаться загрузить из интернета.
- Tinker устанавливает загруженные апплеты.
Описание Tinker:
Tinker - вспомогательное приложение для интеграции с JumpServer, участвует в поддержке связи между RDS и JS, устанавливает нужные для публикации приложения(апплеты), а также управляет публикацией приложений RemoteApp при запуске сессий.
По умолчанию устанавливается в папку C:\Users\[ACCOUNT]\AppData\Local\Programs\Tinker\ ([ACCOUNT] - это УЗ, которая использовалась для интеграции JS и RDS)
Устанавливает сервис JumpServer Tinker Service - он всегда должен быть запущен
Подробный лог работы и ошибок Tinker доступен в папке
C:\Users\[ACCOUNT]\AppData\Local\Programs\Tinker\data\logs
Апплеты Tinker
Аплеты - это набор из приложения и скриптов автоматизации для управления приложением, по умолчанию апплеты устанавливаются в папку
C:\Program Files\JumpServer
Именно в этой папке находятся запускаемые приложения и python скрипты с параметрами запуска, вы их можете изменять, если нужно.
Итоговый чек-лист:
-
На Windows RDS должен быть установлен OpenSSH, 22 порт должен быть открыт на Windows файрволле.
-
УЗ для интеграции с RDS должно иметь права администратора RDS.
-
В IP/Host должен быть указан IP адрес RDS сервера или его DNS имя, которое резолвится с JumpServer.
-
В Core API должен быть указан URL JumpServer, который доступен с RDS Server.
-
На RDS должны быть созданы УЗ вида JS_XX и JMS_XX.
-
УЗ вида JS_XX и JMS_XX на RDS должны находиться в группе пользователей удаленного рабочего стола на RDS сервере.
-
Сервис JumpServer Tinker на RDS сервере должен быть запущен.
-
Статус RDS сервера в интерфейсе JumpServer: Normal.
-
Статус апплетов в свойствах RDS сервера в интерфейсе JumpServer: Success.