Sun Ray: using “Other”

Этот пост расскажет и покажет пример как использовать поле “Other information”, в свойствах token’a, для передачи аргументов Sun Ray Connector for Windows (SRWC).

Задача – максимально доступным способом показать насколько понимание файлового многообразия и связности компонентов SRSS позволяет делать гибкие и невероятно простые решения.

Как вам уже наверняка известно при использовании kiosk-mode мы можем передать множество параметров коннектору, начиная с таймаута простоя до качества входящего звука и даже flash-acceleration.

Вот типичный пример (для SRSS 5.2+):

В использовании строки аргументов “как есть” нехватает нескольких очень нужных моментов:

  1. с помощью ключа “-u” мы могли бы передавать имя_пользователя в RDP-сессию ;
  2. возможность направлять разные токены на разные сервера .

Есть несколько способов добиться этого:

  1. подредактировать вручную скрипты, чтобы они возвращали переменные, которые мы могли бы использовать в строке аргументов ;
  2. воспользоваться встроенным способом, появившимся ещё в SRSS 4.1 описаным здесь ;
  3. воспользоваться функционалом режима meta-kiosk, описаным здесь .

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

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

Пусть в нашей инфраструктуре используется только SRWC, т.е. вся монструозность meta-kiosk ( JDSKIOSK UTTSC VDA VDANOCARD VDM VNC etc. ) нам не нужна, хотя настройка последнего действительно занимает несколько минут.

Что мы имеем на начало работы? Два сервера c Solaris 10u9, установленный и функционирующий SRSS 5.2 на каждом из них в режиме failover group (FOG). Набор и содержимое изменяемых нами файлов должны совпадать на каждой из машин в FOG, так как до определённого уровня нагрузки клиент подключает рандомно к любому их них.

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

Мы точно знаем, что всю доступную информацию о токенах можно получить следующей командой:

пример вывода команды

соответственно мы с помощью простого grep можем получить как поле “Owner” (в выводе выше User Name), так и “” (Other Info).

Осталось только найти скрипт куда и без нас как-то используется Token ID, чтобы не пришлось дублировать процедуру получения TID или переменных, которые на самом деле много где встречаются под именами SUN_SUNRAY_TOKEN и CORONA_TOKEN.

Недолгий поиск привёл меня, например, к файлу /etc/opt/SUNWut/xmgr/add-dpy, где в 47 строке появляется $token

а в 60-ой строчке действительно обнаруживаются глобальные переменные

Значит нам осталось всего лишь несколькими строками выше нужным способом проgrepать вывод utuser, присвоить полученное новым переменным и добавить к имеющейся строчке объявления окружения.

Для начала воспользуемся возможностью передачи логина в RDP-сессию, с помощью опции “-u”, для этого достанем значение поля Owner:

и изменим упомянутую выше строку до такого вида

Теперь в строке аргументов можно использовать $OWNER

и владельцу токена не придётся вводить логин.

А что если хост к которому инициализируется RDP-сессия тоже будет зависеть от регистрационных данных токена? Мы сможем пускать любого пользователя на любой необходимый нам хост! Условимся что поле Other information мы будет использовать для хранения точки назначения и чтобы реализовать план нам понадобится проделать почти то же самое.

После всех изменений две наших строки и переменная xcdesc будут выглядеть так

И теперь мы можем использовать следующую строку аргументов для SRWC

Удивительно просто, верно?

Поиск нужных данных можно заметно укоротить и организовать несколько иначе, например хранить все доставаемые данные только в Other Information, как это делается в meta-kiosk.

SHARE: Tweet about this on TwitterShare on FacebookShare on VKShare on LinkedInShare on Google+Email this to someone