VDI/OpenUDS: различия между версиями

Материал из ALT Linux Wiki
< VDI
(не показано 36 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{Stub}}
__TOC__


== Введение ==
== Введение ==
OpenUDS это много-платформенный брокер подключений для создания и управления виртуальными рабочими местами и приложениями.
OpenUDS это много-платформенный брокер подключений для создания и управления виртуальными рабочими местами и приложениями.
[[Файл:OpenUDS_01.png|300px|thumb|Архитектура OpenUDS]]
Основные компоненты решения VDI на базе OpenUDS:
Основные компоненты решения VDI на базе OpenUDS:
# OpenUDS Server (openuds-server) - брокер подключений пользователей, а так же интерфейс администратора для настройки.
# OpenUDS Server (openuds-server) брокер подключений пользователей, а так же интерфейс администратора для настройки.
# SQL Server. Для работы django приложения, которым является openuds-server необходим SQL сервер, например mysql или mariadb. Может быть установлен на отдельном сервере.
# SQL Server. Для работы django приложения, которым является openuds-server необходим SQL сервер, например mysql или mariadb. Может быть установлен на отдельном сервере.
# Платформа для запуска клиентских окружений и приложений. OpenUDS совместима со множеством систем виртуализации: PVE, OpenNebula, oVirt, OpenStack. Так же возможно использование с отдельным сервером без виртуализации (аналог терминального решения).
# Платформа для запуска клиентских окружений и приложений. OpenUDS совместима со множеством систем виртуализации: PVE, OpenNebula, oVirt, OpenStack. Так же возможно использование с отдельным сервером без виртуализации (аналог терминального решения).
# OpenUDS Client (openuds-client) - клиентское приложения для подключения к брокеру соединений и дальнейшего получения доступа к виртуальному рабочему окружению
# OpenUDS Client (openuds-client) клиентское приложения для подключения к брокеру соединений и дальнейшего получения доступа к виртуальному рабочему окружению
# OpenUDS Tunnel (openuds-tunnel) - решение для туннелирования обращений от клиента к виртуальному рабочему окружению. Предназначено для предоставления доступа из недоверенных сегментов сети, например из Интернет. Устанавливается на отдельный сервер.
# OpenUDS Tunnel (openuds-tunnel) решение для туннелирования обращений от клиента к виртуальному рабочему окружению. Предназначено для предоставления доступа из недоверенных сегментов сети, например из Интернет. Устанавливается на отдельный сервер.
# OpenUDS Actor (openuds-actor) - ПО для гостевых виртуальных машин, реализует связку виртуальной машины и брокера соединений.
# OpenUDS Actor (openuds-actor) ПО для гостевых виртуальных машин, реализует связку виртуальной машины и брокера соединений.
 
{| class="wikitable"
|+Системные требования
! | Компонент
! ОЗУ
! ЦП
! Диск
|-
|OpenUDS Server
|2 ГБ
|2 vCPUs
|8 ГБ
|-
|SQL Server
|1 ГБ
|2 vCPUs
|10 ГБ
|-
|OpenUDS Tunnel
|2 ГБ
|2 vCPUs
|13 ГБ
|}
 
{{Note| Если сервер с базой данных установлен на той же машине, где и OpenUDS Server, требуемое количество памяти, нужно просуммировать.}}


== Установка ==
== Установка ==
Строка 51: Строка 76:
}
}
</syntaxhighlight>
</syntaxhighlight>
* "заполнить" базу данных первоначальными данными:
* «заполнить» базу данных первоначальными данными:
  # su -s /bin/bash - openuds
  # su -s /bin/bash - openuds
  $ cd /usr/share/openuds
  $ cd /usr/share/openuds
  $ python3 manage.py migrate
  $ python3 manage.py migrate
$ exit
* запустить gunicorn:
* запустить gunicorn:
  # systemctl enable --now openuds-web.service
  # systemctl enable --now openuds-web.service
Строка 78: Строка 104:
==== Установка OpenUDS Tunnel ====
==== Установка OpenUDS Tunnel ====
Установка OpenUDS Tunnel должна выполняться на отдельной от OpenUDS Server системе.
Установка OpenUDS Tunnel должна выполняться на отдельной от OpenUDS Server системе.
# apt-get install openuds-tunnel
<syntaxhighlight lang="bash"># apt-get install openuds-tunnel</syntaxhighlight>
Будут установлены:
Будут установлены:
* openuds-tunnel — java приложение, основанное на проекте guacamole;
* openuds-tunnel — java приложение, основанное на проекте guacamole;
Строка 87: Строка 113:


==== Настройка OpenUDS Tunnel ====
==== Настройка OpenUDS Tunnel ====
* указать адрес OpenUDS сервера (брокера) в {{path|/etc/uds.conf}} и в {{path|/etc/pam.d/sshd_uds}};
* привести файл {{path|/etc/uds.conf}} к виду:
*:<syntaxhighlight lang="text">http://192.168.0.87/pam</syntaxhighlight>
*:где 192.168.0.87 — адрес OpenUDS сервера (брокера).
* указать адрес OpenUDS сервера (брокера) в {{path|/etc/pam.d/sshd_uds}};
* переименовать каталог {{path|/var/lib/tomcat/webapps/openuds-tunnel}} в {{path|/var/lib/tomcat/webapps/transport}}:
*: <syntaxhighlight lang="bash"># mv /var/lib/tomcat/webapps/openuds-tunnel /var/lib/tomcat/webapps/transport</syntaxhighlight>
* запустить сервисы:
* запустить сервисы:
# systemctl enable --now sshd_uds guacd tomcat
*: <syntaxhighlight lang="bash"> # systemctl enable --now sshd_uds guacd tomcat</syntaxhighlight>


=== Обновление ===


При обновлении для применения новой конфигурации необходимо скопировать новый файл конфигурации пакета:
{{Attention|Т.к. tomcat по умолчанию работает на порту 8080, то перед запуском tomcat необходимо, либо остановить службу ahttpd:
/bin/cp -f /etc/openuds/settings.py{.rpmnew,}
<syntaxhighlight lang="bash"># systemctl disable --now ahttpd</syntaxhighlight>


Поправьте пароль к базе данных в поле 'PASSWORD'.
Либо изменить порт 8080 на другой допустимый номер порта в файле {{path|/etc/tomcat/server.xml}}:


Перезапустите компьютер, так как при обновлении не создаётся файл /run/openuds/socket.
<syntaxhighlight lang="ini"><Connector port="8080" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" /></syntaxhighlight>
}}
 
=== Обновление ===
После обновления перезапустите компьютер, так как при обновлении не создаётся файл {{path|/run/openuds/socket}}.


== Настройка ==
== Настройка ==
Строка 122: Строка 158:
[[Файл:Openuds_services_opennebula02.png|OpenUDS. Контекстное меню Service providers]]
[[Файл:Openuds_services_opennebula02.png|OpenUDS. Контекстное меню Service providers]]


На вкладке «Services» нажмите «New»→«OpenNebula Live Images». Заполните минимальные параметры конфигурации (вкладки «Main» и «Machine»): название службы, хранилище, базовый шаблон (шаблон ВМ, используемый системой OpenUDS для развертывания виртуальных рабочих столов), базовое название для клонов с этой машины (например, Desk-kwork-), количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Name Length = 3, названия сгенерированных рабочих столов будет: Desk-kwork-000, Desk-kwork-001 ... Desk-kwork-999).
На вкладке «Services» нажмите «New»→«OpenNebula Live Images».  
 
 
Заполните параметры конфигурации. Вкладка «Main»:
*«Name» — название службы;
*«Datastore» — хранилище.
 
Вкладка «Machine»:
*«Base Template» — шаблон ВМ, используемый системой OpenUDS для развертывания виртуальных рабочих столов (см. [[VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины]]);
*«Machine Names» — базовое название для клонов с этой машины (например, Desk-kwork-);
*«Name Length» — количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Name Length = 3, названия сгенерированных рабочих столов будут: Desk-kwork-000, Desk-kwork-001 ... Desk-kwork-999).


