Сервер загрузки образов и конфигураций
Для загрузки образов по сети требуются DHCP и TFTP сервера. Сервер загрузки можно развернуть на Linux и на Windows, практически я использовал конфигурацию на линукс, поэтому здесь упор пойдет именно на этот вариант, тем не менее это все успешно можно настроить и на Windows. Процесс установки и настройки DHCP и TFTP сервера тривиален, но нам потребуется указать дополнительные параметры.
Для dhcpd в dhcpd.conf требуется добавить следующие строки:
filename "pxelinux.0"; next-server X.X.X.X;
где X.X.X.X — IP-адрес TFTP сервера, на котором будут размещаться наши образы Thinstation Linux.
Для DHCP под Windows Server нужно добавить опции 067 и 066 со значениями какие были приведены выше для dhcpd. Что касается TFTP сервера, то под Windows есть tftpd32, он может работать как служба, и имеет все необходимые функции. Под линукс отлично подойдет xinetd, который есть во многих дистрибутивах.
Конфигурационный файл /etc/xinetd.d/tftp:
# default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
Как видно из приведенного выше файла, все, доступные для загрузки, образы и конфигурационные файлы Thinstation Linux будут размещены у нас в директории /tftpboot.
Подготовка Citrix XenApp к подключению citrix-клиентов под линукс
Установка и настройка фермы серверов Citrix XenApp выходит за рамки этой статьи, подразумевается, что ферма уже есть и работает. Чтобы citrix-клиенты из Thinstation Linux успешно подключались к ферме, требуются внести в конфигурацию следующие изменения:
- Опубликовать рабочий стол как приложение (назовем его Desktop) и добавить в него все сервера фермы, на которых планируется пускать пользователей.
- Перевести пользовательскую политику Desktop Launches в состояние Allowed. Можно политику Desktop Launches разрешить не глобально на всю ферму, а только на те сервера фермы, на которых опубликовано наше приложение Desktop. Для этого на каждом таком сервере нужно открыть редактор локальной групповой политики (gpedit.msc) и далее в конфигурации пользователя, в Citrix Policies включить политику Desktop Launches.
Помимо изменений конфигурации не лишним будет учесть следующее:
- Citrix Web Interface, Citrix Secure Gateway (а также Access Gateway, Netscaler и т.д.) в подключения наших бездисковых клиентов не участвуют. Брокерами для подключения являются сервера, указанные в конфигурации Thinstation Linux (thinstation.conf.group-desktop). Можно сделать брокерами все сервера, а можно назначить эту роль на отдельные менее нагруженные сервера.
- Citrix-клиент под линукс не поддерживает Session Reliability и подключается по стандартному XML (TCP/80 или TCP/8080 в зависимости от конфигурации) + ICA TCP/1494, либо по SSL Relay (TCP/443 по умолчанию).
- Citrix-клиент под линукс не поддерживает приоритеты подключений по worker-группам, т.е. никакие специально настроенные Load Balancing Policies работать не будут.
Сборка и настройка загрузочного образа Thinstation Linux
Качаем свежий релиз Thinstation Linux, и подготавливаем к сборке. Команды выполняются от рута, подразумевается, что окружение для сборки Thinstation Linux загружается и будет работать в /thinstation:
cd / git clone --depth 1 git://thinstation.git.sourceforge.net/gitroot/thinstation/thinstation cd thinstation ./setup-chroot q exit cd /thinstation/build
Далее редактируем конфигурационные файлы build.conf и thinstation.conf.buildtime согласно нашим требованиям. В дальнейшем можно тонко все настроить, сделать разные конфигурации под разное железо, убрать все лишнее чтобы минимизировать размер образа и т.д., но для начала лучше сделать все максимально просто чтобы избежать ошибок из-за дополнительных усложнений. Поэтому я упомяну только важные параметры, которые нужно раскомментировать в build.conf, модули можно игнорировать, т.к. это у нас первая тестовая сборка без оптимизаций, поэтому будем собирать образ со всеми модулями:
Пакеты:
package xorg7-vesa package ica package sshd
Параметры:
param rootpasswd <пароль рута> param basepath . param icaencryption true
thinstation.conf.buildtime, идущий по умолчанию в дистрибутиве Thinstation Linux, лучше скопировать в отдельный файл, и создать новый следующего содержания:
KEYBOARD_MAP=en MOUSE_ACCELERATION=1 MOUSE_RESOLUTION=100 MOUSE_SENSITIVITY=1 X_MOUSE_PROTOCOL="IMPS/2" X_MOUSE_DEVICE=/dev/input/mice POWERBTN_ACTION=Off CUSTOM_CONFIG=Off DAILY_REBOOT=On SCREEN_BLANK_TIME=0 SCREEN_STANDBY_TIME=0 SCREEN_SUSPEND_TIME=0 SCREEN_OFF_TIME=0 DONT_VT_SWITCH_STATE=TRUE DONT_ZAP_STATE=TRUE NET_USE_DHCP=On NET_HOSTNAME=ts_* NET_FILE_ENABLED=On NET_TELNETD_ENABLED=Off RECONNECT_PROMPT=MENU TIME_ZONE=Europe/Moscow NET_TIME_SERVER=<ваш NTP сервер, FQDN-имя или IP-адрес> NET_REMOTE_ACCESS_FROM="0.0.0.0" XKEYBOARD="us,ru" XKBVARIANT=",winkeys" TFTP_BLOCKSIZE=1024
Не забудьте указать ваш NTP сервер.
Скачиваем файл linuxx86_12.1.0.203066.tar.gz отсюда:
www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-121.html
и кладем его в /thinstation/downloads. Билд-скрипт Thinstation Linux по ходу сборки может и сам скачать что нужно, просто я привык использовать свои дистрибутивы.
Запускаем сборку образа:
cd /thinstation ./setup-chroot q cd build ./build --allmodules
В процессе сборки начнется установка citrix клиента, который будет задавать вопросы, ответы на них будут приведены там же скриптом сборки Thinstation Linux.
По окончанию процесса сборки нужно перейти в директорию /thinstation/build/packages/ica/opt/Citrix/ICAClient/config и поправить файл appsrv.ini.tpl. По умолчанию, установленный в Thinstation Linux citrix-клиент, может подключаться только на указанный сервер XenApp, что не соответствует нашим требованиям. Нам нужно подключаться к приложению, опубликованному на ферме серверов XenApp, этим достигается большая надежность и отказоустойчивость решения. Клиент не привязан к конкретному серверу, и при подключении, брокер переключает клиента на самый менее загруженный сервер фермы. Само собой, что в этом случае сервера должны быть идентичны по конфигурации и у пользователей должны быть корректно настроены перемещаемые профили, но это уже отдельная тема.
Приведем appsrv.ini.tpl к следующему виду:
Description=$ICAX_TITLE WinStationDriver=ICA 3.0 TransportDriver=TCP/IP DoNotUseDefaultCSL=Off EncryptionLevelSession=$ICAX_ENCRYPTION Compress=$ICAX_COMPRESS AudioBandwidthLimit=$ICAX_AUDIO_QUALITY ClientAudio=$ICAX_AUDIO UseDefaultSettingForColormap=Yes ZLMouseMode=2 ZLKeyboardMode=2 NoWindowManager=True UseFullScreen=Yes Address=$ICAX_TITLE TWIMode=$ICAX_SEAMLESS_WINDOW DisableCtrlAltDel=$ICAX_DISABLECTRLALTDEL
Если на вашей ферме XenApp настроен SSL Relay, и вы хотите защитить ваши подключения с помощью SSL скопируйте в /thinstation/build/packages/ica/opt/Citrix/ICAClient/keystore/cacerts файл корневого сертификата с вашего CA. Файл сертификата должен быть в формате pem, у меня в этом формате сразу заработал, может и другой подойдет, не пробовал.
Снова запускаем сборку образа:
cd /thinstation ./setup-chroot q cd build ./build --allmodules
После завершения сборки, в директории /thinstation/build/boot-images/pxe появятся нужные нам файлы. Копируем содержимое /thinstation/build/boot-images/pxe в /tftpboot.
Создаем в /tftpboot конфигурационные файлы thinstation.conf.group-1280@60, thinstation.conf.group-desktop, thinstation.conf.group-mouse, thinstation.hosts:
thinstation.conf.group-1280@60
SCREEN_RESOLUTION="1280x1024" SCREEN_HORIZSYNC="30-65" SCREEN_VERTREFRESH="60"
thinstation.conf.group-mouse
MOUSE_RESOLUTION=100 MOUSE_ACCELERATION=1
thinstation.conf.group-desktop
SESSION_0_TITLE="Desktop" SESSION_0_TYPE=ica SESSION_0_AUTOSTART=On SESSION_0_ICA_SERVER=Desktop SESSION_0_ICA_ENCRYPTION="Basic" SESSION_0_ICA_COMPRESS=Off SESSION_0_ICA_AUDIO_QUALITY=High SESSION_0_ICA_AUDIO=On SESSION_0_ICA_SEAMLESS_WINDOW=Off SESSION_0_ICA_SMARTCARD=Off SESSION_0_ICA_DISABLECTRLALTDEL=On ICA_BROWSER_PROTOCOL=HTTPonTCP ICA_WFCLIENT_HttpBrowserAddress=<FQDN имя первого сервера фермы XenApp>:8080 ICA_WFCLIENT_HttpBrowserAddress2=<FQDN имя второго сервера фермы XenApp>:8080 ICA_WFCLIENT_HttpBrowserAddress3=<FQDN имя n-ного сервера фермы XenApp>:8080 ICA_WFCLIENT_InitialProgram=#Desktop
Не забудьте указать полные FQDN имена серверов-брокеров фермы XenApp. Можно указать много таких серверов, увеличивая число в конце параметра HttpBrowserAddressX. Реальный максимум мне неизвестен, с десятью точно работает. Еще здесь подразумевается, что служба XML настроена на порту 8080, исправьте этот параметр если у вас другой порт. Если на вашей ферме XenApp настроен SSL Relay, и вы хотите защитить ваши подключения с помощью SSL, установите параметр ICA_BROWSER_PROTOCOL=HTTPSonSSL.
thinstation.hosts
# Hostname MAC Resolution Mouse_settings Session thinstation1 001122334455 1280@60 mouse desktop
Записи «thinstation1», «001122334455», «1280@60», «mouse», «desktop» указывают на то, что хосту c мак-адресом 001122334455 нужно присвоить имя thinstation1 и применить настройки, прописанные в файлах thinstation.conf.group-1280@60, thinstation.conf.group-mouse и thinstation.conf.group-desktop соответственно. Таким же образом можно сделать разные файлы настроек с разными разрешениями, настройками чувствительности мыши и подключениями к разным ресурсам.
Подготовка бездискового клиента
Системные требования: cетевая карта с поддержкой загрузки по сети PXE LAN BOOTROM и ОЗУ 512Mb. Если выполнить тонкую настройку образа под железо, исключить все лишнее, и если в компьютере системная плата со встроенным видео, то настроить в BIOS резервацию ОЗУ под видеопамять поменьше (2-8Мб), тогда можно ужаться и в 256Мб, но я бы рекомендовал иметь хотя бы 320Мб.
Из настроек основное, что требуется — это включить в BIOS загрузку по сети, и еще в BIOS должно быть правильное время, иначе могут быть проблемы с SSL-подключением (ошибки о сроке действия сертификата).
Что получается в итоге и как это выглядит
Целью было сделать работу бездискового клиента как можно более похожим на работу локального компьютера, поэтому нет никаких дополнительных оболочек, сразу запускается citrix-клиент, и подключается к ферме XenApp согласно конфигурации. По окончании загрузки пользователь сразу видит экран входа в Windows:
Благодарю за внимание.
ссылка на оригинал статьи http://habrahabr.ru/post/198894/
Добавить комментарий