Esta guía detalla los pasos necesarios para preparar el acceso remoto a escritorios virtuales utilizando la tecnología ofrecida por Citrix.
Será útil para aquellos que se han familiarizado recientemente con la tecnología de virtualización de escritorios, ya que es una recopilación de comandos útiles, extraídos de aproximadamente 10 manuales, muchos de los cuales están disponibles en los sitios de Citrix, Nvidia, Microsoft, tras iniciar sesión.
Esta implementación contiene los pasos para la preparación del acceso remoto a máquinas virtuales (VM) con aceleradores gráficos Nvidia Tesla M60 y el sistema operativo CentOS 7.
Así que, empecemos.
Preparación del hipervisor para alojar máquinas virtuales
¿Cómo descargar e instalar XenServer 7.4?
¿Cómo agregar XenServer en Citrix XenCenter?
¿Cómo descargar e instalar el controlador Nvidia?
¿Cómo cambiar el modo de Nvidia Tesla M60?
¿Cómo montar el almacenamiento?
XenServer 7.4
Sin que nadie lo notara, el equipo de desarrolladores lanzó CentOS 8.1, una versión completamente gratuita de la distribución comercial de Red Hat. Las novedades son similares disponible, tras iniciar sesión en el sitio .

Procederemos a instalar XenServer.iso en el servidor con 4x NVIDIA Tesla M60 de la manera habitual. En mi caso, el .iso se monta a través de IPMI. Para servidores Dell, la gestión del controlador BMC se realiza a través de IDRAC. Los pasos de instalación son prácticamente idénticos a la instalación de sistemas operativos Linux similares.
Mi dirección de XenServer con GPU es 192.168.1.100
Instalaremos XenCenter.msi en el ordenador local desde el que gestionaremos los hipervisores y las máquinas virtuales. Agregaremos allí el servidor con GPU y XenServer, haciendo clic en la pestaña «Server», luego «Add». Ingresaremos el inicio de sesión y la contraseña de root, indicados durante la instalación de XenServer.

En XenCenter, al hacer clic en el nombre del hipervisor agregado, estará disponible la pestaña «Console». En el menú seleccionaremos «Remote Service Configuration» y habilitaremos la autenticación por SSH — «Enable/Disable Remote Shell».
Controlador Nvidia
Me dejaré llevar por las emociones y diré que en todo el tiempo que he trabajado con vGPU, nunca he ingresado al sitio en el primer intento. Si no funciona la autenticación, recomiendo Internet Explorer.
Descargaremos el zip con vGPU, así como la Utilidad de Cambio de Modo de GPU:
NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip
NVIDIA-gpumodeswitch-2020-01.zip

Estemos atentos a las versiones. En el nombre del archivo comprimido descargado se indica la versión de los controladores NVIDIA compatibles que se pueden instalar posteriormente en las máquinas virtuales. En mi caso, es 390.72.
Transferimos los zips a XenServer y descomprimimos.
Cambiaremos el modo de GPU y instalaremos el controlador vGPU
$ cd NVIDIA-gpumodeswitch-2020-01
$ gpumodeswitch --listgpumodes
$ gpumodeswitch --gpumode graphics
$ cd ../NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81
$ yum install NVIDIA-vGPU-xenserver-7.4-390.72.x86_64.rpm
$ reboot 
Montar almacenamiento
Configuraremos un directorio compartido con NFS en cualquier computadora de la red.
$ yum install epel-release
$ yum install nfs-utils libnfs-utils
$ systemctl enable rpcbind
$ systemctl enable nfs-server
$ systemctl enable nfs-lock
$ systemctl enable nfs-idmap
$ systemctl start rpcbind
$ systemctl start nfs-server
$ systemctl start nfs-lock
$ systemctl start nfs-idmap
$ firewall-cmd --permanent --zone=public --add-service=nfs
$ firewall-cmd --permanent --zone=public --add-service=mountd
$ firewall-cmd --permanent --zone=public --add-service=rpc-bind
$ firewall-cmd --reload
$ mkdir -p /nfs/store1
$ chmod -R 777 /nfs/store1
$ touch /nfs/store1/forcheck
$ cat /etc/exports
...
/nfs/store1 192.168.1.0/24(rw,async,crossmnt,no_root_squash,no_all_squash,no_subtree_check)
$ systemctl restart nfs-serverEn XenCenter, seleccionamos XenServer y en la pestaña 'Storage' elegimos 'New SR'. Especificamos el tipo de almacenamiento — NFS ISO. La ruta debe apuntar al directorio compartido NFS.
Imagen maestra de Citrix basada en Centos 7
¿Cómo crear una máquina virtual con Centos 7?
¿Cómo preparar una máquina virtual para crear un directorio?
Imagen de Centos 7
Con XenCenter crearemos una máquina virtual con GPU. En la pestaña 'VM' haremos clic en 'New VM'.

Seleccionamos los parámetros necesarios:
Plantilla de máquina virtual — Otro medio de instalación
Nombre — plantilla
Instalar desde la biblioteca ISO — Centos 7 (), elegimos del almacenamiento NFS ISO montado.
Número de vCPUs — 4
Topología — 1 socket con 4 núcleos por socket
Memoria — 30 Gb
Tipo de GPU — GRID M60-4Q
Usar este disco virtual — 80 Gb
Red
Después de crearla, la máquina virtual aparecerá en la lista vertical a la izquierda. Haremos clic en ella y pasaremos a la pestaña 'Console'. Esperaremos a que se cargue el instalador de Centos 7 y realizaremos los pasos necesarios para instalar el sistema operativo con la interfaz GNOME.
Preparación de la imagen
La preparación de la imagen con Centos 7 me tomó mucho tiempo. Posteriormente, obtuve un conjunto de scripts que facilitan la configuración inicial de Linux y permiten crear un directorio de máquinas virtuales utilizando Citrix Machine Creation Services (MCS).
El servidor DHCP, instalado en ws-ad, asignó a la nueva máquina virtual la dirección IP 192.168.1.129.
A continuación, presento la configuración básica.
$ hostnamectl set-hostname template
$ yum install -y epel-release
$ yum install -y lsb mc gcc
$ firewall-cmd --permanent --zone=dmz --remove-service=ssh
$ firewall-cmd --permanent --zone=external --remove-service=ssh
$ firewall-cmd --permanent --zone=home --remove-service=ssh
$ firewall-cmd --permanent --zone=home --remove-service=mdns
$ firewall-cmd --permanent --zone=home --remove-service=samba-client
$ firewall-cmd --permanent --zone=home --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=internal --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=internal --remove-service=samba-client
$ firewall-cmd --permanent --zone=internal --remove-service=mdns
$ firewall-cmd --permanent --zone=internal --remove-service=ssh
$ firewall-cmd --permanent --zone=public --remove-service=ssh
$ firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=work --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=work --remove-service=ssh
$ firewall-cmd --permanent --zone=public --add-service=ssh
$ firewall-cmd --complete-reloadEn XenCenter, en la pestaña «Consola», montamos guest-tools.iso en la unidad de DVD de la máquina virtual y ejecutamos la instalación de XenTools para Linux.
$ mount /dev/cdrom /mnt
$ /mnt/Linux/install.sh
$ rebootAl configurar XenServer, usamos el archivo NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip, descargado del sitio web de NVIDIA, que además del controlador NVIDIA para XenServer, contiene el controlador NVIDIA necesario para los clientes vGPU. Lo descargaremos e instalaremos en la VM.
$ cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet modprobe.blacklist=nouveau"
GRUB_DISABLE_RECOVERY="true"
$ grub2-mkconfig -o /boot/grub2/grub.cfg
$ wget http://vault.centos.org/7.6.1810/os/x86_64/Packages/kernel-devel-3.10.0-957.el7.x86_64.rpm
$ yum install kernel-devel-3.10.0-957.el7.x86_64.rpm
$ reboot
$ init 3
$ NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81/NVIDIA-Linux-x86_64-390.75-grid.run
$ cat /etc/nvidia/gridd.conf
ServerAddress=192.168.1.111
ServerPort=7070
FeatureType=1
$ rebootDescargaremos el Agente de Entrega Virtual de Linux 1811 (VDA) para Centos 7. Enlace para descargar. disponible, tras iniciar sesión en el sitio .
$ yum install -y LinuxVDA-1811.el7_x.rpm
$ cat /var/xdl/mcs/mcs.conf
#!/bin/bash
dns1=192.168.1.110
NTP_SERVER=some.ntp.ru
AD_INTEGRATION=winbind
SUPPORT_DDC_AS_CNAME=N
VDA_PORT=80
REGISTER_SERVICE=Y
ADD_FIREWALL_RULES=Y
HDX_3D_PRO=Y
VDI_MODE=Y
SITE_NAME=domain.ru
LDAP_LIST=ws-ad.domain.ru
SEARCH_BASE=DC=domain,DC=ru
START_SERVICE=Y
$ /opt/Citrix/VDA/sbin/deploymcs.sh
$ echo "exclude=kernel* xorg*" >> /etc/yum.confEn Citrix Studio crearemos un Catálogo de Máquinas y un grupo de Entrega. Antes de eso, es necesario instalar y configurar Windows Server.
Windows Server con Controlador de Dominio
¿Cómo descargar e instalar Windows Server 2016?
¿Cómo instalar los componentes de Windows Server?
¿Cómo configurar Active Directory, DHCP y DNS?
Windows Server 2016
Como la máquina virtual (VM) con Windows Server no necesita GPU, utilizaremos un servidor sin GPU como hipervisor. De manera similar a la descripción anterior, instalaremos otro XenServer para alojar las máquinas virtuales del sistema.
Después de esto, crearemos una máquina virtual para Windows Server con Active Directory.
Descargaremos Windows Server 2016 desde el sitio web. . Es mejor acceder al enlace utilizando Internet Explorer.

Usando XenCenter, crearemos una máquina virtual. En la pestaña «VM», haremos clic en «Nueva VM».

Seleccionamos los parámetros necesarios:
Plantilla de VM — Windows Server 2016 (64 bits)
Nombre — ws-ad.domain.ru
Instalar desde la biblioteca ISO — WindowsServer2016.iso, seleccionamos del repositorio NFS ISO montado.
Número de vCPUs — 4
Topología — 1 socket con 4 núcleos por socket
Memoria — 20 Gb
Tipo de GPU — ninguno
Usar este disco virtual — 100 Gb
Red
Después de crearla, la máquina virtual aparecerá en la lista vertical a la izquierda. Haremos clic en ella y pasaremos a la pestaña «Consola». Esperaremos a que se cargue el instalador de Windows Server y realizaremos los pasos necesarios para la instalación del sistema operativo.
Instalaremos XenTools en la VM. Haga clic derecho en la VM, luego seleccione «Instalar Citrix VM Tools...». Después de esto se montará la imagen, que debe iniciar y con la que se instalarán XenTools. Al finalizar la instalación, será necesario reiniciar la VM.
Configuraremos el adaptador de red:
IP — 192.168.1.110
Máscara — 255.255.255.0
Puerta de enlace — 192.168.1.1
DNS1 — 8.8.8.8
DNS2 — 8.8.4.4
Si Windows Server no está activado, procederemos a la activación. La clave se puede obtener en el mismo lugar de donde descargó la imagen.
[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxxConfiguraremos el nombre del equipo. En mi caso es ws-ad.
Instalación de componentes
En el administrador del servidor, seleccionaremos «Agregar roles y características». Marcaremos para instalar el servidor DHCP, el servidor DNS y los servicios de dominio Active Directory. Marcaremos la opción «Reiniciar automáticamente».

Configuración de Active Directory
Después de reiniciar la VM, haremos clic en «Elevar este servidor al nivel de controlador de dominio» y agregaremos un nuevo bosque domain.ru.
Configuración del servidor DHCP
En la parte superior del panel del administrador del servidor, haremos clic en el signo de exclamación para guardar los cambios al instalar el servidor DHCP.
Pasaremos a la configuración del servidor DHCP.

Crearemos un nuevo rango 192.168.1.120-130. No cambiaremos nada más. Elegiremos «Configurar parámetros DHCP ahora» e introduciremos la dirección IP ws-ad (192.168.1.110) como puerta de enlace y DNS, que se especificarán en la configuración de los adaptadores de red de las máquinas virtuales del catálogo.
Configuración del servidor DNS
Pasaremos a la configuración del servidor DNS.

Crearemos una nueva zona de búsqueda directa — zona primaria, para todos los servidores DNS en el dominio domain.ru. No cambiaremos nada más.
Crearemos una nueva zona de búsqueda inversa, eligiendo parámetros similares.
En las propiedades del servidor DNS, en la pestaña «Avanzado», marcaremos la opción «Deshabilitar recursión».
Creación de un usuario de prueba
Pasaremos al «Centro de administración de Active Directory»

En la sección «Usuarios», a la derecha haremos clic en «Crear». Introduciremos un nombre, por ejemplo test, y abajo haremos clic en «Aceptar».

Seleccionaremos el usuario creado y en el menú vertical a la derecha elegiremos «Restablecer contraseña». Mantendremos marcada la opción «Requerir el cambio de contraseña en el próximo inicio de sesión».
Windows Server con Citrix Delivery Controller
¿Cómo descargar e instalar Windows Server 2016?
¿Cómo descargar e instalar Citrix Delivery Controller?
¿Cómo instalar y configurar Citrix License Manager?
¿Cómo instalar y configurar NVIDIA License Manager?
Windows Server 2016
Dado que la máquina virtual (VM) con Windows Server no necesita GPU, utilizaremos un servidor sin GPU como hipervisor.
Descargaremos Windows Server 2016 desde el sitio web. . Es mejor acceder al enlace utilizando Internet Explorer.

Usando XenCenter, crearemos una máquina virtual. En la pestaña «VM», haremos clic en «Nueva VM».

Seleccionamos los parámetros necesarios:
Plantilla de VM — Windows Server 2016 (64 bits)
Nombre — ws-dc
Instalar desde la biblioteca ISO — WindowsServer2016.iso, seleccionamos del repositorio NFS ISO montado.
Número de vCPUs — 4
Topología — 1 socket con 4 núcleos por socket
Memoria — 20 Gb
Tipo de GPU — ninguno
Usar este disco virtual — 100 Gb
Red
Después de crearla, la máquina virtual aparecerá en la lista vertical a la izquierda. Haremos clic en ella y pasaremos a la pestaña «Consola». Esperaremos a que cargue el instalador de Windows Server y realizaremos los pasos necesarios para la instalación del sistema operativo.
Instalaremos XenTools en la VM. Haga clic derecho en la VM, luego seleccione «Instalar Citrix VM Tools...». Después de esto se montará la imagen, que debe iniciar y con la que se instalarán XenTools. Al finalizar la instalación, será necesario reiniciar la VM.
Configuraremos el adaptador de red:
La dirección IP — 192.168.1.111
Máscara — 255.255.255.0
Puerta de enlace — 192.168.1.1
DNS1 — 8.8.8.8
DNS2 — 8.8.4.4
Si Windows Server no está activado, procederemos a la activación. La clave se puede obtener en el mismo lugar de donde descargó la imagen.
[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxxConfiguraremos el nombre del equipo. En mi caso, es ws-dc.
Agregaremos la VM al dominio domen.ru, reiniciaremos e iniciaremos sesión con la cuenta de administrador del dominio DOMENAdministrator.
Controlador de entrega Citrix
Descargaremos Citrix Virtual Apps and Desktops 1811 en ws-dc.domain.ru. Enlace para descargar disponible, tras iniciar sesión en el sitio .

Montaremos el iso descargado y lo ejecutaremos. Seleccionaremos «Citrix Virtual Apps and Desktops 7». Luego haremos clic en «Comenzar». Es posible que se requiera reiniciar.

En mi caso, es suficiente seleccionar los siguientes componentes para la instalación:
Controlador de entrega
Estudio
Servidor de licencias
StoreFront
No cambiamos nada más y hacemos clic en «Instalar». Es probable que se requiera reiniciar varias veces, después de lo cual la instalación continuará.
Una vez que se complete la instalación, se abrirá Citrix Studio: el entorno de gestión de todo el ecosistema Citrix.

Configuración del sitio Citrix
Seleccionaremos la primera sección de tres — Configuración del sitio. Al configurarlo, indicaremos el nombre del sitio — domain.
En la sección «Conexión», indicaremos los datos para conectarse al hipervisor con GPU:
Dirección de conexión —
Nombre de usuario — root
Contraseña — yourpassword
Nombre de conexión — m60
Gestión de almacenamiento — Usar almacenamiento local al hipervisor.
Nombre para estos recursos — m60.
Seleccione redes.
Seleccione un tipo y grupo de GPU — GRID M60-4Q.
Configuración de Catálogos de Máquinas Citrix
Al configurar la segunda sección — Catálogos de Máquinas, elegiremos OS de sesión única (OS de escritorio).
Imagen maestra — elegiremos la imagen preparada de la máquina virtual y la versión de Citrix Virtual Apps and Desktops — 1811.
Elegiremos la cantidad de máquinas virtuales en el catálogo, por ejemplo, 4.
Indicaremos el esquema según el cual se asignarán nombres a las máquinas virtuales, en mi caso es desktop##. En este caso, se crearán 4 VMs con los nombres desktop01-04.
Nombre del catálogo de máquinas — m60.
Descripción del catálogo de máquinas — m60.
Después de crear el catálogo de máquinas con cuatro VMs, se podrán encontrar en la lista vertical de XenCenter, a la izquierda.
Grupo de entrega Citrix
La tercera sección comienza con la selección de la cantidad de VMs a las que se les debe proporcionar acceso. Yo indicaré las cuatro.
En la sección «Escritorios» haremos clic en «Agregar» para añadir el grupo de VMs al que proporcionaremos acceso. Nombre a mostrar — m60.
Nombre del grupo de entrega — m60.
Después de configurar las tres secciones principales, la ventana principal de Citrix Studio se verá aproximadamente así.

Gestor de licencias Citrix
Descargaremos el archivo de licencia a través de la cuenta personal en el sitio web. .
En la lista vertical de la izquierda, seleccionaremos Todas las herramientas de licencia (Legacy). Pasaremos a la pestaña 'Activar y asignar licencias'. Seleccionaremos las licencias Citrix VDA y haremos clic en 'Continuar'. Ingresaremos el nombre de nuestro Delivery Controller — ws-dc.domain.ru y la cantidad de licencias — 4. Presionamos 'Continuar'. Descargaremos el archivo de licencia generado en ws-dc.domain.ru.

En la lista vertical izquierda de Citrix Studio, seleccionaremos la sección 'Licencias'. En la lista vertical derecha, haremos clic en 'Consola de gestión de licencias'. En la ventana del navegador que se abre, ingresaremos los datos de autorización del usuario de dominio DOMENAdministrator.
En Citrix Licensing Manager, pasaremos a la pestaña 'Instalar licencia'. Para agregar el archivo de licencia, debemos seleccionar 'Usar archivo de licencia descargado'.

La instalación de los componentes de Citrix implica el uso de varias máquinas virtuales, un componente por VM. En mi caso, todos los servicios del sistema Citrix funcionan dentro de una sola VM. Por lo tanto, señalaré un bug que me costó especialmente corregir.
Si después de reiniciar ws-dc surgen problemas de diversa índole, recomiendo primero verificar los servicios en ejecución. A continuación, presento una lista de los servicios de Citrix que deben iniciarse automáticamente después de reiniciar la VM:
SQL Server (SQLEXPRESS)
Servicio de configuración de Citrix
Servicio de administración delegado de Citrix
Analítica de Citrix
Servicio de corredor de Citrix
Servicio de registro de configuración de Citrix
Servicio de identidad de AD de Citrix
Servicio de host de Citrix
Biblioteca de aplicaciones de Citrix
Servicio de creación de máquinas de Citrix
Servicio de monitoreo de Citrix
Servicio de storefront de Citrix
Servicio de confianza de Citrix
Servicio de prueba de entorno de Citrix
Servicio de orquestación de Citrix
Servidor de licencias FlexNet -nvidiaMe encontré con un problema que surge al instalar varios servicios de Citrix en una sola VM. Después de reiniciar, no todos los servicios comienzan. Me daba pereza iniciar toda la cadena uno a uno. La solución fue difícil de encontrar en Google, por eso la presento aquí: se deben cambiar dos parámetros en el registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
Nombre : ServicesPipeTimeout
Valor :240000
Nombre : WaitToKillServiceTimeout
Valor : 20000Administrador de licencias de Nvidia
Descargaremos el administrador de licencias de NVIDIA para Windows, a través del panel personal en el sitio web. . Es mejor ingresar a través de Internet Explorer.

Lo instalaremos en ws-dc. Para ello, primero será necesario instalar y agregar la variable de entorno JAVA_HOME. Después de esto, se puede ejecutar setup.exe para instalar el Administrador de Licencias de NVIDIA.

Crearemos un servidor, generaremos y descargaremos el archivo de licencia en la cuenta personal del sitio web. . Transferiremos el archivo de licencia a ws-dc.

Usando un navegador, iniciaremos sesión en la interfaz web del administrador de licencias de NVIDIA, que está disponible en la dirección :8080/licserver y agregaremos el archivo de licencia.

Las sesiones activas que utilizan vGPU se pueden ver en la sección «Clientes licenciados».
Acceso remoto al catálogo de máquinas Citrix
¿Cómo instalar Citrix Receiver?
¿Cómo conectarse al escritorio virtual?
En la computadora de trabajo, abriremos el navegador, en mi caso Chrome, y accederemos a la dirección de la interfaz web Citrix StoreWeb
http://192.168.1.111/Citrix/StoreWebSi Citrix Receiver aún no está instalado, haremos clic en «Detectar Receiver»

Lea atentamente el acuerdo de licencia, descargue e instale Citrix Receiver

Después de la instalación, regresaremos al navegador y haremos clic en «Continuar»

A continuación, en el navegador Chrome se abrirá una notificación, haga clic en «Abrir la aplicación Citrix Receiver Launcher», y luego en «Detectar nuevamente» o «Ya instalado»

Al primer inicio de sesión, utilizaremos los datos del usuario de prueba test. Cambiaremos la contraseña temporal por una permanente.

Después de la autorización, iremos a la pestaña «Aplicaciones» y elegiremos el catálogo «M60»

Descargaremos el archivo propuesto con la extensión .ica. Después de hacer doble clic en él, se abrirá una ventana en Desktop Viewer con el escritorio de Centos 7.

Fuente: habr.com
