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).
| Fonction | Usage |
|---|---|
| Helpdesk / tickets | Les utilisateurs signalent incidents et demandes |
| Inventaire | PC, serveurs, imprimantes, logiciels, licences, consommables |
| Changements, problèmes, projets | Processus ITIL |
| Base de connaissances | Procédures, FAQ |
| Contrats, fournisseurs, budgets | Gestion administrative |
| Tableaux de bord, rapports | Indicateurs (nombre de tickets, délais) |
| Multi-entités, multi-profils | Plusieurs 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) :
- Installe Apache, MariaDB et les extensions PHP nécessaires.
- Crée la base
glpiet l’utilisateurglpi@localhost. - Télécharge l’archive officielle depuis GitHub (
glpi-project/glpi, page Releases) et l’extrait dans/var/www/glpi. - 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). - 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"]
| Notion | Rôle |
|---|---|
| Entité | Cloisonne les données (tickets, matériel) : un client = une entité. Une entité mère voit ses filles, pas l’inverse |
| Profil | Ensemble de droits |
| Groupe | Ensemble de personnes (pour assigner un ticket à une équipe, envoyer des notifications) |
| Profil par défaut | Peut… |
|---|---|
| Self-Service (post-only) | Créer et suivre ses tickets, consulter la FAQ - interface simplifiée |
| Observer | Consulter, sans modifier |
| Technician | Traiter les tickets, gérer l’inventaire |
| Supervisor | Technicien + gestion d’équipe, attribution |
| Admin | Administrer (sauf certaines configurations globales) |
| Super-Admin | Tout |
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.
| Type | Définition | Exemples |
|---|---|---|
| Incident | Quelque chose ne marche plus comme prévu | Imprimante en panne, plus d’Internet, appli qui plante |
| Demande | Besoin sans panne | Créer un compte, installer un logiciel, nouveau PC |
Priorité = urgence × impact
| Impact ↓ / Urgence → | Basse | Moyenne | Haute |
|---|---|---|---|
| Élevé (tout un service) | Moyenne | Haute | Très haute |
| Moyen (un groupe) | Basse | Moyenne | Haute |
| Faible (une personne) | Très basse | Basse | Moyenne |
- 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 --> [*]
| Acteur | Rôle sur le ticket |
|---|---|
| Demandeur | Crée le ticket, fournit les infos, valide la solution |
| Observateur | Suit 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élai | Mesure |
|---|---|
| Temps de prise en charge (TTO) | Création → début de traitement |
| Temps de résolution (TTR) | Création → résolution |
| Type de ticket | Prise en charge | Résolution |
|---|---|---|
| Incident critique | 15 min | 4 h |
| Incident majeur | 1 h | 8 h |
| Incident mineur | 4 h | 48 h |
| Demande standard | 24 h | 5 jours |
| Demande d’information | 2 h | 24 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
- Configuration → Générale → API : activer l’API REST, ajouter un client API (IP autorisée) → noter l’App-Token.
- 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 historiqueapirest.phpreste 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 PCActiver 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.