Перейти к основному контенту

Решение проблем с публикацией приложений 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.


Скриншоты стенда JS:

76d855ca9bc4889c6907b4266d9ba0de.png

073d5d8fa0f4ff95cdcab4f634613aeb.png

85937cb6e01264524ca4436c5216695c.png