Про SunRay Server в среде GNU/Linux (Часть 2)

Про SunRay Kiosk Mode в среде RHEL/CentOS 4.3 на VMWare Server 1.0.x по-русски <br/><br/><img src="//st.overclockers.ru/legacy/cp/spacer.gif" alt="" width="1" height="5" /> <br/>0. Disclaimer (отмазки) <br/><br/>Данная запись является второй частью трилогии о том, как имея x86 сервер со средой виртуализации VMWare от запустить терминал сервер SRSS от Sun Microsystems. <br/><br/>Пишется она неформальнным языком, р...
14 июля 2008, понедельник 18:13
IdeaFix для раздела Блоги
Про SunRay Kiosk Mode в среде RHEL/CentOS 4.3 на VMWare Server 1.0.x по-русски


0. Disclaimer (отмазки)

Данная запись является второй частью трилогии о том, как имея x86 сервер со средой виртуализации VMWare от запустить терминал сервер SRSS от Sun Microsystems.

Пишется она неформальнным языком, решения, описываемые в ней не претендуют на изящество, да и воплощались они далеко не сертифицированным специалистом.

Задача передо мной стояла следующая: где-то в здании находился одноюнитовый сервер SunFire V100 неизвестной конфигурации, где-то рядом с ним находился коммутатор минимум на 16 портов и никто точно не знал где. Ещё в здании находилось 15 штук тонких клиентов SunRay 1 и столько же SunRay 100. Где стояли они все знали.

Клиенты на протяжении десяти лет показывали окно браузера с открытой страницей поиска по каталогу и перезагружались в случае закрытия окна браузера. Если не ошибаюсь, там были только X'ы, специально обученная Mozilla 1.0 и twm в качестве оконного менеджера. В качестве терминального сервера использовался SRSS 2.0.

В один прекрасный день экраны тонких клиентов потухли, и тут началось. Дело в том, что мы во-первых не могли найти сервер (по ssh глухо, а где он стоит не знаем), а во-вторых не знали чего с ним делать когда найдем. Ведь терминальных кабелей на него уже давно нет, да и по Solaris специалистов не было.

Было принято решение идти другим путем, а именно, водрузить на виртуальную машину GNU/Linux и использовать SRSS 4 под эту ОС.

К слову, сервер мы таки нашли, терминальные хвосты подошли от CISCO, а причиной отказа стал клин IDE жесткого диска на 40 гигабайт. Сервер был тщательно замаскирован в стойке со свитчами.



1. Настройка Kiosk Mode

В предыдущей записи трилогии кратко описывалось как установить и настроить SRSS для стандартного графического логина (посредством GDM), стандартного пользователя в стандартную графическую среду.

Но оставить неискушенного (а особенно искушенного) пользователя наедине с незнакомой и к тому же достаточно старой операционной системой было нельзя. И пользоваться не смогут, и сломают нафиг. Сажать дежурного человека, который бы следил и консультировал возможности не было, во-первых потому что таких людей потребовалось бы несколько и во вторых, само наличие такого человека противоречит идее киоск-терминала.

После анализа ситуации было выявлено два решения проблемы.



2. Решение №1 - Kiosk mode средствами операционной среды

Для минимизации потребляемых ресурсов (SRSS уже использует GDM) в качестве операционной среды было решено использовать Gnome.

Поиски в сети Интернет увенчались успехом, на сайте RedHat был найден документ под названием Red Hat Desktop Deployment Guide. Если присмотреться к главам типа этой, то становится ясно, что средствами системы, потратив пару рабочих смен можно оторвать от гнома всё лишнее и оставить ровно столько, сколько нужно.

Подробно описывать отрывание ненужностей я не стану, т.к. все уже описано в руководстве.

Процесс автологина средствами GDM тоже достаточно прост, о нём можно прочитать здесь в пункте 4.7.6.



3. Решение №2 - Kiosk mode средствами SRSS

До падения системы, которую я был вынужден поднимать, все прелести kiosk mode были реализованы стандартными средствами SRSS 2.0, используя куда более новую, четвертую версию, я не ожидал ни каких проблем, к тому же, поддержка SUN была дружелюбна, консультировала, помогала, тыкала носом в нужные странички документов...

Но как же я ошибался по поводу простоты и удобства. К слову, на вторые стуки копания Kiosk mode средствами SRSS я чувствовал себя как эта собака с сайта SUN:



Вроде и поймал что-то, да только вот зачем? И к тому же, падать теперь высоко

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

