Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Quickstart Official documentation Setuphelpers Changelog FAQ
Back to top
View this page
Toggle table of contents sidebar

# Principes fondamentaux de WAPT

## Présentation des grands principes de WAPT

### A quoi sert WAPT ?

WAPT installe, met à jour et supprime les logiciels et les configurations sur les appareils Windows, Linux et macOS. Le déploiement de logiciels (Firefox, MS Office, etc.) peut être effectué à partir d’un serveur central à l’aide d’une console graphique. WAPT reprend de nombreuses idées de l’outil de gestion de paquets apt de Debian Linux, d’où son grand nom.

Des entreprises privées de toutes tailles, des collèges, des écoles, des universités, des laboratoires de recherche, des gouvernements locaux et nationaux, des hôpitaux, des mairies et des ministères d’État du monde entier utilisent avec succès WAPT.

WAPT existe en deux versions, Discovery et Enterprise, toutes deux propriétaires, la version Community ayant fait l’objet d’un fork amical vers la communauté Opensource. Dans cette documentation, lorsque vous voyez l’image de wapt enterprise comme ceci . Cela indique qu’une fonctionnalité de wapt n’est disponible que dans la version entreprise.

WAPT est très efficace pour répondre aux besoins récurrents de mise à jour de Firefox ou Chrome et c’est souvent pour couvrir ce besoin de base que WAPT est initialement adopté ; il devient alors un outil de choix pour les tâches quotidiennes de l’administrateur système.

### Genèse WAPT

#### Notre constat après 15 ans d’infogérance

L’administration d’un large parc de PC sous Microsoft Windows est aujourd’hui une tâche difficile dans un environnement sécurisé :

- Les méthodes généralement utilisées (mastérisations type ghost ou clonezilla) sont efficaces si les parcs machines et les parcs applicatifs sont homogènes et que les profils utilisateurs sont itinérants.

- Les outils de télé-déploiement (OCSInventory ou WPKG) diffusent les logiciels mais ne permettent pas d’effectuer de manière simple les personnalisations qui évitent les demandes de support utilisateur.

- Les logiciels de petits éditeurs nécessitent souvent des droits Administrateur Local pour fonctionner correctement.

- Les solutions actuellement disponibles pour résoudre ces problèmes sont soit trop coûteuses, soit trop inefficaces, et elles sont dans tous les cas trop complexes.

#### Hypothèses et motivations du développement WAPT

Le développement de WAPT est animé par deux principes :

- Ce qui est compliqué doit être rendu simple.

- Ce qui est simple doit être rendu trivial.

WAPT s’appuie sur un jeu d’hypothèses fondamentales :

- Les adminsys doivent connaître un langage de script, et WAPT a choisi Python pour la profondeur et l’étendue de ses librairies.

- Les administrateurs système qui ont peu d’expérience avec les langages de script doivent s’inspirer d’exemples simples et efficaces qu’ils sauront adapter à leurs besoins.

- Les adminsys doivent pouvoir communiquer sur l’efficacité de leurs actions à leur direction et reporter les écarts de processus aux auditeurs internes ou externes.

- Les adminsys DOIVENT pouvoir collaborer avec leur équipe informatique ; ainsi les dépôts WAPT internes fournissent des paquets auxquels ils peuvent faire confiance pour les déployer sur leur réseau. Sinon, ils peuvent choisir des dépôts externes publics qui leur fournissent les garanties de sécurité qu’ils jugent suffisantes.

- Les administrateurs système sont conscients que les postes de travail des utilisateurs servent à des fins commerciales et que certaines personnalisations doivent être possibles. L’adaptation de l’infrastructure aux besoins de l’entreprise est facilitée par la notion de groupes et desOU; ils permettent de sélectionner un grand nombre de machines pour personnaliser leur configuration.

## Principes fondamentaux

### Principe de Dépôt

Les paquets sont stockés dans un répertoire web. Ils ne sont pas stockés dans une base de données.

Note

Le protocole de transport utilisé pour le déploiement des paquets est le HTTPS.

Les paquets WAPT sont servis par le serveur web Nginx, disponible sous Linux et Windows.

Le fichier d’index `Packages` est la seule chose nécessaire. Il liste les paquets disponibles sur les dépôts autorisés et quelques informations de base sur chaque paquet.

Ce mécanisme permet de mettre en place facilement un processus de réplication entre plusieurs dépôts.

Réplication et dépôts multiples

Les grandes organisations avec des sites distants et des filiales nécessitent parfois que les services soient répliqués localement pour éviter la congestion de la bande passante (Edge Computing).

### Dépôts répliqués

WAPT Enterprise offre la possibilité de mettre à niveau les agents distants pour servir de dépôt distants pouvant être gérés directement depuis la Console WAPT. Tous les Agents WAPT peuvent ensuite être configurés de manière centralisée pour sélectionner automatiquement le meilleur dépôts en fonction d’un ensemble de règles.

Lorsque WAPT est utilisé sur des sites distants à bande passante limitée, il est logique d’avoir un appareil local qui répliquera le dépôt WAPT principal pour réduire la bande passante réseau consommée lors du déploiement des mises à jour sur vos appareils distants.

Avec les dépôts distants, WAPT reste une solution à faible coût d’exploitation car vous n’avez pas besoin de mettre en place des liaisons fibre haut débit pour profiter de WAPT.

Réplication des dépôts WAPT

Cela fonctionne comme suit :

> - Une machine de petite taille et sans maintenance jouant le rôle de dépôt secondaire est déployée sur le réseau local de chaque site distant ; un poste de travail peut également être utilisé, même s’il peut ne pas être opérationnel si vous souhaitez vous y connecter.

> - Le dépôt distant réplique les paquets du dépôts principal.

> - Les Agents WAPT se connectent en priorité au dépôts le plus proche d’eux, le dépôt local.

Pour en savoir plus sur le dépôt répliqué, consultez la documentation sur Réplication d’un dépot.

### Principe des paquets

La structure d’un paquet WAPT est similaire à celle d’un paquet .deb de Debian Linux. Chaque paquet WAPT embarque avec lui les binaires qui seront exécutés et les autres fichiers dont il aura besoin.

Un paquet est transportable facilement.

Voici à quoi ressemble un paquet WAPT :

Structure du paquet WAPT affichée dans l’explorateur Windows

Pour en savoir plus sur la composition d’un paquet WAPT, consultez la documentation sur la structure détaillée d’un paquet.

#### Types de paquets WAPT

Il existe 8 types de paquets WAPT :

Représentation d’un paquet WAPT simple

##### Les paquets base

Ce sont les paquets logiciels classiques.

Ils sont stockés dans le répertoire web https://srvwapt.mydomain.lan/wapt/.

Note

Si un paquet est installé sur une machine, supprimer la dépendance ne désinstalle pas le paquet.

Pour désinstaller un paquet sur de multiples machines, vous devez le désinstaller explicitement.

##### Les paquets group

Ce sont des groupes de paquets.

Chaque groupe correspond souvent à :

- service dans l’entreprise (ex : comptabilité).

- une pièce, un bâtiment, etc.

Indication

Un client peut-être membre de plusieurs groupes.

Ils sont stockés dans le répertoire web https://srvwapt.mydomain.lan/wapt/.

Note

Si un paquet est installé sur une machine, supprimer la dépendance ne désinstalle pas le paquet.

Pour désinstaller un paquet sur de multiples machines, vous devez le désinstaller explicitement.

##### Les paquets host

Les paquets « machines » portent le nom UUID Bios ou le FQDN de la machine.

Chaque client recherchera son paquet host pour connaître les paquets qu’il doit installer (dépendances).

Les paquets host sont stockés dans le répertoire web https://srvwapt.mydomain.lan/wapt/.

Note

Si un paquet est installé sur une machine, supprimer la dépendance ne désinstalle pas le paquet.

Pour désinstaller un paquet sur de multiples machines, vous devez le désinstaller explicitement.

##### les paquets unit

Les paquets Unit portent le nom complet d’une OU, exemple : OU=piece1,OU=prod,OU=computers,DC=mydomain,DC=lan .

Par défaut, chaque ordinateur recherche les paquets unit puis installe la liste des dépendances associées.

Les paquets Unit sont stockés dans le répertoire web https://srvwapt.mydomain.lan/wapt/.

Note

Si un paquet est installé sur une machine, supprimer la dépendance ne désinstalle pas le paquet.

Pour désinstaller un paquet sur de multiples machines, vous devez le désinstaller explicitement.

##### les paquets wsus

Les paquets wsus contiennent la liste des mises à jour Windows autorisées et interdites.

Lorsque ce paquet est installé sur le terminal, la prochaine analyse de mise à jour effectuée par WAPT choisira les mises à jour Windows en fonction de ce filtrage.

Les paquets wsus sont stockés dans le répertoire web https://srvwapt.mydomain.lan/wapt/.

##### les paquets self-service

Les paquets self-service contiennent une liste de groupes ou d’utilisateurs (Active Directory ou local) et leurs listes associées de paquets que les utilisateurs seront autorisés à installer par eux-mêmes.

Les paquets self-service sont stockés dans le répertoire web https://srvwapt.mydomain.lan/wapt/.

##### les paquets profile

Les paquets profile sont similaires aux paquets group.

Cependant, les paquets profile fonctionnent un peu différemment et sont plus utiles lorsqu’un serveur Active Directory existe dans l’Organisation :

- L’Agent WAPT dressera la liste des groupes Active Directory auxquels la machine appartient.

- Si un paquet profile porte le même nom qu’un groupe Active Directory (sensible à la casse), l’Agent WAPT installera automatiquement le paquet profile pour le groupe Active Directory dont il est membre.

- Si la machine n’est plus membre de son groupe Active Directory, le paquet profile correspondant sera désinstallé.

Les paquets profile sont stockés dans le répertoire web https://srvwapt.mydomain.lan/wapt/.

Les paquets profile ne sont pas explicitement affectés à la machine (c’est-à-dire en tant que dépendances dans le paquet host) mais sont implicitement pris en compte par le moteur de dépendance de l’Agent WAPT lors de la mise à niveau WAPT.

Note

Pour des raisons de performances, cette fonctionnalité n’est activée que si l’option `use_ad_groups` est activée dans le fichier de configuration `wapt-get.ini`.

Note

Si un paquet est installé sur une machine, supprimer la dépendance ne désinstalle pas le paquet.

Pour désinstaller un paquet sur de multiples machines, vous devez le désinstaller explicitement.

##### les paquets config

Les paquets config sont utilisés pour modifier les paramètres de configuration des Agents WAPT. Ainsi, il est possible d’avoir un Agent WAPT générique et de personnaliser la configuration des Agents WAPT à l’aide de profils de machines. Par exemple, certaines machines peuvent avoir besoin de différentes règles WAPTWUA et d’autres machines doivent pouvoir être définies avec une maturité DEV, etc.

Lorsqu’un paquet de configuration dynamique est appliqué, il crée une section appelée default-« X » (default-global, default-waptwua ou default-reposync) dans le fichier wapt-get.ini. Par conséquent, pour lire le contenu des paramètres actuellement appliqués à l’agent, il faut se référer à la section default-« X » et non à la section X. La section X est affichée pour consulter la section default-« X ». La section X est affichée pour consulter la configuration initiale de notre agent.

En outre, les fichiers JSON des paquets sont présents dans « C:\Program Files (x86)\waptconf.d » au format : configpackagename.json.

### Principe de dépendance

Dans WAPT tout fonctionne selon le principe de dépendance.

Par défaut, l’Agent WAPT recherchera son paquetage host. Le paquet host liste les paquets à installer sur l’ordinateur.

Ainsi, le paquet host sera correctement installé si toutes ses dépendances sont satisfaites.

Chaque sous-dépendance doit être satisfaite pour satisfaire une dépendance de niveau supérieur.

Lorsque toutes les dépendances sont satisfaites, l’hôte notifie son statut au Serveur WAPT. Son statut devient OK et vert dans la Console WAPT, ce qui signifie que la machine a le profil de machine que l’Administrateur ou Déployeur de Paquet a défini pour elle.

Schéma conceptuel du mécanisme de dépendance

Indication

Lorsque l’on attribue un logiciel à un hôte en tant que dépendance, seul le nom canonique du logiciel sans son numéro de version est enregistré comme dépendance (ex : Je veux que Freemind soit installé sur cette machine dans sa dernière version et que Freemind soit configuré pour que le User ne m’appelle pas parce qu’il ne trouve pas l’icône sur son bureau !) .

Pour chaque dépendance, l’Agent WAPT se chargera d’installer automatiquement la dernière version disponible du paquet. Ainsi, si plusieurs versions de Freemind sont disponibles sur le dépôt, l’Agent WAPT obtiendra toujours la dernière version, à moins que j’aie épinglé la version pour des raisons de compatibilité avec d’autres ensembles d’outils.

Ensuite, lorsque l’agent contacte le dépôt pour vérifier s’il y a de nouvelles mises à jour, il compare les versions des paquets du dépôt avec sa propre liste locale de paquets déjà installés sur la machine.

Si une mise à jour d’un paquet déjà installé est disponible, le client basculera le statut du paquet en NEED UPGRADE. Il installera ainsi les mises à jour au prochain upgrade.

Note

Si un paquet est installé sur une machine, supprimer la dépendance ne désinstalle pas le paquet.

Pour désinstaller un paquet sur de multiples machines, vous devez le désinstaller explicitement.

### Principe de Clé privée / Certificat public

Comme les paquets Android APK, les paquets WAPT sont signés ; un hash de la somme de contrôle de tous les fichiers contenus dans le paquet est calculé.

Cette méthode de signature permet de garantir la provenance et l’intégrité du paquet.

Clé privée / certificat public

Pour fonctionner correctement, WAPT a besoin d’une paire clé privée /certificat public (auto-signée, émise par une autorité de certification interne Certificate Authority ou commerciale).

La clé privée sera utilisée pour signer les paquets WAPT tandis que le certificat public sera distribué avec chaque Agent WAPT afin que les agents WAPT puissent valider les fichiers qui ont été signés avec la clé privée.

Les différents certificats publics seront stockés dans le sous-dossier `ssl` de l’Agent WAPT. Ce dossier peut contenir plusieurs certificats publics.

#### Vérification des paquets

Lorsqu’un paquet WAPT est téléchargé, l’Agent WAPT (waptagent) vérifie l’intégrité du paquet, puis vérifie que le paquet a été correctement signé.

Si la signature du paquet WAPT ne correspond à aucune des certificats publics situées dans `C:\Program Files (x86)\wapt\ssl` sur Windows ou `/opt/wapt/ssl` sur Linux et macOS, l’Agent WAPT refusera d’installer le paquet.

Pour plus d’informations, veuillez consulter la documentation sur comment l’intégrité du processus d’installation d’un paquet WAPT est assurée.

#### Le certificat privé est important

Attention

La clé privée ne DOIT PAS être stockée sur le Serveur WAPT, ni sur aucun stockage public ou partagé auquel pourrait accéder du personnel non autorisé. En effet, la sécurité de WAPT repose sur le principe que la clé privée reste privée.

La clé privée doit être stockée en lieu sûr, car celui qui contrôle votre clé contrôle votre parc !

Enfin, pour un maximum de sécurité, la clé privée pourra être sécurisée sur une smartcard ou un jeton cryptographique que les Administrateurs et Déployeur de Paquet transporteront physiquement sur eux, utilisant leur smartcard ou leur jeton cryptographique ponctuellement pour signer un paquet WAPT.

La clé privée est protégée par un mot de passe par défaut.

Plus d’informations sur générer le certificat de l’administrateur pour signer les paquets WAPT.

#### Différencier les rôles des utilisateurs dans WAPT

WAPT offre la possibilité de différencier les rôles en fonction de :

- Une PKI ;

- ACL.

##### Infrastructure à Clé Publique (PKI)

Indication

L’utilisation d’une PKI existante est possible, la Console WAPT est livré avec un générateur simple de certificat.

WAPT fonctionne comme un mode CA en ce qui concerne la PKI.

De par sa conception, WAPT est capable de générer des certificats qui peuvent être utilisés comme clés parent pour générer d’autres clés enfant publiques et privées.

Par conséquent, l’administrateur principal de WAPT qui agit en tant qu’administrateur peut émettre des certificats pour chaque administrateur informatique afin que leurs actions puissent être identifiées lorsqu’ils utilisent WAPT.

Les certificats enfants émis par la CA peuvent eux-mêmes être configurés comme :

> - La signature de code pour permettre aux administrateurs informatiques d’empaqueter, de signer et de déployer des paquets WAPT contenant des charges exécutables (c’est-à-dire `setup.py`).

> - CA pour déléguer à d’autres administrateurs informatiques le droit d’émettre des certificats.

> - Aucun droit pour limiter les administrateurs informatiques au seul déploiement de paquets contenant des charges non exécutables (c’est-à-dire configurer des hôtes).

Différenciation des rôles des utilisateurs WAPT

Pour en savoir plus sur la génération de l’autorité de certification (CA) avec WAPT, visitez cette documentation.

##### Liste de contrôle d’accès (ACL)

Avec WAPT, il est possible de définir les droits des utilisateurs en utilisant des ACL.

Chaque technicien informatique est identifié par son propre certificat et les droits peuvent donc être appliqués finement sur une base individuelle.

Par exemple, un utilisateur de la Console WAPT peut avoir le droit de « Voir » sur une machine mais ne pas être autorisé à cliquer sur « Modifier la machine ».

Différenciation des rôles ACL

Pour en savoir plus sur les ACLS dans WAPT, visitez cette documentation.

## Mode de fonctionnement WAPT

### Inventaire logiciel

WAPT tient un inventaire matériel et logiciel de chaque machine.

Cet inventaire est stocké dans une petite base de données intégrée à chaque Agent WAPT.

Fonctionnement de la remontée d’inventaire

- Lors du premier enregistrement avec le Serveur WAPT, l’Agent WAPT envoie l’inventaire complet (BIOS, matériel, logiciel) au serveur.

- Lors de chaque mise à jour du client, l’Agent WAPT remonte le delta de l’inventaire au serveur.

L’inventaire dans la Console WAPT

L’inventaire central vous permet de filtrer les hôtes par leurs composants, leurs logiciels ou tout autre argument de recherche.

### La remontée des informations d’inventaire

L’Agent WAPT remonte également le statut des paquets WAPT.

La remontée du statut des paquets vers le Serveur WAPT

En cas d’erreur lors de l’installation du paquet, l’information sera transmise au Serveur WAPT. La machine apparaîtra alors en ERROR dans la Console WAPT.

Les statuts possibles d’un hôte dans la Console WAPT sont les suivants :

Paquets avec un statut d’erreur dans la Console WAPT
Statuts | Icône d’état
--- | ---
OK |
NEED-UPGRADE | upgrade
NEED-REMOVE |
ERROR |
NEED-INSTALL |

L’Administrateur peut voir le paquet retourné en erreur dans la console et corriger le paquet en conséquence.

Pour chaque upgrade, WAPT essaiera d’installer une nouvelle version du paquetage jusqu’à ce qu’aucun statut d’erreur ne soit renvoyé.

Note

Les Agents WAPT signent leur inventaire avant de l’envoyer au Serveur WAPT.

Pour plus d’informations, veuillez vous reporter à Signature des remontées d’inventaire.

### Les interactions classiques de WAPT

#### mise à jour

Lorsqu’une commande update est lancée sur un agent, cela revient à ordonner à l’agent de vérifier le dépôt WAPT pour les nouveaux paquets. Par défaut, l’Agent WAPT recherche les mises à jour toutes les deux heures.

Si la date du fichier d’index `Packages` a changé depuis la dernière update, alors l’Agent WAPT télécharge le nouveau fichier `Packages` (entre 20 et 100k), sinon, il ne fait rien.

L’Agent WAPT compare ensuite le fichier `Packages` avec sa propre base de données locale.

Si l’Agent WAPT détecte qu’un paquet doit être ajouté ou mis à jour, il fait passer le statut de l’hôte et celui du paquet à NEED-UPGRADE.

Il ne lancera pas l’installation du paquet immédiatement. L’Agent WAPT attendra un ordre « upgrade » pour lancer la mise à niveau.

#### mise à niveau

Lorsque nous lançons une upgrade, nous demandons à l’Agent WAPT d’installer les paquets ayant un statut NEED-UPGRADE.

Une update doit précéder une upgrade, sinon l’Agent ne saura pas si des mises à jour sont disponibles.

Par défaut, l’Agent WAPT déclenchera une update/ download-upgrade au démarrage ; après le démarrage, l’Agent WAPT vérifiera ensuite toutes les 2 heures s’il a quelque chose à faire.

Les paquets à installer seront téléchargés et mis en cache dans le dossier `C:\Program Files (x86)\wapt\cache`.

waptexit lancera un wapt-get upgrade lorsque l’ordinateur s’éteindra. Un Administrateur peut forcer le lancement immédiat d’une mise à niveau à partir de la Console WAPT. Alternativement, un utilisateur final peut choisir de lancer manuellement une mise à niveau. Enfin, une tâche planifiée peut être configurée sur les hôtes pour lancer une mise à niveau.

