Вопрос или проблема
Я использую гипервизор Fedora Server 28 (QEMU/KVM с инструментами libvirt) с гостевыми ВМ на базе Windows и Fedora. Обычно гипервизор работает в безголовом режиме с минимальным набором установленных пакетов, а доступ к гостевым ВМ осуществляется удаленно.
Иногда требуется локальный доступ к гостевым ВМ с гипервизора через VNC или SPICE (предпочтительно SPICE), но я не хочу устанавливать оконный менеджер (gnome/kde/xfce) на гипервизор. В идеале, не хотелось бы запускать X, но я полагаю, что он нужен как зависимость для инструментов виртуализации.
Хотелось бы найти независимый клиент SPICE (или клиент VNC), графический интерфейс которого был бы привязан к tty гипервизора (или что-то подобное, что работает как можно легче). Еще лучше было бы использовать только инструменты libvirt, но я полагаю, что графические части этих инструментов требуют оконный менеджер (было бы здорово, если бы я ошибался в этом вопросе).
Хотя я видел вопросы о запуске VNC без X, я бы предпочел решение, которое не основывается на проектах, которые не поддерживаются активно.
Заранее спасибо.
У вас есть следующие варианты:
-
установить
virt-manager
на вашей рабочей станции и использовать SSH-туннель для подключения к удаленному гипервизору; -
установить
virt-manager
на сервере, подключиться к нему с рабочей станции черезssh -X
и запуститьvirt-manager
(замечание: это будет работать только в локальной сети или по ссылкам с очень низкой задержкой); -
установить
x2go
иvirt-manager
на сервере, получая доступ через клиент x2go, установленный на вашей локальной рабочей станции.
EDIT: поскольку проект cockpit
теперь стал зрелым, вы можете установить cockpit
+ cockpit-machines
на своем сервере и войти через TCP-порт 9090, используя ваш локальный веб-браузер. При взаимодействии с сервером на базе RHEL 8+ (и его клонов) это, вероятно, предпочтительный подход.
virt-manager — это, пожалуй, лучший графический интерфейс, который вы найдете для libvirt. Это приложение GTK, установите его с помощью yum, чтобы увидеть его зависимости. Вам потребуется оконный менеджер или необходимо перенаправить X удаленно, например, через ssh.
Альтернативой было бы иметь отдельную рабочую станцию управления или ВМ с рабочим столом Fedora. Затем вы сможете подключить virt-manager через SSH или TLS-транспорт.
Ответ или решение
Для подключения к гостевым виртуальным машинам на "безголовом" гипервизоре, работающем на Fedora Server 28 с использованием QEMU/KVM и инструментов libvirt, действительно можно рассмотреть несколько легковесных вариантов.
-
Использование Cockpit: один из лучших вариантов – установить
cockpit
иcockpit-machines
на вашем сервере. Cockpit предоставляет интуитивно понятный веб-интерфейс, доступный через веб-браузер по TCP-порту 9090. Это современное решение, поддерживаемое сообществом, и оно особенно эффективно для серверов на базе RHEL 8 и его производных. Установка выполнится следующими командами:sudo dnf install cockpit cockpit-machines sudo systemctl enable --now cockpit.socket
После этого можно зайти в систему через браузер, введя адрес
http://<IP-сервера>:9090
. -
Remote Desktop Managers: если вы предпочитаете более традиционные подходы, можно установить
virt-manager
на рабочей станции и настроить SSH-туннель для подключения к удаленному гипервизору. Этот метод является достаточно простым и не требует установки дополнительных графических интерфейсов на сервере:ssh -L 16509:localhost:16509 user@<IP-сервера> virt-manager
Однако обратите внимание, что
virt-manager
требует наличие графического окружения, поэтому этот метод лучше подходить для использования на локальной машине с полноценной графикой. -
X2Go: еще одним вариантом является установка
x2go
на сервер и использование клиентаx2go
на вашем локальном оборудовании. Это решение позволяет удаленно подключаться к серверу и запускатьvirt-manager
без необходимости устанавливать полноценный графический интерфейс на сервере. Установитеx2go
на сервер:sudo dnf install x2goserver x2goserver-xsession
Далее, на рабочей станции сможете воспользоваться клиентом
x2go
для подключения. - SPICE/VNC клиенты: если вы желаете использовать только SPICE или VNC, можете попробовать установить тонкие клиенты, такие как
remote-viewer
. Этот клиент может работать в безголовой конфигурации, но тем не менее может потребовать наличия некоторых графических библиотек. Чтобы установить его:sudo dnf install virt-viewer
Используйте команду для подключения к VM:
remote-viewer spice://localhost:5900
Не забудьте настроить конфигурацию сетевого доступа для ваших виртуальных машин.
В результате, в зависимости от ваших предпочтений и условий работы, вы можете выбрать подходящее решение. Наиболее рекомендуемым и простым в установке будет использование Cockpit для управления виртуальными машинами через веб-интерфейс, так как он не требует установки полноценного графического окружения на гипервизоре.