Про SunRay (Часть 2)

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-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.

  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.

Запись опубликована в рубрике Библиотека с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *