Plugins GLPI : comment choisir sans bloquer votre prochaine montée de version

Comment choisir et combiner les plugins GLPI sans tomber dans le plugin sprawl : pourquoi des dizaines de plugins isolés cassent à la mise à niveau, comment l'approche modulaire de NexTool centralise les fonctionnalités dans un seul plugin de base, quand un plugin de la communauté ou une fonctionnalité native de GLPI 11 suffit déjà - et l'expérience de terrain d'une équipe qui maintient des parcs de plus de 15 plugins.

Installer un plugin pour chaque besoin semble la solution évidente dans GLPI - jusqu'au jour de la montée de version, quand la moitié d'entre eux ne redémarre pas. Après des années à maintenir des environnements GLPI clients, nous avons appris que le goulot d'étranglement est rarement un mauvais plugin : c'est la somme d'une douzaine de plugins isolés, chacun avec son cycle de publication, sa dépendance et son mainteneur. Ce guide montre comment choisir et combiner des extensions sans tomber dans le « plugin sprawl », où l'approche modulaire de NexTool s'insère - et, en toute honnêteté, où elle n'est pas nécessaire.

Le problème : le « plugin sprawl »

Chaque plugin de l'écosystème GLPI est un projet à part : mainteneur propre, dépôt propre, rythme de publication propre. C'est une force de la communauté open source, mais cela devient un passif dès que vous en accumulez une douzaine dans le même environnement. Les symptômes que nous voyons le plus souvent :

  • Compatibilité décalée avec le cœur - GLPI publie une version majeure et chaque plugin a besoin de sa propre mise à jour pour suivre. Il suffit qu'un seul n'ait pas été porté pour bloquer tout l'environnement lors de la montée de version.
  • Conflits entre plugins - deux plugins qui surchargent le même hook, injectent du CSS concurrent ou enregistrent la même route. Le symptôme apparaît généralement loin de la cause.
  • Dépendances implicites - un plugin qui ne fonctionne qu'avec un autre installé, sans que ce soit documenté. Désactiver le mauvais fait tomber une fonction que personne ne lui associait.
  • Surface de maintenance multipliée - chaque plugin, c'est un changelog à suivre, une CVE à surveiller et un « est-ce qu'il redémarrera la prochaine fois ? » à chaque fenêtre de maintenance.

Avant tout : inventoriez ce que vous avez déjà

Avant toute montée de version - et avant d'installer un plugin de plus - la première chose que nous faisons est de lister ce qui est installé et dans quel état. La requête que nous lançons directement en base :

-- Inventaire des plugins installes dans GLPI et l'etat de chacun.
-- state = 1 signifie active ; les autres etats meritent attention avant la montee de version.
SELECT directory AS plugin,
       name,
       version,
       state
FROM glpi_plugins
ORDER BY state, directory;

Pour chaque ligne qui remonte, trois questions : qui le maintient, à quel rythme de publication, et qu'est-ce qui casse s'il ne redémarre pas à la prochaine montée de version. Un plugin auquel personne ne sait répondre est candidat à sortir avant la fenêtre, pas pendant.

Les trois approches, côte à côte

Tous les besoins n'appellent pas la même réponse. Le tableau résume l'arbitrage entre combler une lacune avec un plugin isolé de la communauté, avec un module NexTool ou avec une fonctionnalité déjà native de GLPI 11 :

CritèrePlugin isolé de la communautéModule NexToolFonctionnalité native GLPI 11
DépendancesUne par plugin, souvent implicitesUn seul plugin de base ; modules testés ensembleAucune - fait partie du cœur
Mise à jourChaque plugin à son rythme ; un retardataire bloque la montée de versionUn seul paquet à mettre à jour, avec une compatibilité testée par l'éditeurMonte avec GLPI
ConflitsRisque réel entre plugins de mainteneurs différentsMoindre : les modules sont testés ensemble. Cela n'élimine pas les bugs - cela concentre la responsabilité en un seul endroitZéro - c'est le cœur lui-même
Couverture des versionsVariable selon le plugin ; peut ne pas exister pour votre versionLa base tourne sur GLPI 10 et 11 ; chaque module déclare les versions qu'il prend en charge (plusieurs sont exclusifs à la 11)Suit la version installée
SupportCommunauté / bénévole, sans SLAÉditeur unique avec un canal de supportFeuille de route officielle du projet GLPI
Dépendance à l'éditeurFaible - code ouvert, vous pouvez forker et maintenirÉlevée - feuille de route, prix et pérennité dépendent d'une seule entrepriseCelle du projet GLPI lui-même
Courbe de maintenanceCroît avec le nombre de pluginsPlate - un seul point à suivreMinimale, mais limitée à ce que couvre le cœur