[[Файл:Openuds_services_opennebula04.png|OpenUDS. Создание службы типа «OpenNebula Live Images». Вкладка «Main»]]  
[[Файл:Openuds_services_opennebula04.png|OpenUDS. Создание службы типа «OpenNebula Live Images». Вкладка «Main»]]  
[[Файл:Openuds_services_opennebula05.png|OpenUDS. Создание службы типа «OpenNebula Live Images». Вкладка «Machine»]]
[[Файл:Openuds_services_opennebula05.png|OpenUDS. Создание службы типа «OpenNebula Live Images». Вкладка «Machine»]]
После того, как среда OpenUDS будет настроена и будет создан первый «пул служб», в среде OpenNebula можно будет наблюдать, как разворачиваются рабочие столы. Сначала будет создан образ ВМ («UDSP-pool_name-DSK») — клон образа, шаблон («UDSP-pool_name-publishing-number») — клон ВМ, выбранной при регистрации службы. После завершения процесса создания клона будут созданы рабочие столы («Machine_Name-Name_Length»).
==== PVE ====
Минимальные параметры для настройки «Proxmox Platform Provider»: название, IP-адрес/имя сервера или кластера (поле «Host»), порт подключения, имя пользователя с достаточными привилегиями в PVE (в формате пользователь@аутентификатор) и пароль.
[[Файл:Openuds_services_pve01.png|OpenUDS. Подключение системы виртуализации PVE]]
Используя кнопку «test», можно убедиться, что соединение установлено правильно.
После интеграции платформы PVE в OpenUDS необходимо создать базовую службу типа «Proxmox Linked Clone». Для этого дважды щелкните мышью по строке созданного поставщика услуг или в контекстном меню поставщика выберите «Detail»:
[[Файл:Openuds_services_pve02.png|OpenUDS. Контекстное меню Service providers]]
{{Note|Выбрав пункт «Maintenance», можно приостановить все операции, выполняемые сервером OpenUDS для данного поставщика услуг. Поставщик услуг рекомендуется переводить в режим обслуживания в случаях, когда связь с этим поставщиком была потеряна или запланирован перерыв в обслуживании.}}
На вкладке «Services» нажмите «New»→«Proxmox Linked Clone»:
[[Файл:Openuds_services_pve03.png|OpenUDS. Создание новой услуги]]
Заполните параметры конфигурации. Вкладка «Main»:
*«Name» — название службы;
*«Pool» — пул, в котором будут находиться ВМ, созданные OpenUDS;
*«HA» — включать ли созданные ВМ в группу HA PVE.
Вкладка «Machine»:
*«Base Machine» — шаблон ВМ, используемый системой OpenUDS для развертывания виртуальных рабочих столов (см. [[VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины]]);
*«Storage» — хранилище, где будут храниться сгенерированные виртуальные рабочие столы (поддерживаются хранилища, позволяющие создавать «Снимки»);
*«Machine Names» — базовое название для клонов с этой машины (например, Desk-SL-);
*«Name Length» — количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Name Length = 3, названия сгенерированных рабочих столов будут: Desk-SL-000, Desk-SL-001 ... Desk-SL-999).
[[Файл:Openuds_services_pve04.png|OpenUDS. Создание службы типа «Proxmox Linked Clone». Вкладка «Main»]]
[[Файл:Openuds_services_pve05.png|OpenUDS. Создание службы типа «Proxmox Linked Clone». Вкладка «Machine»]]
После того, как среда OpenUDS будет настроена и будет создан первый «пул служб», в среде PVE можно будет наблюдать, как разворачиваются рабочие столы. Сначала будет создан шаблон («UDS-Publication-pool_name-publishing-number») — клон ВМ, выбранной при регистрации службы. После завершения процесса создания клона будут созданы рабочие столы («Machine_Name-Name_Length»):
[[Файл:Openuds-services-pve06.png|PVE. Созданные шаблоны и рабочие столы]]
==== Static IP Machine Provider (отдельный сервер без виртуализации) ====
OpenUDS позволяет создать подключение к отдельным устройствам (физическим или виртуальным). Доступ к отдельной машине осуществляется путем назначения IP-адресов пользователям.
Для регистрации поставщика данного типа следует в разделе Services» нажать кнопку «New» и выбрать пункт «Static IP Machine Provider»:
[[Файл:Openuds-services-ip00.png|OpenUDS.  «Static IP Machine Provider»]]
Для настройки «Static IP Machine Provider» достаточно задать название поставщика.
[[Файл:Openuds_services_ip01.png|OpenUDS. Поставщик машин статических IP]]
Для создания базовых услуг «Static IP Machine Provider» следует дважды щелкнуть мышью по строке созданного поставщика или в контекстном меню поставщика выбрать пункт «Detail»:
[[Файл:Openuds_services_ip02.png|OpenUDS. Контекстное меню Service providers]]
OpenUDS позволяет создавать два типа услуг поставщика «Static IP Machine Provider»:
; «Static Multiple IP» («Статический множественный IP-адрес»)
: Используется для подключения одного пользователя к одному компьютеру. Поддерживается неограниченное количество IP-адресов (можно включить в список все устройства, которые должны быть доступны удалённо). По умолчанию система будет предоставлять доступ к устройствам в порядке FIFO, т.е. первый пользователь получивший доступ к этому пулу, получает доступ к машине с первым IP-адресом из списка. Также можно настроить выборочное распределение, чтобы определённому пользователю назначался определенный компьютер (IP-адрес).
{{Note| Для настройки привязки конкретного пользователя к конкретному IP необходимо в разделе «Service Pools» (см. [[VDI/OpenUDS#Настройка_«Service_Pools»]]) для созданной услуги на вкладке «Assigned service» нажать кнопку «Assigne service» и задать привязку пользователя устройству:
[[Файл:Openuds-pool-ip02.png|OpenUDS. Привязка пользователю устройству]]}}
; «Static Single IP» («Статический одиночный IP-адрес»)
: Используется для подключения нескольких пользователей к одному компьютеру. При обращении каждого нового пользователя будет запускаться новый сеанс.
Для создания новой услуги «Static IP Machine Provider» на вкладке «Services» нажмите «New»→«Static Multiple IP» или «New»→«Static Single IP»:
[[Файл:Openuds_services_ip03.png|OpenUDS. Создание новой услуги Static IP]]
Параметры конфигурации для услуги «Static Multiple IP»:
* Вкладка «Main»:
**«Name» — название службы;
**«List of servers» — один или несколько IP-адресов машин, к которой будет осуществляться доступ (машины должны быть включены и настроены см. [[VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины]]).
*:[[Файл:Openuds_services_ip04.png|OpenUDS. Создание службы типа «Static Multiple IP»]]
* Вкладка «Advanced»:
**«Check port» — порт, по которому система может проверить, доступен ли компьютер. Если компьютер не доступен, система автоматически предоставит следующее устройство в списке. 0 — не проверять доступность компьютера;
**«Skip time» — период, в течение которого не будет проверяться доступность недоступной машины.
*:[[Файл:Openuds-services-ip05.png|OpenUDS. Создание службы типа «Static Multiple IP»]]
{{Note|Назначение IP-адресов будет осуществляться в порядке доступа, то есть первому пользователю, который обращается к службе, будет назначен первый IP-адрес в списке, второму второй и т.д. IP-адрес будет привязан пользователю, даже после выхода пользователя из системы (пока администратор не удалит привязку вручную).
Просмотреть/изменить привязанные сеансы можно в разделе «Service Pools» (см. [[VDI/OpenUDS#Настройка_«Service_Pools»]]) на вкладке «Assigned service»:
[[Файл:Openuds_services_ip06.png|OpenUDS. Подключение к «Static Multiple IP»]]}}
Параметры конфигурации для услуги «Static Single IP»:
*«Name» — название службы;
*«Machine IP» — IP-адресов машинs, к которой будет осуществляться доступ (машина должна быть включена и настроена см. [[VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины]]).
[[Файл:Openuds_services_ip05.png|OpenUDS. Создание службы типа «Static Single IP»]]


=== Настройка аутентификации пользователей ===
=== Настройка аутентификации пользователей ===
Строка 188: Строка 327:
3. В качестве группы, например, может быть указана ''CN=Users,CN=Builtin,DC=company,DC=localnet''.
3. В качестве группы, например, может быть указана ''CN=Users,CN=Builtin,DC=company,DC=localnet''.


==== IP-аутентификаци ====
==== IP-аутентификация ====
Этот тип аутентификации обеспечивает доступ клиентов к рабочим столам и виртуальным приложениям по их IP-адресу.
Этот тип аутентификации обеспечивает доступ клиентов к рабочим столам и виртуальным приложениям по их IP-адресу.


Строка 198: Строка 337:


=== Настройка групп пользователей ===
=== Настройка групп пользователей ===
На вкладке "Groups" необходимо создать группы пользователей с указанием какую базу пользователей использовать.
На вкладке «Groups» необходимо создать группы пользователей с указанием какую базу пользователей использовать.


=== Настройка «OS Manager» ===
=== Настройка «OS Manager» ===


[[Файл:Openuds_os_manager01.png|OpenUDS. Настройка «OS Manager»]]
«OS Manager» запускает ранее настроенные службы:
*«Linux OS Manager» используется для виртуальных рабочих столов на базе Linux. Он выполняет задачи переименования и управления сеансами виртуальных рабочих столов.
*«Windows Basic OS Manager» используется для виртуальных рабочих столов на базе Windows, которые не являются частью домена AD.
*«Windows Domain OS Manager» используется для виртуальных рабочих столов на базе Windows, которые являются частью домена AD.


«Linux OS Manager» используется для виртуальных рабочих столов на базе Linux. Он выполняет задачи переименования и управления сеансами виртуальных рабочих столов.
{{Note|Для каждой службы, развернутой в OpenUDS, потребуется «Менеджер ОС», за исключением случаев, когда используется служба «Static IP Machine Provider».}}


«Windows Basic OS Manager» используется для виртуальных рабочих столов на базе Windows, которые не являются частью домена AD.
[[Файл:Openuds_os_manager01.png|OpenUDS. Настройка «OS Manager»]]


==== Linux OS Manager/Windows Basic OS Manager ====
Минимальные настройки для «Linux OS Manager» и «Windows Basic OS Manager»:  
Минимальные настройки для «Linux OS Manager» и «Windows Basic OS Manager»:  
*«Name» — название;
*«Name» — название;
Строка 214: Строка 357:


[[Файл:Openuds_os_manager.png|OpenUDS. Настройка «OS Manager»]]
[[Файл:Openuds_os_manager.png|OpenUDS. Настройка «OS Manager»]]
==== Windows Domain OS Manager ====
Минимальные настройки для «Windows Domain OS Manager»:
*«Name» — название;
*«Domain» — домен, к которому будут присоединены виртуальные рабочие столы;
*«Account» — учетная запись с правами на добавление машин в домен;
*«Password» — пароль пользователя указанного в поле «Account»;
*«OU» — организационная единица, в которую будут добавлены виртуальные хосты (если не указано, хосты будут зарегистрированы в подразделении по умолчанию — Computers). Формат поддерживаемых OU: OU = name_OU_last_level, ... OU = name_OU_first_level, DC = name_domain, DC = extension_domain;
*«Logout Action» — действие, которое OpenUDS будет выполнять на виртуальном рабочем столе при закрытии сеанса пользователя («Keep service assigned» = постоянная ВМ, при выходе пользователя, система не предпринимает никаких действий, при повторном входе пользователю будет назначен тот же рабочий стол. «Remove service» = непостоянная ВМ, при выходе пользователя из системы, система уничтожит рабочий стол. «Keep service assigned even on new publication» — сохранение назначенной службы даже при создании новой публикации «Service Pool»);
*«Max. Idle time» («Время простоя») — время (в секундах) простоя виртуального рабочего стола. По истечении этого времени OpenUDS Actor автоматически закроет сеанс. Отрицательные значения и значения менее 300 секунд отключают эту опцию.
[[Файл:Openuds_os_manager_win01.png|OpenUDS. Настройка «Windows Domain OS Manager»]]


=== Настройка «Transports» ===
=== Настройка «Transports» ===
Строка 230: Строка 385:
«RDP» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux. И на клиентах подключения, и на виртуальных рабочих столах должен быть установлен и включен протокол RDP (для виртуальных рабочих столов Linux необходимо использовать XRDP).
«RDP» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux. И на клиентах подключения, и на виртуальных рабочих столах должен быть установлен и включен протокол RDP (для виртуальных рабочих столов Linux необходимо использовать XRDP).


==== SPICE (direct) ====
Минимальные параметры для настройки транспорта RDP:
 
*Вкладка «Main»:
**«Name» — название транспорта;
**«Priority» — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
**«Networks Access» — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
**«Networks» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Networks»). Пустое поле означает «все сети». Используется вместе с параметром «Networks Access»;
**«Allowed Devices» — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
**«Service Pools» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
*:[[Файл:Openuds-rdp-main.png|OpenUDS. RDP - вкладка «Main»]]
 
 
*Вкладка «Credentials»:
**«Empty creds» — если установлено значение «Да», учётные данные для доступа к виртуальному рабочему столу будут запрашиваться при подключении к серверу (не использовать при подключении к Windows, т.к. данные не запрашиваются?). Если установлено значение «Нет», будут использоваться данные OpenUDS (см. ниже);
**«Username» — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя;
**«Password» — пароль пользователя, указанного в поле «Username»;
**«Without Domain» — указывает, перенаправляется ли доменное имя вместе с пользователем. Значение «Да» равносильно пустому полю «Domain»;
**«Domain» — домен. Если поле не пустое, то учётные данные будут использоваться в виде DOMAIN\user.
*:[[Файл:Openuds-rdp-сredentials.png|Вкладка «Credentials»]]
 
*Вкладка «Parameters»:
**«Allow Smartcards» — разрешить перенаправление смарт-карт;
**«Allow Printers» — включить перенаправление принтеров;
**«Local drives policy» — включить перенаправление дисков:
***«Allow none» — не перенаправлять диски;
***«Allow PnP drives» — во время активного сеанса перенаправлять только подключенные диски;
***«Allow any drive» — перенаправлять все диски;
**«Force drives» — принудительное перенаправление определённых дисков;
**«Allow Serials» — включить перенаправление последовательного порта;
**«Enable clipboard» — разрешить общий буфер обмена;
**«Enable sound» — перенаправлять звук с рабочего стола на клиент подключения;
**«Enable webcam» — перенаправлять веб-камеру;
**«Credssp Support» — использовать “Credential Security Support Provider”.
*:[[Файл:Openuds-rdp-parameters.png|OpenUDS. RDP - Вкладка «Parameters»]]
 
*Вкладка «Display»:
**«Screen Size» — размер окна рабочего стола;
**«Color depth» — глубина цвета;
**«Wallpaper/theme» — отображать фона рабочего стола;
**«Multiple monitors» — использовать несколько мониторов (только для клиентов Windows);
**«Allow Desk. Comp.» — включить Desktop Composition;
**«Font Smoothing» — активирует сглаживание шрифтов;
**«Connection Bar» — показывать панель подключения (только для клиентов Windows).
*:[[Файл:Openuds-rdp-display.png|Вкладка «Display»]]


«SPICE» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux. На клиентах подключения должен быть установлен клиент «SPICE» (Virt-Manager). Транспортный протокол «SPICE» может использоваться только с oVirt/RHEV и OpenNebula.
*Вкладка «Linux Client»:
**«Multimedia sync» — включает параметр мультимедиа на клиенте FreeRDP;
**«Use Alsa» — использовать звук через Alsa;
**«Redirect home folder» — перенаправить домашнюю папку клиента подключения на виртуальный рабочий стол;
**«Printer string» —  принтер, используемый клиентом xfreerdp (если включено перенаправление принтера). Пример: «HP_LaserJet_M1536dnf_MFP» (названия подключенных принтеров можно вывести командой lpstat -a);
**«Smartcard string» — токен, используемый клиентом xfreerdp (если включено перенаправление смарт-карт). Пример: «Aktiv Rutoken ECP 00 00».
**«Custom parameters» — здесь можно указать любой параметр, поддерживаемый клиентом FreeRDP.
*:[[Файл:Openuds-rdp-linuxclient.png|Вкладка «Linux Client»]]


==== X2Go (direct) ====
==== X2Go (direct) ====


«X2Go» позволяет пользователям получать доступ к виртуальным рабочим столам Linux. И на клиентах подключения (клиент), и на виртуальных рабочих столах (сервере) должен быть установлен и включен «X2Go».
«X2Go» позволяет пользователям получать доступ к виртуальным рабочим столам Linux. И на клиентах подключения (клиент), и на виртуальных рабочих столах (сервере) должен быть установлен и включен «X2Go».
Минимальные параметры для настройки транспорта X2Go:
*Вкладка «Main»:
**«Name» — название транспорта;
**«Priority» — приоритет. Чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
**«Networks Access» — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
**«Networks» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Networks»). Пустое поле означает «все сети». Используется вместе с параметром «Networks Access»;
**«Allowed Devices» — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
**«Service Pools» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
*:[[Файл:Openuds-x2go-main.png|Вкладка «Main»]]
*Вкладка «Credentials»:
**«Username» — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя.
*:[[Файл:Openuds-x2go-сredentials.png|Вкладка «Credentials»]]
*Вкладка «Parameters»:
**«Screen Size» — размер окна рабочего стола;
**«Desktop» — менеджер рабочего стола (Xfce, Mate и д.р.) или виртуализация приложений Linux (UDS vAPP);
**«vAPP» — полный путь до приложения (если «Desktop» = UDS vAPP);
**«Enable sound» — включить звук;
**«Redirect home folder» — перенаправить домашнюю папку клиента подключения на виртуальный рабочий стол (на Linux также перенаправлять /media);
**«Speed» — скорость подключения.
*:[[Файл:Openuds-x2go-parameters.png|Вкладка «Parameters»]]




*Вкладка «Advanced»:
**«Sound» — тип звукового сервера;
**«Keyboard» — раскладка клавиатуры.
*:[[Файл:Openuds-x2go-advanced.png|Вкладка «Advanced»]]
==== SPICE (direct) ====
{{Attention|Транспортный протокол «SPICE» может использоваться только с oVirt/RHEV и OpenNebula.}}
«SPICE» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux. На клиентах подключения должен быть установлен клиент «SPICE» (Virt-Manager).
Минимальные параметры для настройки транспорта SPICE:
*Вкладка «Main»:
**«Name» — название транспорта;
**«Priority» — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
**«Certificate» — сертификат сгенерированный в ovirt-engine/RHV-manager или в OpenNebula. Требуется для подключения к виртуальным рабочим столам;
**«Networks Access» — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
**«Networks» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Networks»). Пустое поле означает «все сети». Используется вместе с параметром «Networks Access»;
**«Allowed Devices» — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
**«Service Pools» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
*:[[Файл:Openuds-spice-main.png|OpenUDS. SPICE — вкладка «Main»]]
*Вкладка «Advanced»:
**«Fullscreen Mode» — включает полноэкранный режим виртуального рабочего стола;
**«Smartcard Redirect» — включает перенаправление смарт-карт;
**«Enable USB» — разрешает перенаправление устройств, подключенных к порту USB;
**«New USB Auto Sharing» — позволяет перенаправлять PnP-устройства, подключенные к USB-порту.
*:[[Файл:Openuds-spice-advanced.png|OpenUDS. SPICE  — Вкладка «Advanced»]]
==== HTML5 RDP (tunneled) ====
«HTML5 RDP» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux через протокол RDP с использованием браузера, поддерживающего HTML5 (для рабочих столов Linux на машинах должен быть установлен пакет XRDP, для рабочих столов Windows необходимо настроить доступ HTML5 RDP).
Минимальные параметры для настройки транспорта HTML5 RDP:
*Вкладка «Main»:
**«Name» — название транспорта;
**«Priority» — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
**«Networks Access» — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
**«Networks» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Networks»). Пустое поле означает «все сети». Используется вместе с параметром «Networks Access»;
**«Allowed Devices» — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
**«Service Pools» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
*:[[Файл:Openuds-html5rdp-main.png|OpenUDS. HTML5 RDP — вкладка «Main»]]
*Вкладка «Tunnel»:
**«Tunnel Server» — IP-адрес с портом подключения OpenUDS Tunnel. Если доступ к рабочему столу осуществляется через глобальную сеть, необходимо ввести общедоступный IP-адрес сервера OpenUDS Tunnel. Формат: http://IP_Tunneler:Port (8080 — порт по умолчанию):
*:[[Файл:Openuds-html5rdp-tunnel.png|OpenUDS. HTML5 RDP — вкладка «Tunnel»]]
*Вкладка «Credentials»:
**«Empty creds» — если установлено значение «Да», учётные данные для доступа к виртуальному рабочему столу будут запрашиваться при подключении к серверу (не использовать при подключении к Windows, т.к. данные не запрашиваются?). Если установлено значение «Нет», будут использоваться данные OpenUDS (см. ниже);
**«Username» — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя;
**«Password» — пароль пользователя, указанного в поле «Username»;
**«Without Domain» — указывает, перенаправляется ли доменное имя вместе с пользователем. Значение «Да» равносильно пустому полю «Domain»;
**«Domain» — домен. Если поле не пустое, то учётные данные будут использоваться в виде DOMAIN\user.
*:[[Файл:Openuds-html5rdp-сredentials.png|OpenUDS. HTML5 RDP — Вкладка «Credentials»]]
*Вкладка «Parameters»:
**«Enable File Sharing» — позволяет создать временный каталог (расположенный на сервере OpenUDS Tunnel), для возможности обмена файлами между виртуальным рабочим столом и клиентом подключения;
**«Show wallpaper» — отображать обои рабочего стола;
**«Allow Desk.Comp.» —  включить «Desktop Composition»;
**«Font Smoothing» — активирует сглаживание шрифтов;
**«Enable Audio» — перенаправлять звук с рабочего стола на клиент подключения;
**«Enable Printing» —  включить печать на виртуальном рабочем столе;
**«Layout» — раскладка клавиатуры, которая будет включена на рабочем столе;
**«Security» — уровень безопасности соединения.
*:[[Файл:Openuds-html5rdp-parameters2.png|OpenUDS. HTML5 RDP — Вкладка «Parameters»]]
*Вкладка «Advanced»:
**«Ticket Validity» — срок действия билета (в секундах);
**«Force new HTML Window» — открывать ли подключение в новом окне:
*:[[Файл:Openuds-html5rdp-advanced.png|OpenUDS. HTML5 RDP — Вкладка «Advanced»]]
=== Сети ===
В OpenUDS можно зарегистрировать различные сети для управления доступом клиентов к виртуальным рабочим столам или приложениям (при доступе к OpenUDS определяется IP-адрес клиента подключения). Эти сети совместно с «Транспортом» будут определять, какой тип доступа будет доступен пользователи для подключения к виртуальным рабочим столам.
Чтобы добавить сеть, следует в разделе «Connectivity» выбрать пункт «Networks» и нажать кнопку «New»:
[[Файл:Openuds_network01.png|OpenUDS. Создание новой сети]]
В открывшемся окне следует указать название сети и сетевой диапазон. В качестве сетевого диапазона можно указать:
* одиночный IP-адрес: xxx.xxx.xxx.xxx (например, 192.168.0.33).
* подсеть: xxx.xxx.xxx.xxx/x (например, 192.168.0.0/24).
* диапазон IP-адресов: xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx (например, 192.168.0.1-192.168.0.50).
После создания сетей, появится возможность указать их при создании/редактировании транспорта. Можно настроить будет ли данный транспорт отображаться у клиента, в зависимости от сети, в которой находится клиент:
[[Файл:Openuds_transports_n01.png|OpenUDS. Выбор сети при редактировании транспорта]]
В данном примере транспорт «X2Go» будет доступен только клиентам из сети 192.168.0.0/24.
Если сети для транспорта не определены, доступ к службам рабочего стола и виртуальным приложениям будет возможен из любой сети.
=== Настройка «Service Pools» ===
=== Настройка «Service Pools» ===


Строка 265: Строка 588:
* на вкладке «Transports» выбрать способы подключения пользователей к рабочему столу:
* на вкладке «Transports» выбрать способы подключения пользователей к рабочему столу:
*: [[Файл:Openuds_pool-transports.png|OpenUDS. «Service Pools» - выбор способов подключения]]
*: [[Файл:Openuds_pool-transports.png|OpenUDS. «Service Pools» - выбор способов подключения]]
=== «Мета-пулы» ===
Виртуальные рабочие столы можно сгруппировать в пулы рабочих столов («Мета-пулы»), что упрощает управление и организацию.
Создание «Мета-пула» позволит получить доступ к виртуальным рабочим стола или приложениям из разных «Service Pools». Эти пулы будут работать вместе, предоставляя различные услуги абсолютно прозрачным для пользователей способом.
«Пулы услуг», образующие «Мета-пул», будут работать в соответствии с политикой (см. ниже), которая позволит предоставлять услуги в соответствии с потребностями пула.
Чтобы создать «Мета-пул», следует в разделе «Pools» выбрать пункт «Meta pools» и нажать кнопку «New»:
[[Файл:Openuds_metapool_01.png|OpenUDS. Создание мета-пула — вкладка «Main»]]
Для настройки «Мета-пула» необходимо указать:
* вкладка «Main»:
**«Name» — название «Мета-пула» (это будет видеть пользователь для доступа к службе);
**«Short name» — если указано, то это будет видеть пользователь для доступа к службе (при наведении на него указателя появится содержимое поля «Name»);
**«Policy» — политика, которая будет применяться при создании сервисов в «Пулах услуг», являющихся частью «Мета-пула»:
***«Eventy distributed» — услуги будут создаваться и использоваться равномерно во всех «пулах услуг», составляющих «Мета-пул».
***«Priority» — услуги будут создаваться и использоваться из «пула услуг» с наибольшим приоритетом (приоритет определяется полем «priority», чем ниже значение этого поля, тем выше приоритет у элемента). Когда будет достигнуто максимального количество сервисов данного «Service Pool», будут использоваться сервисы следующего.
***«Greater % available» — службы будут создаваться и использоваться из «Service Pool», который имеет самый высокий процент использования.
* вкладка «Display»:
**«Associated Image» — изображение, связанное с «Мета-пулом». Изображение должно быть предварительно добавлено в репозиторий изображений (раздел «Tools»→«Gallery»);
**«Pool group» — позволяет группировать различные «Мета-пулы». Группа должна быть предварительно создана в разделе «Pools»→«Groups»;
**«Visible» — если этот параметр отключен, «Мета-пул» не будет отображаться у пользователей;
**«Calendar Access denied text» — текст, который будет отображаться, когда доступ к «Мета-пулу» запрещен приложением календаря доступа.
[[Файл:Openuds_metapool_02.png|OpenUDS. Создание мета-пула — вкладка «Display»]]
Сохранив конфигурацию «Мета-пула», можно начать регистрацию «Пулов услуг». Для этого следует дважды щелкнуть мышью по строке созданного «Мета-пула» или в контекстном меню «Мета-пула» выбрать пункт «Detail»:
[[Файл:Openuds_metapool_03.png|OpenUDS. Настройка мета-пула]]
Чтобы добавить «Пул услуг» в «Мета-пул», следует нажать кнопку «New»:
[[Файл:Openuds_metapool_04.png|OpenUDS. Добавление «Пула услуг» в мета-пул]]
Для добавления «Пула услуг» необходимо указать:
*«Priority» —приоритет, который будет иметь «Пул услуг» в «Мета-пуле» (чем ниже значение, тем больше приоритет);
*«Service pool» — «Пул услуг», который будет добавлен в «Мета-пул» («Пул услуг» должен быть предварительно создан);
*«Enabled» — включает или отключает видимость «Пула услуг» в «Мета-пуле».
Можно добавить столько «Пулов услуг», сколько нужно, комбинируя службы, размещенные на разных платформах виртуализации (PVE, KVM, OpenNebula и т.д.), серверах приложений и статических устройствах.
[[Файл:Openuds_metapool_05.png|OpenUDS. «Пулы услуг» в мета-пуле]]
Как и при создании «Service Pools», здесь есть следующие вкладки с информацией и конфигурацией:
*«Assigned services» — показывает службы, назначенные пользователям (можно вручную удалить назначение и переназначить другому пользователю);
*«Groups» — указывает, какие группы пользователей будут иметь доступ к услуге;
*«Access calendars» — позволяет применить ранее созданный календарь доступа;
*«Logs» — показывает все проблемы, возникшие в «Мета-пуле».
=== Управление доступом по календарю ===
В OpenUDS можно настроить разрешение или ограничение доступа пользователей к удаленным рабочим столам и виртуальным приложениям по датам и временным интервалам.
С помощью календаря также можно автоматизировать определенные задачи в «Service Pools», такие как создание новых публикаций, настройка значений системного кэша, добавление/удаление групп и транспорта, изменение максимального количества услуг.
Чтобы создать календарь следует в разделе «Pools» выбрать «Calendars», нажать кнопку «New», в открывшемся окне ввести описательное название в поле «Name» и нажать кнопку «Save»:
[[Файл:Openuds_calendar_01.png|OpenUDS. Новый календарь]]
В «Календаре» можно зарегистрировать правила, чтобы запланировать доступность услуги в определенное время. Для создания правила следует выбрать календарь (дважды щелкнуть мышью по строке созданного календаря или в контекстном меню календаря выбрать пункт «Detail») и нажать кнопку «New»:
[[Файл:Openuds_calendar_02.png|OpenUDS. Создать новое правило]]
Минимальные параметры для настройки правила:
*«Name» — имя правила;
*«Event» — настройка времени выполнения. Необходимо указать время начала и продолжительность события (в минутах/часах/днях/неделях);
*«Repetition» — настройка периодичности выполнения. Необходимо указать дату начала, частоту повторения правила (ежедневно/еженедельно/ежемесячно/ежегодно/по будням) и указать интервал повторения (в днях);
*«Summary» — показывает сводные данные (резюме) всех ранее указанных настроек.
[[Файл:Openuds_calendar_03.png|OpenUDS. Новое правило]]
После нажатия кнопки «Ok» будет создано правило, которое будет назначено «пулу услуг» (виртуальному рабочему столу и/или приложению).
[[Файл:Openuds_calendar_04.png|OpenUDS. Правило, назначенное «пулу услуг»]]
==== Разрешение/запрет доступа ====
После настройки правил в календарях их можно использовать для управления доступом пользователей к службам рабочего стола или приложениям. Для этого следует выбрать нужный «Service Pool», перейти на вкладку «Access Calendars» и нажать кнопку «New»:
[[Файл:Openuds_calendar_05.png|OpenUDS. Вкладка «Доступ к календарям»]]
В открывшемся окне необходимо указать приоритет доступа, выбрать календарь и указать действие, которое будет применяться при доступе к сервису:
[[Файл:Openuds_calendar_06.png|OpenUDS. Новое ограничение доступа по календарю]]
{{Note|Правило по умолчанию («FallBack») должно разрешать или запрещать доступ к сервису, когда календарь не применяется.
[[Файл:Openuds_calendar_07.png|OpenUDS. Ограничение доступа к сервису по календарю]] }}
Доступ к сервису «Desktop Alt» запрещен:
[[Файл:Openuds_calendar_11.png|OpenUDS. Доступ к пулу «Desktop Alt» запрещен]]
==== Запланированные действия ====
После настройки правил в календарях их можно использовать для планирования определенные задач в «Service Pools». Для этого следует выбрать нужный «Service Pool», перейти на вкладку «Scheduled actions» и нажать кнопку «New»:
[[Файл:Openuds_calendar_08.png|OpenUDS. Вкладка «Запланированные действия»]]
В открывшемся окне необходимо указать календарь, время, в течение которого будет выполняться действие, выбрать действие, которое необходимо выполнить (список возможных действий зависит от поставщика услуг данного пула):
*«Set initial services» («Установить начальные сервисы») — сбрасывает минимальное количество созданных и настроенных виртуальных рабочих столов;
*«Set cache size» («Установить размер кеша») — сбрасывает виртуальные рабочие столы, доступные в системном кеше. Эти рабочие столы будут настроены и готовы к назначению пользователю;
*«Set maximum number of services» («Установить максимальное количество сервисов») — изменяет максимальное количество виртуальных рабочих столов в «Service Pool»;
*«Publish» («Публикация») — создание новой публикации в «Service Pool»;
*«Add a transport» («Добавить транспорт») — добавляет существующий транспорт в «Service Pool»;
*«Remove a transport» «Удалить транспорт») — удаляет транспорт из «Service Pool»;
*«Add a group» («Добавить группу») — добавляет существующую группу в «Service Pool»;
*«Remove a group» («Удалить группу») — удаляет группу из «Service Pool»;
*«Sets the ignore unused» («Устанавливает игнорирование неиспользуемых») — устанавливает параметр «Игнорировать неиспользуемые»;
*«Remove ALL assigned user service» («Удалить ВСЕ назначенные пользовательские сервисы») — удаляет все службы, назначенные пользователям.
[[Файл:Openuds_calendar_09.png|OpenUDS. Новое запланированное действие]]
После сохранения появится запланированная задача, выполняющая конкретное действие в данном «Service Pool»:
[[Файл:Openuds_calendar_10.png|OpenUDS. Запланированные действия]]
=== Настройка разрешений ===
В OpenUDS можно назначать пользователям и группам пользователей права доступа к различным элементам администрирования. Разрешения будут назначены непосредственно для каждого элемента, а также будут применяться к его подэлементам.
{{Note| Чтобы пользователь мог получить доступ к администрированию, пользователю должна быть назначена роль «Staff member»:
[[Файл:Openuds_permission_01.png|OpenUDS. Роль пользователя]]}}
Для предоставления разрешения к элементу администрирования следует выбрать элемент и нажать кнопку «Permissions», например, в «Service Pool»:
[[Файл:Openuds_permission_02.png|OpenUDS. Предоставление разрешения к сервису «Desktop Alt»]]
В окне разрешений следует нажать ссылку «New permission….» для групп или пользователей, затем выбрать аутентификатор и группу/пользователя, к которым будет применяться разрешение. Также нужно указать, будет ли пользователь/группа иметь доступ для чтения к элементу («Read only») или полный доступ («Full Access»):
[[Файл:Openuds_permission_03.png|OpenUDS. Новое разрешение]]
После сохранения настроек, пользователи, которым назначена роль «Staff member», смогут получить доступ к этому элементу администрирования с назначенными разрешениями.
[[Файл:Openuds_permission_04.png|OpenUDS. Разрешения для сервиса «Desktop Alt»]]
Разрешения типа «Full Access» («Manage») могут применяться только к элементам второго уровня («Calendars», «Service Pools» и т.д.).


== Подготовка шаблона виртуальной машины ==
== Подготовка шаблона виртуальной машины ==
{{Note|См. также статью [[OpenUDS_Windows#Подготовка_шаблона_ВМ_с_ОС_Windows_10|Подготовка шаблона ВМ с ОС Windows]].}}
Требования к шаблону виртуальной машины:
Требования к шаблону виртуальной машины:
# Установить openuds-actor:
# Установить openuds-actor:
Строка 278: Строка 745:
#* на вкладке «UDS Server» необходимо указать имя или IP-адрес сервера UDS, имя и пароль пользователя, имеющего права администратора в среде UDS и нажать кнопку «Register with UDS» («Зарегистрироваться в UDS»).
#* на вкладке «UDS Server» необходимо указать имя или IP-адрес сервера UDS, имя и пароль пользователя, имеющего права администратора в среде UDS и нажать кнопку «Register with UDS» («Зарегистрироваться в UDS»).
#*: [[Файл:Openuds_actor_01.png|UDS Actor Configuration]]
#*: [[Файл:Openuds_actor_01.png|UDS Actor Configuration]]
#*:На вкладке «Advanced» можно указать дополнительные параметры, в том числе уровень журналирования. Для применения настроек указанных на этой вкладке необходимо выполнить перерегистрацию UDS Actor.
#* На вкладке «Advanced» можно указать дополнительные параметры, в том числе уровень журналирования:
#**«Preconnect» — сценарий, который будет запущен непосредственно перед тем, как пользователь подключится к виртуальному рабочему столу. Скрипту могут быть переданы следующие параметры: имя пользователя, протокол, IP-адрес, имя хоста;
#**«Runonce» — сценарий, который будет запущен только один раз перед настройкой UDS Actor. После выполнения скрипт удаляется из конфигурации. Параметры можно передать непосредственно скрипту. Необходимо, чтобы выполняемый скрипт завершился перезапуском виртуального рабочего стола;
#**«Postconfig» — сценарий, который будет запущен после того, как UDS Actor завершит настройку. Параметры можно передать непосредственно скрипту. Скрипт запускается только один раз, но в отличие от режима «Runonce» перезапускать виртуальный рабочий стол не нужно;
#**«Log Level» — уровень журналирования (файл журнала: {{path|/var/log/udsactor.log}}).
#*:Для применения настроек указанных на этой вкладке необходимо выполнить перерегистрацию UDS Actor.
# Установить и настроить один из вариантов удаленного доступа:
# Установить и настроить один из вариантов удаленного доступа:
#* [[Xrdp|xrdp]]
#* [[Xrdp|xrdp]]
#* [[X2Go|x2go]]
#* [[X2Go|x2go]]
#* ???


== Подключение пользователя к виртуальному рабочему месту==
 
* на клиенте необходимо установить openuds-client
== Подключение пользователя к виртуальному рабочему месту ==
 
На клиенте должен быть установлен пакет {{pkg|openuds-client}}:
  # apt-get install openuds-client
  # apt-get install openuds-client
* подключиться к серверу OpenUDS с помощью браузера http://<openuds_address>, имя/пароль должен указать администратор, возможен как из внутренней базы OpenUDS, так и из внешней, например ldap
 
* в web-интерфейсе пользователя видны виртуальные машины (или шаблоны) только опубликованные администратором:
Чтобы иметь возможность подключаться к виртуальному рабочему столу, должны быть установлены клиенты каждого используемого протокола удаленного доступа (xfreerdp, x2goclient).
 
Для подключения к виртуальному рабочему столу по протоколу [[SPICE]] необходимо установить '''remote-viewer''' из пакета {{pkg|virt-viewer}}.
На клиенте с ОС Windows необходимо установить '''virt-viewer''' (https://releases.pagure.org/virt-viewer/).
 
{{Note| Для возможности подключения по протоколу [[SPICE]] к OpenNebula, клиенты должны успешно разрешать имена hostname серверов с виртуальными машинами (через DNS или hosts).}}
 
Подключение к виртуальному рабочему месту:
* подключиться к серверу OpenUDS с помощью браузера http://<openuds_address>, выбрать средство проверки подлинности, если доступно несколько, ввести имя пользователя/пароль (их должен указать администратор);
* на панели управления будут отображены все ВМ (или шаблоны), к которым у пользователя есть доступ:
*:[[Файл:Openuds_client.png|OpenUDS. Подключение пользователя к виртуальному рабочему месту]]
*:[[Файл:Openuds_client.png|OpenUDS. Подключение пользователя к виртуальному рабочему месту]]
* выбрав нужную ВМ, автоматически загрузится openuds-client и запустит приложение для просмотра удаленного рабочего стола
* при выборе ВМ, автоматически загрузится openuds-client, который запустит приложение для просмотра удаленного рабочего стола
После выбора пула, автоматически стартует OpenUDS Client, который обрабатывает URL, получает необходимые настройки протокола удаленного доступа для предоставленной (свободной) ВМ, формирует файл описания сессии и передает его приложению-клиенту удалённого доступа, которое и устанавливает соединение с указанной ВМ.


{{Note|Если для подключения к службе существует более одного типа транспорта, то правом верхнем углу службы появляется кнопка. Если щелкнуть непосредственно по службе, будет вызван транспорт по умолчанию (транспорт с меньшим значением в поле приоритет). Для того чтобы выбрать другой транспорт, можно его выбрать в раскрывающемся списке. }}
{{Note|Если для подключения к службе настроено более одного типа транспорта, то в правом верхнем углу службы будет отображена кнопка. Если выбрать непосредственно ВМ, будет вызван транспорт по умолчанию (транспорт с меньшим значением в поле приоритет). Для того чтобы использовать другой транспорт, нужно выбрать его в раскрывающемся списке. }}


{{Note|UDS фиксирует доступ к виртуальному рабочему месту и отображает информацию о нем «ServicePool», и он открывает вкладку «Assigned services» соответствующего «Service Pools»:
Пример подключения с использованием транспорта HTML5 RDP:
 
[[Файл:Openuds-html5rdp-connection8080.png|OpenUDS. Пример подключения с использованием HTML5 RDP]]
 
По завершении сеанса пользователь ВМ выходит из нее, что приводит к остановке OpenUDS Actor. Брокер openUDS считает, что ВМ стала недоступной и, если пул постоянный, то он запускает ВМ, а если пул временный, то происходит удаление файлов ВМ в хранилище и создается новая ВМ из мастер-образа.
 
{{Note|При подключении пользователя к виртуальному рабочему месту OpenUDS фиксирует доступ и отображает информацию о привязанном сервисе на вкладке «Assigned services» соответствующего «Service Pools»:


[[Файл:Openuds_services_assigned.png|800px|OpenUDS. Assigned services]]
[[Файл:Openuds_services_assigned.png|800px|OpenUDS. Assigned services]]
}}  
}}
 
== Отказоустойчивое решение ==


{{todo|Отказоустойчивое решение}}
См. статью [[OpenUDS_HA|HA-кластер с OpenUDS]].


{{Category navigation|title=VDI|category=VDI|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}}
[[Категория:Виртуализация]]
[[Категория:Виртуализация]]
[[Категория:KVM]]
[[Категория:KVM]]
[[Категория:VDI]]
[[Категория:VDI]]

Версия от 10:19, 29 августа 2022

Введение

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

Архитектура OpenUDS

Основные компоненты решения VDI на базе OpenUDS:

  1. OpenUDS Server (openuds-server) — брокер подключений пользователей, а так же интерфейс администратора для настройки.
  2. SQL Server. Для работы django приложения, которым является openuds-server необходим SQL сервер, например mysql или mariadb. Может быть установлен на отдельном сервере.
  3. Платформа для запуска клиентских окружений и приложений. OpenUDS совместима со множеством систем виртуализации: PVE, OpenNebula, oVirt, OpenStack. Так же возможно использование с отдельным сервером без виртуализации (аналог терминального решения).
  4. OpenUDS Client (openuds-client) — клиентское приложения для подключения к брокеру соединений и дальнейшего получения доступа к виртуальному рабочему окружению
  5. OpenUDS Tunnel (openuds-tunnel) — решение для туннелирования обращений от клиента к виртуальному рабочему окружению. Предназначено для предоставления доступа из недоверенных сегментов сети, например из Интернет. Устанавливается на отдельный сервер.
  6. OpenUDS Actor (openuds-actor) — ПО для гостевых виртуальных машин, реализует связку виртуальной машины и брокера соединений.
Системные требования
Компонент ОЗУ ЦП Диск
OpenUDS Server 2 ГБ 2 vCPUs 8 ГБ
SQL Server 1 ГБ 2 vCPUs 10 ГБ
OpenUDS Tunnel 2 ГБ 2 vCPUs 13 ГБ
Примечание: Если сервер с базой данных установлен на той же машине, где и OpenUDS Server, требуемое количество памяти, нужно просуммировать.


Установка

Установка mysql/mariadb

# apt-get install mariadb
# systemctl enable --now mariadb.service
# mysql_secure_installation
# mysql -u root
 
mysql> CREATE DATABASE dbuds CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'dbuds'@'%' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON dbuds.* TO 'dbuds'@'%';
mysql> FLUSH PRIVILEGES;

OpenUDS Server

Установка OpenUDS Server

# apt-get install openuds-server-nginx

Будут установлены:

  • openuds-server — django приложение;
  • gunicorn — сервер приложений. Обеспечивает запуск django как стандартного WSGI приложения;
  • nginx — http-сервер, используется в качестве reverse-proxy для доступа к django приложению, запущенному с помощью gunicorn.

Настройка OpenUDS Server

  • отредактировать /etc/openuds/settings.py, указав корректные данные для подключения к SQL серверу:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql', 
            'OPTIONS': {
                'isolation_level': 'read committed',
            },
            'NAME': 'dbuds',  # Or path to database file if using sqlite3.
            'USER': 'dbuds',  # Not used with sqlite3.
            'PASSWORD': 'password',  # Not used with sqlite3.
            'HOST': 'localhost',  # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '3306',  # Set to empty string for default. Not used with sqlite3.
        }
    }
    
  • «заполнить» базу данных первоначальными данными:
# su -s /bin/bash - openuds
$ cd /usr/share/openuds
$ python3 manage.py migrate
$ exit
  • запустить gunicorn:
# systemctl enable --now openuds-web.service
  • запустить nginx:
# ln -s ../sites-available.d/openuds.conf /etc/nginx/sites-enabled.d/openuds.conf
# systemctl enable --now nginx.service
  • запустить менеджер задач OpenUDS
# systemctl enable --now openuds-taskmanager.service
  • подключиться к серверу OpenUDS с помощью браузера http://<openuds_address>
Примечание: Имя/пароль по умолчанию: root/udsmam0

Чтобы получить доступ к администрированию OpenUDS следует в меню пользователя выбрать пункт «Dashboard»:

OpenUDS. Меню пользователя


Дополнительная информация о настройках django приложений:

https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/
https://docs.djangoproject.com/en/2.2/ref/databases/

OpenUDS Tunneler

Установка OpenUDS Tunnel

Установка OpenUDS Tunnel должна выполняться на отдельной от OpenUDS Server системе.

# apt-get install openuds-tunnel

Будут установлены:

  • openuds-tunnel — java приложение, основанное на проекте guacamole;
  • guacamole-server
  • tomcat
  • libnss_uds
  • pam_uds

Настройка OpenUDS Tunnel

  • привести файл /etc/uds.conf к виду:
    http://192.168.0.87/pam
    
    где 192.168.0.87 — адрес OpenUDS сервера (брокера).
  • указать адрес OpenUDS сервера (брокера) в /etc/pam.d/sshd_uds;
  • переименовать каталог /var/lib/tomcat/webapps/openuds-tunnel в /var/lib/tomcat/webapps/transport:
    # mv /var/lib/tomcat/webapps/openuds-tunnel /var/lib/tomcat/webapps/transport
    
  • запустить сервисы:
     # systemctl enable --now sshd_uds guacd tomcat
    


Внимание! Т.к. tomcat по умолчанию работает на порту 8080, то перед запуском tomcat необходимо, либо остановить службу ahttpd:
# systemctl disable --now ahttpd

Либо изменить порт 8080 на другой допустимый номер порта в файле /etc/tomcat/server.xml:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />


Обновление

После обновления перезапустите компьютер, так как при обновлении не создаётся файл /run/openuds/socket.

Настройка

Подключение системы виртуализации

В разделе «Services» подключаем один из «Service providers»:

  • PVE Platform Provider
  • OpenNebula Platform Provider
  • OpenStack Platform Provider
  • oVirt/RHEV Platform Provider
  • Static IP Machine Provider (отдельный сервер без виртуализации)

OpenUDS. Подключение системы виртуализации

OpenNebula

Минимальные параметры для настройки «OpenNebula Platform Provider»: название, IP-адрес сервера OpenNebula (поле «Host»), порт подключения, имя пользователя (с правами администратора) и пароль. Используя кнопку «Тест», можно убедиться, что соединение установлено правильно.

OpenUDS. Подключение системы виртуализации OpenNebula

После интеграции платформы OpenNebula в OpenUDS необходимо создать базовую службу типа «OpenNebula Live Images». Для этого дважды щелкните мышью по строке созданного поставщика услуг или в контекстном меню поставщика выберите «Detail»:

OpenUDS. Контекстное меню Service providers

На вкладке «Services» нажмите «New»→«OpenNebula Live Images».


Заполните параметры конфигурации. Вкладка «Main»:

  • «Name» — название службы;
  • «Datastore» — хранилище.

Вкладка «Machine»:

  • «Base Template» — шаблон ВМ, используемый системой OpenUDS для развертывания виртуальных рабочих столов (см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины);
  • «Machine Names» — базовое название для клонов с этой машины (например, Desk-kwork-);
  • «Name Length» — количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Name Length = 3, названия сгенерированных рабочих столов будут: Desk-kwork-000, Desk-kwork-001 ... Desk-kwork-999).

OpenUDS. Создание службы типа «OpenNebula Live Images». Вкладка «Main» OpenUDS. Создание службы типа «OpenNebula Live Images». Вкладка «Machine»


После того, как среда OpenUDS будет настроена и будет создан первый «пул служб», в среде OpenNebula можно будет наблюдать, как разворачиваются рабочие столы. Сначала будет создан образ ВМ («UDSP-pool_name-DSK») — клон образа, шаблон («UDSP-pool_name-publishing-number») — клон ВМ, выбранной при регистрации службы. После завершения процесса создания клона будут созданы рабочие столы («Machine_Name-Name_Length»).

PVE

Минимальные параметры для настройки «Proxmox Platform Provider»: название, IP-адрес/имя сервера или кластера (поле «Host»), порт подключения, имя пользователя с достаточными привилегиями в PVE (в формате пользователь@аутентификатор) и пароль.

OpenUDS. Подключение системы виртуализации PVE

Используя кнопку «test», можно убедиться, что соединение установлено правильно.

После интеграции платформы PVE в OpenUDS необходимо создать базовую службу типа «Proxmox Linked Clone». Для этого дважды щелкните мышью по строке созданного поставщика услуг или в контекстном меню поставщика выберите «Detail»:

OpenUDS. Контекстное меню Service providers

Примечание: Выбрав пункт «Maintenance», можно приостановить все операции, выполняемые сервером OpenUDS для данного поставщика услуг. Поставщик услуг рекомендуется переводить в режим обслуживания в случаях, когда связь с этим поставщиком была потеряна или запланирован перерыв в обслуживании.


На вкладке «Services» нажмите «New»→«Proxmox Linked Clone»:

OpenUDS. Создание новой услуги

Заполните параметры конфигурации. Вкладка «Main»:

  • «Name» — название службы;
  • «Pool» — пул, в котором будут находиться ВМ, созданные OpenUDS;
  • «HA» — включать ли созданные ВМ в группу HA PVE.

Вкладка «Machine»:

  • «Base Machine» — шаблон ВМ, используемый системой OpenUDS для развертывания виртуальных рабочих столов (см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины);
  • «Storage» — хранилище, где будут храниться сгенерированные виртуальные рабочие столы (поддерживаются хранилища, позволяющие создавать «Снимки»);
  • «Machine Names» — базовое название для клонов с этой машины (например, Desk-SL-);
  • «Name Length» — количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Name Length = 3, названия сгенерированных рабочих столов будут: Desk-SL-000, Desk-SL-001 ... Desk-SL-999).

OpenUDS. Создание службы типа «Proxmox Linked Clone». Вкладка «Main» OpenUDS. Создание службы типа «Proxmox Linked Clone». Вкладка «Machine»

После того, как среда OpenUDS будет настроена и будет создан первый «пул служб», в среде PVE можно будет наблюдать, как разворачиваются рабочие столы. Сначала будет создан шаблон («UDS-Publication-pool_name-publishing-number») — клон ВМ, выбранной при регистрации службы. После завершения процесса создания клона будут созданы рабочие столы («Machine_Name-Name_Length»):

PVE. Созданные шаблоны и рабочие столы

Static IP Machine Provider (отдельный сервер без виртуализации)

OpenUDS позволяет создать подключение к отдельным устройствам (физическим или виртуальным). Доступ к отдельной машине осуществляется путем назначения IP-адресов пользователям.

Для регистрации поставщика данного типа следует в разделе Services» нажать кнопку «New» и выбрать пункт «Static IP Machine Provider»:

OpenUDS. «Static IP Machine Provider»

Для настройки «Static IP Machine Provider» достаточно задать название поставщика.

OpenUDS. Поставщик машин статических IP

Для создания базовых услуг «Static IP Machine Provider» следует дважды щелкнуть мышью по строке созданного поставщика или в контекстном меню поставщика выбрать пункт «Detail»:

OpenUDS. Контекстное меню Service providers

OpenUDS позволяет создавать два типа услуг поставщика «Static IP Machine Provider»:

«Static Multiple IP» («Статический множественный IP-адрес»)
Используется для подключения одного пользователя к одному компьютеру. Поддерживается неограниченное количество IP-адресов (можно включить в список все устройства, которые должны быть доступны удалённо). По умолчанию система будет предоставлять доступ к устройствам в порядке FIFO, т.е. первый пользователь получивший доступ к этому пулу, получает доступ к машине с первым IP-адресом из списка. Также можно настроить выборочное распределение, чтобы определённому пользователю назначался определенный компьютер (IP-адрес).
Примечание: Для настройки привязки конкретного пользователя к конкретному IP необходимо в разделе «Service Pools» (см. VDI/OpenUDS#Настройка_«Service_Pools») для созданной услуги на вкладке «Assigned service» нажать кнопку «Assigne service» и задать привязку пользователя устройству: OpenUDS. Привязка пользователю устройству


«Static Single IP» («Статический одиночный IP-адрес»)
Используется для подключения нескольких пользователей к одному компьютеру. При обращении каждого нового пользователя будет запускаться новый сеанс.

Для создания новой услуги «Static IP Machine Provider» на вкладке «Services» нажмите «New»→«Static Multiple IP» или «New»→«Static Single IP»:

OpenUDS. Создание новой услуги Static IP

Параметры конфигурации для услуги «Static Multiple IP»:

  • Вкладка «Main»:
    OpenUDS. Создание службы типа «Static Multiple IP»
  • Вкладка «Advanced»:
    • «Check port» — порт, по которому система может проверить, доступен ли компьютер. Если компьютер не доступен, система автоматически предоставит следующее устройство в списке. 0 — не проверять доступность компьютера;
    • «Skip time» — период, в течение которого не будет проверяться доступность недоступной машины.
    OpenUDS. Создание службы типа «Static Multiple IP»
Примечание: Назначение IP-адресов будет осуществляться в порядке доступа, то есть первому пользователю, который обращается к службе, будет назначен первый IP-адрес в списке, второму второй и т.д. IP-адрес будет привязан пользователю, даже после выхода пользователя из системы (пока администратор не удалит привязку вручную).

Просмотреть/изменить привязанные сеансы можно в разделе «Service Pools» (см. VDI/OpenUDS#Настройка_«Service_Pools») на вкладке «Assigned service»:

OpenUDS. Подключение к «Static Multiple IP»


Параметры конфигурации для услуги «Static Single IP»:

OpenUDS. Создание службы типа «Static Single IP»

Настройка аутентификации пользователей

В разделе «Autentificators» выбираем тип аутентификации пользователей. Можно выбрать как внешние источники (Active Directory, OpenLDAP и т. д.), так и внутренние (внутренняя база данных, IP-аутентификация):

  • Internal Database
  • Regex LDAP Authenticator
  • IP Autentificator

OpenUDS. Выбор типа аутентификации пользователей

Внутренняя база данных

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

Минимальные параметры конфигурации (вкладка «Main»): имя аутентификатора, приоритет и метка.

После того, как аутентификатор типа «Internal Database» создан, нужно будет зарегистрировать пользователей и группы пользователей. Для этого следует выбрать аутентификатор «Internal Database», во вкладке «Groups» создать группу пользователей, затем во вкладке «Users» создать пользователей.

OpenUDS. «Internal Database» - пользователи

Regex LDAP Authenticator

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

Внимание! Для получения доступа к LDAP заведите в домене отдельного служебного пользователя с правами чтения LDAP.


FreeIPA

1. В разделе Authenticators нажмите кнопку New и выберите «Regex LDAP Authenticator».

Openuds-ldap-create.png

2. Заполните поля первых трёх вкладок. Для этого вам нужно добавить пользователя в LDAP, имеющего права на чтение каталога и знать домен. В примере указан домен freeipa.test.

Openuds-ldap-tab1.png

Openuds-ldap-tab2.png

Openuds-ldap-tab3.png

3. Помимо указания источника пользователей необходимо добавить существующую группу LDAP, в которую они входят. Дважды щёлкните на созданном соединении, перейдите на вкладку Groups, нажмите кнопку New и выберите пункт Group.

Openuds-ldap-group-add.png

4. Заполните dn существующей группы (для FreeIPA по умолчанию это группа cn=ipausers,cn=groups,cn=accounts,dc=freeipa,dc=test и укажите разрешённые пулы.

Openuds-ldap-new-group-edit.png

Active Directory
Примечание: Для Active Directory у коммерческой версии OpenUDS есть отдельный коннектор.


Настройка аутентификации в Active Directory (например, на samba-dc) аналогична FreeIPA кроме следующих различий (на примере домена company.localnet):

1. Имя пользователя можно указать в виде имя@домен:

Openuds-ldap-ad-auth.png

2. Различаются поля LDAP:

Openuds-ldap-ad-settings.png

3. В качестве группы, например, может быть указана CN=Users,CN=Builtin,DC=company,DC=localnet.

IP-аутентификация

Этот тип аутентификации обеспечивает доступ клиентов к рабочим столам и виртуальным приложениям по их IP-адресу.

Минимальные параметры конфигурации (вкладка «Main»): имя аутентификатора, приоритет и метка.

После того, как аутентификатор типа «IP Autentificator» создан, следует создать группы пользователей. Группа может представлять собой диапазон IP-адресов (192.168.0.1-192.168.0.55), подсеть (192.168.0.0/24) или отдельные IP-адреса (192.168.0.33,192.168.0.50)

OpenUDS. IP Autentificator - создание группы пользователей

Настройка групп пользователей

На вкладке «Groups» необходимо создать группы пользователей с указанием какую базу пользователей использовать.

Настройка «OS Manager»

«OS Manager» запускает ранее настроенные службы:

  • «Linux OS Manager» используется для виртуальных рабочих столов на базе Linux. Он выполняет задачи переименования и управления сеансами виртуальных рабочих столов.
  • «Windows Basic OS Manager» используется для виртуальных рабочих столов на базе Windows, которые не являются частью домена AD.
  • «Windows Domain OS Manager» используется для виртуальных рабочих столов на базе Windows, которые являются частью домена AD.
Примечание: Для каждой службы, развернутой в OpenUDS, потребуется «Менеджер ОС», за исключением случаев, когда используется служба «Static IP Machine Provider».


OpenUDS. Настройка «OS Manager»

Linux OS Manager/Windows Basic OS Manager

Минимальные настройки для «Linux OS Manager» и «Windows Basic OS Manager»:

  • «Name» — название;
  • «Logout Action» — действие, которое OpenUDS будет выполнять на виртуальном рабочем столе при закрытии сеанса пользователя («Keep service assigned» = постоянная ВМ, при выходе пользователя, система не предпринимает никаких действий, при повторном входе пользователю будет назначен тот же рабочий стол. «Remove service» = непостоянная ВМ, при выходе пользователя из системы, система уничтожит рабочий стол. «Keep service assigned even on new publication» — сохранение назначенной службы даже при создании новой публикации «Service Pool»);
  • «Max. Idle time» («Время простоя») — время (в секундах) простоя виртуального рабочего стола. По истечении этого времени OpenUDS Actor автоматически закроет сеанс. Отрицательные значения и значения менее 300 секунд отключают эту опцию.

OpenUDS. Настройка «OS Manager»

Windows Domain OS Manager

Минимальные настройки для «Windows Domain OS Manager»:

  • «Name» — название;
  • «Domain» — домен, к которому будут присоединены виртуальные рабочие столы;
  • «Account» — учетная запись с правами на добавление машин в домен;
  • «Password» — пароль пользователя указанного в поле «Account»;
  • «OU» — организационная единица, в которую будут добавлены виртуальные хосты (если не указано, хосты будут зарегистрированы в подразделении по умолчанию — Computers). Формат поддерживаемых OU: OU = name_OU_last_level, ... OU = name_OU_first_level, DC = name_domain, DC = extension_domain;
  • «Logout Action» — действие, которое OpenUDS будет выполнять на виртуальном рабочем столе при закрытии сеанса пользователя («Keep service assigned» = постоянная ВМ, при выходе пользователя, система не предпринимает никаких действий, при повторном входе пользователю будет назначен тот же рабочий стол. «Remove service» = непостоянная ВМ, при выходе пользователя из системы, система уничтожит рабочий стол. «Keep service assigned even on new publication» — сохранение назначенной службы даже при создании новой публикации «Service Pool»);
  • «Max. Idle time» («Время простоя») — время (в секундах) простоя виртуального рабочего стола. По истечении этого времени OpenUDS Actor автоматически закроет сеанс. Отрицательные значения и значения менее 300 секунд отключают эту опцию.

OpenUDS. Настройка «Windows Domain OS Manager»

Настройка «Transports»

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

OpenUDS. Настройка «Transports»

Можно создать один транспорт для различных «пулов» или установить по одному для каждого «пула».

При создании «Transports» необходимо выбрать его тип: «Direct» — используется, если пользователь имеет доступ к виртуальным рабочим столам из внутренней сети (например, LAN, VPN и т. д.); «Tunneled» — используется, если у пользователя нет прямого подключения к рабочему столу.

RDP (direct)

«RDP» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux. И на клиентах подключения, и на виртуальных рабочих столах должен быть установлен и включен протокол RDP (для виртуальных рабочих столов Linux необходимо использовать XRDP).

Минимальные параметры для настройки транспорта RDP:

  • Вкладка «Main»:
    • «Name» — название транспорта;
    • «Priority» — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
    • «Networks Access» — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
    • «Networks» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Networks»). Пустое поле означает «все сети». Используется вместе с параметром «Networks Access»;
    • «Allowed Devices» — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
    • «Service Pools» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
    OpenUDS. RDP - вкладка «Main»


  • Вкладка «Credentials»:
    • «Empty creds» — если установлено значение «Да», учётные данные для доступа к виртуальному рабочему столу будут запрашиваться при подключении к серверу (не использовать при подключении к Windows, т.к. данные не запрашиваются?). Если установлено значение «Нет», будут использоваться данные OpenUDS (см. ниже);
    • «Username» — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя;
    • «Password» — пароль пользователя, указанного в поле «Username»;
    • «Without Domain» — указывает, перенаправляется ли доменное имя вместе с пользователем. Значение «Да» равносильно пустому полю «Domain»;
    • «Domain» — домен. Если поле не пустое, то учётные данные будут использоваться в виде DOMAIN\user.
    Вкладка «Credentials»
  • Вкладка «Parameters»:
    • «Allow Smartcards» — разрешить перенаправление смарт-карт;
    • «Allow Printers» — включить перенаправление принтеров;
    • «Local drives policy» — включить перенаправление дисков:
      • «Allow none» — не перенаправлять диски;
      • «Allow PnP drives» — во время активного сеанса перенаправлять только подключенные диски;
      • «Allow any drive» — перенаправлять все диски;
    • «Force drives» — принудительное перенаправление определённых дисков;
    • «Allow Serials» — включить перенаправление последовательного порта;
    • «Enable clipboard» — разрешить общий буфер обмена;
    • «Enable sound» — перенаправлять звук с рабочего стола на клиент подключения;
    • «Enable webcam» — перенаправлять веб-камеру;
    • «Credssp Support» — использовать “Credential Security Support Provider”.
    OpenUDS. RDP - Вкладка «Parameters»
  • Вкладка «Display»:
    • «Screen Size» — размер окна рабочего стола;
    • «Color depth» — глубина цвета;
    • «Wallpaper/theme» — отображать фона рабочего стола;
    • «Multiple monitors» — использовать несколько мониторов (только для клиентов Windows);
    • «Allow Desk. Comp.» — включить Desktop Composition;
    • «Font Smoothing» — активирует сглаживание шрифтов;
    • «Connection Bar» — показывать панель подключения (только для клиентов Windows).
    Вкладка «Display»
  • Вкладка «Linux Client»:
    • «Multimedia sync» — включает параметр мультимедиа на клиенте FreeRDP;
    • «Use Alsa» — использовать звук через Alsa;
    • «Redirect home folder» — перенаправить домашнюю папку клиента подключения на виртуальный рабочий стол;
    • «Printer string» —  принтер, используемый клиентом xfreerdp (если включено перенаправление принтера). Пример: «HP_LaserJet_M1536dnf_MFP» (названия подключенных принтеров можно вывести командой lpstat -a);
    • «Smartcard string» — токен, используемый клиентом xfreerdp (если включено перенаправление смарт-карт). Пример: «Aktiv Rutoken ECP 00 00».
    • «Custom parameters» — здесь можно указать любой параметр, поддерживаемый клиентом FreeRDP.
    Вкладка «Linux Client»

X2Go (direct)

«X2Go» позволяет пользователям получать доступ к виртуальным рабочим столам Linux. И на клиентах подключения (клиент), и на виртуальных рабочих столах (сервере) должен быть установлен и включен «X2Go».

Минимальные параметры для настройки транспорта X2Go:

  • Вкладка «Main»:
    • «Name» — название транспорта;
    • «Priority» — приоритет. Чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
    • «Networks Access» — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
    • «Networks» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Networks»). Пустое поле означает «все сети». Используется вместе с параметром «Networks Access»;
    • «Allowed Devices» — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
    • «Service Pools» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
    Вкладка «Main»


  • Вкладка «Credentials»:
    • «Username» — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя.
    Вкладка «Credentials»
  • Вкладка «Parameters»:
    • «Screen Size» — размер окна рабочего стола;
    • «Desktop» — менеджер рабочего стола (Xfce, Mate и д.р.) или виртуализация приложений Linux (UDS vAPP);
    • «vAPP» — полный путь до приложения (если «Desktop» = UDS vAPP);
    • «Enable sound» — включить звук;
    • «Redirect home folder» — перенаправить домашнюю папку клиента подключения на виртуальный рабочий стол (на Linux также перенаправлять /media);
    • «Speed» — скорость подключения.
    Вкладка «Parameters»


  • Вкладка «Advanced»:
    • «Sound» — тип звукового сервера;
    • «Keyboard» — раскладка клавиатуры.
    Вкладка «Advanced»

SPICE (direct)

Внимание! Транспортный протокол «SPICE» может использоваться только с oVirt/RHEV и OpenNebula.


«SPICE» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux. На клиентах подключения должен быть установлен клиент «SPICE» (Virt-Manager).

Минимальные параметры для настройки транспорта SPICE:

  • Вкладка «Main»:
    • «Name» — название транспорта;
    • «Priority» — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
    • «Certificate» — сертификат сгенерированный в ovirt-engine/RHV-manager или в OpenNebula. Требуется для подключения к виртуальным рабочим столам;
    • «Networks Access» — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
    • «Networks» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Networks»). Пустое поле означает «все сети». Используется вместе с параметром «Networks Access»;
    • «Allowed Devices» — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
    • «Service Pools» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
    OpenUDS. SPICE — вкладка «Main»
  • Вкладка «Advanced»:
    • «Fullscreen Mode» — включает полноэкранный режим виртуального рабочего стола;
    • «Smartcard Redirect» — включает перенаправление смарт-карт;
    • «Enable USB» — разрешает перенаправление устройств, подключенных к порту USB;
    • «New USB Auto Sharing» — позволяет перенаправлять PnP-устройства, подключенные к USB-порту.
    OpenUDS. SPICE  — Вкладка «Advanced»

HTML5 RDP (tunneled)

«HTML5 RDP» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux через протокол RDP с использованием браузера, поддерживающего HTML5 (для рабочих столов Linux на машинах должен быть установлен пакет XRDP, для рабочих столов Windows необходимо настроить доступ HTML5 RDP).

Минимальные параметры для настройки транспорта HTML5 RDP:

  • Вкладка «Main»:
    • «Name» — название транспорта;
    • «Priority» — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
    • «Networks Access» — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
    • «Networks» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Networks»). Пустое поле означает «все сети». Используется вместе с параметром «Networks Access»;
    • «Allowed Devices» — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
    • «Service Pools» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
    OpenUDS. HTML5 RDP — вкладка «Main»
  • Вкладка «Tunnel»:
    • «Tunnel Server» — IP-адрес с портом подключения OpenUDS Tunnel. Если доступ к рабочему столу осуществляется через глобальную сеть, необходимо ввести общедоступный IP-адрес сервера OpenUDS Tunnel. Формат: http://IP_Tunneler:Port (8080 — порт по умолчанию):
    OpenUDS. HTML5 RDP — вкладка «Tunnel»
  • Вкладка «Credentials»:
    • «Empty creds» — если установлено значение «Да», учётные данные для доступа к виртуальному рабочему столу будут запрашиваться при подключении к серверу (не использовать при подключении к Windows, т.к. данные не запрашиваются?). Если установлено значение «Нет», будут использоваться данные OpenUDS (см. ниже);
    • «Username» — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя;
    • «Password» — пароль пользователя, указанного в поле «Username»;
    • «Without Domain» — указывает, перенаправляется ли доменное имя вместе с пользователем. Значение «Да» равносильно пустому полю «Domain»;
    • «Domain» — домен. Если поле не пустое, то учётные данные будут использоваться в виде DOMAIN\user.
    OpenUDS. HTML5 RDP — Вкладка «Credentials»
  • Вкладка «Parameters»:
    • «Enable File Sharing» — позволяет создать временный каталог (расположенный на сервере OpenUDS Tunnel), для возможности обмена файлами между виртуальным рабочим столом и клиентом подключения;
    • «Show wallpaper» — отображать обои рабочего стола;
    • «Allow Desk.Comp.» —  включить «Desktop Composition»;
    • «Font Smoothing» — активирует сглаживание шрифтов;
    • «Enable Audio» — перенаправлять звук с рабочего стола на клиент подключения;
    • «Enable Printing» —  включить печать на виртуальном рабочем столе;
    • «Layout» — раскладка клавиатуры, которая будет включена на рабочем столе;
    • «Security» — уровень безопасности соединения.
    OpenUDS. HTML5 RDP — Вкладка «Parameters»


  • Вкладка «Advanced»:
    • «Ticket Validity» — срок действия билета (в секундах);
    • «Force new HTML Window» — открывать ли подключение в новом окне:
    OpenUDS. HTML5 RDP — Вкладка «Advanced»

Сети

В OpenUDS можно зарегистрировать различные сети для управления доступом клиентов к виртуальным рабочим столам или приложениям (при доступе к OpenUDS определяется IP-адрес клиента подключения). Эти сети совместно с «Транспортом» будут определять, какой тип доступа будет доступен пользователи для подключения к виртуальным рабочим столам.

Чтобы добавить сеть, следует в разделе «Connectivity» выбрать пункт «Networks» и нажать кнопку «New»:

OpenUDS. Создание новой сети

В открывшемся окне следует указать название сети и сетевой диапазон. В качестве сетевого диапазона можно указать:

  • одиночный IP-адрес: xxx.xxx.xxx.xxx (например, 192.168.0.33).
  • подсеть: xxx.xxx.xxx.xxx/x (например, 192.168.0.0/24).
  • диапазон IP-адресов: xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx (например, 192.168.0.1-192.168.0.50).

После создания сетей, появится возможность указать их при создании/редактировании транспорта. Можно настроить будет ли данный транспорт отображаться у клиента, в зависимости от сети, в которой находится клиент:

OpenUDS. Выбор сети при редактировании транспорта

В данном примере транспорт «X2Go» будет доступен только клиентам из сети 192.168.0.0/24.

Если сети для транспорта не определены, доступ к службам рабочего стола и виртуальным приложениям будет возможен из любой сети.

Настройка «Service Pools»

После того, как был создан и настроен хотя бы один Service provider (с базой службы), аутентификатор (с пользователем и группой), «Manager OS» и «транспорт», нужно создать Service Pool для публикации виртуальных рабочих столов.

OpenUDS. Новый Service Pool

Вкладка «Main»:

  • «Name» — название службы;
  • «Base service» — служба, созданная ранее в «Поставщике услуг»;
  • «OS Manager».

Вкладка «Display»:

  • «Visible» — если этот параметр отключен, пул не будет отображаться у пользователей;
  • «Associated Image» — Изображение, связанное с услугой. Изображение должно быть предварительно добавлено в репозиторий изображений (раздел «Tools»→«Gallery»);
  • «Pool group» — позволяет группировать различные службы. Группа должна быть предварительно создана в разделе «Pools»→«Groups».

Вкладка «Availability»:

  • «Initial available services» — минимальное количество виртуальных рабочих столов, созданных, настроенных и назначенных/доступных для службы;
  • «Services to keep in cache» — количество доступных виртуальных рабочих мест. Они всегда будут настроены и готовы к назначению пользователю (они будут автоматически создаваться до тех пор, пока не будет достигнуто максимальное количество машин, указанное в поле «Maximum number of services to provide»);
  • «Maximum number of services to provide» — максимальное количество виртуальных рабочих столов, созданных системой в «пуле служб» (рабочие столы, созданные в кэше L2, не учитываются).

Нажать кнопку «Save» и система начнет создавать виртуальные рабочие столы на основе настроенного кеша (вкладка «Availability»).

После создания пула, в настройках:

  • на вкладке «Groups» назначить группы доступа (выбрать аутентификатор и группу, которая будет иметь доступ к этому пулу служб):
    OpenUDS. Назначение группы пулу служб
  • на вкладке «Transports» выбрать способы подключения пользователей к рабочему столу:
    OpenUDS. «Service Pools» - выбор способов подключения

«Мета-пулы»

Виртуальные рабочие столы можно сгруппировать в пулы рабочих столов («Мета-пулы»), что упрощает управление и организацию. Создание «Мета-пула» позволит получить доступ к виртуальным рабочим стола или приложениям из разных «Service Pools». Эти пулы будут работать вместе, предоставляя различные услуги абсолютно прозрачным для пользователей способом.

«Пулы услуг», образующие «Мета-пул», будут работать в соответствии с политикой (см. ниже), которая позволит предоставлять услуги в соответствии с потребностями пула. Чтобы создать «Мета-пул», следует в разделе «Pools» выбрать пункт «Meta pools» и нажать кнопку «New»:

OpenUDS. Создание мета-пула — вкладка «Main»

Для настройки «Мета-пула» необходимо указать:

  • вкладка «Main»:
    • «Name» — название «Мета-пула» (это будет видеть пользователь для доступа к службе);
    • «Short name» — если указано, то это будет видеть пользователь для доступа к службе (при наведении на него указателя появится содержимое поля «Name»);
    • «Policy» — политика, которая будет применяться при создании сервисов в «Пулах услуг», являющихся частью «Мета-пула»:
      • «Eventy distributed» — услуги будут создаваться и использоваться равномерно во всех «пулах услуг», составляющих «Мета-пул».
      • «Priority» — услуги будут создаваться и использоваться из «пула услуг» с наибольшим приоритетом (приоритет определяется полем «priority», чем ниже значение этого поля, тем выше приоритет у элемента). Когда будет достигнуто максимального количество сервисов данного «Service Pool», будут использоваться сервисы следующего.
      • «Greater % available» — службы будут создаваться и использоваться из «Service Pool», который имеет самый высокий процент использования.
  • вкладка «Display»:
    • «Associated Image» — изображение, связанное с «Мета-пулом». Изображение должно быть предварительно добавлено в репозиторий изображений (раздел «Tools»→«Gallery»);
    • «Pool group» — позволяет группировать различные «Мета-пулы». Группа должна быть предварительно создана в разделе «Pools»→«Groups»;
    • «Visible» — если этот параметр отключен, «Мета-пул» не будет отображаться у пользователей;
    • «Calendar Access denied text» — текст, который будет отображаться, когда доступ к «Мета-пулу» запрещен приложением календаря доступа.

OpenUDS. Создание мета-пула — вкладка «Display»

Сохранив конфигурацию «Мета-пула», можно начать регистрацию «Пулов услуг». Для этого следует дважды щелкнуть мышью по строке созданного «Мета-пула» или в контекстном меню «Мета-пула» выбрать пункт «Detail»:

OpenUDS. Настройка мета-пула

Чтобы добавить «Пул услуг» в «Мета-пул», следует нажать кнопку «New»:

OpenUDS. Добавление «Пула услуг» в мета-пул

Для добавления «Пула услуг» необходимо указать:

  • «Priority» —приоритет, который будет иметь «Пул услуг» в «Мета-пуле» (чем ниже значение, тем больше приоритет);
  • «Service pool» — «Пул услуг», который будет добавлен в «Мета-пул» («Пул услуг» должен быть предварительно создан);
  • «Enabled» — включает или отключает видимость «Пула услуг» в «Мета-пуле».

Можно добавить столько «Пулов услуг», сколько нужно, комбинируя службы, размещенные на разных платформах виртуализации (PVE, KVM, OpenNebula и т.д.), серверах приложений и статических устройствах.

OpenUDS. «Пулы услуг» в мета-пуле

Как и при создании «Service Pools», здесь есть следующие вкладки с информацией и конфигурацией:

  • «Assigned services» — показывает службы, назначенные пользователям (можно вручную удалить назначение и переназначить другому пользователю);
  • «Groups» — указывает, какие группы пользователей будут иметь доступ к услуге;
  • «Access calendars» — позволяет применить ранее созданный календарь доступа;
  • «Logs» — показывает все проблемы, возникшие в «Мета-пуле».

Управление доступом по календарю

В OpenUDS можно настроить разрешение или ограничение доступа пользователей к удаленным рабочим столам и виртуальным приложениям по датам и временным интервалам.

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

Чтобы создать календарь следует в разделе «Pools» выбрать «Calendars», нажать кнопку «New», в открывшемся окне ввести описательное название в поле «Name» и нажать кнопку «Save»:

OpenUDS. Новый календарь

В «Календаре» можно зарегистрировать правила, чтобы запланировать доступность услуги в определенное время. Для создания правила следует выбрать календарь (дважды щелкнуть мышью по строке созданного календаря или в контекстном меню календаря выбрать пункт «Detail») и нажать кнопку «New»:

OpenUDS. Создать новое правило

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

  • «Name» — имя правила;
  • «Event» — настройка времени выполнения. Необходимо указать время начала и продолжительность события (в минутах/часах/днях/неделях);
  • «Repetition» — настройка периодичности выполнения. Необходимо указать дату начала, частоту повторения правила (ежедневно/еженедельно/ежемесячно/ежегодно/по будням) и указать интервал повторения (в днях);
  • «Summary» — показывает сводные данные (резюме) всех ранее указанных настроек.

OpenUDS. Новое правило

После нажатия кнопки «Ok» будет создано правило, которое будет назначено «пулу услуг» (виртуальному рабочему столу и/или приложению).

OpenUDS. Правило, назначенное «пулу услуг»

Разрешение/запрет доступа

После настройки правил в календарях их можно использовать для управления доступом пользователей к службам рабочего стола или приложениям. Для этого следует выбрать нужный «Service Pool», перейти на вкладку «Access Calendars» и нажать кнопку «New»:

OpenUDS. Вкладка «Доступ к календарям»

В открывшемся окне необходимо указать приоритет доступа, выбрать календарь и указать действие, которое будет применяться при доступе к сервису:

OpenUDS. Новое ограничение доступа по календарю

Примечание: Правило по умолчанию («FallBack») должно разрешать или запрещать доступ к сервису, когда календарь не применяется. OpenUDS. Ограничение доступа к сервису по календарю


Доступ к сервису «Desktop Alt» запрещен:

OpenUDS. Доступ к пулу «Desktop Alt» запрещен

Запланированные действия

После настройки правил в календарях их можно использовать для планирования определенные задач в «Service Pools». Для этого следует выбрать нужный «Service Pool», перейти на вкладку «Scheduled actions» и нажать кнопку «New»:

OpenUDS. Вкладка «Запланированные действия»

В открывшемся окне необходимо указать календарь, время, в течение которого будет выполняться действие, выбрать действие, которое необходимо выполнить (список возможных действий зависит от поставщика услуг данного пула):

  • «Set initial services» («Установить начальные сервисы») — сбрасывает минимальное количество созданных и настроенных виртуальных рабочих столов;
  • «Set cache size» («Установить размер кеша») — сбрасывает виртуальные рабочие столы, доступные в системном кеше. Эти рабочие столы будут настроены и готовы к назначению пользователю;
  • «Set maximum number of services» («Установить максимальное количество сервисов») — изменяет максимальное количество виртуальных рабочих столов в «Service Pool»;
  • «Publish» («Публикация») — создание новой публикации в «Service Pool»;
  • «Add a transport» («Добавить транспорт») — добавляет существующий транспорт в «Service Pool»;
  • «Remove a transport» «Удалить транспорт») — удаляет транспорт из «Service Pool»;
  • «Add a group» («Добавить группу») — добавляет существующую группу в «Service Pool»;
  • «Remove a group» («Удалить группу») — удаляет группу из «Service Pool»;
  • «Sets the ignore unused» («Устанавливает игнорирование неиспользуемых») — устанавливает параметр «Игнорировать неиспользуемые»;
  • «Remove ALL assigned user service» («Удалить ВСЕ назначенные пользовательские сервисы») — удаляет все службы, назначенные пользователям.


OpenUDS. Новое запланированное действие

После сохранения появится запланированная задача, выполняющая конкретное действие в данном «Service Pool»:

OpenUDS. Запланированные действия

Настройка разрешений

В OpenUDS можно назначать пользователям и группам пользователей права доступа к различным элементам администрирования. Разрешения будут назначены непосредственно для каждого элемента, а также будут применяться к его подэлементам.

Примечание: Чтобы пользователь мог получить доступ к администрированию, пользователю должна быть назначена роль «Staff member»:


OpenUDS. Роль пользователя


Для предоставления разрешения к элементу администрирования следует выбрать элемент и нажать кнопку «Permissions», например, в «Service Pool»:

OpenUDS. Предоставление разрешения к сервису «Desktop Alt»

В окне разрешений следует нажать ссылку «New permission….» для групп или пользователей, затем выбрать аутентификатор и группу/пользователя, к которым будет применяться разрешение. Также нужно указать, будет ли пользователь/группа иметь доступ для чтения к элементу («Read only») или полный доступ («Full Access»):

OpenUDS. Новое разрешение

После сохранения настроек, пользователи, которым назначена роль «Staff member», смогут получить доступ к этому элементу администрирования с назначенными разрешениями.

OpenUDS. Разрешения для сервиса «Desktop Alt»

Разрешения типа «Full Access» («Manage») могут применяться только к элементам второго уровня («Calendars», «Service Pools» и т.д.).

Подготовка шаблона виртуальной машины

Примечание: См. также статью Подготовка шаблона ВМ с ОС Windows.


Требования к шаблону виртуальной машины:

  1. Установить openuds-actor:
    # apt-get install openuds-actor
    
  2. Включить автозапуск сервиса udsactor.service:
    # systemctl enable udsactor.service
    
  3. Зарегистрировать UDS Actor на сервере UDS:
    • запустить UDS Actor из меню («Настройки»→«UDS Actor Configuration») или командой:
    $ /usr/sbin/UDSActorConfig-pkexec
    
    Потребуется ввести пароль пользователя, входящего в группу wheel.
    • на вкладке «UDS Server» необходимо указать имя или IP-адрес сервера UDS, имя и пароль пользователя, имеющего права администратора в среде UDS и нажать кнопку «Register with UDS» («Зарегистрироваться в UDS»).
      UDS Actor Configuration
    • На вкладке «Advanced» можно указать дополнительные параметры, в том числе уровень журналирования:
      • «Preconnect» — сценарий, который будет запущен непосредственно перед тем, как пользователь подключится к виртуальному рабочему столу. Скрипту могут быть переданы следующие параметры: имя пользователя, протокол, IP-адрес, имя хоста;
      • «Runonce» — сценарий, который будет запущен только один раз перед настройкой UDS Actor. После выполнения скрипт удаляется из конфигурации. Параметры можно передать непосредственно скрипту. Необходимо, чтобы выполняемый скрипт завершился перезапуском виртуального рабочего стола;
      • «Postconfig» — сценарий, который будет запущен после того, как UDS Actor завершит настройку. Параметры можно передать непосредственно скрипту. Скрипт запускается только один раз, но в отличие от режима «Runonce» перезапускать виртуальный рабочий стол не нужно;
      • «Log Level» — уровень журналирования (файл журнала: /var/log/udsactor.log).
      Для применения настроек указанных на этой вкладке необходимо выполнить перерегистрацию UDS Actor.
  4. Установить и настроить один из вариантов удаленного доступа:


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

