Сборка Thinstation образа

Привет, сегодня мы будем собирать последнюю версию загрузочного образа для тонких клиентов — Thinstation! В данной статье мы соберем загрузочный образ Thinstation, настроим DHCP и TFTP сервер для загрузки сего образа тонкими клиентами по сети, посредством протокола PXE. Данная статья расчитана на более продвинутых пользователей, у которых есть понимание того, что такое TFTP, у кого в парке есть хотя бы одна машина с Lunux и базовый багаж знаний работы с nix подобными системами. Для тех, у кого нет таких знаний будет статья о том, как собрать такой образ из готового загрузочного диска DevStation.

Что у нас должно быть

  • Lunix машина (для сборки образа на ней)
  • DHCP сервер
  • Укромное местечко для TFTP сервера
  • Собственно тонкие клиенты
  • Терминальный (или любой другой сервер) для того, что бы эти тонкие клиенты туда подключались.

Оговорюсь относительно последнего пункта. Тонкие клиенты на Thinstation могут работать не только в режиме подключения к терминальному серверу, но и как самостоятельные бездисковые рабочие станции на ОС Linux с полным набором софта. Правда в пределах этой стати, мы рассмотрим только первый и самый распространенный вариант.

Приступаем к сборке. Подключаемся к нашей Linux машине (в данном случае я использую виртуальную машину на Ubuntu 14.04 на VMware Workstation, так очень удобно). Первым делом установим git, для того, что бы забрать последнюю версию Thinstation.

apt-get install git-core

Далее перейдем в папку, в которой будем разворачивать окружение для сборки образа и начнем его качать (это довольно длительный процесс, около 40 минут. Свободного дискового пространства нам понадобится около 3GB)

cd /home/verbin/Documents/
git clone --depth 1 git://github.com/Thinstation/thinstation.git

После окончания загрузки переходим в директорию с этим добром и заупскаем chroot скрипт, который соберет в нашу систему недостающие пакеты и подготовит инфраструктуру для последующей сборки.

cd thinstation
./setup-chroot

По окончанию сего процесса вы увидите примерно такой вывод в консоле. Это означает что все готово для сборки нашего первого и пока что «толстого» образа. Толстого — то есть с полным набором пакетов и драйверов, для первой загрузки станции и последующего определения только необходимых нам составляющих и исключения лишних из образа.

./setup-chroot
Все работы по сборке образа Thinstation должны проводится в данной виртуальной среде. Для скрытия приветствия (README) нажимем Q и попадаем в командную строку chroot

Переходим в папку ts/5.x/ в которой находятся конфиги и скрипт сборки. Краткий ликбез по требующим внимания файлам.

  • build.conf — Корневой конфигурационный файл, в котором указываются необходимые драйвера, параметры и пакеты для сборки образа.
  • thinstation.conf.buildtime — Конфигурационный файл уже Thinstation образа, указанные в нем параметры будут «зашиты» в образ. Воздержимся от использования оного, лучше оставим это на потом и будем использовать обычные конфигурационные файлы находящиеся на TFTP сервере вместе с образом. Так — более гибко.
  • boot-images/ — Директория в которой после сборки образа появятся папки с образами нашего Thinstation для разных типов загрузки
  • boot-images/pxe/ — Собственно директория в которой после окончания сборки образа будут находится необходимые нам файлы образа для загрузки по PXE.

Сборка «толстого» образа

Сразу оговорюсь о том, что можно закоментировать пакет «package chrome» в buid.conf, так как он попросту не нужен и является одним из самых «тяжелых», значительно повышая вероятность того, что у вашего тонкого клиента не хватит оперативной памяти для запуска (так же размер самого образа вырастет мегабайт на 20-30).

Так же опишу несколько важных опций в buid.conf из раздела настроек (param)

  • param rootpasswd — Пароль для пользователя root в образе (для доступа к административным функциям)
  • param xorgvncpasswd — Пароль для подключения к станциям по VNC (если этот пакет был включен при сборке «package xorg7vnc»)
  • param bootresolution — Разрешение экрана при загрузке
  • param desktop file: — Стандартный фон (рабочий стол и загрузка системы)
  • param httpproxy — Настройка прокси (если загрузка файлов доступна только через proxy. В значении можно указать и авторизацию user:password@proxy:port)