Comment fonctionne l'approche modulaire

L'alternative n'est pas de renoncer aux fonctionnalités - c'est de réduire le nombre de choses indépendantes à gérer. NexTool inverse la logique : au lieu de N plugins, un seul plugin de base (gratuit) qui héberge des modules activés à la demande.

  • Un point d'installation unique - vous installez et mettez à jour le plugin de base ; les modules vivent à l'intérieur, sans que chacun soit un paquet séparé sur la marketplace.
  • N'activez que ce que vous utilisez - le catalogue couvre l'IA, la communication, les documents, la sécurité, l'automatisation et plus encore ; vous activez module par module selon le besoin, sans embarquer ce que vous n'utilisez pas.
  • Pas de dépendances à gérer entre modules - la compatibilité entre eux relève d'un éditeur unique, testée conjointement à chaque publication.
  • Un catalogue qui grandit - les nouveaux modules arrivent sans exiger une nouvelle installation de plugin ; ils apparaissent dans l'écran des modules du plugin déjà installé.
  • Une base gratuite - le plugin de base et une bonne partie des modules sont FREE ; les modules sous licence cohabitent au même endroit, et vous ne payez que ce que vous activez.

Ce que nous avons appris en maintenance

Chez un client avec plus de 15 plugins isolés, une montée de version mineure de GLPI en a fait tomber la moitié : l'environnement redémarrait, mais quatre plugins restaient à l'état « à mettre à jour » et disparaissaient du menu. Ce que personne n'avait prévu, c'est qu'un plugin de rapports dépendait d'une table créée par un autre plugin - désactiver le second effaçait silencieusement le premier. Nous avons passé une fenêtre entière rien qu'à cartographier quel plugin bloquait lequel. À partir de là, nous avons décidé de traiter chaque nouveau plugin comme une dette de maintenance, pas comme une fonctionnalité gratuite. L'erreur courante - que nous avons commise - est d'installer un plugin pour un seul rapport et de l'oublier installé pendant deux ans, jusqu'à ce qu'il devienne la raison pour laquelle une montée de version ne passe pas.

Pour qui c'est fait (et quand NE PAS l'utiliser)

L'approche modulaire brille quand vous avez besoin de plusieurs fonctionnalités cohérentes - IA sur le ticket, notification WhatsApp, bon d'intervention en PDF, circuit de validation - et que vous voulez un éditeur unique responsable de la compatibilité et du support. Si votre exploitation vit sur des fenêtres de maintenance serrées et ne peut pas se permettre une montée de version bloquée par un plugin orphelin, centraliser est rentable.

Mais soyez honnête sur l'inverse : si un seul plugin de la communauté répond déjà bien à votre unique besoin, installez-le et passez à autre chose - il n'y a aucune raison d'amener un plugin de base pour activer un seul module. Et surtout, regardez d'abord ce que GLPI fait déjà nativement. L'inventaire natif (GLPI Inventory, depuis GLPI 10) remplace l'ancien FusionInventory dans la plupart des cas ; les formulaires et les objets personnalisés, qui exigeaient FormCreator et GenericObject, ont été intégrés au cœur dans GLPI 11. Tout n'a pas besoin d'un plugin, encore moins de NexTool : le meilleur plugin est souvent celui que vous n'avez pas à installer.

Il reste un arbitrage que la centralisation ne résout pas, elle ne fait que le déplacer : concentrer les fonctionnalités chez un éditeur unique concentre aussi le risque. Avec des plugins open source isolés, si le mainteneur abandonne le projet, vous pouvez forker et continuer. Avec un hub propriétaire, la feuille de route, le prix et la pérennité dépendent d'une seule entreprise. Ce n'est pas une raison d'écarter l'approche - c'est une raison d'évaluer l'éditeur comme vous en évalueriez n'importe quel autre : historique de publications, canal de support, et ce qu'il advient de vos données si vous décidez de partir.

Comment activer un module

  1. Installez le plugin de base NexTool comme n'importe quel plugin GLPI : décompressez dans plugins/, puis installez et activez dans Configuration > Plugins.
  2. Dans le menu, allez dans Configuration > NexTool > Modules.
  3. Repérez le module souhaité dans le catalogue, vérifiez les versions de GLPI qu'il prend en charge et cliquez sur activer.
  4. Ouvrez l'écran configurer du module et ajustez les paramètres (clés d'API, canaux, profils, ce qui s'applique).
  5. Répétez pour chaque module. Aucune étape n'exige de réinstaller le plugin de base ni de résoudre des dépendances à la main.

Compatibilité

Le plugin de base NexTool est gratuit et tourne aussi bien sur GLPI 10 que sur GLPI 11. La compatibilité des modules, en revanche, est déclarée module par module : une partie du catalogue est cross-version et tourne sur les deux, tandis qu'une bonne partie des modules récents est exclusive à GLPI 11, car elle s'appuie sur des fonctionnalités qui n'existent que là. Le catalogue affiche les versions prises en charge par chaque module, et l'activation est bloquée par un message explicite quand l'environnement n'est pas compatible - vous le découvrez avant d'installer, pas au milieu de la montée de version.

En pratique, pour qui migre de la 10 vers la 11 : vérifiez dans le catalogue lesquels des modules que vous utilisez sont cross-version. C'est le même inventaire que ce billet recommande pour n'importe quel plugin - à la différence près qu'ici l'information tient en un seul endroit, au lieu d'être éparpillée sur une douzaine de dépôts.

Si votre exploitation en est arrivée au point où gérer les plugins est devenu un travail en soi, il vaut la peine de découvrir NexTool comme hub modulaire - ou parlez à l'équipe pour évaluer si votre cas appelle une centralisation ou si le cœur suffit déjà.


Revu par l'équipe NexTool Solutions.

Questions fréquentes

C'est l'accumulation de dizaines de plugins isolés dans le même environnement, chacun avec son mainteneur et son cycle de version. Le coût n'est pas l'installation, c'est la maintenance : à chaque mise à niveau de GLPI, vous dépendez du fait que tous aient été portés, et un seul plugin orphelin peut bloquer tout l'environnement. Des plugins de mainteneurs différents peuvent aussi entrer en conflit et créer des dépendances implicites difficiles à tracer.

Cela dépend du besoin. Pour un manque ponctuel unique, un plugin communautaire bien maintenu fait l'affaire et il n'y a aucune raison d'apporter autre chose. NexTool est rentable quand vous avez besoin de plusieurs fonctionnalités cohérentes (IA, communication, documents, automatisation) et voulez un seul éditeur responsable de la compatibilité, du support et de ne pas bloquer la prochaine mise à niveau.

Le plugin de base est gratuit et tourne sur les deux versions. Les modules, en revanche, déclarent individuellement les versions qu'ils prennent en charge : une partie du catalogue est cross-version (GLPI 10 et 11) et une bonne partie des modules récents est exclusive à GLPI 11. Le catalogue affiche les versions prises en charge par module et bloque l'activation sur un environnement incompatible : qui migre de la 10 vers la 11 doit donc vérifier dans le catalogue lesquels des modules utilisés sont cross-version.

Pour ces fonctions précises, non. L'inventaire natif (GLPI Inventory, depuis GLPI 10) remplace FusionInventory dans la plupart des cas, et les formulaires et objets personnalisés qui exigeaient FormCreator et GenericObject ont été intégrés au cœur dans GLPI 11. Avant d'installer un plugin, vérifiez si la fonctionnalité n'existe pas déjà nativement - le meilleur plugin est souvent celui que vous n'avez pas à installer.

Avec le plugin de base installé et actif, allez dans Configuration > NexTool > Modules, repérez le module dans le catalogue, cliquez sur activer puis ouvrez l'écran de configuration pour régler les paramètres (clés d'API, canaux, profils). Aucune étape n'exige de réinstaller le plugin de base ni de résoudre des dépendances à la main.

Besoin d'aide ?