null

Подготовка VM c Ubuntu 20.04 и установка Linux Virtual Delivery Agent для использования в качестве шаблона Citrix XenApp and Desktop.

Первым делом после установки обновляем систему до актуального состояния:

  1.     apt update && apt upgrade 

По требованиям Citrix (ссылки на используемые документы будут в конце статьи), HWE ядра, используемые в Ubuntu Desktop по-умолчанию, не подходят для нашей цели и нам придётся сделать downgrade с HWE/OEM до GA версии:

  1. apt install --install-recommends linux-generic 
  2. Reboot, interrupt grub, in advanced options elect to boot 5.4 based kernel, complete boot. Check that everything works as expected.
  3. apt remove --purge linux-generic-hwe-20.04 linux-oem-20.04 linux-hwe-* linux-oem-* linux-modules-5.1* linux-modules-5.8.0-* linux-modules-5.6.0-* 

Далее, устанавливаем .NET Core Runtime 3.1:

  1. wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
  2. dpkg -i packages-microsoft-prod.deb
  3. apt update
  4. apt install apt-transport-https
  5. apt install dotnet-runtime-3.1
  6. dotnet --list-runtimes 

Последней командой проверяем, не стоит ли что-то лишнее и если да, то оставляем только одну версию.

Пожалуйста, прочтите все требования к дистрибутиву по второй ссылке, там есть специфичные для версий и дистрибутивов и конечно же, что-то обязательно добавится с течением времени.

Далее подготавливаем VM к установке Linux Virtual Delivery Agent. Для этого внесём изменения в некоторые конфигурационные файлы:

В /etc/hosts оставляем только одну строку:

  1. 127.0.0.1 hostname-fqdn hostname localhost 

Например: 127.0.0.1  ubuntu.xenlab.local xenlab localhost

Проверяем:

  1. hostname
  2. hostname -

В файле /etc/resolv.conf указываем IP нашего DNS сервера и имя используемого домена, например:

  1. nameserver 192.168.100.254
  2. search xenlab.local 

Для отключения использования mDNS в файле /etc/nsswitch.conf меняем содержимое строки:

  1. hosts: files mdns_minimal [NOTFOUND=return] dns 

на

  1. hosts: files dns 

Проверяем:

  1. systemd-resolve --status 

Ставим chrony в качестве NTP клиента:

  1. apt install chrony 

и редактируем файл /etc/chrony.conf так, чтобы он смотрел в сторону нашего NTP сервера, убрав все остальные сервера, указанные в конфиге на момент установки:

  1. pool ntp.xenlab.local iburst maxsources 1 

Добавляем и включаем запуск в systemd и проверяем:

  1. systemctl enable chrony
  2. systemctl start chrony
  3. chronyc activity 

 

Тут, коллеги, нам необходимо установить Oracle JDK 11 и я очень рекомендую пару статей из ссылок ниже, для того, чтобы понять, что уже имеется в системе, как удалить не нужное и как определить, какую именно из версий, система считает дефолтной.

По версии Citrix нам просто нужно:

  1. apt install -y openjdk-11-jdk 

 

Но повторюсь, что не факт, что эта версия будет именно 11й. Проверьте командой:

  1. java -version 

и в случае необходимости поправьте с помощью статей.

 

Устанавливаем PostgreSQL:

  1. apt install -y postgresql
  2. apt install -y libpostgresql-jdbc-java 

 

Устанавливаем Motif:

  1. apt install -y libxm4 

 

Устанавливаем прочие зависимости:

  1. apt install -y imagemagick gtk3-nocsd libmspack0 libgoogle-perftools4 libpython2.7 libsasl2-2 libsasl2-modules-gssapi-mit libldap-2.4-2 krb5-user libgtk2.0-0

 

Следующий шаг – редактирование конфигурационного файла /etc/krb5.conf:

  1.     [libdefaults]
  2.      default_realm = XENLAB.LOCAL
  3.         dns_lookup_kdc = false
  4.  
  5.      [realms]
  6.      XENLAB.LOCAL = {
  7.         admin_server = DC.XENLAB.LOCAL
  8.         kdc = DC.XENLAB.LOCAL
  9.      }
  10.  
  11.      [domain_realm]
  12.         xenlab.local = XENLAB.LOCAL
  13.   .xenlab.local = XENLAB.LOCAL 

 

