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 модифицирован примерно так:

>

>

HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">

HTTP-EQUIV="Refresh" content="15; url=http://opac.urfu.ru">

>
Внимание!>


>>

>Внимание!>

>Вы пытаетесь воспользоваться  ресурсом, недоступным с данного рабочего места.>

>

>Ресурсы, доступные с данного рабочего места:>

>

> href="http://opac.urfu.ru">Электронный каталог>

> href="http://elar.urfu.ru">Электронный архив> (в т.ч. документы PDF)

> href="http://lib2.urfu.ru">Зональная научная библиотека УРФУ>

>

>

>Для возврата на главную страницу каталога пройдите по href=http://opac.urfu.ru>этой> ссылке>

>Для возврата на предыдущую страницу пройдите по href="javascript:history.go(-1);">этой> ссылке.

>

>В течении >15> секунд Вы будете автоматически возвращены на стартовую страницу каталога.>

>

align="center"> href="http://10.96.0.87">URFU Library PROXY>> 
В результате, даже если пользователь случайно ушел по ссылкам не туда, он успеет немного задуматься, прежде чем попадет туда, куда надо. В начале перенаправление было на одну страницу назад, но потом оказалось что именно из каталога ни на какой запрещенный ресурс уйти нельзя, поэтому, было принято решение возвращать пользователя на стартовую страницу.
 
Весь «родной» софт можно установить как с диска, так и по сети. Оказывается, у 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.
 
 

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

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

Админ интерфейс, информация о клиентах с рабочего сервера.
 
Коллеги, если у кого-то вдруг сабж валяется без дела или трудится в поте лица, давайте обмениваться опытом! Обмен опытом очень ннада! Киоск у нас работает почти идеально, аптайм сервера — полгода… а вот с русским вводом есть особенности, они в принципе почти не мешают жить, но хотелось бы совсем-совсем решить и эту проблему.


















Обсудить в конференции
 
Telegram-канал @overclockers_news - это удобный способ следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают