Questa guida descrive in dettaglio i passaggi necessari per preparare l'accesso remoto ai desktop virtuali utilizzando la tecnologia offerta da Citrix.
Sarà utile per coloro che si sono recentemente avvicinati alla tecnologia della virtualizzazione dei desktop, poiché è una raccolta di comandi utili, estratti da circa 10 manuali, molti dei quali sono disponibili sui siti di Citrix, Nvidia, Microsoft, dopo l'autenticazione.
Questa implementazione contiene i passaggi per la preparazione dell'accesso remoto alle macchine virtuali (VM) con acceleratori grafici Nvidia Tesla M60 e sistema operativo CentOS 7.
Bene, iniziamo.
Preparazione dell'iper-v per l'hosting delle macchine virtuali
Come scaricare e installare XenServer 7.4?
Come aggiungere XenServer in Citrix XenCenter?
Come scaricare e installare il driver Nvidia?
Come cambiare la modalità di Nvidia Tesla M60?
Come montare lo storage?
XenServer 7.4
Link per il download disponibile dopo l'autenticazione sul sito .

Installeremo XenServer.iso sul server con 4x NVIDIA Tesla M60 in modo standard. Nel mio caso, l'ISO viene montato tramite IPMI. Per i server Dell, la gestione del controller BMC avviene tramite IDRAC. Le fasi di installazione coincidono praticamente con quelle di installazione di Linux e sistemi operativi simili.
Il mio indirizzo XenServer con GPU è 192.168.1.100.
Installeremo XenCenter.msi sul computer locale da cui gestiremo gli hypervisor e le macchine virtuali. Aggiungeremo lì il server con la GPU e XenServer, cliccando sulla scheda "Server", poi "Aggiungi". Inseriremo il login e la password di root forniti durante l'installazione di XenServer.

In XenCenter, dopo aver cliccato sul nome dell'hypervisor aggiunto, sarà disponibile la scheda "Console". Nel menu selezioneremo "Configurazione Servizio Remoto" e attiveremo l'autenticazione SSH — "Abilita/Disabilita Remote Shell".
Driver Nvidia
Non posso fare a meno di dire che, durante tutto il tempo di utilizzo di vGPU, non sono mai riuscito a entrare nel sito alla prima tentativo. Se l'autenticazione non funziona, consiglio di usare Internet Explorer.
Scaricheremo il file zip contenente vGPU, oltre a GPUMode Change Utility:
NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip
NVIDIA-gpumodeswitch-2020-01.zip

Controlliamo le versioni. Nel nome dell'archivio scaricato è indicata la versione dei driver NVIDIA compatibili che possono essere successivamente installati sulle macchine virtuali. Nel mio caso, si tratta della versione 390.72.
Trasferiamo i file zip su XenServer e li estraiamo.
Modifichiamo la modalità GPU e installiamo il driver 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 
Montiamo lo storage
Imposteremo una directory condivisa utilizzando NFS su qualsiasi computer nella rete.
$ 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-serverIn XenCenter selezioniamo XenServer e nella scheda «Storage» scegliamo «New SR». Indichiamo il tipo di storage — NFS ISO. Il percorso deve puntare alla directory condivisa NFS.
Citrix Master Image basato su Centos 7
Come creare una macchina virtuale con Centos 7?
Come preparare una macchina virtuale per la creazione del catalogo?
Immagine Centos 7
Utilizzando XenCenter creeremo una macchina virtuale con GPU. Nella scheda «VM» clicchiamo su «New VM».

Selezioniamo le opzioni necessarie:
VM template — Altri media di installazione
Nome — template
Installa dalla libreria ISO — CentOS 7 (), scegliamo dal repository NFS ISO montato.
Numero di vCPU — 4
Topologia — 1 socket con 4 core per socket
Memoria — 30 Gb
Tipo di GPU — GRID M60-4Q
Usa questo disco virtuale — 80 Gb
Network log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats timeout 30s user haproxy group haproxy daemondefaults log global mode http option httplog option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000frontend http_front bind *:80 stats uri /haproxy?stats default_backend http_backbackend http_back balance roundrobin server server_name1 private_ip1:80 check server server_name2 private_ip2:80 check
Dopo la creazione, la macchina virtuale apparirà nell'elenco verticale a sinistra. Facciamo clic su di essa e accediamo alla scheda «Console». Aspettiamo il caricamento dell'installatore di CentOS 7 e seguiamo i passaggi necessari per installare il sistema operativo con interfaccia GNOME.
Preparazione dell'immagine
La preparazione dell'immagine di CentOS 7 ha richiesto molto tempo. Successivamente, è stato creato un insieme di script che facilita la configurazione iniziale di Linux e consente di creare un catalogo di macchine virtuali utilizzando Citrix Machine Creation Services (MCS).
Il server DHCP, installato su ws-ad, ha assegnato alla nuova macchina virtuale l'indirizzo IP 192.168.1.129.
Di seguito fornirò le impostazioni principali.
$ 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
$ firewalld --permanent --zone=work --remove-service=ssh
$ firewall-cmd --permanent --zone=public --add-service=ssh
$ firewall-cmd --complete-reloadIn XenCenter, montiamo il file guest-tools.iso nel lettore DVD della macchina virtuale e procediamo con l'installazione di XenTools per Linux.
$ mount /dev/cdrom /mnt
$ /mnt/Linux/install.sh
$ rebootDurante la configurazione di XenServer abbiamo utilizzato l'archivio NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip, scaricato dal sito NVIDIA, che contiene, oltre al driver NVIDIA per XenServer, il driver necessario per i clienti vGPU. Scarichiamo e installiamolo sulla 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
$ rebootScarichiamo il Linux Virtual Delivery Agent 1811 (VDA) per Centos 7. Link per il download disponibile dopo l'autenticazione sul sito .
$ 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.confIn Citrix Studio creiamo un Catalogo Macchine e un gruppo di Delivery. Prima di farlo, è necessario installare e configurare Windows Server.
Windows Server con Domain Controller
Come scaricare e installare Windows Server 2016?
Come installare i componenti di Windows Server?
Come configurare Active Directory, DHCP e DNS?
Windows Server 2016
Poiché la macchina virtuale (VM) con Windows Server non ha bisogno di GPU, utilizzeremo un server senza GPU come hypervisor. Analogamente alla descrizione sopra, installeremo un altro XenServer per ospitare le macchine virtuali di sistema.
Dopo questo, creeremo una macchina virtuale per Windows Server con Active Directory.
Scaricheremo Windows Server 2016 dal sito . È meglio seguire il link utilizzando Internet Explorer.

Utilizzando XenCenter, creeremo una macchina virtuale. Nella scheda "VM", faremo clic su "New VM."

Selezioniamo le opzioni necessarie:
VM template — Windows Server 2016 (64-bit)
Name — ws-ad.domain.ru
Install from ISO library — WindowsServer2016.iso, selezioniamo dalla memoria NFS ISO montata.
Numero di vCPU — 4
Topologia — 1 socket con 4 core per socket
Memory — 20 Gb
GPU type — none
Use this virtual disk — 100 Gb
Network log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats timeout 30s user haproxy group haproxy daemondefaults log global mode http option httplog option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000frontend http_front bind *:80 stats uri /haproxy?stats default_backend http_backbackend http_back balance roundrobin server server_name1 private_ip1:80 check server server_name2 private_ip2:80 check
Dopo la creazione, la macchina virtuale apparirà nella lista verticale a sinistra. Faremo clic su di essa e passeremo alla scheda "Console". Aspettiamo il caricamento dell'installatore di Windows Server e seguiamo i passaggi necessari per l'installazione del sistema operativo.
Installeremo XenTools nella VM. Tasto destro sulla VM, poi "Install Citrix VM Tools…". Dopo questo, verrà montata un'immagine che deve essere avviata per installare XenTools. Al termine dell'installazione sarà necessario riavviare la VM.
Configuriamo l'adattatore di rete:
IP address — 192.168.1.110
Subnet mask — 255.255.255.0
Gateway — 192.168.1.1
DNS1 — 8.8.8.8
DNS2 — 8.8.4.4
Se Windows Server non è attivato, procediamo con l'attivazione. Puoi ottenere la chiave dallo stesso luogo da cui hai scaricato l'immagine.
[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxxImposteremo il nome del computer. Nel mio caso è ws-ad.
Installazione dei componenti
Nel gestore server selezioneremo 'Aggiungi ruoli e componenti'. Spunteremo per installare il server DHCP, il server DNC e i servizi di dominio Active Directory. Spunteremo anche l'opzione 'Riavvia automaticamente'.

Configurazione di Active Directory
Dopo il riavvio della VM, facciamo clic su 'Promuovi questo server a controller di dominio' e aggiungiamo un nuovo foresto domain.ru.
Configurazione del server DHCP
Nella barra superiore del gestore server cliccheremo sull'icona di avviso per salvare le modifiche durante l'installazione del server DHCP.
Andiamo alle impostazioni del server DHCP.

Creeremo un nuovo intervallo 192.168.1.120-130. Lasciamo il resto invariato. Selezioniamo 'Configura ora le impostazioni DHCP' e inseriamo l'indirizzo IP ws-ad (192.168.1.110) come gateway e DNS, che saranno indicati nelle impostazioni degli adattatori di rete delle macchine virtuali dal catalogo.
Configurazione del server DNS
Andiamo alle impostazioni del server DNS.

Creeremo una nuova zona di ricerca diretta — primary zone, per tutti i server DNS nel dominio domain.ru. Non cambiamo nient'altro.
Creiamo una nuova area di accesso remoto selezionando parametri simili.
Nelle proprietà del server DNS, sotto la scheda "Avanzate", selezioniamo l'opzione "Disabilita ricorsione".
Creazione di un utente di prova
Passiamo al "Centro di amministrazione Active Directory"

Nella sezione "Utenti", sulla destra, clicchiamo su "Crea". Inseriamo un nome, ad esempio test, e in basso facciamo clic su "OK".

Selezioniamo l'utente creato e nel menu verticale a destra scegliamo "Reimposta password". Lasciamo spuntata l'opzione "Richiedi cambio password al prossimo accesso".
Windows Server con Citrix Delivery Controller
Come scaricare e installare Windows Server 2016?
Come scaricare e installare Citrix Delivery Controller?
Come installare e configurare Citrix License Manager?
Come installare e configurare NVIDIA License Manager?
Windows Server 2016
Poiché la macchina virtuale (VM) con Windows Server non ha bisogno di GPU, useremo come hypervisor un server senza GPU.
Scaricheremo Windows Server 2016 dal sito . È meglio seguire il link utilizzando Internet Explorer.

Utilizzando XenCenter, creeremo una macchina virtuale. Nella scheda "VM", faremo clic su "New VM."

Selezioniamo le opzioni necessarie:
VM template — Windows Server 2016 (64-bit)
Nome — ws-dc
Install from ISO library — WindowsServer2016.iso, selezioniamo dalla memoria NFS ISO montata.
Numero di vCPU — 4
Topologia — 1 socket con 4 core per socket
Memory — 20 Gb
GPU type — none
Use this virtual disk — 100 Gb
Network log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats timeout 30s user haproxy group haproxy daemondefaults log global mode http option httplog option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000frontend http_front bind *:80 stats uri /haproxy?stats default_backend http_backbackend http_back balance roundrobin server server_name1 private_ip1:80 check server server_name2 private_ip2:80 check
Dopo la creazione, la macchina virtuale apparirà nell'elenco verticale a sinistra. Clicchiamo su di essa e passiamo alla scheda "Console". Attenderemo il caricamento dell'installer di Windows Server ed eseguiremo i passi necessari per l'installazione del sistema operativo.
Installeremo XenTools nella VM. Tasto destro sulla VM, poi "Install Citrix VM Tools…". Dopo questo, verrà montata un'immagine che deve essere avviata per installare XenTools. Al termine dell'installazione sarà necessario riavviare la VM.
Configuriamo l'adattatore di rete:
Indirizzo IP — 192.168.1.111
Subnet mask — 255.255.255.0
Gateway — 192.168.1.1
DNS1 — 8.8.8.8
DNS2 — 8.8.4.4
Se Windows Server non è attivato, procediamo con l'attivazione. Puoi ottenere la chiave dallo stesso luogo da cui hai scaricato l'immagine.
[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxxImposteremo il nome del computer. Nel mio caso è ws-dc.
Aggiungeremo la VM al dominio domen.ru, riavvieremo e ci autenticheremo con l'account di amministratore di dominio DOMENAdministrator.
Controller di distribuzione Citrix
Scaricheremo Citrix Virtual Apps and Desktops 1811 su ws-dc.domain.ru. Link per il download disponibile dopo l'autenticazione sul sito .

Montiamo l'iso scaricata e avviamola. Selezioniamo «Citrix Virtual Apps and Desktops 7». Poi clicchiamo su «Inizia». Potrebbe essere necessario riavviare.

Nel mio caso è sufficiente selezionare per l'installazione i seguenti componenti:
Controller di distribuzione
Studio
Server di licenza
StoreFront
Non cambiamo nient'altro e clicchiamo su «Installa». Potrebbe essere necessario riavviare più volte, dopo di che l'installazione continuerà.
Una volta completata l'installazione, si avvierà Citrix Studio — l'ambiente di gestione di tutto l'ecosistema Citrix.

Configurazione del sito Citrix
Selezioniamo la prima sezione delle tre — Configurazione del sito. Durante la configurazione indichiamo il Nome del sito — domain.
Nella sezione «Connessione» indiceremo i dati per collegarci all'iperconvergenza con GPU:
Indirizzo di connessione —
Nome utente — root
Password — yourpassword
Nome di connessione — m60
Gestione dello store — Usa la memoria locale all'iperconvergenza.
Nome per queste risorse — m60.
Seleziona reti.
Seleziona un tipo di GPU e gruppo — GRID M60-4Q.
Configurazione dei cataloghi delle macchine Citrix
Durante la configurazione della seconda sezione — Cataloghi delle macchine, selezioniamo OS a sessione singola (Desktop OS).
Immagine master — selezioniamo un'immagine virtuale preparata e la versione di Citrix Virtual Apps and Desktops — 1811.
Selezioniamo il numero di macchine virtuali nel catalogo, ad esempio 4.
Specificheremo lo schema secondo cui verranno assegnati i nomi alle macchine virtuali, nel mio caso è desktop##. In questo caso verranno create 4 VM con i nomi desktop01-04.
Nome del catalogo macchine — m60.
Descrizione del catalogo macchine — m60.
Dopo aver creato il catalogo macchine con quattro VM, sarà possibile trovarle nell'elenco verticale di XenCenter a sinistra.
Gruppo di distribuzione Citrix
La terza sezione inizia con la selezione del numero di VM a cui fornire accesso. Indicherò tutte e quattro.
Nella sezione «Desktops» faremo clic su «Add» per aggiungere il gruppo di VM a cui daremo accesso. Nome visualizzato — m60.
Nome del gruppo di distribuzione — m60.
Dopo aver configurato le tre sezioni principali, la finestra principale di Citrix Studio apparirà circa così.

Gestore delle licenze Citrix
Scarichiamo il file di licenza tramite il nostro account sul sito. .
Nell'elenco verticale a sinistra selezioniamo Tutti gli strumenti di licensing (Legacy). Passiamo alla scheda «Attiva e assegna licenze». Selezioniamo le licenze Citrix VDA e facciamo clic su «Continua». Indicheremo il nome del nostro Delivery Controller — ws-dc.domain.ru e il numero di licenze — 4. Facciamo clic su «Continua». Scaricheremo il file di licenza generato su ws-dc.domain.ru.

Nell'elenco verticale a sinistra di Citrix Studio, selezioniamo la sezione «Licensing». Nell'elenco verticale a destra, faremo clic su «License Management Console». Nella finestra del browser che si apre, inseriremo i dati per l'autenticazione dell'utente di dominio DOMENAdministrator.
In Citrix Licensing Manager, passiamo alla scheda «Install License». Per aggiungere un file di licenza, dobbiamo selezionare «Use downloaded license file».

L'installazione dei componenti Citrix prevede l'uso di più macchine virtuali, un componente corrisponde a una VM. Nel mio caso, tutti i servizi di sistema di Citrix funzionano all'interno di una sola VM. Pertanto, segnalerò un bug che mi è costato particolarmente duro da risolvere.
Se dopo il riavvio del ws-dc si verificano problemi di varia natura, consiglio innanzitutto di controllare i servizi in esecuzione. Riporto di seguito l'elenco dei servizi Citrix che devono avviarsi automaticamente dopo il riavvio della VM:
SQL Server (SQLEXPRESS)
Citrix Configuration Service
Citrix Delegated Administration Service
Citrix Analytics
Citrix Broker Service
Citrix Configuration Logging Service
Citrix AD Identity Service
Citrix Host Service
Citrix App Library
Citrix Machine Creation Service
Citrix Monitor Service
Citrix Storefront Service
Citrix Trust Service
Citrix Environment Test Service
Citrix Orchestration Service
FlexNet License Server -nvidiaHo riscontrato un problema durante l'installazione di diversi servizi Citrix su una VM. Dopo il riavvio, non tutti i servizi partono. Era faticoso avviare l'intera catena uno per uno. Soluzione difficile da trovare su Google, quindi la riporto qui: è necessario modificare due parametri nel registro.
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl
Nome: ServicesPipeTimeout
Valore: 240000
Nome: WaitToKillServiceTimeout
Valore: 20000Nvidia licence manager
Scarichiamo il gestore delle licenze NVIDIA per Windows, tramite l'area personale sul sito. . È meglio utilizzare Internet Explorer.

Installeremo questo su ws-dc. Per fare ciò, sarà prima necessario installare e aggiungere la variabile d'ambiente JAVA_HOME. Dopo questo, si può avviare setup.exe per installare il NVIDIA License Manager.

Creeremo un server, genereremo e scaricheremo il file di licenza nell'area personale sul sito. . Trasferiremo il file di licenza su ws-dc.

Utilizzando il browser, ci autenticheremo nell'interfaccia web del gestore delle licenze NVIDIA, accessibile all'indirizzo :8080/licserver e aggiungeremo il file di licenza.

Le sessioni attive che utilizzano vGPU possono essere visualizzate nella sezione «Client Licenziati».
Accesso remoto al catalogo macchine Citrix.
Come installare Citrix Receiver?
Come connettersi a un desktop virtuale?
Apriamo il browser sul computer di lavoro, nel mio caso Chrome, e accediamo all'interfaccia web di Citrix StoreWeb
http://192.168.1.111/Citrix/StoreWebSe Citrix Receiver non è ancora installato, clicchiamo su «Scoprire Receiver»

Leggiamo attentamente il contratto di licenza, scarichiamo e installiamo Citrix Receiver

Dopo l'installazione, torniamo al browser e clicchiamo su «Continua»

In seguito, nel browser Chrome si apre una notifica, cliccare su «Apri l'applicazione Citrix Receiver Launcher», poi su «Scoprire di nuovo» o «Già installato»

Al primo accesso utilizzeremo i dati dell'utente di prova test. Cambiamo la password temporanea in una permanente.

Dopo l'autenticazione, andiamo alla scheda «Applicazioni» e selezioniamo il catalogo «M60»

Scarichiamo il file proposto con estensione .ica. Dopo un doppio clic su di esso, si aprirà una finestra in Desktop Viewer con il desktop Centos 7

Fonte: habr.com
