Homelab GLPI avec deux machines virtuelles



0. Setup

L’objectif de ce lab est de mettre en place l'outil de gestion de parc GLPI (version 11.0.7) sur une VM serveur, créer une VM cliente, plusieurs utilisateurs et enfin réaliser une interaction sous forme de ticketing.

Je vais pour cela utiliser :

- une machine virtuelle Debian 13 (serveur), configurée en Bridged (directement connecté sur le réseau local de la machine hôte)

- une machine virtuelle Windows 10 (client), également configurée en Bridged

1. Installer et configurer le serveur

1.1 Les prérequis

Pour configurer l'outil GLPI, il faut :

-Un serveur web afin de rendre disponible l'application aux utilisateurs (j'ai utilisé Apache2.4.66)

-PHP 8.3.30, le language qui permet de faire fonctionner le serveur. Il faudrat également installer plusieurs extensions de ce language.

-Une base de donnée pour stocker et organiser les informations de l'application (j'ai utilisé Mariadb 11.8.6)



- L'application glpi.

1.2 Installer Apache 2

Avant toute chose, ouvrir un terminal (Ctrl+Alt+T) et mettre à jour les paquets

 sudo apt update && sudo apt upgrade 

On peut désormais installer Apache 2

Point crucial pour le reste de la configuration: il nous faut connaître l'adresse IP de notre machine:

 ip address


Sur un navigateur (ici Firefox), tester Apache2. Pour cela je rentre mon adresse ip, et si tout vas bien, je devrais tomber sur la page par défaut d'Apache 2




C'est bien le cas ! Nous allons configurer plus en détail Apache 2 un peu plus tard, mais d'abord, je vais m'occuper de PHP

1.3 Installer PHP

L'installation de PHP est plus complexe, et le mieux est de l'installer depuis le site officiel. Il faut également prendre une version assez récente (minimum 8.2 pour GLPI 11), je prends donc une version 8.3.

Copier coller ensuite les commandes d'installation

 -sudo apt install -y lsb-release ca-certificates curl 
-sudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
-sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb
-sudo tee /etc/apt/sources.list.d/php.sources EOF
Types: deb
URIs: https://packages.sury.org/php/
Suites: $(lsb_release -sc)
Components: main
Signed-By: /usr/share/keyrings/debsuryorg-archive-keyring.gpg
EOF
-sudo apt update
-sudo apt install -y php8.3

Ces commandes servent à télécharger et installer PHP, de manière sécurisée, et à le rendre disponible par le serveur Apache2

Installer ensuite plusieurs extensions php complémentaires, nécessaires à GLPI

 sudo apt install php8.3-xml php8.3-dom 
 sudo apt install php8.3-intl php8.3-mysql php8.3-zip php8.3-curl php8.3-mbstring 
 sudo apt install php8.3-bz2 php8.3-phar php8.3-zip php8.3-exif php8.3-ldap openssl php8.3-opcache 

Puis redémarrer Apache 2 pour prendre en compte l'installation de PHP

1.4 Installer la base de donnée (mariadb)

À présent, installer la base de donnée

 apt install mariadb-server 

1.5 Installer GLPI

Aller sur la page Github du projet GLPI, sélectionner la version souhaitée (11.0.7)

Cliquer droit sur le fichier en .tgz > Copier le lien

Pour le télécharger depuis un terminal, taper la commande wget et coller le lien après:

 wget https://github.com/glpi-project/glpi/releases/download/11.0.7/glpi-11.0.7.tgz 

Puis désarchiver le fichier avec la commande tar:

 tar -xvzf glpi-11.0.7.tgz 

Trouver ensuite l'emplacement du fichier glpi:

 find / -name "glpi" 

Puis déplacer ce fichier vers le dossier dédié au serveur:

 mv glpi /var/www/  

Activer ensuite le mode "rewrite" d'Apache 2, qui permet d'optimiser l'URL du portail GLPI:

sudo a2enmod rewrite 

Redémarrer ensuite Apache 2 pour prendre en compte les modifications:

sudo systemctl restart apache2 

1.6 Configurer le virtual host

Le virtual host est un fichier qui permet de configurer des informations indispensables pour le fonctionnement de serveur.

Telles que l'adresse IP, le nom de domaine, l'emplacement du fichier glpi, du serveur WEB, le protocolle web utilisé.


Configurons le virtual host à l'aide de l'éditeur de texte nano:

nano /etc/apache2/sites-available/glpi.conf

À noter : j'ai changé l'adresse IP de ma VM entretemps (maintenant 192.168.1.74)

L'emplacement /var/www/glpi/public indique les fichiers qui serons disponibles au public.

Notre site est entièrement monté, il une étape cruciale: l'activation. Pour cela on utilise la commande suivante:

sudo a2ensite glpi.conf 

Et bien évidemment, rafraîchir (encore) Apache :

systemctl reload apache2 

1.7 Configurer les droits pour Apache2

Il faut conférer certains droits au serveur Apache, en l'enregistrant en tant que propriétaire de dossiers spécifiques. Il pourra ainsi effectuer toutes les actions indispensables dans l'activité de glpi, tels que les mises à jour, téléchargements et installation d'extensions

sudo chown www-data:www-data /var/www/glpi/config/
sudo chown -R  www-data:www-data /var/www/glpi/files/
sudo chown www-data:www-data /var/www/glpi/marketplace/

1.8 Sécuriser les cookies dans PHP

Les cookies sont des informations sur les utilisateurs, qui seront stockées sur leur navigateur. Ils contiennent potentiellement des informations sensibles et nécessitent donc d'être sécurisé.

Pour cela il faut activer l'option httpOnly dans le fichier de configuration php.ini:

1.9 Configuration de sécurité mariadb

Se connecter à mariadb avec l'utilisateur root et son mot de passe, depuis le terminal, avec la commande suivante:

sudo mysql -u root -p

Une fois arrivé sur l'interface, il ya deux possibilités:

-modifier le mot de passe de l'utilisateur root pour accéder à mariadb

ALTER USER 'root'@'localhost' IDENTIFIED BY '123soleil';

-ou bien créer un nouvel utilisateur avec mot de passe

CREATE USER Ant2@'localhost' IDENTIFIED BY 'mo2pass';

lui accorder les droits maximum de la base de donnée:

GRANT ALL PRIVILEGES ON database.table* TO 'Ant2'@'host';

et enfin enregistrer les modifications des privilèges avec la commande suivante:

FLUSH PRIVILEGES;

Quitter ensuite mariadb avec la commande exit

2. Installer glpi sur un navigateur

Si la partie serveur a été configurée convenablement, glpi devrait être joignable depuis Firefox, en rentrant le nom de domaine ou l’adresse IP dans la barre de recherche. (indiqués dans le virtual host configuré précedemment)

2.1 Installation complémentaires

Une page listant toutes les extensions, certaines nécessaires, d'autres facultatives... Il se peux que certaines requises sont absentes, il faudrat les installer pour continuer.

2.2 Se connecter à la base de donnée avec l'utilisateur qui a les doits d'accès à la base de donnée

Et créer une nouvelle base donnée (exemple: glpi) > continuer

2.3 Première connexion et activation de l'inventaire

Après installation sur le navigateur, on peut se connecter à glpi avec les identifiant par défaut du super-admin (user= glpi , mot de passe= glpi ). On pourra changer ces identifiants une fois connecté.

On arrive enfin sur l'interface qui permettra de gérer l'ensemble d'un parc, bien qu'il n'y a pas encore de machines ou d'utilisateurs enregistrés. Pour en ajouter, il faut d'abord activer l'inventaire.

Aller dans Administration > Inventaire > Activer l'inventaire

3. Ajouter une machine cliente

J'ai installé une machine virtuelle Windows 10, elle va jouer le rôle de client à intégrer dans le parc.

3.1 installer l'agent GLPI

L'agent GLPI est un programme qui sert à communiquer avec le serveur GLPI

Installer depuis github le fichier d’installation en .msi de l’agent glpi (windows)

Ouverture de l’installateur > cliquer sur next sur la licence> choisir un emplacement > choisir une installation (typical en l’occurrence)

Relier ensuite le client au serveur, en rentrant son adresse IP, comme ci dessous:

Et puis on installe en tant que service windows :

Une fois l'installation effectuée, faire ensuite un test en rentrant l'adresse IP sur un navigateur:

On arrive sur l'espace de connexion, mais l'agent glpi n'a pas encore relié la machine. Pour cela il faut redémarrer l'agent.

-Taper dans la barre de recherche Windows "services"

-Arrivé sur l’utilitaire, trouver GLPI Agent dans la liste > Clic droit > Redémarrer

Pour enregistrer la vm dans le parc de glpi, il faut passer par la page web locale de contrôle de l'agent GLPI

Arrivé sur l'interface, Cliquer sur force an inventory afin d’intégrer la VM client dans le serveur, puis rafraichir depuis l’interface admin. /p>

Retourner sur la VM serveur, ou se connecter sur GLPI en tant que super-admin, aller dans Parc > Ordinateurs

Rafraîchir si besoin, et miracle! notre VM cliente apparaît !

4. Créer des utilisateur et un tickets

Sur GLPI, aller dans administration > utilisateurs. On arrive alors sur la liste des utilisateurs crées par défaut.

Cliquer sur Ajouter

-J’ajoute ensuite des Informations basiques : un identifiant, nom et prénom (ex: Michael jackson), puis un mot de passe (ex: 1234) > Ajouter > Sauvegarder

se déconnecter ensuite du profil super-admin, et se connecter avec l'identifiant que l'on vient de créer

On arrive alors sur l'interface utilisateur :

Je clique sur « signaler un incident » puis je rédige un message à l'attention de la boite de ticketing et clique sur envoyer :

Une fois reconnecté sur la session du super-admin, dans l'onglet Assistance > Tickets, on retrouve le ticket de l'utilisateur !

Le lab est fonctionnel à l'échelle du réseau local. J'ai pu configurer le serveur, connecter une machine cliente, créer un utilisateur et faire une interaction basique entre helpdesk et utilisateur sous forme de ticket

Sources (Youtube/tuto):

-Frederic Bui

-Numelion IT

-IT connect

-TSSR-AFPA-SER