Основные компоненты Termidesk

Перечень компонентов Termidesk

Termidesk состоит из ряда компонентов, которые могут быть либо отделяемыми (подразумевает выбор роли при установке из общего пакета), либо самостоятельными (компонент устанавливается из отдельного пакета, но используется в составе общего комплекса). Такое разделение обеспечивает гибкое масштабирование системы для различных сценариев применения. 

Компоненты могут быть объединены в фермы Termidesk.

Ферма Termidesk – логическое объединение узлов, взаимодействующих с одной базой данных (БД). На ферме размещаются ресурсы для пользователя.

Например, в одну ферму могут быть объединены следующие узлы:

  • узел с установленным «Порталом администратора»;
  • узел с установленным «Порталом пользователя»;
  • узел с установленным «Менеджером рабочих мест»;
  • (опционально) узел с установленным «Шлюзом».

Дополнительно должны быть установлены инфраструктурные сервисы:

  • узел с установленной БД или кластер узлов с БД;
  • узел с установленным брокером сообщений RabbitMQ.

Для объединения ресурсов с нескольких ферм Termidesk используется специальная роль, доступная при установке «Универсального диспетчера» – «Агрегатор». Установка «Агрегатора» должна быть отделена от установки фермы Termidesk и должна использовать отдельную БД.

Пример распределения компонентов и ролей:

  • ферма Termidesk:
    • узел с установленным «Порталом администратора»;
    • узел с установленным «Порталом пользователя»;
    • узел с установленным «Менеджером рабочих мест»;
    • (опционально) узел с установленным «Шлюзом»;
  • инфраструктурные сервисы для фермы Termidesk:
      • узел с установленной БД или кластер узлов с БД;
      • узел с установленным брокером сообщений RabbitMQ;
  • ферма «Агрегатора»:
    • узел с установленным «Порталом администратора»;
    • узел с установленным «Порталом пользователя»;
    • узел с установленным «Менеджером рабочих мест»;
  • инфраструктурные сервисы для фермы «Агрегатора»:
      • узел с установленной БД или кластер узлов с БД;
      • узел с установленным брокером сообщений RabbitMQ (в общем случае может использоваться тот же, что в ферме Termidesk, но обязательно - отдельный виртуальный хост).
Компоненты Termidesk

Компонент TermideskОписание
«Универсальный диспетчер»

Отделяемый компонент, отвечающий за взаимодействие с гипервизорами, идентификацию пользователей, назначение и контроль доставки им ВРМ, предоставление терминального доступа. «Универсальный диспетчер» использует СУБД PostgreSQL (и СУБД, основанные на PostgreSQL) для хранения информации о подключениях пользователей.

«Универсальный диспетчер» предоставляет следующие веб-порталы:

  • «Портал администратора» – веб-интерфейс управления параметрами фермы Termidesk;
  • «Портал пользователя» – веб-интерфейс для подключения пользователей фермы Termidesk;
  • «Агрегатор администратора» – веб-интерфейс управления фермой Агрегатора;
  • «Агрегатор пользователя» – веб-интерфейс для подключения пользователей фермы Агрегатора.

В случае, если производится комплексная установка и выбираются оба веб-портала фермы (например, «Портал администратора» и «Портал пользователя»), будет активирован «Портал универсальный», предоставляющий все функции

«Шлюз»Самостоятельный компонент, отвечающий за туннелирование протоколов доставки, использующих транспортный протокол TCP. Обеспечивает отделение инфраструктуры ВРМ или терминальных серверов, находящихся во внутренней локальной сети, от внешних локальных или глобальных сетей
«Менеджер рабочих мест»

Отделяемый компонент, отвечающий за взаимодействие с поставщиком ресурсов и управление жизненным циклом ВРМ, включая создание, настройку, запуск, отключение и удаление, а также сбор информации о терминальных сессиях.

Поставщик ресурсов – ОС, платформа виртуализации или терминальный сервер, предоставляющие вычислительные мощности, ресурсы хранения данных, а также сетевые ресурсы для размещения фондов рабочих мест (ВРМ, терминальных сессий и приложений).

Компонент состоит из служб:

  • termidesk-celery-beat – отслеживает очереди брокера сообщений RabbitMQ на предмет наличия заданий для выполнения (например, публикации фонда, удаления ВМ и др.). Обеспечивает передачу заданий службе termidesk-celery-worker;
  • termidesk-celery-worker – обеспечивает управление питанием ВРМ и сбор информации о терминальных сессиях. Выполняет задачи, размещенные в очереди брокера сообщений RabbitMQ.

Обе службы используются  для управления питанием ВМ, а также отслеживания состояния компонентов инфраструктуры Termidesk.

Процесс автоматического опроса состояния компонентов осуществляется следующим образом:

  • компонент Termidesk помещает информацию о себе в очередь брокера сообщений RabbitMQ;
  • служба termidesk-celery-beat с периодичностью в 60 секунд забирает из очереди RabbitMQ список всех узлов компонентов фермы Termidesk;
  • служба termidesk-celery-beat создает задачу на опрос состояния;
  • далее служба termidesk-celery-worker выполняет задачу на опрос состояния узлов. Полученные результаты служба termidesk-celery-worker записывает в БД
«Агент»

Самостоятельный компонент, отвечающий за контролируемую доставку, взаимодействие с компонентами «Универсальный диспетчер» и «Менеджер рабочих мест».

Включается в себя:

  • «Агент виртуального рабочего места» – устанавливается в гостевую ОС рабочего места. Обеспечивает настройку рабочего места при публикации и передачу сообщений пользователю, фиксирует действия пользователей в ВРМ;
  • «Агент узла виртуализации» – устанавливается на хостах виртуализации ПК СВ Брест. Обеспечивает отключение (выход из сеанса работы с ОС) и сброс SPICE-сессий. Работает в качестве посредника между libvirtd и «Агентом виртуального рабочего места» через именованный virtio-канал /dev/virtio-ports/ru.termidesk.tvm.0;
  • «Сессионный агент» – устанавливается в ОС терминального сервера. Обеспечивает доставку терминальных сессий и приложений пользователю;
  • «Агент виртуальных смарт-карт» – устанавливается в гостевую ОС рабочего места. Обеспечивает перенаправление смарт-карт (работающих по спецификации PC/SC) с пользовательской рабочей станции в рабочее место:
    • через канал /dev/virtio-ports/ru.termidesk.PCSC.0 – если установка выполняется в ОС рабочего места, размещенного на платформе виртуализации (ПК СВ Брест, oVirt, zVirt, РЕД Виртуализация, VMmanager), доступ к которому осуществляется по протоколу SPICE;
    • через разделяемую память (Shared Memory, SHM)  – если установка выполняется  в ОС рабочего места, доступ к которому осуществляется по протоколу TERA;
  • «Видеоагент» – устанавливается в гостевую ОС рабочего места. Обеспечивает прием изображений с веб-камеры пользовательской рабочей станции:
    • через канал /dev/virtio-ports/ru.termidesk.RealtimeStreaming.0 – если установка выполняется в ОС рабочего места, размещенного на платформе виртуализации (ПК СВ Брест, oVirt, zVirt, РЕД Виртуализация, VMmanager), доступ к которому осуществляется по протоколу SPICE;
    • через разделяемую память (Shared Memory, SHM) – если установка выполняется  в ОС рабочего места, доступ к которому осуществляется по протоколу TERA

Каналы должны быть активированы на платформе виртуализации.

«Клиент»

Самостоятельный компонент, предназначенный для установки на пользовательскую рабочую станцию и выполняющий функции:

  • подключение к указанному серверу («Порталу пользователя», «Агрегатору пользователя»);
  • отображение списка доступных рабочих мест;
  • получение списка настроек для запуска программы доставки рабочего места;
  • выбор протокола доставки для подключения;
  • запуск программы доставки рабочего места;
  • централизованный просмотр и управление открытыми сессиями, запущенными с использованием программы доставки рабочего места Termidesk Viewer.

Совместно с «Клиентом» устанавливается программа доставки рабочего места Termidesk Viewer, которая входит в состав Termidesk и предоставляет следующие возможности:

  • перенаправление буфера обмена (определяется администратором Termidesk в политиках фонда);
  • вывод изображения на несколько мониторов;
  • создание снимка экрана;
  • передача файлов;
  • перенаправление каталогов;
  • перенаправление смарт-карт;
  • перенаправление USB-устройств;
  • перенаправление веб-камер;
  • перенаправление принтеров;
  • передача сочетаний клавиш;
  • получение статистики сеанса и состояния канала связи

«Оркестратор»

Самостоятельный компонент, отвечающий за автоматизацию развертывания Termidesk в облачных структурах

«Сервер терминалов Astra Linux» (STAL)

Самостоятельный компонент, отвечающий за организацию терминального доступа в ОС Astra Linux Special Edition

«Удаленный помощник»

Самостоятельный компонент, предоставляющий администратору или специалисту технической поддержки экран узла пользователя через сеанс удаленного подключения и обеспечивающий передачу голосовой информации для взаимодействия с пользователем.

Компонент состоит из:

  • серверной части, устанавливаемой на узел консультирующего специалиста или на отдельный сервер (для подключения к рабочему месту из веб-интерфейса Termidesk);
  • клиентской части, устанавливаемой на рабочую станцию пользователя или на рабочее место

«Виртуальный модуль Termidesk»

Самостоятельный компонент, представляющий собой образ ВМ (или диска ВМ) с предварительно установленной и настроенной ОС и набором программного обеспечения, необходимого для эксплуатации Termidesk. Компонент позволяет быстро развернуть и использовать СУБД PostgreSQL, RabbitMQ, ферму Termidesk c компонентами «Универсальный диспетчер», «Шлюз», «Менеджер рабочих мест», а также ферму «Агрегатора»

«Termidesk Live»

Самостоятельный компонент, представляющий собой загрузочный образ ОС с предустановленным компонентом «Клиент». «Termidesk Live» поддерживает добавление приложений в ОС посредством файловой системы OverlayFS