Si le Serveur WAPT n’est pas joignable lors de la mise à niveau, l’Agent WAPT sera toujours capable d’installer les paquets mis en cache.

Les 5 objectifs de l’agent WAPT sont donc :

- Pour installer un paquet base, un group ou un unit s’il est disponible.

- De supprimer les paquets obsolètes.

- Pour résoudre les dépendances et les conflits de paquets.

- Pour s’assurer que tous les paquets WAPT installés sont à jour par rapport à ceux stockés dans le dépôt.

- Pour mettre régulièrement à jour le Serveur WAPT avec son état matériel et l’état des logiciels installés.

### Comportement de l’Agent WAPT

Un concept clé qui peut être difficile à comprendre est le comportement d’un Agent WAPT lors de l’installation d’un paquet et les considérations qui l’entourent.

L’installation du paquet d’Agent WAPT peut être divisée en étapes simples :

- Lors du déclenchement d’un update, l’Agent WAPT télécharge les paquets NEED-UPGRADE ou NEED-INSTALL et les stocke dans le dossier cache.

- Lors du déclenchement d’un upgrade, l’Agent WAPT décompresse les paquets dans un dossier temporaire.

- Le contenu du `setup.py` est analysé et stocké dans la base de données de l’Agent WAPT située dans `C:\Program Files (x86)\wapt\db\waptpublicdb.sqlite`.

- Le `setup.py` est exécuté et le logiciel est installé à partir des fichiers décompressés.

- En cas de succès : les paquets téléchargés et les fichiers dézippés sont supprimés. Un statut OK est renvoyé au Serveur WAPT.

- En cas d’échec : les paquets téléchargés sont conservés et les fichiers dézippés sont supprimés. Un statut ERROR est renvoyé au Serveur WAPT.

Ce comportement est important pour comprendre le cycle de vie d’un paquet installé.

Diagramme de flux montrant le processus d’installation d’un paquet WAPT

Par exemple, lors du retrait d’un paquet, les étapes suivantes sont suivies :

- Le contenu du `setup.py` est extrait de la base de données de l’Agent WAPT située dans `C:\Program Files (x86)\wapt\db\waptpublicdb.sqlite`.

- L’Agent WAPT recherche le `UninstallString` dans la base de données locale.

- Si elle est définie dans le `setup.py` copié dans la base de données locale lors de l’installation initiale du paquet WAPT, la fonction uninstall() est exécutée.

Des étapes similaires sont reproduites lors de l’exécution de session_setup et audit.

Comportement de l’Agent WAPT avec la désinstallation, le session_setup et l’audit

### Diagramme complet du fonctionnement de WAPT

Diagramme de flux montrant le mode de fonctionnement général avec WAPT

Nous retrouvons ici le comportement commun de WAPT, depuis la duplication d’un paquet à partir d’un dépôt externe accessible sur Internet, jusqu’à son déploiement sur les machines du réseau.

Lire le diagramme dans le sens des aiguilles d’une montre :

- Importer des paquets depuis un dépôt externe (ou créer un nouveau paquet à partir de zéro).

- Tester, ensuite valider, puis construire et enfin signer le paquet.

- Télécharger le paquet sur le dépôt principal.

- Les paquets sont automatiquement téléchargés par les clients WAPT.

- Exécution des paquets selon la méthode sélectionnée :

  - L’Administrateur force l’upgrade.

  - L’Administrateur propose l’upgrade à l’Utilisateur.

  - Une tâche planifiée lance l’exécution de la mise à jour.

  - La mise à jour est exécutée à l’extinction de la machine.

  - L’Utilisateur choisit le bon moment pour lui-même (à l’arrêt ou en utilisant le self-service).

- Remontée des informations d’inventaire.

- Consultation de la remontée d’inventaire via la Console WAPT.

## Architecture de la base de données sur l’agent

Depuis la version 2.6 de WAPT, l’architecture de la base de données a été repensée pour améliorer la sécurité et l’efficacité. L’agent utilise désormais deux bases de données SQLite : `waptpublicdb.sqlite` (publique) et `waptdb.sqlite` (privée).

