SunRay и GNU/Linux: последние вершки

В прошлой записи я опрометчиво заявил, что первое поколение клиентов в SRS 5.3.x не поддерживается, но на практике оказалось, что поддержка есть, а вот firmware для этих клиентов нет. Правда, и сервиса обновления firmware в SunRay Software больше нет (доступен отдельный самостоятельный сервис).

 

SRS 5.3.1 отлично встал под Oracle Enterprise Linux версии 5.7 x86. Были проблемы со сборкой vmware tools, но решение (правка конфигурационного скрипта) было найдено быстро и останавливаться на этом особого смысла нет. Скажу только, что при установке ОС пункт «Software Development» лучше выбрать сразу весь. Всё равно потом vmware tools собирать, или программку какую-нибудь, да придется.

 

Список пакетов, которые необходимо дополнительно установить с диска, есть в файле «Sun Ray Software Installation and
Configuration Guide». Я дополнительно кое что устанавливал, но об этом позже.

 

В архиве с SRS/SRSS есть папка Supplemental, в ней лежит старый JRE, старый Tomcat и возможно какая-то rpm’ка. Сразу скажу, что JRE я всегда стараюсь использовать самый последний, в этот раз использовал JRE 1.6 update 35 (бинарная сборка с официального сайта) — работает. С Tomcat ситуация аналогичная. Прбовал использовать Tomcat 7 из yum репозитория (просто указывал путь во время работы скрипта utinstall) — работает, но лучше его не использовать, т.к. SRS делает с Tomcat’ом что-то противоестественное, и если настроить автозапуск службы через ntsysv, то админка упадет 🙂 Так что, я скачал с официального сайта Tomcat 5.5.36 и положил его в /opt.

 

Теперь о самом интересном — прикладном ПО и kiosk режиме. Пара слов о задаче, которая стоит перед нашими терминалами:

  • Работа 24 часа в сутки, 7 дней в неделю, 52 недели в год. Да мы не выключаем клиентов на лето и на новогодние праздники, и на ночь не выключаем.
  • Предоставление доступа в целом к единственному ресурсу opac.urfu.ru так, чтобы пользователь никуда с ресурса не ушел и операционную среду (и тем более сервер) не сломал.
  • Возможность переключать раскладки клавиатуры.
  • Возможность быстрой перезагрузки сессии. Закрыл окно каталога — сессия перезагрузилась в исходном состоянии.
  • Дополнительные возможности, такие как чтение PDF из электронного архива, доступ к сайту библиотеки и университета и пр. не основные функции.

Что касается непосредственно самого Kiosk mode, как основу я использую дополнение Generic-session, от wiki.sun-rays.org. Дополнение на столько банально, что обсуждать его особого смысла нет. Если вдруг его бы не было, 90% администраторов, поднимающих SRS/SRSS написали бы нужные файлы сами.

 

Что касается программной части, у нас используется не очень изящное, но привычное решение:

 

На сервере запушены Web (apache httpd) и Proxy (Squid) сервисы. Первый, отдаёт на 127.0.0.1:80 фреймовую страничку, в верхнем фрейме которой располагается навигационное меню с кнопками вперед, назад, домой, обновить и пр. а в нижней — непосредственно страница каталога.

 

Браузер настроен на работу через сокет 127.0.0.1:3128, который биндит Squid, у которого есть два файла, good и bad с regexp’ами адресов по которым можно ходить и по которым нельзя. Т.е. по сути основой является белый список, и для его уточнения есть черный список. Файл ошибки ERR_ACCESS_DENIED модифицирован примерно так:

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<META HTTP-EQUIV="Refresh" content="15; url=http://opac.urfu.ru">
<TITLE>Внимание!</TITLE>
</HEAD><BODY>
<h1>Внимание!</h1>
<p>Вы пытаетесь воспользоваться  ресурсом, недоступным с данного рабочего места.</p>
<br>
<p>Ресурсы, доступные с данного рабочего места:</p>
<ul>
<li><a href="http://opac.urfu.ru">Электронный каталог</a>
<li><a href="http://elar.urfu.ru">Электронный архив</a> (в т.ч. документы PDF)
<li><a href="http://lib2.urfu.ru">Зональная научная библиотека УРФУ</a>
</ul>
<br>
<p>Для возврата на главную страницу каталога пройдите по <a href=http://opac.urfu.ru>этой</a> ссылке</p>
<p>Для возврата на предыдущую страницу пройдите по <a href="javascript:history.go(-1);">этой</a> ссылке.
<br>
<p>В течении <b>15</b> секунд Вы будете автоматически возвращены на стартовую страницу каталога.</p>
<br>
<p align="center"><a href="http://10.96.0.87">URFU Library PROXY</a></p>

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

 

Весь «родной» софт можно установить как с диска, так и по сети. Оказывается, у oracle есть публичная yum песочница. После копирования файла настроек, в графическом интерфейсе yum следует выбрать свою версию OEL, шанс поймать проблемы с latest не велик, но есть.

 

Переключатель раскладки клавиатуры в kiosk режиме под GNU/Linux сломан давно и надежно. В Gnome можно использовать встроенный свитчер, но делать Kiosk его средствами — тяжело и неудобно. Поэтому, я использую слегка модифицированную утилиту xrus, Александра Лукьянова. Мои модификации заключаются в отрывании от утилиты всяческих меню и дополнительного функционала, форсировании переключения раскладок клавишами CTRL+SHIFT и возможно чего-то еще. Собрал я модифицированную версию очень давно (еще под CentOS 4.3 и SRSS 3.1 кажется), да так и таскаю бинарики и ресурсники из ОС в ОС, т.к. исходники потерял.

 

