VDI/OpenUDS: различия между версиями
< VDI
Amakeenk (обсуждение | вклад) м (→Подготовка шаблона виртуальной машины: Исправление опечатки) |
|||
Строка 20: | Строка 20: | ||
# mysql -u root | # mysql -u root | ||
<syntaxhighlight lang="MySQL"> | <syntaxhighlight lang="MySQL"> | ||
mysql> CREATE DATABASE | mysql> CREATE DATABASE dbuds CHARACTER SET utf8 COLLATE utf8_general_ci; | ||
mysql> CREATE USER 'dbuds'@'%' IDENTIFIED BY 'password'; | mysql> CREATE USER 'dbuds'@'%' IDENTIFIED BY 'password'; | ||
mysql> GRANT ALL PRIVILEGES ON dbuds.* TO 'dbuds'@'%'; | mysql> GRANT ALL PRIVILEGES ON dbuds.* TO 'dbuds'@'%'; | ||
Строка 30: | Строка 30: | ||
# apt-get install openuds-server-nginx | # apt-get install openuds-server-nginx | ||
Будут установлены: | Будут установлены: | ||
* openuds-server | * openuds-server — django приложение; | ||
* gunicorn | * gunicorn — сервер приложений. Обеспечивает запуск django как стандартного WSGI приложения; | ||
* nginx | * nginx — http-сервер, используется в качестве reverse-proxy для доступа к django приложению, запущенному с помощью gunicorn. | ||
==== Настройка OpenUDS Server ==== | ==== Настройка OpenUDS Server ==== | ||
* отредактировать /etc/openuds, указав корректные данные для подключения к SQL серверу | * отредактировать {{path|/etc/openuds/settings.py}}, указав корректные данные для подключения к SQL серверу: | ||
* "заполнить" базу данных первоначальными данными | *:<syntaxhighlight lang="python"> | ||
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. | |||
} | |||
} | |||
</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 | ||
* запустить gunicorn | * запустить gunicorn: | ||
# systemctl enable --now openuds-web.service | # systemctl enable --now openuds-web.service | ||
* запустить nginx | * запустить nginx: | ||
# ln -s ../sites-available.d/openuds.conf /etc/nginx/sites-enabled.d/openuds.conf | # ln -s ../sites-available.d/openuds.conf /etc/nginx/sites-enabled.d/openuds.conf | ||
# systemctl enable --now nginx.service | # systemctl enable --now nginx.service | ||
Строка 48: | Строка 63: | ||
# systemctl enable --now openuds-taskmanager.service | # systemctl enable --now openuds-taskmanager.service | ||
* подключиться к серверу OpenUDS с помощью браузера http://<openuds_address> | * подключиться к серверу OpenUDS с помощью браузера http://<openuds_address> | ||
{{Note| Имя/пароль по умолчанию: root/udsmam0}} | |||
Дополнительная информация о настройках django приложений: | Дополнительная информация о настройках django приложений: | ||
Строка 59: | Строка 75: | ||
# apt-get install openuds-tunnel | # apt-get install openuds-tunnel | ||
Будут установлены: | Будут установлены: | ||
* openuds-tunnel | * openuds-tunnel — java приложение, основанное на проекте guacamole; | ||
* guacamole-server | * guacamole-server | ||
* tomcat | * tomcat | ||
Строка 65: | Строка 81: | ||
* pam_uds | * pam_uds | ||
==== Настройка OpenUDS Tunnel ==== | |||
* запустить сервисы | * указать адрес OpenUDS сервера (брокера) в {{path|/etc/uds.conf}} и в {{path|/etc/pam.d/sshd_uds}}; | ||
* запустить сервисы: | |||
# systemctl enable --now sshd_uds guacd tomcat | # systemctl enable --now sshd_uds guacd tomcat | ||
Версия от 17:35, 27 апреля 2021
Введение
OpenUDS это много-платформенный брокер подключений для создания и управления виртуальными рабочими местами и приложениями. Основные компоненты решения VDI на базе OpenUDS:
- OpenUDS Server (openuds-server) - брокер подключений пользователей, а так же интерфейс администратора для настройки.
- SQL Server. Для работы django приложения, которым является openuds-server необходим SQL сервер, например mysql или mariadb. Может быть установлен на отдельном сервере.
- Платформа для запуска клиентских окружений и приложений. OpenUDS совместима со множеством систем виртуализации: PVE, OpenNebula, oVirt, OpenStack. Так же возможно использование с отдельным сервером без виртуализации (аналог терминального решения).
- OpenUDS Client (openuds-client) - клиентское приложения для подключения к брокеру соединений и дальнейшего получения доступа к виртуальному рабочему окружению
- OpenUDS Tunnel (openuds-tunnel) - решение для туннелирования обращений от клиента к виртуальному рабочему окружению. Предназначено для предоставления доступа из недоверенных сегментов сети, например из Интернет. Устанавливается на отдельный сервер.
- OpenUDS Actor (openuds-actor) - ПО для гостевых виртуальных машин, реализует связку виртуальной машины и брокера соединений.
Установка
Установка 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
- запустить 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
Дополнительная информация о настройках 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
- указать адрес OpenUDS сервера (брокера) в /etc/uds.conf и в /etc/pam.d/sshd_uds;
- запустить сервисы:
# systemctl enable --now sshd_uds guacd tomcat
Настройка
Подключение системы виртуализации
В разделе "Services" подключаем один из "Service providers"
- PVE Platform Provider
- OpenNebula Platform Provider
- OpenStack Platform Provider
- oVirt/RHEV Platform Provider
- Static IP Machine Provider (отдельный сервер без виртуализации)
Настройка аутентификации пользователей
- Internal Database
- Regex LDAP Authenticator
- IP Autentificator
Настройка групп пользователей
На вкладке "Groups" необходимо создать группы пользователей с указанием какую базу пользователей использовать.
Настройка "OS Manager"
Подготовка шаблона виртуальной машины
Требования к шаблону виртуальной машины:
- openuds-actor
- установить UDS Master Key в настройках openuds-actor соответствующий серверу OpenUDS
- один из вариантов удаленного доступа
- xrdp
- x2go
- ???
Подключение пользователя к виртуальному рабочему месту
- на клиенте необходимо установить openuds-client
# apt-get install openuds-client
- подключиться к серверу OpenUDS с помощью браузера http://<openuds_address>, имя/пароль должен указать администратор, возможен как из внутренней базы OpenUDS, так и из внешней, например ldap
- в web-интерфейсе пользователя видны виртуальные машины(или шаблоны) только опубликованные администратором
- выбрав нужную ВМ, автоматически загрузится opennebula-client и запустит приложение для просмотра удаленного рабочего стола
TODO:
Отказоустойчивое решение