Терминальный сервер NoMachine в KVM

Материал из ALT Linux Wiki

Установка и настройка терминального сервера на базе Altlinux с использованием виртуализации KVM и продуктов NoMachine

Цель: позволить пользователям удалённо работать в Linux Desktop с возможностью сохранения сессий, просмотра видео со звуком, передачей файлов, подключением из любого места и с любого устройства (полноценно работает даже через браузер(!) и т.д.

Средства: используем Altlinux в качестве host-системы, KVM-виртуализацию и Altlinux в качестве десктопа, а так же продукты NoMachine в качестве терминального сервера.

Altlinux

Берем свежую сборку сервера на ftp и устанавливаем как обычно. При инсталляции уже есть готовый профиль HN для KVM, а так же "Средства виртуализации KVM" в наборах пакетов. Однако, все равно нужно вручную будет поставить virt-install/virt-manager, kvm и обязательно модуль kvm для ядра, который почему-то тоже не поставился и это можно легко не заметить, при этом у вас будет 100% загрузка CPU.

KVM

Установка

В сети очень много различной документации по KVM, почти вся она неактуальная, ключи и опции постоянно меняются. После нескольких попыток использовать virt-install в консоли (неудачных, в начале инсталляции всё зависало почему-то) выяснилось, что простой и рабочий способ (спасибо cas@) - запускать virt-manager у себя на десктопе с подключением к удаленному серверу. Работает быстро и удобно. Десктоп, рассматриваемый в данной инструкции, сделан на базе сборки с Cinnamon DE.

Настройка

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

В секции Видео VGA установите модель VGA, с QXL были проблемы уже после инсталляции (точно не помню, эксприментально подобрано).

Если вам необходимо пробрасывать порт внутрь гостя, то уже не нужны никакие мосты (bridge) и прочие ухищрения вроде опции -redir у qemu. Сейчас уже можно воспользоваться обычными правилами iptables на хосте и прокинуть нужные порты.

NoMachine

Установка

NoMachine без ошибок ставится из RPM, автоматически настраивает себя (наш дистрибутив они определяют как Fedora) и добавляют в автозапуск.

Настройка

В общем случае никакой особой настройки не требуется. Можно ознакомиться




с документацией. В /usr/NX/etc/node.cfg из полезных опций можно включить Virtual OpenGL (секция 18.1). Викт

Донастройка Desktop

При использовании настроек по умолчанию в используемом десктопе система запускается в runlevel 5 (graphical) и запускается lightdm. Из-за этого мы получаем несколько недостатков:

  • пользователю дважды приходится вводить данные для входа; сначала в NoMachine, потом в lightdm
  • не работает установка клиентского разрешения на сервере, доступны только стандартные варианты разрешений
  • почему-то не работает передача звука
  • любой пользователь можно выключить/перезагрузить сервер

Поэтому просто меняем runlevel:

# ln -sf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target

А так же меняем в /usr/NX/etc/node.cfg команду старта сессии (там будет gnome-session):

DefaultDesktopCommand "/usr/bin/startcinnamon2d"

В самом Cinnamon рекомендуется так же выключить все эффекты и прозрачности (в разделах Эффекты и Общий).

FreeNX

Продукты NoMachine платные (однако, можно каждые 30 дней продлевать). У них есть открытый продукт с урезанными возможностями FreeNX.