7. Tutoriel - Créez un premier paquet WAPT

Ce tutoriel vous guidera dans la création de packages WAPT personnalisés afin de déployer des logiciels qui ne seraient pas disponibles dans la boutique WAPT ou d’adapter des logiciels existants à vos besoins spécifiques. Que vous ayez besoin d’intégrer un outil interne, une application métier ou une version modifiée d’un logiciel, cette méthode vous permet de contrôler le déploiement sur l’ensemble de votre infrastructure.

7.1. Prérequis : Configuration de votre environnement de développement

Pour créer et tester des paquets WAPT, vous devez remplir les conditions suivantes :

  • Droits d’administrateur : Vous devez disposer des droits d”administrateur local sur la machine de développement pour pouvoir utiliser l’environnement de développement intégré de WAPT.

  • Environnement contrôlé : Nous vous recommandons vivement de créer et de modifier vos paquets dans un environnement sécurisé et jetable, tel qu’une machine virtuelle (par exemple, VirtualBox). Cela permet d’éviter tout impact sur les systèmes de production.

  • Outils de développement : installez un éditeur de code pour modifier les fichiers des paquets. Nous vous recommandons : - Visual Studio Code (avec l’extension WAPT) - PyScripter 3 (spécialement conçu pour WAPT) - À éviter : PyScripter 4 (non compatible avec les fonctionnalités de développement de WAPT).

  • Paquet de développement WAPT : importez et installez le paquet `tis-waptdev` depuis votre dépôt WAPT. Ce paquet comprend tous les outils nécessaires à la création et au test des paquets WAPT. Si vous avez besoin d’aide pour importer ou installer ce paquet, consultez : Comment importer et installer un paquet WAPT.

7.2. Créer le paquet WAPT

Création d’un modèle de paquet à partir de la console WAPT (fichier MSI)

Nous utilisons le programme d’installation MSI de Naps2 téléchargé depuis leur site officiel.

  • Télécharger Naps2 pour x64.

  • Créer un modèle de paquet WAPT à partir de notre assistant à la création de paquet.

    Dans la console WAPT, cliquez sur l’onglet Dépôt privé (1)Générer un modèle de paquet (2)modèle de paquet (3).

    Ensemble de modèles d'options
  • Sélectionnez Installateur Windows (1) et recherchez le fichier d’installation MSI de naps2 (2).

    Cliquez sur continuer. (3)

    Option de menu permettant de créer un modèle de package WAPT dans la console WAPT

    Option de menu permettant de créer un modèle de package WAPT dans la console WAPT

  • Vérifiez que le nom du paquet ne contient aucun numéro de version.

    Assistant de création de paquet et ses options de menu dans la console WAPT

    Assistant de création de paquet et ses options de menu dans la console WAPT

  • Deux solutions sont proposées :

    • Cliquez sur Créer et téléverser pour compiler et publier directement le paquet dans votre dépôt privé sans le tester.

    • Cliquez sur Editer manuellement (recommandé) pour vérifier le paquet WAPT et l’adapter aux besoins spécifiques de votre organisation.

Avertissement

Le bouton Build and upload envoi directement le paquet dans le dépôt privé sans tester l’installation.

Cette méthode fonctionne relativement bien avec les programmes d’installation MSI, car leur processus d’installation est plus standardisé.

Cependant, la méthode Editer manuellement, qui consiste à tester d’abord le paquet localement avant de le mettre en ligne, est la méthode recommandée.

  • Si vous faites confiance à ce paquet ou si vous l’avez déjà testé, vous pouvez cliquer sur Créer et téléverser (1) pour compiler et publier le paquet directement dans votre dépôt privé.

créer et mettre en ligne un paquet

Créer et mettre en ligne un paquet

Le paquet est désormais disponible dans votre Dépôt privé.

  • Il ne vous reste plus qu’à déployer le paquet sur votre machine de test et à vérifier qu’il s’installe et se désinstalle correctement.

Vous pouvez vous reporter à la documentation précédente pour savoir comment vérifier que le nouveau paquet a bien été installé sur le poste de travail.

Pour savoir comment le désinstaller, consultez la documentation dédiée à la désinstallation et à la suppression d’une dépendance de paquet.

Note

Cette méthode est recommandée car elle vous permet de tester au préalable le paquet localement sur le poste de travail de création de packages (l’ordinateur utilisé pour créer le package). Elle vous offre également la possibilité de personnaliser le package afin qu’il réponde aux exigences de votre organisation, par exemple en modifiant le répertoire d’installation, en ajoutant des raccourcis ou en configurant des paramètres spécifiques à l’application.

Pour ce faire, cliquez sur Créer et modifier (1).

Modifier le paquet manuellement

Modifier le paquet manuellement

Cela ouvrira votre éditeur de code et le positionnera automatiquement sur le fichier setup.py. Vous verrez alors s’afficher ce qui suit ;

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls


def install():
    # Declaring local variables

    # Installing the software
    print("Installing: naps2-8.3.2-win-x64.msi")
    install_msi_if_needed('naps2-8.3.2-win-x64.msi')

Tester localement l’installation du paquet WAPT

Vous pouvez ensuite tester l’installation sur votre poste de travail de développement sans y apporter de modifications dans un premier temps.

PyScripter - Exécuter une commande d'installation depuis la console PyScripter

Une fois l’opération lancée, vous verrez s’afficher le résultat dans la fenêtre de commande de la fonction d’installation, confirmant que l’installation s’est déroulée avec succès :

Command Line : install "C:\waptdev\tis-naps2_8.3.2_Windows_PROD-wapt\WAPT\.."
Using config file: C:\Program Files (x86)\wapt\wapt-get.ini
Installing WAPT files C:\waptdev\tis-naps2_8.3.2_Windows_PROD-wapt
Installing: naps2-8.3.2-win-x64.msi
Installing: naps2-8.3.2-win-x64.msi (8.3.2)
Waiting for key: {89793A72-1596-42A9-8EA6-4E86842830AC} to appear in Windows registry

Results :

=== install packages ===
  C:\waptdev\tis-naps2_8.3.2_Windows_PROD-wapt | tis-naps2 (8.3.2-1)

Vous pouvez désormais vérifier que le logiciel est correctement installé et qu’il fonctionne correctement sur le poste de travail :

  • Vérifiez s’il apparaît dans le menu Démarrer en recherchant : naps2.

  • Lancez et exécutez le logiciel.

Si tout fonctionne comme prévu, vous pouvez passer à l’étape suivante : la désinstallation.

Test en local de la désinstallation du paquet WAPT

Vous pouvez ensuite tester le script de désinstallation sur votre poste de travail de développement.

PyScripter - Exécuter une commande de suppression depuis la console PyScripter

Une fois l’opération effectuée, le message suivant s’affichera dans la fenêtre de la fonction remove(), confirmant la désinstallation :

*** Remote Interpreter Reinitialized ***
Command Line : remove "C:\waptdev\tis-naps2_8.3.2_Windows_PROD-wapt\WAPT\.."
Using config file: C:\Program Files (x86)\wapt\wapt-get.ini
Removing C:\waptdev\tis-naps2_8.3.2_Windows_PROD-wapt\WAPT\.. ...

Waiting for the removal of key: {89793A72-1596-42A9-8EA6-4E86842830AC} from Windows registry
=== Removed packages ===
  tis-naps2

Vous pouvez désormais vérifier que le logiciel a bien été désinstallé du poste de travail :

  • Vérifiez qu’il n’apparaît plus dans le menu Démarrer lorsque vous effectuez une recherche sur : naps2.

Si tout fonctionne comme prévu, vous pouvez passer à l’étape suivante : l’importation du paquet.

Ajouter un raccourci sur le bureau de Naps2 (optionnel)

Maintenant que l’installation et la désinstallation fonctionnent correctement, vous pouvez personnaliser davantage votre package en y ajoutant du code supplémentaire. Dans cet exemple, nous allons ajouter un raccourci sur le bureau afin que les utilisateurs n’aient pas à rechercher le logiciel dans le menu Démarrer.

Pour ce faire, nous pouvons utiliser la bibliothèque Windows setuphelpers

La fonction dont nous avons besoin est create_desktop_shortcut. Nous allons ajouter la création du raccourci au cours du processus d’installation, plus précisément dans la fonction install().

Voici à quoi ressemble le code :

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls


def install():
    # Declaring local variables

    # Installing the software
    print("Installing: naps2-8.3.2-win-x64.msi")
    install_msi_if_needed('naps2-8.3.2-win-x64.msi')
    create_desktop_shortcut("NAPS", r'C:\Program Files\NAPS2\NAPS2.exe') #Command for add a desktop shortcut

Nous avons réussi à ajouter la création d’un raccourci sur le bureau. Cependant, nous devons également gérer sa suppression lors de la désinstallation. Pour cela, nous utilisons la commande remove_desktop_shortcut.

Étant donné que la procédure de désinstallation standard ne prend pas en compte ce raccourci (car il n’est pas créé de manière standard), nous devons ajouter une étape de désinstallation personnalisée. Celle-ci sera implémentée dans la fonction uninstall().

Lors de la désinstallation, la fonction `uninstall()` s’exécutera en premier, puis la procédure standard de désinstallation du logiciel sera lancée via la fonction `remove()`.

Voici le code mis à jour :

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls


def install():
    # Declaring local variables

    # Installing the software
    print("Installing: naps2-8.3.2-win-x64.msi")
    install_msi_if_needed('naps2-8.3.2-win-x64.msi')
    create_desktop_shortcut("NAPS", r'C:\Program Files\NAPS2\NAPS2.exe') # command for add a desktop shortcut

def uninstall():

    remove_desktop_shortcut('NAPS') #Command for delete the desktop shortcut

Vous devriez maintenant tester le fonctionnement en exécutant la fonction d’installation et en vérifiant que le raccourci sur le bureau a bien été créé.

Si nécessaire, vous pouvez consulter à nouveau la section installation.

Ensuite, testez la suppression du raccourci sur le bureau à l’aide de la fonction uninstall().

PyScripter - Exécution d'une commande de désinstallation depuis la console PyScripter

Une fois le raccourci supprimé, vous pouvez procéder à la désinstallation standard à l’aide de la fonction remove().

Enfin, vérifiez que tout fonctionne correctement, puis importez le package sur le serveur WAPT.

Importation du nouveau package

  • Enregistrez vos modifications et quittez l’éditeur de code.

  • Revenez à la console WAPT et importez le package que vous venez de créer :

Console WAPT → onglet Inventaire des paquets → Importer un paquet (1)Importer depuis un fichier (2).

Importer un paquet à partir d'un fichier

Importer un paquet à partir d’un fichier

Vous devez maintenant sélectionner le paquet souhaité :

  • Par défaut, un répertoire waptdev est créé à la racine de votre lecteur C:. Accédez à : C:\waptdev (1).

  • Sélectionnez le répertoire du paquets (2).

  • Cliquez sur Ouvrir (3).

Sélectionner le répertoire de paquets

Sélectionner le répertoire de paquets

Le package est désormais disponible dans votre inventaire de packages.

importer un paquet à partir d'un fichier
  • Il ne vous reste plus qu’à déployer le paquet sur votre machine de test et à vérifier qu’il s’installe et se désinstalle correctement.

Vous pouvez vous reporter à la documentation précédente pour savoir comment vérifier que le nouveau paquet a bien été installé sur le poste de travail.

Pour savoir comment le désinstaller, consultez la documentation dédiée à la désinstallation et à la suppression d’une dépendance de paquet.