Сервер загрузки образов и конфигураций
Для загрузки образов по сети требуются 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:
Благодарю за внимание.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:
- Massacres That Matter - Part 1 - 'Responsibility To Protect' In Egypt, Libya And Syria
- Massacres That Matter - Part 2 - The Media Response On Egypt, Libya And Syria
- National demonstration: No attack on Syria - Saturday 31 August, 12 noon, Temple Place, London, UK
Комментариев нет:
Отправить комментарий