SV04 - GLPI : helpdesk, gestion de parc et ITIL

Objectif

Installer GLPI, comprendre la logique ITIL (incident, demande, urgence, impact, priorité, SLA), et réaliser les 11 exercices du cours dans le contexte : tu travailles chez TechAssist Solutions, ton client est EcoConsulting.

Version

GLPI 11 (sortie fin 2025) : PHP 8.2 minimum, MariaDB ≥ 10.6 ou MySQL ≥ 8.0 ; extensions bcmath, mbstring, openssl, intl… obligatoires. Toujours vérifier les prérequis sur glpi-install.readthedocs.io avant d’installer.


1. GLPI, c’est quoi ?

GLPI (Gestionnaire Libre de Parc Informatique) : logiciel libre (projet Teclib’) d’ITSM (gestion des services informatiques) et d’ITAM (gestion des actifs).

FonctionUsage
Helpdesk / ticketsLes utilisateurs signalent incidents et demandes
InventairePC, serveurs, imprimantes, logiciels, licences, consommables
Changements, problèmes, projetsProcessus ITIL
Base de connaissancesProcédures, FAQ
Contrats, fournisseurs, budgetsGestion administrative
Tableaux de bord, rapportsIndicateurs (nombre de tickets, délais)
Multi-entités, multi-profilsPlusieurs clients ou filiales

2. Exercice 1 - Installer GLPI (Debian 13 / Ubuntu 24.04 en VM)

Script fourni : scripts/web/install_glpi.sh (Apache + PHP + MariaDB + base + VirtualHost + cron).

chmod +x install_glpi.sh
sudo ./install_glpi.sh            # dernière version automatiquement (ou : sudo ./install_glpi.sh 11.0.5)

Ce qu’il fait (à savoir expliquer) :

  1. Installe Apache, MariaDB et les extensions PHP nécessaires.
  2. Crée la base glpi et l’utilisateur glpi@localhost.
  3. Télécharge l’archive officielle depuis GitHub (glpi-project/glpi, page Releases) et l’extrait dans /var/www/glpi.
  4. Crée un VirtualHost dont la racine est /var/www/glpi/public (obligatoire depuis GLPI 10.0.7 : les fichiers internes ne sont plus exposés).
  5. Ajoute la tâche planifiée front/cron.php (envoi des mails, SLA, nettoyage…).

Puis dans le navigateur http://IP_VM/ : langue → licence → Installer → vérification des prérequis (tout en vert) → base : localhost / glpi / mot de passe → base glpi → fin.

Après l'installation

  • Comptes par défaut : glpi/glpi (super-admin), tech/tech, normal/normal, post-only/postonly → changer tous les mots de passe (ou désactiver les comptes inutiles).
  • Supprimer install/install.php : sudo rm /var/www/glpi/install/install.php.

3. Entités, profils, groupes (exercices 2 et 3)

flowchart TB
  R["Entité racine : TechAssist Solutions"] --> E1["Sous-entité : EcoConsulting"]
  R --> G1["Groupe : Direction TechAssist"]
  R --> G2["Groupe : Techniciens"]
  E1 --> G3["Groupe : Compta EcoConsulting"]
  E1 --> G4["Groupe : RH EcoConsulting"]
  E1 --> G5["Groupe : Commercial EcoConsulting"]
NotionRôle
EntitéCloisonne les données (tickets, matériel) : un client = une entité. Une entité mère voit ses filles, pas l’inverse
ProfilEnsemble de droits
GroupeEnsemble de personnes (pour assigner un ticket à une équipe, envoyer des notifications)
Profil par défautPeut…
Self-Service (post-only)Créer et suivre ses tickets, consulter la FAQ - interface simplifiée
ObserverConsulter, sans modifier
TechnicianTraiter les tickets, gérer l’inventaire
SupervisorTechnicien + gestion d’équipe, attribution
AdminAdministrer (sauf certaines configurations globales)
Super-AdminTout

Créer : Administration → Entités / Groupes / Utilisateurs ; affecter un profil à un utilisateur dans une entité (onglet Habilitations).

4. Les tickets selon ITIL (exercice 4)

ITIL = référentiel de bonnes pratiques de gestion des services informatiques.

TypeDéfinitionExemples
IncidentQuelque chose ne marche plus comme prévuImprimante en panne, plus d’Internet, appli qui plante
DemandeBesoin sans panneCréer un compte, installer un logiciel, nouveau PC

Priorité = urgence × impact

Impact ↓ / Urgence →BasseMoyenneHaute
Élevé (tout un service)MoyenneHauteTrès haute
Moyen (un groupe)BasseMoyenneHaute
Faible (une personne)Très basseBasseMoyenne
  • Urgence : en combien de temps la situation devient critique.
  • Impact : combien de personnes / quelle part de l’activité est touchée.

Cycle de vie d’un ticket

