WAPT - Solution de déploiement de logiciels pour Windows

De Wiki des Responsables Techniques du 85
(Redirigé depuis Serveurs:WAPT)
Aller à : navigation, rechercher
Certification Reseaux85

Cette solution a été validée par les personnes suivantes :

  • Simon FONTENEAU - Collège Ste-Marie Aizenay
    • Serveur WAPT 1.2.3.2 sur VM Debian
  • Alexandre GAUVRIT - Collège Saint-Jacques Moutiers
    • Serveur WAPT 1.2.3.2 sur VM Debian
  • Installation/Configuration : Checkmark-green.png
  • Utilisation : Checkmark-green.png
  • Personnes ressources : Checkmark-green.png

1402631341 label green.png

Prélude

Cette page est une suite de http://blog.lesfourmisduweb.org/wapt-apt-get-pour-windows/

Je considère ce wiki comme une doc linéaire pour une installation rapide!

Cependant mon tuto wiki n'est pas assez précis, une fois votre "installation test" réaliser avec mon wiki, n’hésitez pas à vous tournez vers les doc plus complète de l'editeur officiel du projet: https://doc.wapt.fr/

Référence

WAPT est une solution développer par http://tranquil.it. C'est une solution apt-get sous windows.

Je considère ce wiki comme une doc linéaire pour une installation rapide!

Cependant mon tuto wiki n'est pas assez précis, une fois votre "installation test" réaliser avec mon wiki, n’hésitez pas à vous tournez vers les doc plus complète de l'editeur officiel du projet: https://doc.wapt.fr

Docs d'origine:

Installation serveur WAPT

WAPT est une solution qui automatise les installations, les désinstallations et les mises à jour de l'ensemble des logiciels sur un parc informatique Windows. Le déploiement de logiciels (Firefox, MS Office,...) à partir d'une console de gestion centrale est maintenant possible. WAPT s'inspire fortement du gestionnaire de paquets du système GNU/Linux Debian apt, d'où son nom.

Prérequis DNS WAPT

Pour accéder au serveur WAPT il vous faudra configurer un champ DNS wapt qui redirigera vers le serveur.

Voici la configuration nécéssaire sous Linux Debian :

srvwapt.stemarieduport.local        A                172.30.1.10
wapt.stemarieduport.local           CNAME            srvwapt.stemarieduport.local

_wapt._tcp.stemarieduport.local.       0  IN   SRV     0 0 80  wapt.stemarieduport.local.
_waptserver._tcp.stemarieduport.local. 0  IN   SRV     0 0 443 wapt.stemarieduport.local.

L'enregistrement SRV sera utile si vous souhaitez utiliser "Detect Record DNS" lors de l'installation des Agents WAPT.

Sous Windows vous ajoutez un champ DNS simplement dans la zone concernée

Waptdnswinserver.PNG

Test DNS de debogage

Testez le DNS sur un future client wapt avec les commande ci dessous:

 nslookup srvwapt.stemarieduport.local.
 nslookup wapt.stemarieduport.local.
 nslookup wapt
 nslookup ipdevotreserveur     (pour vérifier si la résolution inverse fonctionne) 
 nslookup ipdevotrepcclient    (pour vérifier si la résolution inverse fonctionne)

Si l'une de ses résolution ne fonctionne pas, il est possible que vous rencontriez des soucis.

On peut renseigner le dépôt comme ceci:

 http://172.30.1.10/wapt/ 
 http://wapt.stemarieduport.local/wapt/ 
 http://wapt/wapt/

et pour le renseignement du serveur:

 https://172.30.1.10
 https://wapt.stemarieduport.local
 https://wapt

L'utilisation des IP n'est cependant pas recommandée (quelques bugs ont été signalée), préférez un nom DNS du type https://wapt.domain.lan

Ce fonctionnement à l'avantage de fonctionner même si le nslookup wapt ne fonctionne pas.

Installation du service

ATTENTION ! Merci de ne pas installer wapt sur une debian graphique !!!

Cela semble poser problème.


echo "deb http://wapt.tranquil.it/debian/ ./ " > /etc/apt/sources.list.d/wapt.list
apt-get update 
apt-get install tis-waptserver tis-waptrepo tis-waptsetup