Приступаем к сборке следующей командой.

./build --allmodules

Во время данного процесса могут появится запросы подтверждения загрузки недостающих компонентов, соглашаемся Y. Пока ждем окончания сборки — сконфигурируем TFTP сервер и DHCP для PXE загрузки с него (Cisco DHCP или Windows DHCP).

Успешное завершение процесса сборки Thinstation образа.
Успешное завершение процесса сборки Thinstation образа.

Сборка завершена, теперь копируем файлы образа из папки boot-images/pxe/ (полный путь: thinstation/ts/5.2/boot-images/pxe/) на наш TFTP сервер. Вполне вероятно что наш образ полностью не запустится. Нам нужно что бы образ загрузился до того состояния, когда на экране будет фоновое изображение и прогрессбар загрузки, в этот момент нужно нажать Ctrl+Alt+F3, попадаем в консоль (в противном случае, если станция не запустится даже до этого шага — это означает что не хватило оперативной памяти (убираем лишние модули в build.conf).

Итак, мы попали в консоль нашего толстого образа и видим приглашение войти (вводим root / pleasechangeme — если не меняли это в buid.conf). Далее выполняем команду

hwlister.sh

которая сгенерирует нам файлы профиля конкретного железа тонкого клиента (module.list) и графических режимов (vbe_modes.list). Забираем эти файлы на нашу Lunix машину где проводится сборка образа (любым удобным способом, я показываю пример как это сделать через наш TFTP сервер).

cd /
tftp -p -l module.list -r module.list 192.168.1.3
tftp -p -l vbe_modes.list -r vbe_modes.list 192.168.1.3

Создаем папку для профилей нашего тонкого клиента и кладем в нее файлы module.list и vbe_modes.list

mkdir thinstation/ts/5.2/machine/Thinclient

Финальная конфигурация и сборка

В файле build.conf

  • machine Thinclient — Название профиля оборудования по которому будет производится сборка.
  • package xorg7-vesa — Стандартный видеодрайвер (рекомендуется включать его в сборку).
  • package freerdp или package rdesktop — Выбираем RDP клиент который будем использовать (можно добавить оба).
  • package xorg7vnc — VNC сервер для удаленного управления клиентами.
  • param fastboot true — Значительно ускоряет загрузку бездисковых систем но могут быть проблемы из-за не совместимости с сетевой картой

В файле thinstation.conf.buildtime

  • DONT_VT_SWITCH_STATE=TRUE — Запретит переключение в консоль посредством Ctrl+Alt+F3
  • DONT_ZAP_STATE=TRUE — Запрет переинициализации графического режима через Ctrl+Alt+Backspace (тоже лазейка к консоли)

Начинаем финальную сборку находясь в папке thinstation/ts/5.2/ и

./setup-chroot
./build

Полученный образ кладем в корень TFTP сервера и там же создаем стандартный общий конфигурационный файл thinstation.conf.network в который добавим параметры подключения к терминальному серверу (обратите внимание — для freerdp клиента и rdesktop указаны разные команды подключения по RDP).

SESSION_0_TITLE="Terminal Server rdesktop"
SESSION_0_TYPE=rdesktop
SESSION_0_SCREEN=1
SESSION_0_RDESKTOP_SERVER=192.168.1.10
SESSION_0_RDESKTOP_OPTIONS="-d 'DOMAIN' -u 'USER'"
SESSION_0_AUTOSTART=On

SESSION_1_TITLE="Terminal Server freerdp"
SESSION_1_TYPE=freerdp
SESSION_1_SCREEN=1
SESSION_1_SCREEN_POSITION=2
SESSION_1_FREERDP_SERVER=192.168.1.10
SESSION_1_FREERDP_OPTIONS="-d 'DOMAIN' -u 'USER'"
SESSION_1_AUTOSTART=On

Пример классического thinstation.conf.network можно найти здесь. В следующих статьях рассмотрим более подробную конфирурацию тонких клиентов, индивидуальные конфигурационные файлы для разных станций и прочее.

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

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