Accesso remoto alle VM GPU tramite Citrix

Questa guida descrive in dettaglio i passaggi necessari per fornire l'accesso remoto ai desktop virtuali utilizzando la tecnologia offerta da Citrix.

Sarà utile per coloro che hanno recentemente familiarizzato con la tecnologia di virtualizzazione desktop, in quanto si tratta di una raccolta di comandi utili compilati da circa 10 manuali, molti dei quali sono disponibili sui siti Web Citrix, Nvidia, Microsoft, previa autorizzazione.

Questa implementazione contiene le fasi di preparazione dell'accesso remoto alle macchine virtuali (VM) con acceleratori grafici Nvidia Tesla M60 e sistema operativo Centos 7.

Quindi, iniziamo.

Preparazione di un hypervisor per l'hosting di macchine virtuali

Come scaricare e installare XenServer 7.4?
Come aggiungere XenServer a Citrix XenCenter?
Come scaricare e installare il driver Nvidia?
Come modificare la modalità Nvidia Tesla M60?
Come montare lo spazio di archiviazione?

Xen Server 7.4

Download Link Xen Server 7.4 disponibile dopo aver effettuato l'accesso al sito Citrix.

Accesso remoto alle VM GPU tramite Citrix

Installiamo XenServer.iso su un server con 4x NVIDIA Tesla M60 in modo standard. Nel mio caso l'iso è montato tramite IPMI. Per i server Dell, il BMC viene gestito tramite IDRAC. I passaggi di installazione sono quasi gli stessi dell'installazione di sistemi operativi simili a Linux.

Il mio indirizzo XenServer con GPU è 192.168.1.100

Installiamo XenCenter.msi sul computer locale da cui gestiremo hypervisor e macchine virtuali. Aggiungiamo lì un server con una GPU e XenServer facendo clic sulla scheda "Server", quindi su "Aggiungi". Immettere il nome utente e la password root specificati durante l'installazione di XenServer.

Accesso remoto alle VM GPU tramite Citrix

In XenCenter, dopo aver fatto clic sul nome dell'hypervisor aggiunto, sarà disponibile la scheda "Console". Nel menu, seleziona "Configurazione servizio remoto" e abilita l'autorizzazione tramite SSH - "Abilita/Disabilita Shell remota".

Driver Nvidia

Darò sfogo alle mie emozioni e dirò che in tutto il tempo in cui ho lavorato con vGPU, non ho mai visitato il sito nvid.nvidia.com al primo tentativo. Se l'autorizzazione non funziona, consiglio Internet Explorer.

Scarica zip da vGPU e GPUMode Change Utility:

NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip
NVIDIA-gpumodeswitch-2020-01.zip

Accesso remoto alle VM GPU tramite Citrix

Seguiamo le versioni. Il nome dell'archivio scaricato indica la versione dei driver NVIDIA adatti, che potranno successivamente essere installati sulle macchine virtuali. Nel mio caso è 390.72.

Trasferiamo gli zip su XenServer e li decomprimiamo.

Cambiamo 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

Accesso remoto alle VM GPU tramite Citrix

Montare lo spazio di archiviazione

Impostiamo una directory condivisa utilizzando NFS su qualsiasi computer della 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-server

In XenCenter, seleziona XenServer e nella scheda "Archiviazione", seleziona "Nuova SR". Specifichiamo il tipo di archiviazione: NFS ISO. Il percorso deve puntare alla directory condivisa NFS.

Immagine Citrix Master basata su Centos 7

Come creare una macchina virtuale con Centos 7?

Come preparo una macchina virtuale per creare una directory?

Immagine di Centos7

Utilizzando XenCenter creeremo una macchina virtuale con una GPU. Nella scheda "VM", fare clic su "Nuova VM".

Accesso remoto alle VM GPU tramite Citrix

Seleziona i parametri necessari:

Modello VM: altri supporti di installazione
Nome - modello
Installa dalla libreria ISO - Centos 7 (scaricare), seleziona dall'archivio ISO NFS 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 NetPoulSafe

Una volta creata, la macchina virtuale apparirà nell'elenco verticale a sinistra. Fare clic su di esso e andare alla scheda “Console”. Aspettiamo il caricamento del programma di installazione di Centos 7 e seguiamo i passaggi necessari per installare il sistema operativo con la shell GNOME.

Preparazione dell'immagine

Preparare l'immagine con Centos 7 mi ha richiesto molto tempo. Il risultato è un insieme di script che facilita la configurazione iniziale di Linux e consente di creare una directory di macchine virtuali utilizzando Citrix Machine Creation Services (MCS).

Il server DHCP installato su ws-ad ha assegnato l'indirizzo IP 192.168.1.129 alla nuova macchina virtuale.

Di seguito sono riportate le impostazioni di base.

$ 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-reload

In XenCenter, nella scheda "Console", monta guest-tools.iso sull'unità DVD della macchina virtuale e installa XenTools per Linux.

$ mount /dev/cdrom /mnt
$ /mnt/Linux/install.sh
$ reboot

Durante la configurazione di XenServer, abbiamo utilizzato l'archivio NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip, scaricato dal sito Web NVIDIA, che, oltre al driver NVIDIA per XenServer, contiene il driver NVIDIA necessario per vGPU clienti. Scarichiamolo 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
$ reboot

Scarica Linux Virtual Delivery Agent 1811 (VDA) per Centos 7. Collegamento per il download LinuxVDA disponibile dopo aver effettuato l'accesso al sito Citrix.

$ 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.conf

In Citrix Studio creeremo un catalogo macchine e un gruppo di consegna. Prima di ciò, è necessario installare e configurare Windows Server.

Windows Server con controller di dominio

Come scaricare e installare Windows Server 2016?
Come si installano i componenti di Windows Server?
Come configurare Active Directory, DHCP e DNS?

2016 server Windows

Poiché una macchina virtuale (VM) Windows Server non richiede GPU, utilizzeremo un server senza GPU come hypervisor. Per analogia con la descrizione sopra, installeremo un altro XenServer per le macchine virtuali del sistema hosting.

Successivamente, creeremo una macchina virtuale per Windows Server con Active Directory.

Scarica Windows Server 2016 dal sito Microsoft. È meglio seguire il collegamento utilizzando Internet Explorer.

Accesso remoto alle VM GPU tramite Citrix

Creiamo una macchina virtuale utilizzando XenCenter. Nella scheda "VM", fare clic su "Nuova VM".

Accesso remoto alle VM GPU tramite Citrix

Seleziona i parametri necessari:

Modello VM: Windows Server 2016 (64 bit)
Nome: ws-ad.dominio.ru
Installa dalla libreria ISO: WindowsServer2016.iso, seleziona dall'archivio ISO NFS montato.
Numero di vCPU - 4
Topologia: 1 socket con 4 core per socket
Memoria: 20 GB
Tipo di GPU: nessuno
Usa questo disco virtuale: 100 Gb
Network NetPoulSafe

Una volta creata, la macchina virtuale apparirà nell'elenco verticale a sinistra. Fare clic su di esso e andare alla scheda “Console”. Aspettiamo il download del programma di installazione di Windows Server e completiamo i passaggi necessari per installare il sistema operativo.

Installiamo XenTools nella VM. Fare clic con il tasto destro sulla VM, quindi “Installa Citrix VM Tools...”. Successivamente, verrà montata l'immagine, che dovrà essere avviata e installato XenTools. Una volta completata l'installazione, sarà necessario riavviare la VM.

Configuriamo l'adattatore di rete:

Indirizzo IP: 192.168.1.110
Maschera - 255.255.255.0
Gateway - 192.168.1.1
DNS1-8.8.8.8
DNS2-8.8.4.4

