Créer un package Debian

Il m’est arrivé récemment d’avoir besoin de déployer un agent sur plusieurs machines à travers le monde, de manière simple et automatique.

Au début j’utilisait un script Python complet (pour l’installation et pour l’agent final), puis je me suis tourné sur la version « package » complet que pouvait offrir un système tel que Debian ou Ubuntu. Je pense compiler les packages pour d’autres distribution pour un panel plus large.

Pour se faire, que votre package soit un script ou un programme compilé, il faut l’ordonner correctement. En effet, la structure du package sera la structure finale sur le poste client.

Pour ma part, j’ai créé un répertoire

L’arborescence de ce répertoire est de la sorte (pour mon cas, vous pouvez l’adapter) :

DEBIAN/control va contenir toutes les informations concernant le package (les * sont obligatoires)

Exemple :

DEBIAN/postinst : c’est un script qui sera exécuté à la fin de l’installation, ici l’initialisation du script de démarrage.

De même, DEBIAN/prerm est appelé avant la suppression du package :

Il existe différents fichiers (preinst, postinst, prerm, postrm…). Les fichiers doivent avoir des droits en 755.
Le fichier DEBIAN/md5sums va contenir tous les checksum (en md5) des fichiers du package. Pour générer le fichier md5sums, on peut utiliser le code suivant (à exécuter  depuis /package/myagent )

On peut enfin créer le paquet :

Pour l’installer en mode local (et faire vos essais), vous pouvez utiliser les actions suivantes pour installer et supprimer votre paquet.

Vous pouvez également le rajouter à votre propre serveur de paquets.