Chocolatey Factory : Comment automatiser la mise en place d’une ferme XenApp

D2SI_Blog_Image_ChocolateyFactory

(c) Charlie et la Chocolaterie

En l’absence de plateforme de provisionning de systèmes et d’applications, comment répondre à la demande client de mise en place d’une ferme XenApp 7.6 de façon automatisée ?

Nous avons choisi d’utiliser des  solutions Opensource, Chocolatey, couplée à un module BoxStarter. La combinaison de ces deux solutions permet la livraison d’infrastructure de façon automatisée sur des environnements Windows. Dans le cadre de ce projet, nous utilisons ces deux solutions pour installer une ferme XenApp 7.6.

Livrer une ferme XenApp reconstructible

Ce choix permet non seulement  d’effectuer le build de la ferme, mais également de donner au client la possibilité d’aller plus loin. L’idée était ici de ne pas se contenter de livrer au client le résultat final avec les documents attenants sur « comment a été construite l’infrastructure ? ». Le but était de laisser une solution complète de reconstruction automatique de la ferme, offrant également la possibilité de réutiliser cette solution pour de nouveaux build. Ceci offrant une forte continuité dans l’implémentation réalisée.

Il s’agit ici d’un contexte spécifique : le client n’était doté d’aucune plateforme de livraison (de type Microsoft SCCM). Ce contexte particulier a permis de proposer une solution à l’implémentation moins lourde, qui demande moins de ressources, de compétences spécifiques et de budget, mais exigeant tout de même plus de travail initial dans la méthodologie de création et une compétence majeure centrée autour de Powershell.

Les avantages d’une solution basée sur Powershell

L’outil Chocolatey est basé sur Powershell, solution de core-scripting Microsoft. Il présente l’avantage d’offrir un large éventail de possibilités de constructions, les seules limitations étant celles de Powershell. Ce choix permet non seulement de s’affranchir des limites des solutions propriétaires de même type (limitations inhérentes au produit, best practices, besoin en compétences éditeurs…), mais également de compétences pointues en notions d’infrastructure pour la mise en place d’une telle plateforme.

Chocolatey Factory : comment ça fonctionne ?

La “Chocolatey Factory” est le fruit de près de six mois de réflexion sur l’usage optimal de cet outil, et a été conçue de façon à pouvoir utiliser Chocolatey de façon générique. Globalement, il s’agit d’une armée de scripts portés par des packages permettant de pousser tous les rôles nécessaires à la construction et mise en place d’une infrastructure par « installation scriptée ».

Les informations relatives propres à la configuration finale du client pour créer l’infrastructure (URLs, noms de serveurs, IPs, etc.) ont été séparées de ce que l’on peut appeler un moteur générique. Ce moteur ne se modifie pas, les informations nécessaires sont stockées à l’écart dans un fichier spécifique de « variables ». Lors de l’exécution du package (via le script moteur), toute les variables de ce fichier sont récupérées, et le moteur exécute les commandes en fonction de celles-ci.

Les packages ayant été conçus de cette façon, cela permet de pousser les packages directement chez tout autre client, de façon automatique, après simple paramétrage des entrées spécifiques dans le fichier de variables. La finalité étant l’obtention d’un build d’infrastructure répondant aux critères du client (URLsl spécifiques, serveurs à interroger, IPs, etc.).

Une solution évolutive et adaptable

Cette solution a été mise en place sur une infrastructure de près de 300 serveurs Citrix, répartis sur plusieurs fermes. Tous les rôles XenApp ont été packagés et déployés via Chocolatey. Il s’agit d’une approche très innovante, puisque c’est certainement la première fois que Chocolatey est utilisé pour construire une infrastructure Citrix complète. La réflexion initiale autour de cette solution a également permis d’aller plus loin et de reproduire le même service autour d’autres produits tels que SQL pour le déploiement de configurations SQL avancées, comme la livraison de cluster SQL mirroré avec un package Chocolatey.

Dans la continuité de cette idée, il est également possible de packager toutes les applications du client, qui seront installées sur les serveurs Citrix avant d’être publiées et mises à disposition des utilisateurs. Les applications standard (antivirus, suite bureautique), peuvent ainsi être gérées de façon complètement automatisée.

Chocolatey/Boxstarter sont des alternatives sérieuses aux solutions de management d’applications. Les possibilités sont quasi-illimitées et l’adaptabilité est quasi-totale, sur des grandes infrastructures de serveurs, comme sur d’immenses parcs Desktops.

Ci-dessous, la démo réalisée lors du E2EVC 2015 à Berlin : Déployer Citrix XenApp en 15mn avec Chocolatey et Boxstarter

Commentaires :

A lire également sur le sujet :