Se Windows Server non è attivato, lo attiveremo. La chiave può essere presa dallo stesso posto in cui hai scaricato l'immagine.

[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Impostiamo il nome del computer. Nel mio caso è ws-ad.

Installazione dei componenti

In Server Manager, seleziona "Aggiungi ruoli e funzionalità". Selezionare il server DHCP, il server DNC e i servizi di dominio Active Directory per l'installazione. Seleziona la casella di controllo "Riavvia automaticamente".

Accesso remoto alle VM GPU tramite Citrix

Configurazione di Active Directory

Dopo aver riavviato la VM, fai clic su "Eleva questo server al livello di un controller di dominio" e aggiungi una nuova foresta domain.ru.

Configurazione di un server DHCP

Nel pannello superiore di Server Manager, fare clic sul punto esclamativo per salvare le modifiche durante l'installazione del server DHCP.

Passiamo alle impostazioni del server DHCP.

Accesso remoto alle VM GPU tramite Citrix

Creiamo una nuova area 192.168.1.120-130. Non cambiamo il resto. Selezionare “Configura impostazioni DHCP adesso” e inserire come gateway e DNS l'indirizzo IP ws-ad (192.168.1.110), che verrà specificato nelle impostazioni degli adattatori di rete delle macchine virtuali dal catalogo.

Configurazione di un server DNS

Passiamo alle impostazioni del server DNS.

Accesso remoto alle VM GPU tramite Citrix

Creiamo una nuova zona di ricerca diretta: zona primaria, per tutti i server DNS nel dominio domain.ru. Non cambiamo nient'altro.

Creiamo una nuova zona di ricerca inversa selezionando opzioni simili.

Nelle proprietà del server DNS, nella scheda "Avanzate", seleziona la casella di controllo "Disabilita ricorsione".

Creazione di un utente di prova

Andiamo al "Centro amministrativo di Active Directory"

Accesso remoto alle VM GPU tramite Citrix

Nella sezione “Utenti” a destra, fai clic su “Crea”. Inserisci un nome, ad esempio test, e fai clic su "OK" in basso.

Accesso remoto alle VM GPU tramite Citrix

Seleziona l'utente creato e seleziona “Reimposta password” nel menu verticale a destra. Lascia la casella di controllo "Richiedi modifica 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?

2016 server Windows

Poiché una macchina virtuale (VM) Windows Server non richiede GPU, utilizzeremo un server senza GPU come hypervisor.

Scarica Windows Server 2016 dal sito Microsoft. È meglio seguire il collegamento utilizzando Internet Explorer.

Accesso remoto alle VM GPU tramite Citrix

Creiamo una macchina virtuale utilizzando XenCenter. Nella scheda "VM", fare clic su "Nuova VM".

Accesso remoto alle VM GPU tramite Citrix

Seleziona i parametri necessari:

Modello VM: Windows Server 2016 (64 bit)
Nome: ws-dc
Installa dalla libreria ISO: WindowsServer2016.iso, seleziona dall'archivio ISO NFS montato.
Numero di vCPU - 4
Topologia: 1 socket con 4 core per socket
Memoria: 20 GB
Tipo di GPU: nessuno
Usa questo disco virtuale: 100 Gb
Network NetPoulSafe

Una volta creata, la macchina virtuale apparirà nell'elenco verticale a sinistra. Fare clic su di esso e andare alla scheda “Console”. Aspettiamo il caricamento del programma di installazione di Windows Server e completiamo i passaggi necessari per installare il sistema operativo.

Installiamo XenTools nella VM. Fare clic con il tasto destro sulla VM, quindi “Installa Citrix VM Tools...”. Successivamente, verrà montata l'immagine, che dovrà essere avviata e installato XenTools. Una volta completata l'installazione, sarà necessario riavviare la VM.

Configuriamo l'adattatore di rete:

Indirizzo IP: 192.168.1.111
Maschera - 255.255.255.0
Gateway - 192.168.1.1
DNS1-8.8.8.8
DNS2-8.8.4.4

Se Windows Server non è attivato, lo attiveremo. La chiave può essere presa dallo stesso posto in cui hai scaricato l'immagine.

[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Impostiamo il nome del computer. Nel mio caso è ws-dc.

Aggiungiamo la VM al dominio domen.ru, riavviamo e accediamo con l'account dell'amministratore del dominio DOMENAdministrator.

Controller di consegna Citrix

Scarica Citrix Virtual Apps and Desktops 1811 da ws-dc.domain.ru. Link per scaricare App e desktop virtuali Citrix disponibile dopo aver effettuato l'accesso al sito Citrix.

Accesso remoto alle VM GPU tramite Citrix

Montiamo l'iso scaricato ed eseguiamolo. Selezionare "Citrix Virtual Apps and Desktops 7". Successivamente, fai clic su "Inizia". Potrebbe essere necessario un riavvio.

Accesso remoto alle VM GPU tramite Citrix

Nel mio caso è sufficiente selezionare i seguenti componenti per l'installazione:

Controller di consegna
Studio
Server licenze
NegozioFront

Non modifichiamo nient'altro e facciamo clic su "Installa". Sarà necessario un riavvio più di una volta, dopodiché l'installazione continuerà.

Una volta completata l'installazione, verrà lanciato Citrix Studio, l'ambiente di gestione dell'intero business Citrix.

Accesso remoto alle VM GPU tramite Citrix

Configurazione del sito Citrix

Selezioniamo la prima sezione delle tre - Configurazione del sito. Durante la configurazione, specificheremo il nome del sito - dominio.

Nella sezione “Connessione” indichiamo i dati per connettere l'hypervisor con la GPU:

Indirizzo di connessione - 192.168.1.100
Nome utente: root
Password: la tua password
Nome connessione: m60

Gestione dell'archivio: utilizza l'archiviazione locale nell'hypervisor.

Nome per queste risorse: m60.

Seleziona reti.

Seleziona un tipo e un gruppo di GPU: GRID M60-4Q.

Configurazione dei cataloghi di macchine Citrix

Quando si configura la seconda sezione - Cataloghi macchine, selezionare Sistema operativo a sessione singola (sistema operativo desktop).

Immagine principale: seleziona l'immagine preparata della macchina virtuale e la versione di Citrix Virtual Apps and Desktops - 1811.

Selezioniamo il numero di macchine virtuali nella directory, ad esempio 4.

Indicheremo lo schema con 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 catalogo macchina - m60.

Descrizione catalogo macchina - m60.

Dopo aver creato un catalogo macchine con quattro VM, è possibile trovarle nell'elenco verticale di XenCenter a sinistra.

Gruppo di consegna Citrix

La terza sezione inizia con la selezione del numero di VM a cui fornire l'accesso. Li elencherò tutti e quattro.

Nella sezione "Desktop", fai clic su "Aggiungi" per aggiungere un gruppo di VM a cui forniremo l'accesso. Nome visualizzato: m60.

Nome del gruppo di consegna - m60.

Dopo aver impostato le tre sezioni principali, la finestra principale di Citrix Studio sarà simile a questa

Accesso remoto alle VM GPU tramite Citrix

Gestore delle licenze Citrix

Scarica il file di licenza tramite il tuo account personale sul sito web Citrix.

Nell'elenco verticale a sinistra, seleziona Tutti gli strumenti di licenza (Legacy). Andiamo alla scheda "Attiva e assegna licenze". Selezionare le licenze Citrix VDA e fare clic su "Continua". Indichiamo il nome del nostro Delivery Controller - ws-dc.domain.ru e il numero di licenze - 4. Fare clic su "Continua". Scarica il file di licenza generato su ws-dc.domain.ru.

Accesso remoto alle VM GPU tramite Citrix

Nell'elenco verticale a sinistra di Citrix Studio, seleziona la sezione "Licenza". Nell'elenco verticale a destra, fare clic su "Console di gestione delle licenze". Nella finestra del browser che si apre, inserisci i dati per l'autorizzazione dell'utente del dominio DOMENAdministrator.

In Citrix Licensing Manager, vai alla scheda “Installa licenza”. Per aggiungere un file di licenza, seleziona "Utilizza file di licenza scaricato".

Accesso remoto alle VM GPU tramite Citrix

L'installazione dei componenti Citrix implica l'utilizzo di diverse macchine virtuali, un componente per VM. Nel mio caso, tutti i servizi di sistema Citrix operano all'interno di una VM. A questo proposito noterò un bug, la cui correzione è stata particolarmente difficile per me.

Se dopo il riavvio di ws-dc si presentano problemi di varia natura, allora ti consiglio di controllare prima i servizi in esecuzione. Ecco un elenco di servizi Citrix che dovrebbero 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 -nvidia

Ho riscontrato un problema che si verifica durante l'installazione di diversi servizi Citrix sulla stessa VM. Dopo un riavvio, non tutti i servizi vengono avviati. Ero troppo pigro per iniziare l'intera catena uno per uno. La soluzione è stata difficile per Google, quindi la presento qui: devi modificare due parametri nel registro:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl
Name : ServicesPipeTimeout
Value :240000

Name : WaitToKillServiceTimeout
Value : 20000

Gestore licenze Nvidia

Scarica il gestore delle licenze NVIDIA per Windows tramite il tuo account personale sul sito web nvid.nvidia.com. È meglio accedere tramite Internet Explorer.

Accesso remoto alle VM GPU tramite Citrix

Installiamolo su ws-dc. Per fare ciò, dovrai prima installare JAVA e aggiungi la variabile d'ambiente JAVA_HOME. È quindi possibile eseguire setup.exe per installare NVIDIA License Manager.

Accesso remoto alle VM GPU tramite Citrix

Creiamo un server, generiamo e scarichiamo un file di licenza nel tuo account personale sul sito web nvid.nvidia.com. Trasferiamo il file di licenza su ws-dc.

Accesso remoto alle VM GPU tramite Citrix

Utilizzando un browser, accedere all'interfaccia Web del gestore licenze NVIDIA, disponibile all'indirizzo localhost:8080/licserver e aggiungere il file di licenza.

Accesso remoto alle VM GPU tramite Citrix

Le sessioni attive che utilizzano vGPU possono essere visualizzate nella sezione "Client con licenza".

Accesso remoto al catalogo delle macchine Citrix

Come installare il ricevitore Citrix?
Come mi collego a un desktop virtuale?

Su un computer da lavoro, apri un browser, nel mio caso è Chrome, e vai all'indirizzo dell'interfaccia web di Citrix StoreWeb

http://192.168.1.111/Citrix/StoreWeb

Se Citrix Receiver non è ancora installato, fare clic su "Rileva ricevitore"

Accesso remoto alle VM GPU tramite Citrix

Leggi attentamente il contratto di licenza, scarica e installa Citrix Receiver

Accesso remoto alle VM GPU tramite Citrix

Dopo l'installazione, tornare al browser e fare clic su "Continua"

Accesso remoto alle VM GPU tramite Citrix

Successivamente, si apre una notifica nel browser Chrome, fare clic su "Apri Citrix Receiver Launcher" e quindi su "Rileva nuovamente" o "Già installato"

Accesso remoto alle VM GPU tramite Citrix

Quando ci colleghiamo per la prima volta, utilizzeremo i dati dell'utente di prova. Cambiamo la password temporanea in una permanente.

Accesso remoto alle VM GPU tramite Citrix

Dopo l'autorizzazione, vai alla scheda "Applicazioni" e seleziona la directory "M60".

Accesso remoto alle VM GPU tramite Citrix

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

Accesso remoto alle VM GPU tramite Citrix

Fonte: habr.com

Aggiungi un commento