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 — Вроде и поймал что-то в прыжке, да только вот зачем? И к тому же, падать теперь высоко…
Понимание происходящего абзаца стало приходить ко мне только тогда, когда в ответ на мои, казалось бы простые, вопросы сановский сапорт стал молчалив, немногословен, чуть-чуть хамлив и честолюбив, например, инженер до того бывший самой галантностью, стал акцентировать внимание на том, что помогает он мне на общественных началах, лицензия у нас не на ту версию сервера, и вообще, купите, а там посмотрим.
А вопросы собственно говоря были следующими:
- Почему не работает гномий и X’овый переключатель раскладки клавиатуры?
- Где примеры прототипов приложений?
- Так хорошо описаны фичерз энд бенефитс критических сессий, а где примеры использования?
Как оказалось позже. я ткнул пальцем в небо и попал. То есть, в GNU/Linux версии SRSS были сломаны xkb extensions, отсутствовали шаблоны сессий и примеры прототипов приложений. При всём этом на сколько я помню, функционал заявлялся для Solaris и GNU/Linux версии одинаковый.
Если оставить эмоции в стороне, то в сухом остатке получится такое вот решение.
Для того, чтобы получить работающий Kiosk mode с минимальным функционалом надо сделать буквально следующее — скачать здесь файл сессии, установить и сконфигурировать либо консольно, либо через WEB интерфейс, что не сложно. Но это только в теории.
При таком подходе, мы будем лицезреть максимум ошибку логина (сообщение о неверной конфигурации Kiosk mode) или же сообщение GDM о том что наша сессия длилась менее десяти секунд, уверения в том что это жжж не с проста и предложение почитать лог «пикирующих санок».
Для того чтобы все действительно работало, нужно сделать следующее:
- Сделать cd /etc/opt/SUNWkio
- Сделать ls, убедиться что папки sessions и prototypes на месте
- В папке prototypes должна быть пустая директория generic-session
- В папке srssions должны как минимум присутствовать файл generic.conf и папка generic с файлом generic-session внутри. Всё это должно появится после того, как этот файл будет установлен согласно инструкциям.
- Содержание файла /etc/opt/SUNWkio/sessions/generic.conf у меня таково:
KIOSK_SESSION_EXEC=$KIOSK_SESSION_DIR/generic-sessionKIOSK_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.
- Содержание файла /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. Последняя строчка тоже обязательна — формат!
- Конечное конфигурирование 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.