Configuration du Serveur WAPT

Lancer ensuite :

/usr/bin/python /opt/wapt/waptserver/scripts/postconf.py

Le mot de passe demandé à l'étape 4 sera pour accéder à la console WAPT sous windows.

Le fichier générer avec le script automatiquement ci-dessus est le suivant :

vim /opt/wapt/waptserver/waptserver.ini
   [uwsgi] 
   http-socket = 0.0.0.0:8080 
   master = true 
   processes = 16 
   wsgi=waptserver:app 
   chdir=/opt/wapt/waptserver/ 
   max-requests=100 
   uid=wapt 
   gid=www-data  
  
   [options] 
   #mongodb_port=27017 
   #mongodb_ip=127.0.0.1 
   #wapt_folder=/var/www/wapt/ 
   #waptserver_port=8080 
   wapt_user=admin
   wapt_password=77acc25af887ed427c4d0707abd32c6b5daaa34ed663e28353972dae10e6fdb5a98998e5428f92 
   wapt_folder = /var/www/wapt 
   mongodb_ip = 127.0.0.1 
   mongodb_port = 27017 
   #loglevel=warning

Vous pouvez maintenant démarrer le service :

/etc/init.d/waptserver start

Debug en cas de soucis

Vérifier que le serveur WAPT est lancé dans les processus Exécuter la commande

ps -edf

sur votre serveur WAPT doit restituer plusieurs lignes telles celles montrées en exemple ci-dessous :

/usr/bin/uwsgi-core -d /var/log/waptserver.log --pidfile /var/run/waptserver.pid --ini /opt/wapt/waptserver/waptserver.ini --uid wapt --gid www-data --plugin http,python

Vérifier que le serveur WAPT est lancé dans les logs Exécuter la commande :

cat /var/log/waptserver.log

et vérifier si des erreurs existent.

Installation client WAPT

Télécharger maintenant WAPTSetup. Il inclus la console et les outils de base pour la gestion d'un serveur WAPT sous linux.

L'installation de la console est l’exécutable "waptsetup.exe"

Lors de l'installation vous pouvez choisir les options que vous souhaitez.

wapt1

Puis les info serveur :

waptinfosrv

Note : "DETECT WAPT INFO WITH RECORD DNS" fonctionne uniquement si vous avez fait les enregistrement DNS SRV _wapt et _waptserver


A la fin de l’installation laissez coché la case « Enregistrer l'ordinateur sur le serveur wapt »

Lancer wapttray présent dans C:\wapt\wapttray.exe puis lancez la console avec l'icone présente dans la barre des taches.

wapt2

Compléter ensuite les information demandées comme ceci :

wapt3

Entrez ensuite le mot de passe que vous avez fournis pour l'installation.

Création d'un certificat auto signé

Une fois la console ouverte nous allons générer notre certificat auto-signé. Celui-ci permet de sécuriser l'utilisation de wapt.

Nous allons créer un installateur personnaliser avec la clé publique (crt). Cette installateur n'acceptera que les paquet signé avec le .pem.

Les deux fichiers crt et pem ne doivent sous aucun prétexte être perdu. De la même manière, création du certificat ne doit se faire qu'une seul fois.

wapt4

wapt5

Nous avons donc notre dossier C:\private que nous allons sauvegarder précieusement pour sois.

Vous pouvez constater que le la cle crt est Egalement dans

 c:\wapt\ssl 

Si vous souhaitez avoir plusieurs dépôt avec plusieurs signature différente il vous faudra les stocker ici Supprimer ici tout les clé non désirée

Création de l'installateur personnalisé (waptagent.exe)

Nous allons maintenant créer l'installateur personnalisé avec le certificat *.crt intégré.

wapt6v2

Renseignez les champs comme ci dessous :

wapt7v2

La création de l’exécutable personnalisé waptagent va créer :

  • un paquet waptupgrade
  • un executable waptagent.exe

Le paquet waptupgrade est généré afin de mettre à jour les client qui ont une version antérieur installé, il est uploadé sur le serveur WAPT et disponible dans la console.