Свитчер радует стабильностью и умеренной ресурсоёмкостью (требует motif22), но именно в режиме киоска, он немного конфликтует с системой: после перезагрузки сервера (ОС целиком, или холодной перезагрузки SRS), и массового запуска клиентов, свитчер падает при первом нажатии на клавишу клавиатуры. Язык при этом остаётся английский. Лог сессии показывает, что свитчер не нашел файл раскладки клавиатуры. После первого перезапуска сессии эта проблема уходит. Складывается впечатление, что проблема вытекает из недостатка ресурсов сервера в момент первой загрузки, либо из-за особенностей доступа к файлу и пробрасывания путей. Но когда аптайм — месяцы, на эту проблему можно забить.

 

Оконным менеджером работает модифицированный IceWM. Тема Win95 лишилась кнопки «свернуть» в заголовке окна, выпадающих меню, панели задачи и пр. виджетов. Только оконный менеджер с двумя кнопками (развернуть/восстановить и закрыть), двумя хоткеями (ALT+TAB и ALT+F4) и icewmbg для установки фона. Часы реализованы на JavaScript и находятся внутри окна браузера.

 

Установочный файл IceWM доступен в epel repo (rpm установки репозитория EPEL 5 x86).

 

Браузером работает модифицированный Firefox 2.0.0. Он подвергся достаточно серьёзному вмешательству, в all.js, browser.js, main.js и prefs.js (а возможно и где-то еще) оторвано всё что только возможно оторвать. Браузер лежит в /opt/firefox и используется только для тонких клиентов, в системе браузер нормальный. Соблазн перейти на новую версию firefox есть, но лень модифицировать новую версию пока пересиливает.

 

До недавнего времени, браузер имел плагины для работы с flash и pdf от Adobe, но потребность в первом отпала, а второй в силу особенностей режима kiosk не запоминал факт принятия лицензионного соглашения и каждый раз при окрытии pdf предлагал его прочесть и принять/отказаться. К тому же, через диалог сохранения файла пользователи могли получить доступ на чтение к корню сервера, что тоже не очень хорошо. В итоге от flash мы просто отказались, а Reader уступил место казуальному xPdf, который успешно имплантировался в firefox посредством mozplugger.

 

Последний можно как собрать самостоятельно, так и установить из репозитория PU_IAS (раздел ClientAddons).

 

Вот кажется и всё. Я долго думал как бы поместить в текст статьи все конфиги, чтобы было понятно и не придумал ничего умнее, чем выложить архив модификаций корня (30 МБ). В архиве папки /etc, /opt, /usr и /var. В первой конфиги сервисов web, proxy и скрипты киоска, во второй в основном firefox, в третьей xrus и icewm, в четвертой корень web сервиса. Всё это вытащено из рабочей системы под OEL 5.7 и SRS 5.3.1 с активным Kiosk mode.

 

Немного картинок:

 


Интерфейс рабочего места «Каталог» после загрузки (АБИС Руслан, АРМ Читатель).

 

 


Результат запроса по ключу «Иванов».

 

 


Интерфейс электронного архива (DSpace).

 

 


xPdf в отдельной вкладке.

 

 


Форма заказа системы электронной доставки документов.

 

 


Сайт библиотеки.

 

 


Страница 404.

 

 


Админ интерфейс, информация о клиентах.

 

 


Админ интерфейс, информация о сервере.

 

 


Админ интерфейс, информация о клиентах с рабочего сервера.

 

 

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

14 комментариев: SunRay и GNU/Linux: последние вершки

  1. Уведомление: SunRay and GNU / Linux: Recent cream | Good Answer

  2. Andrey говорит:

    Скажите пожалуйста, а откуда вы скачали SRS? А то у нас нет «Support Identifiers» а без него oracle не дает скачать сий софт.

  3. Serg говорит:

    Для Solaris

  4. Serg говорит:

    Небольшая просьба, можете поделиться аддоном Kiosk Mode Generic Session?

    • IdeaFix говорит:

      У меня выложен в архиве в статье весь набор модификаций и доп. файлов. Т.е. все изменения в / что были сделаны. Там всё есть.

      • Serg говорит:

        Оказалось всё не так просто как хотелось бы… Думал, что будет что то на подобие JDS интегратора для солярки, который можно конфигурировать через киоск мод (добавлять кнопки и привязывать конфигурации к ним). Закинул 2 папки в sunwkio, пункт в киоск моде появился, но проверить смогу только завтра на работе. Срсс 5.3 (спасибо, что выложили дистрибутивы, найти сейчас их практически не реально) развернул на центос 5. А от системы требуется запускать максимально обрезанный интерфейс — одну кнопку на манер пуска и 3 приложения, выпадающие из неё (putty, fierfox и клиент терминального сервера). Возможно ли такое сделать при помощи Kiosk Mode Generic Session?

        • IdeaFix говорит:

          У Линуксовой версии функционала ровно половина от виндовой 🙁

          Точно не работает гномья переключалка клавы, иксовая тоже (и иксорг и иксньют), работает только та, что у меня выложена, но, у неё есть странынй баг — если клиент один — работает идеально, если несколько — при первом разпуске падает, в дальнейшем работает нормально. Мой вариант пропатчен на отрывание функции выхода!

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

          В итоге я засунул фаерфокс как инициатор сессии, а всё остальное во второй файл. Оторвал от метасити всё кроме alt+f4 и рестартую сессию в полночь, а через 10 минут с интервалом в минуту рестартую сессии по идам клиентов…. работает года три уже. там прокся с белым списокм и фаерфоксовый киоск до кучи. Достаточно железобетонно.

  5. Al говорит:

    Извините, а не могли бы Вы еще раз выложить SRS и sros? А то сейчас пытаемся реанимировать когда-то работавший киоск на Sunray2. Если можно, и под linux и под Solaris…
    Спасибо

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

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