stateDiagram-v2
  [*] --> Nouveau: création (mail, formulaire, téléphone)
  Nouveau --> EnCoursAttribue: qualification + attribution
  EnCoursAttribue --> EnCoursPlanifie: intervention planifiée
  EnCoursAttribue --> EnAttente: attente utilisateur / pièce
  EnAttente --> EnCoursAttribue
  EnCoursPlanifie --> Resolu: solution apportée
  EnCoursAttribue --> Resolu
  Resolu --> EnCoursAttribue: solution refusée
  Resolu --> Clos: validation par le demandeur
  Clos --> [*]
ActeurRôle sur le ticket
DemandeurCrée le ticket, fournit les infos, valide la solution
ObservateurSuit sans intervenir (ex. un manager)
Attribué à (technicien/groupe)Traite et résout

Validation et clôture : le technicien propose une solution → le demandeur l’approuve → le ticket est clos. Bonne pratique : ne jamais clore à la place de l’utilisateur sans son accord.

5. SLA (exercice 5)

Un SLA (Service Level Agreement) est un engagement contractuel sur les délais. Le non-respect peut entraîner des pénalités.

DélaiMesure
Temps de prise en charge (TTO)Création → début de traitement
Temps de résolution (TTR)Création → résolution
Type de ticketPrise en chargeRésolution
Incident critique15 min4 h
Incident majeur1 h8 h
Incident mineur4 h48 h
Demande standard24 h5 jours
Demande d’information2 h24 h

Dans GLPI : Configuration → Niveaux de services → créer un SLM (ex. « Contrat EcoConsulting », calendrier heures ouvrées) → ajouter un SLA TTO et un SLA TTR → les appliquer via les règles métier des tickets (ex. si urgence = très haute → SLA « critique »).

6. Documentation utilisateur (exercice 6)

Rédiger un guide « Se connecter et créer un ticket » pour l’interface post-only : en Markdown → PDF (ex. avec pandoc guide.md -o guide.pdf, ou depuis Obsidian Exporter en PDF) et dans la base de connaissances GLPI (Outils → Base de connaissances, visible par le profil Self-Service).

7. API REST (exercice 7) - créer un ticket automatiquement

  1. Configuration → Générale → API : activer l’API REST, ajouter un client API (IP autorisée) → noter l’App-Token.
  2. Dans Mes préférences de l’utilisateur : générer un jeton d’API personnel (user_token).
URL="http://192.168.56.30/apirest.php"
APP_TOKEN="xxxxxxxx"
USER_TOKEN="yyyyyyyy"
# 1) Ouvrir une session
SESSION=$(curl -s -X GET "$URL/initSession" \
  -H "Content-Type: application/json" \
  -H "App-Token: $APP_TOKEN" \
  -H "Authorization: user_token $USER_TOKEN" | jq -r .session_token)
# 2) Créer un ticket (type 1 = incident, 2 = demande ; urgence 1 à 5)
curl -s -X POST "$URL/Ticket" \
  -H "Content-Type: application/json" \
  -H "App-Token: $APP_TOKEN" -H "Session-Token: $SESSION" \
  -d '{"input": {"name": "Imprimante 2e étage hors service", "content": "Bourrage papier permanent.", "type": 1, "urgency": 4}}'
# 3) Fermer la session
curl -s -X GET "$URL/killSession" -H "App-Token: $APP_TOKEN" -H "Session-Token: $SESSION"

GLPI 11 apporte aussi une nouvelle API (/api.php, OAuth2) ; l'API historique apirest.php reste disponible. Consulte la doc API intégrée : Configuration → Générale → API.

8. Inventaire (exercice 9)

Créer des éléments : Parc → Ordinateurs / Moniteurs / Imprimantes / Matériel réseau / Logiciels / Consommables. Chaque fiche : modèle, numéro de série, fabricant, statut, lieu, utilisateur, documents (facture), historique.

Inventaire automatique : GLPI 10+ intègre l’inventaire natif ; on installe l’agent GLPI (glpi-agent) sur les postes :

# Debian/Ubuntu (paquet .deb sur github.com/glpi-project/glpi-agent/releases)
sudo glpi-agent --server http://192.168.56.30/ --force    # remonte la fiche du PC

Activer d’abord Administration → Inventaire → Activer l’inventaire. (FusionInventory et OCS Inventory, cités en cours, sont les anciennes solutions.)

9. Envoi de mails (exercice 10)

Configuration → Notifications : activer le suivi par courriel, Configuration des notifications par courriel → serveur SMTP (labo : un compte Gmail avec mot de passe d’application, port 587 STARTTLS, ou un serveur de test Mailpit en Docker) → Envoyer un courriel de test. Les mails partent via la tâche cron (front/cron.php).

10. Sauvegarde et restauration (exercice 11)

# Sauvegarde
sudo mariadb-dump --single-transaction glpi > glpi_$(date +%F).sql
sudo tar -czf glpi_fichiers_$(date +%F).tar.gz /var/www/glpi/files /var/www/glpi/config
# Restauration (sur une installation de même version)
sudo mariadb glpi < glpi_2026-10-06.sql
sudo tar -xzf glpi_fichiers_2026-10-06.tar.gz -C /
sudo chown -R www-data:www-data /var/www/glpi

À documenter : fréquence, emplacement (hors de la VM !), test de restauration → ST02 - Stratégies de sauvegarde.

Voir aussi