L'exécutable waptagent.exe est lui aussi uploadé sur le serveur et disponible à l'adresse : http://wapt/wapt/waptagent.exe

C'est cette installation personnalisée qui est à déployer sur l'ensemble du parc.

Déploiement de waptagent par script/GPO

Téléchargez et placer l'executable waptagent.exe dans un partage réseau, on peut effectuer un déploiement unique de l'agent WAPT avec le script suivant :

@echo off
start \\Serveur\Apps\wapt\waptagent.exe /VERYSILENT /MERGETASKS="useWaptServer,register,autorunTray"

Verification de la bonne installation du client

Afin de vérifier que votre certificat est bien intégrée, un fois l'installation du waptagent sur une machine effectuée, vérifier que le certificat est bien présent dans:

C:\wapt\ssl\votrecertificat.crt

Sinon le service wapt vous répondra que le paquet que vous essayez d'installer n'a aucune signature reconnue, il est possible que le client génère une erreur lorsque si il n'a aucun paquet attribuer a sa machine.

Résolution de Problème : Reset d'UUID sur les postes clients

Wapt utilise l'UUID (Universally Unique IDentifier) de la machine (fournis par le bios) comme identifiant unique pour reconnaître les machines.

L'UUID est censé être unique, malheureusement certain BIOS ont des "bugs".

Du coup lorsque que l'on installe le client WAPT, la machine ne remonte pas comme un nouveau client dans la console, il remplace un autre poste qui a le même UUID.

Solution: WAPT permet de générer un UUID aléatoire pour WAPT afin de gérer ce genre de cas.

Solution 1 - Officiel

Toujours en ligne de commande, cette fonctionnalité de wapt-get :

wapt-get generate-uuid
Solution 2 - Bricolage

Si vous déployez un master avec WAPT déjà inclus celui-ci ne vas pas regénerer d'UUID automatiquement, il convient alors d’exécuter la ligne de script suivante

c:\wapt\waptpython.exe -c "import common,uuid; wapt=common.Wapt(); print 'Ancien UUID: %s' % wapt.host_uuid; wapt.host_uuid='%s' % uuid.uuid4(); print 'Nouveau UUID: %s' % wapt.host_uuid; print wapt.update_server_status()"

Mettre a jour WAPT

Mise à jour côté Serveur

Relancer un:

apt-get update
apt-get upgrade

Mise à jour côté Client

Télécharger le waptsetup mis à jour sur votre serveur ou sur le site officiel de WAPT : http://wapt/wapt/waptsetup-tis.exe

Lancez l'installation et recréez une installation personnalisée waptagent (voir plus haut).

Celui ci va donc créé un paquet waptupgrade et l'installeur d'agent waptagent.exe. Ajoutez le paquet aux postes qui doivent être mis à jour.

Utilisation de la console WAPT

Voici l'apparence générale de la console WAPT (version 1.2.3.2)

ConsoleWAPT.png

Configuration de la console en cas de proxy local

Dans Outils > Configuration wapt local Rajouter votre proxy si vous n’accédez pas directement à internet

Le proxy ci-dessous présente un cas où on a besoin de configurer le proxy pour accéder au dépôt public (internet), mais pas pour accéder au dépôt privé.

wapt9

Duplication de paquet depuis la console

Cliquer ensuite sur dépôt privé, il doit normalement être vide car aucun paquet n'a été ajouter pour le moment. Cliquer ensuite sur "Importer depuis un dépôt"

Double cliquez sur le paquet qui vous intéresse. La console va ensuite vous demandez si vous souhaitez dupliquer ce paquet dans votre dépôt.

Importpaquet.PNG

La duplication consiste à télécharger le paquet, le renommer avec le préfixe que vous avez choisis plus haut, et de le re-signer avec votre propre certificat pour permettre l'installation. (tout cela est transparent pour vous)

Votre paquet apparaît ensuite dans votre dépôt privé.

Gestion des postes clients et des paquet dans la console

Attribution d'un paquet wapt à un pc pour programmer une installation

Pour attribuer un paquet wapt à un pc, double clique sur celui-ci, puis déplacer le paquet à installer de la colonne "paquet disponible" à la colonne "Paquet devant être présent sur la machine". (La version du paquet ne compte pas pour le client car le client installe un nom de paquet, explication plus bas)

  • Cliquer ensuite sur "Sauver et appliquer sur le poste" si vous souhaitez lancer l'installation immédiatement.
  • Ou cliquer sur sauvegarder et attendre que l'ordinateur s’éteigne si vous avez laisser activer les mise a jour à l'extinction du poste.
  • Ou cliquer sur sauvegarder et laisser l'utilisateur lancer les mise a jour quand il le souhaite tout seul (à la pose cafée). Le petit wapttray (si il est bien lancer à l'ouverture de session) affiche un icone d'avertissement quand une mise a jour est disponible, l'utilisateur n'a plus qu'a faire clique droit sur l'icone et a sélectionner installer les mise a jour. cette option est pratique pour les commerciaux par exemple.

A noter que toute ses options sont toute activable et ne se gène pas entre elle.

Vote paquet est ensuite installé

Aide pour le débogage

En cas de non fonctionnement suivez ceci :

WAPT a l'avantage de mal fonctionner sur un réseau mal configuré (donc de régler pas mal de soucis)

Je vous invite à relire la partie dns si vous l'avez zapper. Et donc de faire les vérification qui s'imposent.

Autre soucis qui peuvent causer divers soucis:

  • Le parfeu Windows peut bloquer les connexions de wapt (pour le test, désactivez-le) vous affinerez plus tard.
  • Depuis le client, il faut que vous puissiez avoir accès à http://127.0.0.1:8088/status
  • Le proxy peut poser soucis,(un wpad.dat proxy automatique mal configurer peut bloquer l’accès à wapt)

Comprendre la gestion des paquet d'un client

Cette partie est importante et intéressante, j'ai mis un peu de temps a comprendre ceci:

Il faut comprendre que retirer un paquet wapt de la liste des logiciels du pc ne suffit pas pour le désinstaller ni pour empêcher les mise à jour de ce faire. Il faut plus voir l'attribution des paquet wapt à une machine comme une commande disant : Si le paquet "libreoffice" n'est pas attribuer, ajoute le à la liste des paquet que je doit maintenir a jour sur cette machine.

Et lorsque l'installation est lancée, le service wapt client de la machine installe le logiciel si le paquet n'a jamais été installer, ou compare la version du paquet wapt déjà installer pour le mettre a jour si besoin.

Ainsi donc lorsque que je supprime un paquet wapt de la liste des "paquet devant être présent sur la machine", si le paquet à déjà été installer, ne sera pas désinstaller et il continua d'être mis a jour car ce paquet des toujours présent dans sa base de paquet local sur le client wapt.

Ce type de fonctionnement va nous permettre la fonction "choix des logiciels par l'utilisateur" que nous verrons plus bas.

Gestion des MAJ des logiciels

Lorsque vous mettez à jour un logiciel, vous dupliquer la nouvelle version du dépôt publique dans votre dépôt privé. Comme expliquer plus haut. Mais vous n'avez rien a faire de plus. Effectivement, le client wapt va automatiquement installer la dernière version présente dans le dépôt privé. Le fonctionnement se rapproche énormément du apt-get de linux, lorsque vous installer un logiciel sous linux "apt-get install htop" , vous ne préciser pas la version du paquet installer, vous prenez la dernière version disponible et lorsque vous faite un "apt-get upgrade", le client va automatiquement prendre la dernière version dispo.

Désinstallation de paquet

Deux solution donc pour la désinstallation: Dans la console cliquer sur le pc concerner, puis dans la liste des logiciels présent sur le poste (a droite) cliquer droit sur le logiciel à désinstaller puis cliquer sur "désinstaller le paquet", le client wapt va d'abord exécuter les instructions de désinstallation puis supprimer le paquet de la liste local des paquets à maintenir sur le poste.

La deuxième solution est presque identique: Lorsque vous cliquez droit sur le pc (ou un groupe de pc) vous pouvez sélectionner "Interdire des paquets (force la désinstallation)" qui aura le même résultat que la première solution.

Fonction oublie de paquet

La fonction oublie de paquet est particulière, elle permet de supprimer un paquet wapt (donc désactiver ses mises à jour) sans désinstaller le logiciel.

Inventaire du poste et erreur

Dans la console, lorsque l'on clique sur un pc dans la liste des pc, à droit, wapt vous indique, inventaire matériel, inventaire logiciels (installer avec wapt ou non), et les taches. La partie tache vous permet de visualiser, les taches en cour, a venir, ou les taches terminer (erreur a visualiser si erreur trouvé).

Gestion des logiciels dans des groupes

Pour la gestion des logiciels, WAPT met a disposition la gestion de groupe de logiciel.

Principe vous pouvez créer des groupe de logiciel, par exemple pour moi c'est "administratif" et "pédagogique"

Il ne vous reste plus qu'a appliquer ce groupe aux pc concerné.

Les groupes ce comporte de la même manière que des paquet wapt logiciel.

Utilisation de WAPT en ligne de commande / scripts

Une des forces de WAPT est son utilisation en ligne de commande. On peut écrire des scripts batch/powershell qui vont faire appel aux fonctions de WAPT très simplement.

Exemple 1 : Script pour mettre à jour le fichier de configuration

Voici un script que j'ai écrit qui m'a permis simplement de mettre à jour mes postes clients.

  • On arrete le service WAPT
  • On écrase le fichier de configuration client depuis le serveur
  • On relance WAPT et on met à jour la liste des logiciels et on install si besoin
@echo off
net stop WAPTService
xcopy \\Serveur\Apps\wapt\wapt-get.ini C:\wapt\wapt-get.ini /Y
net start WAPTService
wapt-get update-status
wapt-get update
wapt-get upgrade

Exemple 2 : Forcer l'installation d'un paquet récalcitrant

J'ai été confronté a un soucis, un paquet dont le statut était installé dans console WAPT mais en réel absent de la machine.

Pour forcer l'installation j'ai trouvé la technique de télécharger le paquet en local et de l'installer par script.

@echo off
echo -- Script fix pour dotnetfx4 et Sketchup --
wapt-get download res85-sketchup-make
wapt-get download res85-dotnetfx4.0

wapt-get install C:\wapt\cache\res85-dotnetfx4.0_4.0-1_all.wapt
wapt-get install C:\wapt\cache\res85-sketchup-make_14.0.4900-4_all.wapt

wapt-get clean
wapt-get update-status

Installation et choix des logiciels par l'utilisateur

L'une des fonctions de wapt consiste à laisser le choix à l'utilisateurs d'installer ses propre logiciel, à condition qu'il soit dans le dépôt privé de wapt. Avec le C:\wapt\wapttray.exe (lancer automatiquement au démarrage si laisser activer). faite clique droit sur l'icone wapt et cliquez sur "Voir le status des logiciels"

Une fois sur la page web, cliquez sur liste des paquets. L'utilisateur peut ensuite cliquez sur "installer" sur le logiciel concerner. Il lui faudra ensuite rentrer un nom d'utilisateur et un mot de passe autoriser pour faire cette action.

Pour bien comprendre , lire "Comprendre la gestion des paquet d'un client" de cette page.

Créer un dépôt publique

Et oui c'est ça le but quand même, mettre en commun le travail que nous faisons tous ...

Toujours sur une debian x86 :

echo "deb http://wapt.tranquil.it/debian/ ./ " > /etc/apt/sources.list.d/wapt.list
apt-get update 
apt-get install tis-waptrepo

Upload ensuite vos paquet wapt vers le dossier /var/www/wapt/

Nous allons maintenant regénérer le fichier "http://wapt.sono-syrius.fr/wapt/Packages

C'est lui qui liste les paquets disponible.

Vous pouvez le régénérer avec cette commande:

/usr/bin/python /opt/wapt/wapt-scanpackages.py /var/www/wapt/

Rendre son wapt accessible de l’extérieur

Ceci peut être très pratique pour des commerciaux ou des professeurs, les mises à jour peuvent ainsi continuer a l’extérieur.