Utilisateur:Cardondenis/Brouillon

WAPT

Informations
Développé par Tranquil IT Systems, Nantes, France
Dernière version 0.8.37 ()
Écrit en Python Lazarus
Environnement GNU/Linux, Microsoft Windows
Type Network management Administrateur systèmes
Licence GPL v3
Site web dev.tranquil.it


WAPT est un logiciel qui permet d'installer, de paramétrer, de mettre à jour, de supprimer des applicatifs sur des postes et serveurs Windows. Le moteur s'inspire du logiciel de gestion de paquets apt-get[1] utilisé sous Debian GNU / Linux et Ubuntu en s'adaptant aux contraintes et spécificités du monde Windows, d'où le nom WAPT qui signifie apt-get pour Windows.

WAPT est constitué de :

  • un agent qui tourne sur le poste Windows (WAPTService) ;
  • un serveur de management (WAPTServer) qui récupère l'état des postes et fournit les instructions aux agents ;
  • un ou plusieurs dépôt(s) de paquets qui contient(contiennent) les logiciels ;
  • une ou plusieurs console(s) de management (WAPTConsole) installée(s) sur le(s) poste(s) des administrateurs ;

La partie serveur de WAPT peut tourner sous Microsoft Windows ou sous Linux. Le logiciel est développé principalement par TRANQUIL IT SYSTEMS[2] à Nantes en France, et est diffusé sous la licence libre GNU General Public License version 3. Le projet a démarré en février 2012 et est poursuivi activement depuis.

Présentation et fonctionnalités modifier

WAPT est un système centralisé de déploiement d'applications Windows (libres, commerciales et métier) qui permet de maintenir homogène et à jour un parc applicatif en entreprise. WAPT vise également à simplifier le travail de préparation des logiciels à déployer.

Les postes vérifient régulièrement si des mises à jour sont disponibles sur des dépôts de paquets WAPT. Ils communiquent avec un serveur de management WAPT unique pour un même réseau. Ils remontent l'état des actions en cours ou passées ainsi qu'un inventaire sommaire. Ce serveur peut également proposer des instructions aux PC et serveurs du parc pour installer des nouveaux logiciels ou en supprimer.

Le serveur de management est interfacé avec une console de gestion graphique disponible en version "desktop" sous Windows. La console permet de consulter l'état du parc et d'interagir avec le serveur WAPT. La console n'interagit pas directement avec les postes utilisateurs.

Dépôt WAPT modifier

Comme pour les dépôts de paquets en environnement Linux, un dépôt WAPT est un simple répertoire servi par n'importe quel serveur web. Le paquet d'installation Debian pour le serveur WAPT utilise Apache par défaut. Le serveur WAPT sous Windows utilise par défaut le serveur web Rocket tournant sous Python. Dans les versions suivantes du serveur WAPT pour Windows, il est prévu d'intégrer un serveur web NGinx.

Il est possible de mettre en place un ou plusieurs dépôts :

  1. pour équilibrer la charge sur plusieurs serveurs web sur des réseaux locaux de grande envergure ;
  2. ou bien pour décharger des liens VPN entre les différents réseaux d'une structure multi-sites en positionnant un dépôt à proximité des utilisateurs finaux ;

Structure d'un paquet et sécurité modifier

Comme pour les paquets DEB ou RPM, les paquets WAPT sont signés avec une clef privée. L'agent WAPT déployé sur les machines du parc est compilé en incorporant la clé publique correspondante (la création des jeux de clés et la compilation de l'agent disposent de procédures simplifiées dans WAPT). S'il les clés ne correspondent pas, les paquets ne s'installeront pas.

La clef privée de signature n'a pas besoin d'exister sur le serveur et peut rester en sécurité avec l'administrateur informatique. Cette méthode évite de mettre en péril la sûreté de l'ensemble du réseau si le serveur devenait compromis car les agents WAPT refuseront d'installer des paquets incorrectement signés.