Там, где CAPS, должен быть CAPS. Всегда пишите realm заглавными буквами.

проверяем:

  1. kinit -f username 

 

В инструкции Citrix по 4й ссылке вы можете найти 5 вариантов подключения VM к AD, мы использовали SSSD, поэтому:

  1. apt install sssd 

 

Редактируем (при необходимости создаём) /etc/sssd/sssd.conf:

  1. [sssd]
  2.  
  3. services = nss, pam
  4.  
  5. config_file_version = 2
  6.  
  7. domains = xenlab.local
  8.  
  9. [domain/xenlab.local]
  10.  
  11. id_provider = ad
  12.  
  13. access_provider = ad
  14.  
  15. auth_provider = krb5
  16.  
  17. krb5_realm = XENLAB.LOCAL
  18.  
  19. # Set krb5_renewable_lifetime higher if TGT renew lifetime is longer than 14 days
  20.  
  21. krb5_renewable_lifetime = 14d
  22.  
  23. # Set krb5_renew_interval to lower value if TGT ticket lifetime is shorter than 2 hours
  24.  
  25. krb5_renew_interval = 1h
  26.  
  27. krb5_ccachedir = /tmp
  28.  
  29. krb5_ccname_template = FILE:%d/krb5cc_%U
  30.  
  31. # This ldap_id_mapping setting is also the default value
  32.  
  33. ldap_id_mapping = true
  34.  
  35. override_homedir = /home/%d/%u
  36.  
  37. default_shell = /bin/bash
  38.  
  39. ad_gpo_map_remote_interactive = +ctxhdx
  40.  

Определяем права на файл и запускаем его:

  1. chmod 0600 /etc/sssd/sssd.conf
  2. systemctl start sssd
  3. systemctl enable sssd 

Устанавливаем adcli:

  1. apt install adcli 

Удаляем keytab файл и подключаемся к домену:

  1. rm -rf /etc/krb5.keytab 
  2. adcli join domain-dns-name -U user -H hostname-fqdn 

Проверяем:

  1. adcli testjoin 
  2. adcli info domain-dns-name

Для того, чтобы при подключении пользователей создавались домашние папки, запускаем:

  1. pam-auth-update 

и выбираем соответствующую опцию.

Теперь можно приступать к инсталляции Linux VDA. Копируем файл инсталлятора и устанавливаем его командой:

  1. dpkg -i xendesktopvda_<version>.ubuntu20.04_amd64.deb 

Если не все зависимости были установлены, после установки пакета можно доставить их командой:

  1. apt update --fix-missing 

Далее, необходимо зайти в каталог /opt/Citrix/VDA/sbin/ , запустить ctxsetup.sh и после ответа на ряд вопросов, получить работающий Linux VDA.

Логи инсталляции находятся в файле /tmp/xdl.configure.log

Итогом всей нашей работы должны служить две запущенные:

  1. systemctl start ctxhdx
  2. systemctl start ctxvda 

и работающие службы

  1. systemctl status ctxvda
  2. systemctl status ctxhdx 

которые, после проверки, сделайте enable.

В любом случае рекомендую ознакомиться с официальной документацией, приведённой по 4й ссылке, там процесс разобран более подробно и содержит всю необходимую вам информацию, которую я мог не учесть или которая мне просто не пригодилась в процессе установке. В случае обнаружения ошибок в статье буду ра вашим замечаниям.

Ссылки, использованные в статье:

  1. Kernel/LTSEnablementStack - Ubuntu Wiki
  2. System requirements (citrix.com)
  3. Install .NET on Linux Distributions | Microsoft Docs
  4. https://docs.citrix.com/en-us/linux-virtual-delivery-agent/current-release/installation-overview/ubuntu.html
  5. How To Install Java with Apt on Ubuntu 20.04 | DigitalOcean
  6. How To Uninstall JDK From Linux ? – Novice Stuffs (wordpress.com)
Назад

Коротко о себе:

Работаю ведущим системным администратором Tune-it.

Занимаюсь инфраструктурными проектами.