La base de données publique, située dans `C:\Program Files (x86)\wapt\db\waptpublicdb.sqlite`, stocke des scripts comme `setup.py` et `session-setup`.py, ainsi que la liste des paquets installés. Il est utilisé pour les opérations de session (exemple ; wapt-get session-setup) sans exposer de données sensibles.

La base de données privée, située dans `C:\Program Files (x86)\wapt\private\db\waptdb.sqlite`, contient tout le reste : audits de paquets, inventaire du matériel (WMI/DMI), journaux et historique détaillé de l’installation.

Cette séparation minimise le risque d’altération des données critiques et améliore les performances.

## Architecture du Serveur WAPT

L’architecture du Serveur WAPT repose sur plusieurs rôles distincts :

- Le rôle de dépôt pour la distribution des packages.

- Le rôle inventaire et serveur central pour l’inventaire du matériel et des logiciels.

- Le rôle proxy pour relayer les actions entre la Console WAPT et les Agents WAPT.

### Fonctionnement du dépôt WAPT

Tout d’abord, le Serveur WAPT sert de dépôt de fichiers web.

Schéma conceptuel du mécanisme de dépendance

- Ce rôle de dépôt est accompli par un serveur web Nginx.

- Le dépôt permet la distribution des paquets WAPT, des installeurs waptagent et waptsetup.

- Les paquets WAPT sont accessibles avec un navigateur web à l’adresse https://srvwapt.mydomain.lan/wapt.

- Les paquets host sont contenus dans un répertoire inaccessible par défaut (https://srvwapt.mydomain.lan/wapt/wapt-host/).

### Rôle d’inventaire

Deuxièmement, le Serveur WAPT sert de serveur d’inventaire.

Le serveur d’inventaire est un service passif qui collecte les informations que les Agents WAPT lui envoient :

- Inventaire matériel.

- Inventaire logiciel.

- Statut des paquets WAPT.

- État des tâches (running, pending, error).

Note

Le service WAPT n’est pas actif dans le sens où il ne fait que recevoir des informations des clients. Par conséquent, si le serveur d’inventaire tombe en panne, l’inventaire se rétablira de lui-même à partir des rapports d’état d’inventaire reçus des Agents WAPT déployés.

Dans la version Discovery de WAPT, l’accès aux données d’inventaire n’est possible que par la Console WAPT.

WAPT Enterprise est livré avec des capacités de reporting. En parallèle, il est possible de pousser l’inventaire WAPT vers l’outil ITSM GLPI.

### Rôle de Proxy

Troisièmement, le Serveur WAPT sert de proxy de commande.

Il sert de relais entre la console de gestion WAPT et les Agents WAPT déployés.

Schéma conceptuel du mécanisme de dépendance

Note

Chaque action déclenchée sur un Agent WAPT à partir du Serveur WAPT est signée avec une clé privée.

Sans clé privée valide, il n’est pas possible de déclencher des actions à distance sur des appareils distants équipés de WAPT.

++Pour plus d’informations sur les actions à distance, veuillez consulter la documentation sur les actions de signature relayées aux agents WAPT.

## Langage et environnement de développement WAPT

WAPT est construit en utilisant le langage Python.

Tout environnement de développement rapide d’applications destiné au développement de Python convient.

Tranquil IT a développé quelques plugins spécifiques WAPT utiles pour l’IDE PyScripter (https://sourceforge.net/projects/pyscripter).

Tranquil IT recommande d’utiliser PyScripter pour développer des paquets WAPT pour Windows et vscode pour développer des paquets WAPT pour macOS et Linux.

### La puissance de Python

Toute la puissance de Python peut être avantageusement mise à profit.

De nombreuses bibliothèques existent déjà en Python pour :

- Faire des boucles conditionnelles (si … alors … autrement …).

- Copier, coller, déplacer des fichiers et des répertoires.

- Vérifier si les fichiers ou les répertoires existent.

- Vérifier si les clés de registre existent.

- Vérifier les droits d’accès, modifier les droits d’accès.

- La recherche d’informations sur des sources de données externes (LDAP, bases de données, fichiers, etc.).

- Et plus.

### La puissance de WAPT

Les fonctions les plus couramment utilisées avec WAPT ont été simplifiées dans des bibliothèques appelées Setuphelpers.

Les fonctions Setuphelpers simplifient le processus de création et de test des paquets WAPT, validant ainsi les principaux objectifs de WAPT :

Ce qui était compliqué est rendu simple.