А вопросы собственно говоря были следующими:

1. Почему не работает гномий и X'овый переключатель раскладки клавиатуры?

2. Где примеры прототипов приложений?

3. Так хорошо описаны фичерз энд бенефитс критических сессий, а где примеры использования?

Как оказалось позже. я ткнул пальцем в небо и попал. То есть, в GNU/Linux версии SRSS были сломаны xkb extensions, отсутствовали шаблоны сессий и примеры прототипов приложений. При всём этом на сколько я помню, функционал заявлялся для Solaris и GNU/Linux версии одинаковый.

Если оставить эмоции в стороне, то в сухом остатке получится такое вот решение.

Для того, чтобы получить работающий Kiosk mode с минимальным функционалом надо сделать буквально следующее - скачать здесь файл сессии, установить (описание) и сконфигурировать либо консольно, либо через WEB интерфейс, что не сложно. Но это только в теории.

При таком подходе, мы будем лицезреть максимум ошибку логина (сообщение о неверной конфигурации Kiosk mode) или же сообщение GDM о том что наша сессия длилась менее десяти секунд, уверения в том что это жжж не с проста и предложение почитать лог "пикирующих санок".

Для того чтобы все действительно работало, нужно сделать следующее:

1. Сделать cd /etc/opt/SUNWkio

2. Сделать ls, убедиться что папки sessions и prototypes на месте

3. В папке prototypes должна быть пустая директория generic-session

4. В папке srssions должны как минимум присутствовать файл generic.conf и папка generic с файлом generic-session внутри. Всё это должно появится после того, как этот файл будет установлен согласно инструкциям.

5. Содержание файла /etc/opt/SUNWkio/sessions/generic.conf у меня таково:
KIOSK_SESSION_EXEC=$KIOSK_SESSION_DIR/generic-session

KIOSK_SESSION_LABEL="Catalogue"
KIOSK_SESSION_DESCRIPTION="Catalogue"
KIOSK_SESSION_ARGS="env LC_ALL="ru_RU.iso88595" LANG="ru_RU.iso88595" dillo-i18n"
KIOSK_SESSION_PROTOTYPE=generic-session

Думаю, что и зачем понятно. если не понятно, то описание формата этого файла можно почитать в официальной документации. если вкратце, то выполняется команда env LC_ALL="ru_RU.iso88595" LANG="ru_RU.iso88595" dillo-i18n, а при закрытии окна браузера, сессия перезапускается заново. Этот параметр запросто может быть заменён на /usr/bin/firefox или любую другую программу, например, desktop manager.

6. Содержание файла /etc/opt/SUNWkio/sessions/generic/generic-session таково:
#!/bin/sh

#/usr/X11R6/bin/mwm&
/usr/bin/metacity&
/usr/bin/fvwm-root -r /opt/wall.png&
/usr/bin/xrus jcuken-cyr.xmm&
$*

Амперсанд в конце каждой команды обязателен - формат однако (о нём тоже можно почитать в официальной документации). По сути, это специальный logon-скрипт, запускающий оконный менеджер (mwm закоментирован), устанавливающий заставку и запускающий переключатель клавиатуры xrus. Последняя строчка тоже обязательна - формат!

7. Конечное конфигурирование Kiosk mode через WEB-интерфейс не представляет никакой сложности, по сути, нужно только активировать его, выбрать сессию из списка (благо в списке она будет одна) и всё.

В моём случае получилось следующее - автологин, запущенный X сервер, установленные обои, запущенный оконный менеджер и браузер, открывающий конкретную страницу в сети Интернет.




Все использованные в записи руководства можно найти здесь (Sun Ray User Group) и здесь (Red Hat Enterprise Linux Documentation).



4. Планы на будущее

В записи трилогии будет рассказано о том, как окончательно настроить браузер, оконный менеджер и другие сервисы для оптимальной работы в режиме киоска и максимальной защиты от дурака. Планируется рассказ от настройке под Kiosk браузеров firefox, dillo, opera, оконных менеджеров mwm, metacity, и прокси сервера.



5. Благодарности

В заключении хочу поблагодарить свое начальство за то, что приставили к голове пистолет и сказали "Делай!", сотрудников службы технической поддержки SUN за то, что терпели меня в течении полугода и терпят до сих пор, и сотрудников компании VDEL за то, что безвозмездно делились опытом использования SRSS в среде GNU/Linux.


Обсудить в конференции