Содержание
Существует множество решений для создания терминального сервера как на Linux, так и на Windows. Однако, клиенты терминального сервера предоставляются в виде программ, требующих установки в некоторую операционную систему. Если терминальный сервер будет использоваться в связке с бездисковыми станциями (тонкими клиентами), то операционная система должна быть крайне легковесной и обеспечивать только необходимый функционал.
Специально для тонких клиентов существует дистрибутив Thinstation.
Thinstation
Поддерживает следующие протоколы: Citrix ICA, NoMachine NX, 2X ThinClient, Microsoft Windows Terminal Services (RDP, via RDesktop), VMWare View Open client, Cendio ThinLinc, Tarantella, X, telnet, tn5250, VMS terminal и SSH, при этом для работы с Thinstation не требуется изменять настройки сервера. …
В этой статье в качестве примера используется загрузка по PXE с TFTP, в качестве сервера — MS Terminal Service, но можно использовать и другие технологии.
Вкратце алгоритм работы Thinstation таков:
- Выбираем (в
build.conf
или в веб-интерфейсе), какие драйверы и программы нам нужны. Драйверы зависят от используемого оборудования (сетевых карт, видеокарт…). Программа — какой-нибудь легковесный оконный менеджер и тип клиента (зависит от типа сервера, в нашем случае для Microsoft Terminal Service нуженrdesktop
) - В дальнейшем мы сможем написать для каждого клиента свой конфигурационный файл, а пока, на этапе сборки мы можем написать конфиг, который будет использоваться в качестве дефолтного (
thinstation.conf.buildtime
) - Собираем образ, используя
build.conf
иthinstation.conf.buildtime
- Раздаём образ с помощью TFTP-сервера, в DHCP указываем нужные параметры (см. Терминальный сервер)
- Создаём, если нужно, собственные конфигурационные файлы для отдельных клиентов и групп клиентов, они тоже раздаются по TFTP
- Выставляем на клиентах загрузку с PXE (Network, LAN, …)
- Загружаем клиента :)
Развёртывание
Мы будем пользоваться онлайн-сервисом для сборки, веб-интерфейс — это удобно. Однако, если требуется более гибкий инструмент, или 50 Мбайт трафика — проблема, то можно собирать и локально. Сразу замечу, что Thinstation очень гибко настраивается, эта инструкция даёт лишь базовое представление без лишних деталей. Например, Thinstation у нас лежит в корне TFTP сервера, это можно изменить, но за такими подробностями лучше обратиться к документации самого Thinstation.
Первым делом напишем дефолтный конфигурационный файл thinstation.conf.buildtime
, то есть тот файл, который клиент будет использовать, если не найдёт своего собственного конфига.
Для первого раза в отладочных целях можно использовать конфиг, который просто загрузит графическую оболочку и не будет подключаться к какому-нибудь терминальному серверу:
SESSION_0_TYPE=icewm SESSION_0_AUTOSTART=on
Более сложный конфиг — мы коннектимся к Mirosoft Terminal Service, сервер 192.168.1.1, пользователь pupkin из домена example.local:
SESSION_0_TITLE="My Big Server" SESSION_0_TYPE=rdesktop SESSION_0_RDESKTOP_SERVER=192.168.1.1 SESSION_0_RDESKTOP_OPTIONS="-u pupkin -d example.local -a 24 -r -5"
После написания конфига приступаем к сборке. Переходим сюда (полный список есть на http://thinstation.org), на вкладке Applications отмечаем «Connection Package types — rdesktop» (остальные Connection packages нам не понадобятся), в разделе Window Managers выбираем только icewm
и icewm-theme-xp
. На других вкладках расставляем галочки по вкусу. Нажимаем кнпку «Создать» (вверху).
После первого этапа сборки переходим на вкладку «Load Files», указываем наш thinstation.conf.buildtime
и жмём «Выгрузить». После этого жмём кнопку «Запустить сборку» (вверху).
…