CVADMT: Citrix Virtual Apps and Desktops Migration Tool

In passato ho sviluppato un tool, che avevo nominato CVAMT, (https://www.silviobalduzzi.com/2020/04/cvamt-citrix-virtual-apps-migration-tool/) che aveva lo scopo di semplificare la migrazione delle applicazioni pubblicate all’interno delle farm Citrix. Tale tool era basato sul pacchetto Citrix POSH e permetteva di migrare esclusivamente le applicazioni da farm OnPrem verso un’altra farm OnPrem o verso il Citrix Cloud.

Nei mesi scorsi Citrix ha rilasciato in preview un nuovo tool (in seguito ne sono state rilasciate diverse versioni aggiornate), nominato Citrix Auto Config, che è composto da diverse funzioni powershell predisposte per migrare tutte le configurazioni di una farm OnPrem verso una farm in Citrix Cloud; ho per cui deciso di evolvere il CVADM verso qualcosa di più completo; ecco che è nata l’idea di sviluppare CVADMT.

CVADMT è un’applicazione sviluppata interamente in Powershell e basata in particolar modo sulle funzionalità rese disponibili dal Citrix Auto Config.

In aggiunta, CVADMT aggiunge funzionalità di controllo, di logging e la possibilità di avviare diverse importazioni in parallelo, tramite l’uso del multi-thread.

CVADMT, all’avvio, verifica la presenza del pacchetto “Citrix Auto Config” e installa un modulo powershell necessario per la lettura dei file .yml.

La fase di configurazione prevede la selezione di una cartella temporanea, in cui salvare i file .yml esportati; in tale posizione verranno poi automaticamente create due sotto-cartelle “OnPrem” e “Cloud”, dedicate al salvataggio delle due esportazioni.

In seguito CVADMT predispone, all’interno della cartella appena selezionata, due file di configurazione distinti:
– CustomerInfo.yml: in cui inserire le credenziali di accesso al tenant Citrix Cloud;
– OnPremInfo.yml: in cui compilare l’indirizzo del Delivery Controller della farm OnPrem;

Tali file devono essere compilati con le informazioni richieste.

Non appena compilati i file, è possibile riselezionare la cartella temporanea (usando il bottone “Select Path”) e CVADMT leggerà le informazioni inserite nei due file .yml di cui sopra.

Avviando le esportazioni, le due cartelle “OnPrem” e “Cloud” verranno riempite con i file .yml estratti dai due ambienti; al termine dell’esportazione CVADMT leggerà i file e predisporrà l’interfaccia per l’avvio di importazioni massive e/o puntuali delle componenti.

L’interfaccia grafica di CVADMT è studiata per semplificare l’avvio di processi di importazione delle componenti dalla farm OnPrem verso il Citrix Cloud;

La GUI di CVADMT presenta una sezione di Logging delle attività svolte, che vengono anche salvate in un file in “C:\Temp\” (posizione di default per le esportazioni).

Le righe di Log specificano, oltre all’orario di esecuzione, anche l’argomento al quale si riferiscono; esempio:

[21-12-2020 11:26:12][GUI] Citrix Automated Configuration PowerShell - 1.0.238.17
[21-12-2020 11:26:16][GUI] Module Powershell-Yaml import…
[21-12-2020 11:26:17][GUI] Read file OnPremInfo.yml…
[21-12-2020 11:26:17][GUI] Read file CustomerInfo.yml
[21-12-2020 11:29:58][ONPREM] Farm OnPrem configurations export…
[21-12-2020 11:29:58][CLOUD] Farm Cloud configurations export…
[21-12-2020 11:30:22][ONPREM] Farm OnPrem configurations export terminated.
[21-12-2020 11:31:42][GUI] Exports terminated.
[21-12-2020 11:31:42][ONPREM] MachineCatalog.yml import…
[21-12-2020 11:31:43][ONPREM] MachineCatalog.yml imported!
[21-12-2020 11:31:43][ONPREM] DeliveryGroup.yml import…
[21-12-2020 11:31:43][ONPREM] DeliveryGroup.yml imported!
[21-12-2020 11:31:43][ONPREM] ApplicationGroup.yml Import
[21-12-2020 11:31:43][ONPREM] ApplicationGroup.yml imported!
[21-12-2020 11:31:43][ONPREM] Application.yml import…
[21-12-2020 11:31:44][ONPREM] Application.yml imported!
[21-12-2020 11:31:44][ONPREM] Icon.yml import…
[21-12-2020 11:31:47][ONPREM] Icon.yml imported!
[21-12-2020 11:31:47][CLOUD] MachineCatalog.yml import…
[21-12-2020 11:31:47][CLOUD] MachineCatalog.yml imported!
[21-12-2020 11:31:47][CLOUD] DeliveryGroup.yml import…
[21-12-2020 11:31:48][CLOUD] DeliveryGroup.yml imported!
[21-12-2020 11:31:48][CLOUD] ApplicationGroup.yml import…
[21-12-2020 11:31:48][CLOUD] ApplicationGroup.yml imported!
[21-12-2020 11:31:48][CLOUD] Application.yml import…
[21-12-2020 11:31:48][CLOUD] Application.yml imported!
[21-12-2020 11:31:48][CLOUD] Icon.yml import…
[21-12-2020 11:31:53][CLOUD] Icon.yml imported!

Spostandosi con il Tab all’interno della sezione “Migration”, sarà possibile selezionare le risorse da importare nel Citrix Cloud. La sezione in alto è predisposta per eseguire la migrazione di tutte le componenti selezionabili.

Tali importazioni andranno a replicare, per le componenti selezionate, tutte le configurazioni presenti nei file .yml (esportati dalla farm OnPrem) verso la farm in CitrixCloud (dove possibile).

La sezione centrale della finestra è predisposta, invece, per permettere la visualizzazione delle risorse da migrare e la migrazione puntuale delle sole risorse selezionate.

Se, per esempio, migrassimo i Delivery Group dalla sezione in alto, ciò comporterebbe una migrazione totale di tutti i Delivery Group presenti nella farm OnPrem (e delle relative configurazioni/risorse pubblicate); se invece volessimo eseguire la migrazione puntuale di alcuni Delivery Group definiti, potremmo selezionarli uno alla volta dalla sezione centrale e cliccare sul tasto “Import Selected Delivery Group”. CVADMT avvierebbe un thread di importazione per ogni attività di Import definita, e loggherebbe l’inizio e il termine di ognuna delle azioni eseguite. Al termine di ogni azione verrà automaticamente aperto il file di log specifico all’azione appena terminata (file di log generato dalle chiamate eseguite da Citrix Auto Config).

CVADMT permette quindi di eseguire la migrazione massiva o puntuale delle componenti e migliorare il controllo sullo stato di avanzamento delle attività di importazione.

Avviando l’applicazione in un momento diverso, è possibile rileggere i file .yml precedentemente esportati e procedere con le attività di migrazione mancanti, anche in fasi successive. E’ ovviamente possibile anche copiare le esportazioni su un’altra macchina e procedere con le attività su macchine diverse (per esempio per mancanza di accesso ad internet sui DDC, ecc…).

L’ultima Tab di CVADMT rende disponibile un browser leggero per l’accesso al portale di amministrazione di Citrix Cloud:

Tale browser può essere utile per avere un unico punto di accesso da cui verificare la corretta importazione delle componenti migrate con CVADMT.

Tra le ultime funzionalità aggiunte nella release 2.1.0.22, spicca la possibilità di rinominare le VM presenti all’interno del file DeliveryGroup.yml:

Tale funzionalità è stata implementata per un’esigenza sorta durante l’uso di CVADMT in un caso specifico: ho avuto la necessità di eseguire una migrazione ricreando Machine Catalogs paralleli a quelli in funzione nella farm OnPrem (per non dare disservizio agli utenti in produzione) e l’esportazione della farm OnPrem riportava, chiaramente, gli hostname delle macchine presenti nei Machine Catalog originali. Con questa funzione è possibile selezionare le macchine presenti nelle esportazioni e sostituirle con gli hostname delle nuove macchine appena ricreate. In fase di salvataggio CVADMT esegue un backup del file DeliveryGroup.yml (salvandolo come DeliveryGroup-BCK) e sostituisce gli hostname delle VM nel file .yml.

Prossimi sviluppi:

Sto testando l’implementazione di richieste powershell verso i servizi Citrix (tramite RestAPI). Tale funzionalità potrebbe essere utile per ottenere lo stato aggiornato dell’ambiente Cloud, senza eseguire ogni volta il backup completo dell’ambiente. Vorrei poter eseguire richieste online all’ambiente Cloud, per ottenere l’elenco delle risorse e confrontarlo con ciò che si vuole migrare (anche per verifica dello stato delle migrazioni eseguite).

In questi giorni sto mettendo alla prova CVADMT in una migrazione di una trentina di Delivery Group di un cliente, per un totale di più di 1000 VM. Facilmente, poi, mi verranno altre idee da sviluppare per migliorarlo ulteriormente!

CVADMT

2.1.0.25
  • 9 mesi ago Update Optimized the installer wizard with prerequisites
  • 9 mesi ago Update Optimized the powershell code
2.1.0.22
  • 9 mesi ago Add Added the Machines renaming function into Delivery Groups
  • 9 mesi ago Fixed Bug fixes
  • 9 mesi ago Update Optimized the installer wizard with prerequisites
2.1.0.14
  • 9 mesi ago Fixed Bug fixes and log optimization
  • 9 mesi ago Add Added the installer wizard
2.1.0.13
  • 9 mesi ago Add First public release

Share with: