Interopérabilité, WebService & MDT

Bonjour à tous,

la plupart du temps, lorsque j’arrive chez un client, celui ci dispose déjà d’une solution de déploiement de postes de travail et de gestion de parc. Parfois, cette solution s’appuie sur des produits Microsoft et parfois non. Lorsque la solution utilise des produits MS (SMS, SCCM, SQL), MDT est nativement capable d’interagir avec eux et également capable d’y récupérer les informations dont il a besoin. Lorsque la solution s’appuie sur des autres technologies, alors c’est plus difficile … mais pas impossible. Voici la réflexion que j’ai eue avec un client dernièrement :

contexte

Le client dispose d’un portail web dans lequel il décrit une succession d’actions lui permettant de créer ses masters. Ces actions sont diverses : installations de soft, configuration de composants OS, actions de vérification etc. Toutes les actions sont stockées dans une base de données MySQL et la solution gère le versionning, l’historique et l’avancement.

Par ailleurs, le contexte est très hétérogène : XP, Vista, Server 2003 et Server 2008 … tout cela décliné dans les version 32 et 64 bits. Au final, si on rajoute certains composants métiers et matériels, le client arrive à près de 10 masters différents et impossible de réduire ce nombre. La solution de création de master est donc primordiale.

Cependant, si le portail web permet de décrire la succession d’actions, il a également besoin d’une usine de script sur le poste de travail pour interroger la base MySQL et y récupérer les actions à effectuer sur le poste. Cette usine pose problème car il est nécessaire de la maintenir chaque fois qu’un nouveau Windows sort. Par conséquent j’ai conseillé à mon client de modifier cette usine de script pour la remplacer par une solution SCCM + MDT tout en gardant son portail Web.

Question

Comment faire en sorte qu’une solution SCCM + MDT puisse interroger la base MySQL pour y récupérer la liste des actions à mener ?

Solution imaginée

L’idée est donc de créer un webservice qui sera hébergé sur l’infrastructure web responsable du portail. Ce webservice interrogera la base MySQL, et éventuellement d’autres sources de données et fournira une liste de packages SCCM à installer. voici un exemple :

clip_image002

Ce WebService sera ensuite interrogé par le ZTIGather dans une séquence de tâches SCCM. Pour cela il faut configurer le fichier CustomSettings.ini comme ceci :

clip_image002[6]

Et voila le résultat de l’appel constaté dans les logs du ZTIGather :

clip_image002[8]

Le ZTIGather a été capable de transformer la liste des packages en variables SCCM PACKAGESXXX. ces variables sont ensuite utilisées dans la tâche “Install Software” en mode “install multiple applications”