Le type de signature utilisé pour les paquets est similaire à celle en place pour les fichiers JAR en Java [3] ou les paquets APK sous Android. Un fichier MANIFEST contient les hash SHA1 de tous les fichiers du paquets. Le MANIFEST est signé avec la clef privée de l'administrateur informatique.

La console de management modifier

La console de gestion est écrite en Lazarus et en Python. Elle communique avec le serveur à l'aide de webservices REST et de requêtes JSON sur HTTP. Le choix d'une interface riche locale tire son origine de la rapidité de développement et de la convivialité d'usage que permet Lazarus.

Note : la console utilise actuellement le connecteur Lazarus / Python en DCOM pour communiquer entre les deux langages de programmation. Le composant DCOM devrait disparaître à l'avenir et la console pourra alors tourner à la fois sur des environnements Windows, Linux et Mac.

Inventaire modifier

Pour faciliter la gestion du parc machine, un inventaire sommaire est remonté sur le serveur. Cet inventaire est une extraction de dmidecode[4], rapide et assez complet. Cette fonction permet de rechercher des postes en sélectionnant une version particulière de Windows, un constructeur ou bien un matériel, etc.

Comparaison avec les solutions existantes modifier

Il existe plusieurs solutions de déploiement de logiciels en libre : GLPI, OCS Inventory, Wpkg, Chocolatey, snapin Fog, Mandriva Pulse, Opsi etc. Des solutions existent aussi en propriétaire, comme le déploiement par GPO, Microsoft SCCM, Novell ZenWorks, VMWare Mirage, Landesk Service Desk, etc.

Il est possible de classer ces différents outils suivant leur fonctionnement packet centric ou server centric. Dans le cas packet centric comme sous Debian les paquets logiciels peuvent être déposé sur des dépôts http, des cdrom ou des clefs usb, est c'est l'installeur qui va chercher ses paquets, les vérifie en validant la signature et les installe. Il n'y a pas de validation per se de la source d'où provient le logiciel. Dans le cas server centric, c'est le serveur de gestion qui "pousse" les logiciels vers le poste utilisateur qui fait alors confiance au serveur.

WAPT se classe dans le fonctionnement packet centric, comme les distribution Debian ou le logiciel Opsi. Le WAPTService sur le poste utilisateur consulte le serveur à la recherche d'instructions à exécuter. Notamment, l'agent va chercher le fichier d'index des paquets, et si une nouvelle version d'un logiciel est disponible, il va alors la télécharger et proposer de l'installer.

Le deuxième point différenciateur est l'utilisation de l'interpréteur Python 2.7 : il est embarqué dans WAPT et donc indépendant de toute version système de Python. En embarquant ses propres librairies Python, le fonctionnement de WAPT est homogène d'une plateforme à une autre, contrairement à Windows Scripting Host qui fonctionnera différemment selon les plateformes[5]. Le principal inconvénient de cette méthode est la consommation de RAM (25-35Mo), qui reste néanmoins modeste.

L'utilisation de python dans WAPT permet de s'appuyer sur la puissance de ce langage de script pour définir des actions avancées (actions conditionnelles, manipulation de fichiers, consultation ou insertion dans (1) des bases de données, (2) des annuaires ou (3) des registres, expressions régulières, etc). A l'inverse, la plupart des solutions ne dispose pas de langage de script intégré et ne permette que de lancer un installeur avec quelques paramètres (par exemple setup.exe /SILENT) ou de lancer un script batch, powershell ou vbscript : les paramétrages et configurations plus avancées sont possibles, mais avec des langages spécifiques difficiles à apprendre et à maîtriser.

L'inspiration GNU / Linux de WAPT le rend conforme à la philosophie UNIX : « Écrivez des programmes qui effectuent une seule chose et qui le font bien ». Le programme ne vise donc pas à remplir les fonctions d'inventaire, de gestion de ticket et de service d'assistance, de clonage de disque ou de prise en main à distance, rendues par d'autres logiciels de gestion de parc. Ces fonctions pourront néanmoins être rendues à l'avenir.

Références et sources modifier

Liens externes modifier

Catégorie:Logiciel libre sous licence GPL Catégorie:Administration réseau Catégorie:Logiciel de gestion