Automatisation Citrix : VDI, Catalogues et Delivery Groups

0
(0)


L’automatisation de Citrix, notamment pour la gestion des VDI, des Machine Catalogs et des Delivery Groups, est essentielle pour gagner en efficacité. Dans cet article, je vous propose une série de scripts pratiques pour simplifier et optimiser la gestion de ces composants Citrix. Provenant de mon ancien site mickaelroy.starprince.fr, ces scripts vous aideront à automatiser les tâches répétitives et améliorer la gestion globale de vos infrastructures Citrix.

Je vous donne le lien tout de suite vers mon GitHub, les plus courageux lirons la suite de l’article.


Prérequis

Les PSSnapin Citrix (non compatibles avec PowerShell 7) devront être installés sur le poste qui exécutera ce script.

Les modules VMWare.Cli et Active Directory peuvent être nécessaires pour certains scripts.

Présentation des scripts d’automatisation Citrix

Certains sont plus pointus que d’autres aussi, je ne m’attarderai que sur ceux-là.

Obtention des Machines Catalogs associés à un Delivery Group Citrix

PowerShell
Get-CtxMachineCatalog -DeliveryGroups [NomDesDeliveryGroup]

Get-CtxMachineCatalog: Ce script fait ce que ne fait pas ceux fournis par le PSSnappin Citrix. Il peut être étonnant de l’apprendre.

Personnellement je m’en sers a chaque fois que je mets à jour une ferme Citrix.

Avec cette simple ligne, j’obtiens les Machine Catalogs que contient le(s) Delivery Group(s).

Glaçage sur le gâteau, DeliveryGroups est un paramètre dynamique.

Automatisation de la mise-à-jour des MCA Citrix

Mon premier script et mon préféré.

Je cite la source de hallspalmer pour la forme, si vous souhaitez vous brûler la cornée sur son script je vous invite à le copier dans un éditeur et de vous armer d’une belle paire de lunettes.

Son script se veut plus compliqué que nécessaire, je pensais m’en servir comme base pour traiter mon besoin, au final je n’ai rien gardé.

En outre, son script pose sans cesse des questions et l’on perd donc l’intérêt de l’automatisme.

Oui je sais, je critique encore.

Pour dire vrai, mon script ne casse pas trois pattes à un canard non plus #ExpressionDeVieux

Le cœur réside en deux actions, la création d’un snapshot et le déclenchement de la publication.

Tout le reste n’est que cosmétique, et il y a beaucoup, beaucoup de cosmétique.

PowerShell
Get-CtxMachineCatalog -DeliveryGroups [NomDesDeliveryGroup] | Update-CtxMachineCatalog -SnapshotRetentionDelay 0

Cerise sur le gâteau, cette éxecuion ne créera qu’un seul snapshot par Golden Image et ce, quelque soit le nombre de Delivery Groups spécifiés.

Note: A la fin du script, vous pourrez consulter l’avancement du déploiement à l’aide de ce petit bout de code.

PowerShell
$provTask = Get-ProvTask -AdminAddress $adminAddress -TaskId $PubTask

Sources: CTX129205

Création d’un Machine Catalog Citrix

New-CtxMachineCatalog: Ce script peut vous servir de base si vous avez un besoin spécifique. A l’usage il est assez lourd, il demande trois voire quatre paramètres dont le Hosting. Peut être aura-t-il du succès si les paramètres deviennent dynamiques (aucun ne l’est pour le moment)

Mais la mécanique est là. si vous savez quoi renseigner, il fera tout le travail pour vous.

PowerShell
New-CtxMachineCatalog -CatalogName "MonCatalogue" -HostingName "MonHébergement" -MasterVM "MonImageMaître" -NamingScheme "xenvda1##" -Count 5

Il vous faudra peut être faire un travail sur l’algorithme qui génère le NamingScheme.
J’ai écrit cela à titre d’exemple, mais il vous faudra surement le faire correspondra à vos conventions de nommage.

PowerShell
    Function New-NamingScheme {
        # This function is a sample, enter you own code to presume the Naming Scheme automatically.
        $TriGram = $CatalogName.Split("_")[4]
        [Int]$SiteNum = If (($CatalogName.Split("_")[1]) -eq 'SITEA') { 2 }
        ElseIf (($CatalogName.Split("_")[1]) -eq 'SITEB') { 1 }
        Else { Throw "Le Machine Catalog ne contient ni SITEA ni SITEB." }
        $NamingScheme = "xenvda" + $TriGram + $SiteNum + "##"
        Return " $($NamingScheme.ToLower())"
    }

Source: Blog Citrix

Ajout de VDI à un Machine Catalog Citrix

Add-CtxMachine est un script qui parle de lui même, il ajoutera des instances de VDI pour vous.

PowerShell
Add-CtxMachine -CatalogName "MyMachineCatalog" -DeliveryGroup "MyDeliveryGroup" -Count 2

Il donnera naissance par la suite à un autre script Initialize-CtxMachine

Source: CTX550420

Automatisation de la reconstruction d’un VDI Citrix

Iniitalize-CtxMachine est le dernier script en date, il repose beaucoup sur la conception de Add-CtxMachine. Il s’occupe de supprimer une machine et de la remplacer par une nouvelle, si possible, avec le même nom.

Ce script fait énormément de tests et de validation afin de terminer par un succès. Probablement le plus abouti d’entre tous avec Update-CtxMachineCatalog, je vous recommande sa lecture.

Activer/Désactiver un Delivery Group Citrix.

Le principe peut sembler inutile voire aberrant, mais en réalité pas tant que cela.

Activer ou désactiver un Delivery Group peut rapidement devenir pénible via la console Citrix Studio. En effet, il faut se rendre dans un menu caché dans les propriétés du Delivery Group et s’il y en a plusieurs, cela devient carrément chronophage.

Bref, ils sont là… il ne faut pas confondre avec une mise en maintenance.

Lister les VDA d’un Delivery Group et ou d’un Machine Catalog Citrix

Get-CtxMachine: Celui-ci est pour la forme, je l’ai créé pour industrialiser la commande Get-BrokerMachine, rien de plus.

Gérer les redémarrages périodiques

Vous trouverez également dans mon dépôt GitHub deux scripts supplémentaires pour désactiver une planification de redémarrage périodique ou, la réactiver.

Conclusion

Je vous ai livré de quoi alimenter un petit module PowerShell, n’hésitez pas à me faire part de vos commentaires. J’espère qu’ils vous aideront dans vos démarches d’automatisation !



Cette publication était-elle utile ?

Cliquez sur une étoile pour l'évaluer !

Note moyenne 0 / 5. Nombre de votes : 0

Aucun vote pour le moment ! Soyez le premier à évaluer cette publication.

Laisser un commentaire