На клиенте должен быть установлен пакет openuds-client:

# apt-get install openuds-client

Чтобы иметь возможность подключаться к виртуальному рабочему столу, должны быть установлены клиенты каждого используемого протокола удаленного доступа (xfreerdp, x2goclient).

Для подключения к виртуальному рабочему столу по протоколу SPICE необходимо установить remote-viewer из пакета virt-viewer. На клиенте с ОС Windows необходимо установить virt-viewer (https://releases.pagure.org/virt-viewer/).

Примечание: Для возможности подключения по протоколу SPICE к OpenNebula, клиенты должны успешно разрешать имена hostname серверов с виртуальными машинами (через DNS или hosts).


Подключение к виртуальному рабочему месту:

  • подключиться к серверу OpenUDS с помощью браузера http://<openuds_address>, выбрать средство проверки подлинности, если доступно несколько, ввести имя пользователя/пароль (их должен указать администратор);
  • на панели управления будут отображены все ВМ (или шаблоны), к которым у пользователя есть доступ:
    OpenUDS. Подключение пользователя к виртуальному рабочему месту
  • при выборе ВМ, автоматически загрузится openuds-client, который запустит приложение для просмотра удаленного рабочего стола

После выбора пула, автоматически стартует OpenUDS Client, который обрабатывает URL, получает необходимые настройки протокола удаленного доступа для предоставленной (свободной) ВМ, формирует файл описания сессии и передает его приложению-клиенту удалённого доступа, которое и устанавливает соединение с указанной ВМ.

Примечание: Если для подключения к службе настроено более одного типа транспорта, то в правом верхнем углу службы будет отображена кнопка. Если выбрать непосредственно ВМ, будет вызван транспорт по умолчанию (транспорт с меньшим значением в поле приоритет). Для того чтобы использовать другой транспорт, нужно выбрать его в раскрывающемся списке.


Пример подключения с использованием транспорта HTML5 RDP:

OpenUDS. Пример подключения с использованием HTML5 RDP

По завершении сеанса пользователь ВМ выходит из нее, что приводит к остановке OpenUDS Actor. Брокер openUDS считает, что ВМ стала недоступной и, если пул постоянный, то он запускает ВМ, а если пул временный, то происходит удаление файлов ВМ в хранилище и создается новая ВМ из мастер-образа.

Примечание: При подключении пользователя к виртуальному рабочему месту OpenUDS фиксирует доступ и отображает информацию о привязанном сервисе на вкладке «Assigned services» соответствующего «Service Pools»:

OpenUDS. Assigned services


Отказоустойчивое решение

См. статью HA-кластер с OpenUDS.