VDI/Ravada: различия между версиями
(+проброс портов, spinoff) |
(→Клиент) |
||
(не показано 9 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
Ravada — проект со своей системой управления виртуальными машинами (ВМ), с минимумом функций, доступом пользователей к ВМ через веб-интерфейс. | Ravada — проект со своей системой управления виртуальными машинами (ВМ), с минимумом функций, доступом пользователей к ВМ через веб-интерфейс. | ||
Строка 8: | Строка 6: | ||
* удаленный доступ по протоколу Spice; | * удаленный доступ по протоколу Spice; | ||
* быстрое клонирование ВМ для каждого пользователя; | * быстрое клонирование ВМ для каждого пользователя; | ||
* проброс USB-устройств; | |||
* настраиваемый интерфейс конечных пользователей; | * настраиваемый интерфейс конечных пользователей; | ||
* администрирование из веб-браузера. | * администрирование из веб-браузера. | ||
== Установка == | == Установка == | ||
{{Attention|Данная инструкция актуальна для {{pkg|ravada}}, начиная с версии 1.5.2-alt1.}} | |||
=== Сервер === | === Сервер === | ||
Строка 38: | Строка 39: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Внести изменения в конфигурационный файл {{path|/etc/ravada.conf}} (следует указать имя пользователя и пароль, указанные на предыдущем шаге) | Внести изменения в конфигурационный файл {{path|/etc/ravada.conf}} (следует указать имя пользователя и пароль, указанные на предыдущем шаге): | ||
<syntaxhighlight lang="ini"> | |||
--- | |||
db: | |||
hostname: localhost | |||
user: rvd_user | |||
password: Pword12345* | |||
</syntaxhighlight> | |||
Включить по умолчанию и запустить службу libvirtd: | Включить по умолчанию и запустить службу libvirtd: | ||
Строка 75: | Строка 83: | ||
=== Клиент === | === Клиент === | ||
На клиенте должна быть установлена программа для удалённого доступа по протоколу [[SPICE]], например, '''remote-viewer''' из пакета {{pkg|virt-viewer}} или [[Remmina]]. | На клиенте должна быть установлена программа для удалённого доступа по протоколу [[SPICE]], например, '''remote-viewer''' из пакета {{pkg|virt-viewer}} или [[Remmina]]. | ||
{{Note|На клиенте с ОС Windows необходимо установить virt-viewer (https://releases.pagure.org/virt-viewer/).}} | |||
=== Веб-интерфейс === | === Веб-интерфейс === | ||
Строка 149: | Строка 159: | ||
=== Создание ВМ === | === Создание ВМ === | ||
==== Гостевая ОС Linux ==== | |||
Рекомендации для гостевых систем в Ravada: | Рекомендации для гостевых систем в Ravada: | ||
*как минимум 2 диска: один для ОС, другой для раздела SWAP. Убедитесь, что оба диска выбраны при создании новой машины; | *как минимум 2 диска: один для ОС, другой для раздела SWAP. Убедитесь, что оба диска выбраны при создании новой машины; | ||
*в гостевой ОС, необходимо, как минимум, установить пакеты {{pkg|qemu-guest-agent}} и {{pkg|acpi}} | *в гостевой ОС, необходимо, как минимум, установить пакеты {{pkg|qemu-guest-agent}} и {{pkg|acpi}}; | ||
*для возможности работы Copy&Paste между основной и гостевой ОС,в гостевой ОС следует установить пакет {{pkg|spice-vdagent}}; | |||
*автоматические обновления ОС должны быть отключены. | |||
*для возможности работы Copy&Paste между основной и гостевой ОС,в гостевой ОС следует установить пакет {{pkg|spice-vdagent}} | |||
* | |||
{{Note|Сообщения от бэкенда Ravada можно просмотреть в «Admin Tools»→«Messages».}} | {{Note|Сообщения от бэкенда Ravada можно просмотреть в «Admin Tools»→«Messages».}} | ||
Создание ВМ: | Создание ВМ с ОС Альт: | ||
# Выбрать в меню пункт «Admin Tools»→«Machines». В открывшемся окне, нажать кнопку «New Machine»: | # Выбрать в меню пункт «Admin Tools»→«Machines». В открывшемся окне, нажать кнопку «New Machine»: | ||
#:[[Файл:Ravada_machines.png|Ravada. Вкладка «machines»]] | #:[[Файл:Ravada_machines.png|Ravada. Вкладка «machines»]] | ||
Строка 175: | Строка 180: | ||
#:[[Файл:Ravada_machine_view.png|Ravada. Данные для подключения по протоколу SPICE]] | #:[[Файл:Ravada_machine_view.png|Ravada. Данные для подключения по протоколу SPICE]] | ||
# Установить ОС. При установке, следует для системного раздела выбрать /dev/vda, а для раздела SWAP — /dev/vdb. | # Установить ОС. При установке, следует для системного раздела выбрать /dev/vda, а для раздела SWAP — /dev/vdb. | ||
# После установки ОС выполнить настройку ОС: | |||
#*обновить ОС; | |||
#*установить пакеты {{pkg|qemu-guest-agent}}, {{pkg|acpi}} и {{pkg|spice-vdagent}}: | |||
#*:<syntaxhighlight lang="bash"> | |||
# apt-get install qemu-guest-agent acpi spice-vdagent | |||
</syntaxhighlight> | |||
#*при необходимости изменить настройки системы или/и установить дополнительные приложения. | |||
==== Гостевая ОС Windows ==== | |||
Рекомендации по установке гостевой ОС Windows 10: | |||
*минимум 3ГБ ОЗУ, 30ГБ дискового пространства; | |||
*при создании ВМ следует добавить раздел подкачки (SWAP); | |||
*:[[Файл:Ravada_win10.png|Ravada. Создание ВМ с ОС Windows 10]] | |||
*после завершения установки ОС: | |||
** установить агент qemu-guest; | |||
** установить гостевые инструменты Windows — spice-guest-tools (https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe); | |||
** убедиться, что служба acpi активирована; | |||
** отключить автоматические обновления; | |||
** переместить файл подкачки с диска С: на D: или E:. | |||
=== Создание базы (шаблона ВМ) === | === Создание базы (шаблона ВМ) === | ||
Строка 221: | Строка 246: | ||
{{Attention|Отключать пароль SPICE рекомендуется только в контролируемых IP-средах с уникальными рабочими местами.}} | {{Attention|Отключать пароль SPICE рекомендуется только в контролируемых IP-средах с уникальными рабочими местами.}} | ||
=== Автоматический запуск remote-viewer === | |||
Чтобы при выборе ВМ в веб-интерфейсе Ravada автоматически запускался remote-viewer необходимо: | |||
# Назначить приложением по умолчанию для файлов .vv — «Удалённый рабочий стол» (remote-viewer). | |||
# Изменить настройки браузера, для автоматического открытия файлов .vv: | |||
#* для chromium: на нижней панели, для загруженного элемента выбрать «Всегда открывать файлы данного типа»: | |||
#*:[[Файл:Ravada_chromium.png|Chromium Всегда открывать файлы данного типа]] | |||
#* для firefox: в контекстном меню загруженного элемента на панели «Загрузки» установить отметку «Всегда открывать подобные файлы»: | |||
#*:[[Файл:Ravada_firefox.png|Firefox Всегда открывать подобные файлы]] | |||
{{Note|Если для SPICE-соединения устанавливается пароль, «Удалённый рабочий стол» будет запущен после нажатия на кнопку «View». Пароль для подключения к ВМ, будет скопирован в буфер обмена.}} | |||
=== Режим киоска === | === Режим киоска === | ||
Строка 242: | Строка 278: | ||
[[Файл:Ravada_anonymous.png|Анонимный раздел Ravada]] | [[Файл:Ravada_anonymous.png|Анонимный раздел Ravada]] | ||
=== Установка LDAP сервера === | |||
Установить пакет {{pkg|389-ds-base}}: | |||
<syntaxhighlight lang="bash"># apt-get install 389-ds-base</syntaxhighlight> | |||
Создать файл с конфигурацией LDAP, например: | |||
<syntaxhighlight lang="ini"> | |||
[general] | |||
config_version = 2 | |||
start = True | |||
strict_host_checking = False | |||
[slapd] | |||
root_password = 12345678 | |||
[backend-userroot] | |||
sample_entries = yes | |||
suffix = dc=test,dc=alt | |||
</syntaxhighlight> | |||
Создать экземпляр LDAP: | |||
<syntaxhighlight lang="bash"># dscreate from-file ds389.conf | |||
Starting installation... | |||
Completed installation for localhost</syntaxhighlight> | |||
где ds389.conf — файл с конфигурацией LDAP. | |||
Запустить и добавить в автозагрузку службу: | |||
<syntaxhighlight lang="bash"># systemctl enable --now dirsrv@localhost</syntaxhighlight> | |||
Добавить в файл {{path|/etc/ravada.conf}} раздел LDAP: | |||
<syntaxhighlight lang="ini"> | |||
ldap: | |||
admin_group: test.admin.group | |||
admin_user: | |||
dn: cn=Directory Manager | |||
password: 12345678 | |||
base: 'dc=test,dc=alt' | |||
</syntaxhighlight> | |||
Перезапустить службы rvd_back и vd_front: | |||
<syntaxhighlight lang="bash"> | |||
# systemctl restart rvd_back | |||
# systemctl restart rvd_front | |||
</syntaxhighlight> | |||
Пользователя LDAP можно создать с помощью команды: | |||
<syntaxhighlight lang="bash"> | |||
# rvd_back --add-user-ldap test.admin | |||
</syntaxhighlight> | |||
=== Непостоянные (volatile) клоны === | |||
Непостоянный клон будет удалён при завершении работы. | |||
Включить/отключить данную опцию можно в настройках ВМ, на вкладке «Options»: | |||
[[Файл:Ravada_volatile.png|Ravada. Volatile Clones]] | |||
Клоны, созданные после включения опции, будут непостоянными (клоны созданные до этого, не затрагиваются): | |||
[[Файл:Ravada_volatile2.png|Ravada. Постоянные и непостоянные клоны]] | |||
=== Проброс портов === | === Проброс портов === |
Текущая версия от 12:27, 8 июня 2022
Ravada — проект со своей системой управления виртуальными машинами (ВМ), с минимумом функций, доступом пользователей к ВМ через веб-интерфейс.
Особенности:
- KVM-бэкенд для Windows и Linux ВМ;
- режим киоска;
- удаленный доступ по протоколу Spice;
- быстрое клонирование ВМ для каждого пользователя;
- проброс USB-устройств;
- настраиваемый интерфейс конечных пользователей;
- администрирование из веб-браузера.
Установка
Сервер
Установить пакет ravada, который установит всё необходимое:
# apt-get install ravada
Установить сервер MySQL/MariaDB:
# apt-get install mariadb-server
Включить по умолчанию и запустить службу mysqld:
# systemctl enable --now mysqld
Задать пароль MySQL пользователя root и настройки безопасности:
# mysql_secure_installation
Подключиться к серверу MySQL:
$ mysql -u root -p
Enter password:
и создать пользователя ravada и базу данных ravada (пароль необходимо запомнить):
MariaDB [(none)]> create database ravada character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on ravada.* to 'rvd_user'@'localhost' identified by 'Pword12345*';
MariaDB [(none)]> quit;
Внести изменения в конфигурационный файл /etc/ravada.conf (следует указать имя пользователя и пароль, указанные на предыдущем шаге):
---
db:
hostname: localhost
user: rvd_user
password: Pword12345*
Включить по умолчанию и запустить службу libvirtd:
# systemctl enable --now libvirtd
Создать веб-пользователя Ravada (на запрос пароля, необходимо указать пароль создаваемого пользователя, на следующий запрос — подтвердить, что пользователь является администратором):
# rvd_back --add-user admin
Installing .....................------------------------WARNING: No storage pools creating default
INFO: Activating KVM network default
++++++++++++++++++++++++++++++++++++++
admin password: admin
is admin ? : [y/n] y
У Ravada есть две службы, которые должны быть запущены на сервере:
- rvd_back — должен работать от имени пользователя root и управлять виртуальными машинами.
- rvd_front — веб-интерфейс, который отправляет запросы на серверную часть.
Включить по умолчанию и запустить эти службы:
# systemctl enable --now rvd_back
# systemctl enable --now rvd_front
# systemctl status rvd_back
# systemctl status rvd_front
Клиент
На клиенте должна быть установлена программа для удалённого доступа по протоколу SPICE, например, remote-viewer из пакета virt-viewer или Remmina.
Веб-интерфейс
Веб-интерфейс Ravada доступен по адресу https://<ip-адрес>:8081:
Администрирование
Добавление собственного ISO-образа
Для создания ВМ необходимы ISO-образы. Их можно загрузить во время создания ВМ или предварительно подготовить собственный ISO-образ.
Скопируйте файл .iso в хранилище KVM, по умолчанию это /var/lib/libvirt/images.
Обновить пул хранения, т.к. файл был загружен вручную:
# virsh pool-list
Name State Autostart
-------------------------------------------
default active yes
# virsh pool-refresh default
Пул default обновлён
Теперь Ravada может использовать этот ISO-образ при создании ВМ:
В каталоге /var/lib/libvirt/images можно также найти ISO-образы, загруженные с Ravada.
Добавление шаблона KVM
Для создания собственного шаблона KVM, необходимо:
- Разместить файл .iso в хранилище KVM, по умолчанию это /var/lib/libvirt/images.
- Убедиться, что файл .iso доступен для чтения всем, например:
# chmod 755 /var/lib/libvirt/images/slinux-10.1-x86_64.iso
- Получить md5 для ISO-файла:
# md5sum /var/lib/libvirt/images/slinux-10.1-x86_64.iso 05f2bcea4b82176f9d655aae6a1ae1b6 /var/lib/libvirt/images/slinux-10.1-x86_64.iso
- Добавить запись в таблицу БД:
$ mysql -u rvd_user -p
MariaDB [(none)]> use ravada; MariaDB [ravada]> INSERT INTO iso_images (name, description, arch, xml, xml_volume, md5, sha256, device) VALUES ('Slinux','Alt Slinux', 'x86_64', 'slinux.xml' ,'slinux-volume.xml','05f2bcea4b82176f9d655aae6a1ae1b6','mysha256sum','/var/lib/libvirt/images/slinux-10.1-x86_64.iso'); MariaDB [ravada]> quit;
- Создать XML файл шаблона (в каталоге /var/lib/ravada/xml есть примеры файлов шаблонов). Новый файл шаблона можно также создать, создав новую машину с помощью другого инструмента (например, virt-manager), выгрузив xml с помощью команды:
# virsh list --all ID Имя Состояние --------------------------- - SLinux выключен - SLinux2 выключен # virsh dumpxml SLinux2 > slinux.xml
- Создать новый файл volume.xml на основе любого из /var/lib/ravada/xml, например:
# cp /var/lib/ravada/xml/default-volume.xml /var/lib/ravada/xml/slinux-volume.xml
Созданный шаблон можно использовать для создания ВМ.
Создание ВМ
Гостевая ОС Linux
Рекомендации для гостевых систем в Ravada:
- как минимум 2 диска: один для ОС, другой для раздела SWAP. Убедитесь, что оба диска выбраны при создании новой машины;
- в гостевой ОС, необходимо, как минимум, установить пакеты qemu-guest-agent и acpi;
- для возможности работы Copy&Paste между основной и гостевой ОС,в гостевой ОС следует установить пакет spice-vdagent;
- автоматические обновления ОС должны быть отключены.
Создание ВМ с ОС Альт:
- Выбрать в меню пункт «Admin Tools»→«Machines». В открывшемся окне, нажать кнопку «New Machine»:
- Выбрать шаблон, ISO-образ, указать имя ВМ:
- После нажатия кнопки «Create», ВМ появится в списке доступных машин:
- Запустить ВМ и нажать кнопку «view», чтобы получить доступ к консоли ВМ:
- Установить ОС. При установке, следует для системного раздела выбрать /dev/vda, а для раздела SWAP — /dev/vdb.
- После установки ОС выполнить настройку ОС:
- обновить ОС;
- установить пакеты qemu-guest-agent, acpi и spice-vdagent:
# apt-get install qemu-guest-agent acpi spice-vdagent
- при необходимости изменить настройки системы или/и установить дополнительные приложения.
Гостевая ОС Windows
Рекомендации по установке гостевой ОС Windows 10:
- минимум 3ГБ ОЗУ, 30ГБ дискового пространства;
- при создании ВМ следует добавить раздел подкачки (SWAP);
- после завершения установки ОС:
- установить агент qemu-guest;
- установить гостевые инструменты Windows — spice-guest-tools (https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe);
- убедиться, что служба acpi активирована;
- отключить автоматические обновления;
- переместить файл подкачки с диска С: на D: или E:.
Создание базы (шаблона ВМ)
После настройки ВМ, можно создать базу:
- Открыть окно настроек ВМ, выбрав нужную ВМ в списке машин.
- На вкладке «Description» можно задать описание ВМ.
- На вкладке «Screenshot» нажать кнопку «Take screenshot» (сделанный снимок экрана будет отображаться в списке доступных ВМ). Для возможности создания снимка экрана, ВМ должна быть запущена.
- На вкладке «Base» нажать кнопку «Prepare Base»:
После того как база будет создана, ВМ появится в списке доступных машин. ВМ будет опубликована, если установить отметку «Public»:
Если необходимо внести изменения в Базу, следует выполнить следующие шаги:
- Удалить все клоны этой ВМ.
- Снять отметку в поле «Base» (или нажать кнопку «Remove Base» на вкладке «Base» окна свойств ВМ).
- Внести изменения в ВМ.
- Создать базу.
Управление пользователями
Управления пользователями осуществляется на вкладке «Admin Tools»→«Users»:
Выбрав пользователя, можно изменить его пароль, назначить администратором, установить права доступа:
Настройка
Отключение пароля SPICE
Когда пользователи запускают ВМ, для SPICE-соединения определяется пароль. Это поведение можно изменить.
Для отключения паролей SPICE для всех ВМ, во всех сетях, необходимо снять отметку с пункта «Display Password» в основных настройках («Admin Tools»→«Settings»):
Для отключения паролей SPICE только для клиентов из определённой сети, необходимо создать новую сеть («Admin Tools»→«Networks»), или изменить настройки существующей, сняв отметку с пункта «password»:
Эти настройки применяются при запуске новой ВМ (работающие ВМ сохранят прежние настройки).
Автоматический запуск remote-viewer
Чтобы при выборе ВМ в веб-интерфейсе Ravada автоматически запускался remote-viewer необходимо:
- Назначить приложением по умолчанию для файлов .vv — «Удалённый рабочий стол» (remote-viewer).
- Изменить настройки браузера, для автоматического открытия файлов .vv:
Режим киоска
Режим киоска (анонимный режим) позволяет любому пользователю, не вошедшему в систему, создать ВМ. Как только эта машина выключается, она автоматически уничтожается.
Настройка режима киоск:
- Определить новую сеть, в которой разрешён этот режим («Admin Tools»→«Networks»):
- задать имя сети;
- можно отключить пароль SPICE, сняв отметку с пункта «password»;
- отметить пункт «All machines», чтобы пользователи из этой сети могли получить доступ к виртуальным машинам;
- нажать кнопку «Save»:
- Разрешить анонимный режим, для этого перейти на вкладку «machines». Появится список всех баз. Чтобы иметь возможность использовать базу анонимно, она должна быть определена как «Public», а также должна быть установлена отметка «Anonymous». В данном примере настроен анонимный доступ к базе EDU:
- Настроить автоматическое удаление анонимных машин. Перейти в «Admin Tools»→«Machines», выбрать базу. На вкладке «Options» задать тайм-аут в поле «Run Timeout» и/или установить отметку в поле «Shutdown disconnected».
Анонимный раздел Ravada доступен по адресу https://<ip-адрес>:8081/anonymous (https://<адрес>/anonymous):
Установка LDAP сервера
Установить пакет 389-ds-base:
# apt-get install 389-ds-base
Создать файл с конфигурацией LDAP, например:
[general]
config_version = 2
start = True
strict_host_checking = False
[slapd]
root_password = 12345678
[backend-userroot]
sample_entries = yes
suffix = dc=test,dc=alt
Создать экземпляр LDAP:
# dscreate from-file ds389.conf
Starting installation...
Completed installation for localhost
где ds389.conf — файл с конфигурацией LDAP.
Запустить и добавить в автозагрузку службу:
# systemctl enable --now dirsrv@localhost
Добавить в файл /etc/ravada.conf раздел LDAP:
ldap:
admin_group: test.admin.group
admin_user:
dn: cn=Directory Manager
password: 12345678
base: 'dc=test,dc=alt'
Перезапустить службы rvd_back и vd_front:
# systemctl restart rvd_back
# systemctl restart rvd_front
Пользователя LDAP можно создать с помощью команды:
# rvd_back --add-user-ldap test.admin
Непостоянные (volatile) клоны
Непостоянный клон будет удалён при завершении работы.
Включить/отключить данную опцию можно в настройках ВМ, на вкладке «Options»:
Клоны, созданные после включения опции, будут непостоянными (клоны созданные до этого, не затрагиваются):
Проброс портов
Настройка осуществляется на вкладке «Ports» настроек ВМ:
Здесь следует указать номер порта, который будет открыт, и имя (необязательно).
При запуске ВМ, Ravada откроет свободный порт на хосте:
В этом примере для доступа к SSH-серверу внутри ВМ, следует подключиться к порту 60001 IP 192.168.0.105.
Выделение клона в отдельную структуру (Spinoff)
При выполнении операции Spinoff клон становится независимым от своего базового образа.
Для выделения ВМ, например EDU-admin, в отдельную структуру, необходимо в настройках ВМ, на вкладке «Base» нажать кнопку «Spinoff clone»:
После завершения операции, ВМ станет независимой от базового образа:
# qemu-img info /var/lib/libvirt/images/EDU-admin-vda.EDU-vda.qcow2
image: /var/lib/libvirt/images/EDU-admin-vda.EDU-vda.qcow2
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 48.6 MiB
cluster_size: 65536
backing file: /var/lib/libvirt/images/EDU-vda.ro.qcow2
backing file format: qcow2
После выделения, файл EDU-admin-vda.EDU-vda.qcow2 будет содержать в себе информацию как из EDU-admin-vda.EDU-vda.qcow2, так и из базового образа (EDU-vda.ro.qcow2):
# qemu-img info /var/lib/libvirt/images/EDU-admin-vda.EDU-vda.qcow2
image: /var/lib/libvirt/images/EDU-admin-vda.EDU-vda.qcow2
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 9.55 GiB
cluster_size: 65536