LTSP/NX
Цель
Возможность предоставления 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
- nxclient:
ставит курсор в поле "пароль", приходится возвращаться для ввода логина (несмотря на nopasswd) (якобы исправлено, если поле юзера пустое, не работает - подставляет имя юзера, от которого запущен nxclient)
- 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/