Доброго времени
суток, коллеги.
Относительно
недавно компания Citrix представила возможность доставки рабочих столов на базе
операционных систем семейства Linux, выпустив VDA-агент «Linux Virtual Desktop».
Хотя, на данный момент, технология является достаточно сырой и обладает рядом
ограничений и определенными трудностями в развертке, это первый шаг к доставке
мульти платформенных виртуальных рабочих столов и существенной экономии на
лицензиях Microsoft.
В данной статье
рассмотрим доставку виртуального рабочего стола на базе бесплатной версии Linux
– Centos 7, установив на него Citrix VDA-агент «Linux Virtual Desktop»,
используя технологию Citrix XenDesktop 7.
Воспользуемся
следующим планом:
- Настройка Citrix Delivery Controller.
- Подготовка систем к установке Linux VDA.
- Установка и настройка Linux VDA.
- Публикация виртуального рабочего стола на сайте Citrix.
Системные
требования описаны здесь.
Выделю
необходимые условия:
- Рабочий стол на базе ОС Linux должен быть в домене.
- Citrix Delivery Controller должен резолвить рабочий стол Linux по FQGN имени машины.
- Должно быть одинаковое время как на Linux-машине так и на Citrix Delivery Controller.
Приступим.
1. Настройка Citrix Delivery Controller.
Скачаем VDA-агент
для Linux с сайта Citrix.com. Перейдем в по ссылке на страницу «Download», в
окне поиска выберем «XenDesktop». В разделе «Components» выберем «Linux Virtual
Desktop 1.3».
Скачаем непосредственно
сам rpm-пакет для Centos 7 выбрав «Linux Virtual Desktop 1.3 (RHEL 7.2/CentOS
7.2)», а также необходимый Power Shell скрипт для Citrix Delivery Controller’а
«Linux Virtual Desktop 1.3 (scripts)».
Выполним
скачанный скрипт на контроллере доставки DDC «ven-tst-cds01». Распаковываем
скачанный архив citrix-linuxvda-scripts-1.3.0.zip на диск C:\temp контроллера доставки Citrix Delivery Controller. В окне PowerShell, запущенном под администратором, выполним команду:
C:\Temp\Update-BrokerServiceConfig.ps1
Скрипт
переименует файл «BrokerService.exe.config» в
«BrokerService.exe.config.prelinux», создаст новый файл
«BrokerService.exe.config» после чего перезагрузит службу «Broker Service».
Для
проверки корректного применения параметров, выполним команды:
cd 'C:\Program
Files\Citrix\Broker\Service'
findstr
EndpointLinux BrokerService.exe.config
Параметр «EndpointLinux»
должен присутствовать в выводе команды.
2. Подготовка системы к установке Linux VDA.
Установку
и первоначальную настройку самой операционной системы Centos 7 рассматривать не будем, ибо она стандартна для всех
систем типа Red Hat.
Приступим к
подготовке установки Linux VDA.
Изменим имя
машины на ven-tst-rhel01. В командной строке откроем текстовым редактором файл
/etc/sysconfig/network, выполнив:
sudo vi /etc/sysconfig/network
Для возможности
внесения изменения в файл, нажимаем клавишу “i”, прописываем
«HOSTNAME=ven-tst-rhel01».
Для
выхода из режима редактирования, нажимаем [Esc], далее для сохранения изменений
поочередно нажимаем клавиши “:”, “w”, “q”, [Enter].
Далее
выполняем:
sudo hostname
ven-tst-rhel01
Прописываем
имя машины и FQDN-имя в файл /etc/hosts, выполним:
sudo vi
/etc/hosts
Удалим
все имеющиеся строки конфигурации, оставив следующие параметры:
127.0.0.1
ven-tst-rhel01.test.ru ven-tst-rhel01 localhost localhost.localdomain
Сохраним
изменения и закроем файл. Для вступления изменений в силу, перезапустим сетевой
интерфейс.
sudo
/etc/init.d/network restart
Перезапустим
SSH-сессию и проверим, выполнив команду:
hostname
Добавим
A-запись с именем Centos-сервера в DNS.
Для
этого в оснастке «DNS Manager» контроллера домена «ven-tst-srv01» выберем Lookup
зону «test.ru». Нажимаем правой кнопкой мыши по данной зоне, в контекстном меню
выбираем «New Host (a or AAA). В появившемся окне заполняем соответствие имени
хоста к его IP-адресу.
Проверим,
что сервер Citrix Delivery Controller видит сервер Centos по имени «ven-tst-rhel01»,
для этого на сервере «ven-tst-cds01» в командной строке CMD выполним:
nslookup
ven-tst-rhel01
Проверяем,
что на сервере Centos в службах интеграции гипервизора включена синхронизация
времени. В нашем случае, используя гипервизор Hyper-V, в свойствах виртуальной машины
выставляем галку напротив «Синхронизация времени».
Установим
зависимости для пакета Linux VDA.
Проверим
установлен ли пакет Java OpenJDK версии 1.8.0.
sudo
yum info java-1.8.0-openjdk
Добавим
переменную окружения JAVA_HOME, для этого выполним:
export
JAVA_HOME=/usr/lib/jvm/java
Проверим
версию Java:
java
-version
На
данный момент установлена последняя версия Java.
Установим
PostgreSQL.
В командной строке последовательно выполним:
sudo yum -y install postgresql-server
sudo
yum -y install postgresql-jdbc
Инициализируем
файлы базы данных, выполнив:
sudo
postgresql-setup initdb
Проверяем,
что файлы успешно создадутся:
ls /var/lib/pgsql/data
Запускаем
службу postgresql и добавляем ее в автозагрузку:
sudo /sbin/chkconfig postgresql on
sudo
/sbin/service postgresql start
Установим
Motif.
В командной
строке выполним:
sudo yum
-y install motif
Для
поддержки печати из Centos установим cups и foomatic-filters. Для этого
выполним:
sudo
yum –y install cups
sudo
yum -y install foomatic-filters
Установим
оставшиеся необходимые пакеты. Для этого выполним:
sudo
yum -y install redhat-lsb-core
sudo
yum -y install ImageMagick
Добавим
машину в домен.
Установим
необходимые службы. В командной строке выполним:
sudo
yum -y install samba-winbind
sudo
yum -y install samba-winbind-clients
sudo
yum -y install krb5-workstation
sudo
yum -y install authconfig
sudo
yum -y install oddjob-mkhomedir
Добавим
службу winbind в автозагрузку:
sudo /sbin/chkconfig
winbind on
Настроем
сервис Winbind, для этого выполним:
sudo
authconfig \
--disablecache
\
--disablesssd
\
--disablesssdauth
\
--enablewinbind
\
--enablewinbindauth
\
--disablewinbindoffline
\
--smbsecurity=ads
\
--smbworkgroup=TEST
\
--smbrealm=TEST.RU
\
--krb5realm=TEST.RU
\
--krb5kdc=ven-tst-srv01.test.ru
\
--winbindtemplateshell=/bin/bash
\
--enablemkhomedir
–updateall
Где
«TEST» - NETBIOS домена, ven-tst-srv01.test.ru – FGDQ-имя контроллера домена, а TEST.RU – имя домена.
Добавим
в секцию [GLOBAL] файла настройки SMB "/etc/samba/smb.conf" следующие
строки:
kerberos
method = secrets and keytab
winbind
refresh tickets = true
Вводим
машину в домен, выполнив:
sudo
net ads join Test.ru -U admin
Где, admin
- учетная запись с правами добавления компьютеров в домен.
Игнорируем
ошибку, проверяем успех ввода в домен, выполнив:
sudo net
ads testjoin
Настроим
подключаемый модуль аутентификации для Winbind, для этого в командной строке
выполним:
vi /etc/security/pam_winbind.conf
В секции
[GLOBAL] прописываем следующие параметры:
krb5_auth
= yes
krb5_ccache_type
= FILE
mkhomedir
= yes
Сохраняем
изменения и перезапускаем сервис Winbind.
sudo /sbin/service
winbind restart
Изменим
настройки Kerberos, для этого выполним:
vi
/etc/krb5.conf
В
данном файле "krb5.conf" прописываем следующие параметры:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_realm = TEST.RU
default_ccache_name
= FILE:/tmp/krb5cc_%{uid}
default_realm = TEST
[realms]
TEST.RU
= {
kdc =
VEN-TST-SRV01.TEST.RU
admin_server
= VEN-TST-SRV01.TEST.RU
}
TEST = {
kdc = ven-tst-srv01.test.ru
}
[domain_realm]
.test.ru = TEST.RU
test.ru = TEST.RU
test = TEST
.test = TEST
Получим
тикет от контроллера домена, для этого выполним:
kinit
admin@TEST.RU
Отобразим
все возможные варианты комбинации Principal Name с методами шифрования.
Выполним:
sudo
klist -ke
Аутентифицируем
машину на контроллере домена. Для этого выполним:
sudo kinit
-k VEN-TST-RHEL01\$@TEST.RU
Убедимся,
что тикет успешно получен, для этого выполним:
sudo
klist
Проверяем, что
пользователь домена может успешно аутентифицировать в домене с Linux-машины. Выполним:
wbinfo --krb5auth=TEST.RU\\admin
Тестируем подключение по SSH к Linux-машине
используя аутентификационные данные доменного пользователя TEST.RU\admin.
Видим,
что подключение успешно состоялось.
3. Установка и настройка Linux VDA.
Скопируем скачанный файл «XenDesktopVDA-1.3.0.312-1.el7.x86_64.rpm»
в папку «admin» по CIFS-шаре \\ven-tst-rhel01.test.ru\admin.
На Linux-машине установим Citrix Linux
VDA-агент, выполнив:
sudo rpm -i
/home/TEST/admin/XenDesktopVDA-1.3.0.312-1.el7.x86_64.rpm
Пакет успешно установится.
Сконфигурируем VDA-агент, выполнив скрипт:
sudo /opt/Citrix/VDA/sbin/ctxsetup.sh
В мастере настройки VDA-агента поочередно
прописываем следующие параметры:
export CTX_XDL_SUPPORT_DDC_AS_CNAME=Y
export CTX_XDL_DDC_LIST=
vniz-tst-cds01.test.ru
export CTX_XDL_VDA_PORT=80
export CTX_XDL_REGISTER_SERVICE=Y
export CTX_XDL_ADD_FIREWALL_RULES=Y
export CTX_XDL_AD_INTEGRATION=1
export CTX_XDL_HDX_3D_PRO=|N
export CTX_XDL_VDI_MODE=Y
export CTX_XDL_SITE_NAME=
export CTX_XDL_LDAP_LIST=
export CTX_XDL_SEARCH_BASE=
export CTX_XDL_START_SERVICE=Y
Настройки успешно применятся.
Запускаем VDA-агент, для этого выполним:
sudo /sbin/service ctxhdx start
sudo /sbin/service ctxvda start
Агент успешно запустится.
4. Публикация виртуального рабочего стола на сайте Citrix.
Создадим новый Machine Catalog. В консоли
Citrix Studio щелкаем правой кнопкой мыши по разделу "Machine
Catalog", в контекстном меню выбираем "Create Machine Catalog".
В появившемся окне "Introduction" нажимаем "Next".
В
окне "Operation System" в разделе "Select operating system for
this Machine Catalog" выбирем "Desktop OS", нажимаем
"Next".
В окне "Machine Management" в
разделе "The Machine Catalog will use:" выберем "Machine that
are not power management (for example physical machines)", в разделе
"Deploy machine using" выбираем "Another service or thecnology",
нажимаем "Next".
В окне "Desktop Experience"
выбираем "I want users to connect to the same (static) desktop each time
they log on", нажимаем "Next".
В
окне "Machines and Users" в столбец "Computer AD account"
добавляем Linux- машину с установленным VDA-агентом, в нашем случае
"ven-tst-rhel01". В поле "User names" указываем доменного
пользователя, в нашем случае "test_linux", нажимаем "Next".
В
окне "Summary в поле "Machine Catalog name" и в поле "Machine
Catalog description for administrator" вводим имя каталога машин "Centos_Catalog",
нажимаем "Finish".
Machine
Catalog успешно создастся, сервер "ven-tst-rhel01" успешно
зарегистрируется.
Создадим группу доставки. В консоли Citrix Studio
щелкаем правой кнопкой мыши по разделу "Delivery Groups", вы
контекстном меню выбираем "Create Delivery Group".
В появившемся окне "Getting started
with Delivery Groups" нажимаем "Next".
В
окне "Machines" в разделе "Select a Machine Catalog"
выбираем каталог машин с сервером Centos "Centos_Catalog", нажимаем
"Next".
В окне "User Assignments"
оставляем значения по умолчанию, нажимаем "Next".
В
окне "Delivery Type" выбираем "Desktop", нажимаем
"Next".
В
окне "Users" выбираем "Restrict use of this Delivery Group to
the following users", нажимаем "Add" и добавляем пользователя
"test_linux", нажимаем "Next".
В
окне "Desktop Assignment Rules" оставляем значения по умолчанию,
нажимаем "Next".
В
окне "Summary" в полях "Delivery Group name" и
"Delivery Group descripton, used as label in Receiver (optional)"
вводим имя группы доставки "Centos_Delivery", нажимаем
"Next".
Группа доставки успешно создастся.
Проверим доставку рабочего стола Linux.
Авторизуемся в Citrix Receiver'е под
пользователем "test_linux". Щелкаем по ярлыку
"Centos_Delivery".
Рабочий
стол Centos успешно запустится.
Проверяем свойства сессии в Центре Подключения.
Проверяем свойства сессии в Citrix Director.
На этом предлагаю закончить.
Вопросы, замечания и предложения пишите в комментариях или на почту.
Удачного тестирования!