Installation et utilisation Serveur et console WAPT

De WIKI Les fourmis du libre
Révision de 7 juin 2017 à 07:54 par Simon (discussion | contributions) (Prélude)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Waptlogo.jpg

Cette documenation est maintenant caduc !

Je travail maintenant pour tranquil.it et j'ai écrit une nouvelle documentation beaucoup plus complète ici :

http://wapt.fr/fr/doc


Docwapt.jpg




Prélude

Vous pouvez vous référer à la documentation officiel de tranquil.it

https://www.wapt.fr/fr/doc/

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éalisée avec mon wiki, n’hésitez pas à vous tourner vers les docs plus complète de l’éditeur officiel du projet: https://www.wapt.fr/fr/doc/

Références

Wapt est une solution développée 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éalisée avec mon wiki, n’hésitez pas à vous tourner vers les docs plus complètes de l’éditeur officiel du projet: tranquil.it

Doc d'origine:

Docs vidéos: http://doc.tranquil.it/co/portail.html

Documentation d'origine: https://www.wapt.fr/fr/doc/

Pour profiter de mon dépôt wapt: https://wapt.lesfourmisduweb.org/wapt

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 Wapt

Distribution  : (visiblement au choix) Ce tuto sera sous un: Debian Wheezy 32 bit Enregistrements DNS Préalable :

  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 et console

Tester le DNS sur un future client wapt avec les commandes 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 ces résolutions ne fonctionne pas, il est possible que vous rencontriez des soucis.

Dans la suite du tuto, on peut renseigner le repo 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)

En production j'utilise le nom complet (wapt.mondomaine.fr) Il a 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.

Vous pouvez maintenant démarrer le service :

  /etc/init.d/waptserver start

Debug en cas de soucis

Vérifiez 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érifiez que le serveur WAPT est lancé dans les logs

Exécuter la commande :

 cat /var/log/waptserver.log 

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.

Vous trouverez la page wapt serveur ici: http://wapt

L'installation de la console est la "waptsetup.exe"

Vous trouverez le lien direct ici:

http://wapt/wapt/waptsetup-tis.exe

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

wapt1

Puis les infos serveur ("DETECT WAPT INFO WITH RECORD DNS" fonctionne uniquement si vous avez fait les enregistrements SRV _wapt et _waptserver) :

waptinfosrv

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

Lancer wapttray présent dans « C:\wapt\wapttray.exe »

Puis lancer la console avec l'icone présent dans la barre des taches.

wapt2

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

wapt3

Entrer 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 personnalisé avec la clé publique (crt). Cette installateur n'acceptera que les paquets signés avec le .pem.

Les deux fichiers crt et pem (clé privée) ne doivent sous aucun prétexte être perdus. De la même manière, la 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 soi.

Vous pouvez constater que le la clé publique crt est également dans :

 c:\wapt\ssl 

Si vous souhaitez avoir plusieurs dépôts avec plusieurs signatures différentes, il vous faudra stocker les clés publiques acceptées ici Supprimer ici toutes les clés non désirées.

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

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

wapt6v2

Renseigner comme ci contre:

wapt7v2

MERCI D’ÊTRE PATIENT LORS DE CETTE ETAPE ! CELA PEUT PRENDRE PLUSIEURS MINUTES

La création du waptagent va d'abord créer un paquet waptupgrade et l'uploader sur le serveur.

Le paquet waptupgrade est généré afin de mettre à jour les clients qui ont une version antérieure.

Ceci va aussi créer un installeur waptagent.exe qui sera stocké à l'endroit renseigné ci-dessus.

Il sera aussi envoyé sur le serveur à l'adresse http://wapt/wapt/waptagent.exe

C'est cette installation (la personnalisée) qui est à installer partout (et pas la première). Afin de vérifier que votre certificat est bien intégré, une fois l'installation du waptagent sur une machine effectuée, vérifiez 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 qu'il n'a aucun paquet attribué à sa machine (?)

Utilisation de la console wapt

La suite du tuto bascule les préfixes de "smp" en "aiz"

et le serveur de wapt.stemarieduport.local à wapt.stemarie-aizenay.local

J'ai fait le tuto sur plusieurs Etablissements donc les noms changent.

Utilisation en mode simplifié consiste à récupérer des paquets wapt faits par des dev wapt

Configuration de la console pour la duplication de paquets

Configurez donc dans Outils, "Configuration wapt locale".

Rajoutez votre proxy si vous n’accédez pas directement à internet

Le proxy ci-dessous présente un cas dans lequel j'ai besoin de configurer le proxy pour accéder au dépot public (internet), mais pas pour accéder à mon dépôt privé. Adaptez bien sur pour vous.

wapt9

Duplication de paquet depuis la console

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

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

La duplication consiste à télécharger le paquet, le renommer avec le préfixe que vous avez choisi 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 Pc et des paquets dans la console

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

Pour attribuer un paquet wapt à un pc, double cliquer sur celui-ci, puis déplacer le paquet à installer de la colonne "paquets disponibles" à 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, explications 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 laissé activées les mises à jour à l'extinction du poste.
  • Ou cliquer sur sauvegarder et laisser l'utilisateur lancer les mises à jour quand il le souhaite tout seul (à la pose café). Le petit wapttray.exe (si il est bien lancé à l'ouverture de session) affiche un icone d'avertissement quand une mise a jour est disponible, l'utilisateur n'a plus qu'à faire clic-droit sur l'icône et à sélectionner "installer les mises à jour". Cette option est pratique pour les commerciaux par exemple.

A noter que ces options sont toutes activables et ne se gênent pas entre elles.

Vote paquet est ensuite installé

Aide pour le débogage

Edit le 06/02/2015 :

En cas de non fonctionnement suivez ceci :

Je rajoute une aide pour le débogage ici. 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 zappée. Et donc de faire les vérifications qui s'imposent.

Autres soucis qui peuvent causer divers soucis:

  • Le parefeu 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
  • Depuis le client, vou pouvez aussi vérifier l'accès serveur à https://wapt/ping (remplacer wapt par le nom de votre serveur et ignorer les erreurs de certificat...)
  • Le proxy peut poser des soucis, (un wpad.dat [proxy automatique] mal configuré - qui ne renvoie pas DIRECT pour 127.0.0.1 - peut bloquer l’accès à wapt)
  • Mon wpad.dat peut vous aider:

Certaine ligne peuvent paraître inutiles mais ce fichier à l'avantage d'être fonctionnel dans toute circonstance (même pour les podowares ...) )

Alors je précise, bien sûr, adaptez celui-ci à votre réseau ...

   function FindProxyForURL(url, host)
   {
   // variable strings to return
   var proxy_yes = "PROXY 172.30.1.4:8080";
   var proxy_no = "DIRECT";
   //
   if (isPlainHostName(host)) { return "proxy_no"; }
   if (shExpMatch(url, "http://127.*:*/*")) { return proxy_no; }
   if (shExpMatch(url, "https://127.*:*/*")) { return proxy_no; }
   if (shExpMatch(url, "http://127.*/*")) { return proxy_no; }
   if (shExpMatch(url, "https://127.*/*")) { return proxy_no; }
   if (shExpMatch(url, "http://localhost:*/*")) { return proxy_no; }
   if (shExpMatch(url, "https://localhost:*/*")) { return proxy_no; }
   if (shExpMatch(url, "http://localhost/*")) { return proxy_no; }
   if (shExpMatch(url, "https://localhost/*")) { return proxy_no; }
   if (shExpMatch(url, "http://*.stemarieduport.local/")) { return proxy_no; }
   if (shExpMatch(url, "http://*.stemarieduport.local:*/*")) { return proxy_no; }
   if (shExpMatch(url, "https://*.stemarieduport.local:*/*")) { return proxy_no; }
   if (shExpMatch(url, "http://*.stemarieduport.local/*")) { return proxy_no; }
   if (shExpMatch(url, "https://*.stemarieduport.local/*")) { return proxy_no; }
   // vlan serveur ajoutée ici :
   if (shExpMatch(url, "http://172.30.*:*/*")) { return proxy_no; }
   if (shExpMatch(url, "https://172.30.*:*/*")) { return proxy_no; }
   if (shExpMatch(url, "http://172.30.*/*")) { return proxy_no; }
   if (shExpMatch(url, "https://172.30.*/*")) { return proxy_no; }
   // Proxy anything else
   return proxy_yes;
   } 

Si vous utilisez un proxy manuel il faudra grater un peu via les gpo ou réglages manuels, etc, etc

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 mises à jour de se faire. Il faut plus voir l'attribution des paqueSt wapt à une machine comme une commande qui dit : Si le paquet "libreoffice" n'est pas attribué, ajoute le à la liste des paquets que je dois 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é installé, ou compare la version du paquet wapt déjà installé pour le mettre à jour si besoin.

Ainsi donc lorsque que je supprime un paquet wapt de la liste des "paquets devant être présent sur la machine", si le paquet à déjà été installé, il ne sera pas désinstallé et il continua d'être mis à jour car ce paquet est toujours présent dans sa base de paquets locale 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 dupliquez la nouvelle version du dépôt publique dans votre dépôt privé, comme expliqué 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 installez un logiciel sous linux "apt-get install htop" , vous ne précisez pas la version du paquet installé, 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 solutions donc pour la désinstallation:

  • Dans la console cliquer sur le pc concerné, puis dans la liste des paquets présents 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 locale des paquets à maintenir sur le poste. Cette solution n'est possible que si le poste est atteignable depuis le serveur (pas derrière un NAT par exemple)
  • 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. Cette solution a l'avantage de fonctionner également si la machine n'est pas directement atteignable. L'option "interdire les paquets "peut être spécifiée pour une sélection de postes, ou dans un groupe de paquets.

Fonction "oubli" de paquet

La fonction oubli 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 erreurs

Dans la console, lorsque l'on clique sur un pc dans la liste des pc, à droite, wapt vous indique, inventaire matériel, inventaire logiciels (installés avec wapt ou non), et les tâches. La partie "tâches" vous permet de visualiser, les tâches du service Wapt en cours, à venir, ou les tâches terminées (erreurs à visualiser si erreurs trouvées).

La grille qui affiche tout le parc est configurable :

  • on peut masquer ou faire apparaître les colonnes en fonction de ses besoins avec un clic-droit sur les entêtes de colonne.
  • on peut trier sur une des colonnes en cliquant sur l'entête
  • on peut changer l'ordre des colonnes et leur largeur

Si vous souhaitez afficher en colonne une information de l'inventaire "matériel", vous pouvez ajouter une colonne en faisant un glisser/déposer de cette information dans la grille.

Une colonne est ajoutée à droite dans la grille.

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.

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 (lancé automatiquement au démarrage si laissé activé). faite clic-droit sur l'icône wapt et cliquez sur "Voir le status des logiciels"

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

Un utilisateur est autorisé à installer ou enlever un paquet si :

  • il fait partie des "administrateurs locaux" de la machine (dans un environnement AD, cela inclut les administrateurs du domaine)
  • ou il est membre d'un groupe local ou Active Directory nommé "waptselfservice"

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


Gérer la possibilité de l'annulation par l'utilisateur dans waptexit

L'ajout de "allow_cancel_upgrade = 0" dans le fichier c:\wapt\wapt-get.ini interdit a l'utilisateur d'annuler l'installation lors du lancement de waptexit (installation a l'extinction du poste)

L'ajout de "allow_cancel_upgrade = 1" dans le fichier c:\wapt\wapt-get.ini laisse la possibilités pour l'utilisateur d'annuler l'installation lors du lancement de waptexit.

Pour un déploiement du paramètre automatique, vous pouvez utiliser le paquet smp-allow_cancel_upgrade sur mon dépôt (http://wapt.lesfourmisduweb.org/wapt/)

L'installation du paquet interdit a l'utilisateur d'annuler l'installation lors du lancement de waptexit (installation a l'extinction du poste)

La désinstallation du paquet laisse la possibilités pour l'utilisateur d'annuler l'installation lors du lancement de waptexit.


Mettre à jour wapt

Relancer un:

 apt-get update
 apt-get upgrade

Cela devrait mettre à jour les paquets tis-waptrepo, tis-waptserver et tis-waptsetup.

Télécharger le waptsetup mis à jour sur votre serveur:

http://wapt/wapt/waptsetup-tis.exe

Lancer l'installation et recréer une installation personnalisée depuis la nouvelle waptconsole (Outils/Créer un agent WAPT)

Bien sûr, ne pas recréer de paire clés, utilisez celle que vous avez déjà (dans c:\private)

Celui ci va donc créer un paquet -waptupgrade. Ajouter ce paquet aux postes qui doivent être mis à jour (ou mieux, à un paquet groupe qui est présent sur tous les postes)

Le nouvel installateur de l'agent wapt se trouve ici: http://wapt/wapt/waptagent.exe pour les nouveaux postes à équiper de Wapt.


Bien comprendre comment fonctionne wapt

Pour continuer, il est nécessaire de bien comprendre comment fonctionne wapt

Je vous invite donc a lire Comprendre le fonctionnement "moteur" de wapt


Dépôt wapt public

Le but est de faire un dépôt extérieur, sans forcement installer un serveur wapt entier.

Installer uniquement wapt

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

Attention! De base, cela va modifier vos réglages apache, installer wapt dans /var/www/ et modifier les droit actuel dans /var/www/

Déposez vos .wapt dans le dossier adapté (de base dans /var/www)

Une fois les .wapt déposé, nous allons lancer créer le fichier "Packages"

Lancer le script :

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

Votre dépôt peut maintenant être disponible au public