LTSP/NX

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


Цель

Возможность предоставления NX-сессии с тонкого клиента может быть сочетанием плюсов обеих технологий: простое администрирование бездисковых терминалов и отделяемые сессии (они же доступны и удалённо через узкие каналы связи толстым клиентам, но это как раз ортогонально к сетевой загрузке и уже некоторое время было реализовано).

Средство

Скрипты Dimitar Paskov после адаптации Mike Grozak ещё чуточку доведены и упакованы в ltsp-client-nxsession. Этот пакет можно установить в чруте (по умолчанию /var/lib/ltsp/i586) и добавить там же в /etc/lts.conf строчку вроде

SCREEN_08=nx

В 5.1/branch существует ltsp-nxclient упаковки lav@ с подобными идеями, но несколько иной реализацией. Надо бы добраться помержить всё лучшее из них обоих.


LTSP/LTS.CONF - реализация с кучей возможностей. Инструкция в файле start_nx. Запускать SCREEN_08=nx параметры

Результат

school-5.0.0-20100315-school-terminal-i586-ru-install-dvd5.iso (если ссылка устареет, гляньте в каталог).

В Альт Линукс 5.0.1 Школьный Терминал не вошло -- обстоятельства сложились так, что образ был зафиксирован 12.03.2010, а доработка завершилась 15.03.2010. Раскачиваться раньше надо, эх :)

В школьный 5.0.2 вошло, но опять же в экспериментальном виде: приходится вручную вписывать в lts.conf и после перезагрузки терминала соглашаться в ответ на предупреждение ssh насчёт опять ставшего неизвестным host key. Но зато оборванная было сессия возвращается. Ниже решение

Недочёты

По состоянию на 14.03.2010 наблюдаются такие:

  • не работает звук (nxesd явно не дружит с pulseaudio, также см. микшер)
когда починим, будет иметь смысл включать по умолчанию, надеюсь
звук работает через Pulseaudio, host брать из NXUSERIP

Стартовать звук и носители для NX например так:

if [ -z $NXUSERIP ] ; then
   HOSTNAME=`echo ${DISPLAY} | cut -f1 -d: | awk -F . {' print $1 '}`
   export PULSE_SERVER=$HOSTNAME
else
   export PULSE_SERVER=$NXUSERIP
   [ -r /usr/bin/fusermount ] && /путь/lbus-start.sh
fi


  • не пробрасываются локальные носители
требуется доработать хак lbussd для совместимости и с обычным ALTSP
а надо ли средствами NX пробрасывать носители? Если машина в локальной сети, то пойдет и lbussd, если удаленная, то завернутая например в openvpn.
lbus_event_handler.sh
-WS=${DISPLAY/:*/}
+if [ -z "${NXUSERIP}" ] ; then
+   WS=${DISPLAY/:*/}
+else
+   WS=${NXUSERIP}
+fi
LTSP/LTS.CONF - берет пользователя из $HOSTNAME или можно задавать в lts.conf
    • оставляет включабельной галочку "Login as a guest user", при попытке задействования которой ехидно сообщает: "Your guest account has expired. Please login again as a guest to get a new account."
    • поскольку ~/.ssh/known_hosts между перезагрузками сохранять негде, первое подключение вызовет необходимость подтвердить добавление host key
требуется формировать где-то после старта sshd на терминальном сервере файл в терминальном чруте
LTSP/LTS.CONF - known_hosts сохранить в chroot/root/.ssh/

Ссылки