========
= GLPI =
========

GLPI (acronyme de gestionnaire libre de parc informatique) est un logiciel libre de gestion des services informatiques (ITSM) et 
de gestion des services d'assistance (Issue Tracking System et ServiceDesk). Cette solution libre est éditée en PHP et distribuée sous licence GPL.


GLPI est une application web qui aide les entreprises à gérer leur système d’information.

Parmi ses caractéristiques, cette solution est capable de construire un inventaire de toutes les ressources de la société et 
de réaliser la gestion des tâches administratives et financières.

Les fonctionnalités de cette solution aident les Administrateurs IT à créer une base de données 
regroupant des ressources techniques et de gestion, ainsi qu’un historique des actions de maintenance.

La fonctionnalité de gestion d'assistance ou helpdesk fournit aux utilisateurs un service leur permettant de signaler 
des incidents ou de créer des demandes basées sur un actif ou non, ceci par la création d'un ticket d’assistance.

(https://fr.wikipedia.org/wiki/Gestion_libre_de_parc_informatique)


Pour une liste des fonctionnalités, voir  https://glpi-project.org/fr/fonctionnalites/

Pour accéder à la documentation, voir  https://glpi-project.org/fr/glpi-documentation/



==========================================================================================
Sur la machine GLPI (Debian 12), installation de GLPI (10.0.11) avec NGINX, PHP et MariaDB
==========================================================================================

Installation des paquets :
# apt install nginx mariadb-server php-fpm
# apt install php-mysql php-curl php-gd php-cli php-imap php-ldap php-apcu php-xml php-xmlrpc php-mbstring php-cas php-bz2 php-zip php-intl
# apt install openssl ssl-cert


Sécurisation de MariaDB :
# mysql_secure_installation
(indiquer un mot de passe 'root' et laisser les réponses par défaut pour le reste)


1. Création d'une base de donnée, d'un utilisateur et du mot de passe associé :
-------------------------------------------------------------------------------

Se connecter au serveur de base de données MariaDB :

# mysql -u root -p

--> après avoir donné le mot de passe, à l'invite de commande mysql, coller chacune des lignes suivantes et appuyer sur 'Enter' :

create user postfo2024 identified by 'Postfo2024-';
create database glpi;
grant all privileges on glpi.* to postfo2024;
flush privileges;
quit;


2. Configuration de NGINX pour GLPI :
-------------------------------------

Supprimer le bloc serveur du Virtual Host par défaut :
# rm /etc/nginx/sites-enabled/default

 
Créer le bloc serveur pour GLPI :
# nano /etc/nginx/sites-enabled/glpi



server {
    listen 80;
    listen [::]:80;
    
    listen 443 ssl;
    listen [::]:443 ssl;
    ssl_certificate     /etc/ssl/certs/ssl-cert-snakeoil.pem;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

    server_name glpi.localhost;

    root /var/www/html/glpi/public;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ ^/index\.php$ {
        # the following line needs to be adapted, as it changes depending on OS distributions and PHP versions
        fastcgi_pass unix:/run/php/php-fpm.sock;

        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}



3. Configuration de PHP :
-------------------------

Modifier les directives suivantes du fichier /etc/php/8.2/fpm/php.ini :

memory_limit = 256M
upload_max_filesize = 16M
date.timezone = Europe/Brussels
session.cookie_httponly = On



Relancer les services nginx et php-fpm :
# systemctl restart nginx
# systemctl restart php8.2-fpm

 

4. Installation de GLPI :
-------------------------

Se placer dans l’arborescence du serveur web :
# cd /var/www/html/

Télécharger la dernière version de GLPI :
# wget https://github.com/glpi-project/glpi/releases/download/10.0.11/glpi-10.0.11.tgz
 
Décompresser l’archive :
# tar xzf glpi-10.0.11.tgz

Supprimer l’archive téléchargée :
# rm glpi-10.0.11.tgz


Définir les droits d'accès et le propriétaire du répertoire :
# chmod -R u+rwX,go+rX,go-w  /var/www/html/glpi/
# chown -R www-data:www-data /var/www/html/glpi/



5. Finalisation de l'installation :
-----------------------------------

Ouvrir un navigateur internet et saisir l’url du serveur web  (http://glpi.postfo.lan)  et suivre les étapes de configuration :

1) Sélectionner la langue, accepter les termes de la licence, cliquer sur 'Installer'.
2) Cliquer sur 'Continuer', saisir les informations concernant les accès à la base de données :
        Serveur SQL :           localhost
        Utilisateur SQL :       postfo2024
        Mot de passe SQL :      Postfo2024-

3) Sélectionner la base de données 'glpi'.

4) Cliquer sur 'Continuer' ...vous pouvez décocher la case "Envoyer les statistiques d’usage"...


Les identifiants par défaut pour se connecter à l’interface web d'administration de GLPI sont :  glpi/glpi

Par souci de sécurité :
- Changer les mots de passe pour les utilisateurs : glpi, post-only, tech et normal  (Barre latérale : Administration > Users)
- Effacer le fichier  install/install.php  (rm /var/www/html/glpi/install/install.php)



L'installation et la configuration de base de GLPI sont maintenant terminées.



==================================
Les fonctionnalités d'inventaire :
==================================

Pour automatiser l'inventaire d'un parc informatique, un agent est installé sur les machines à inventorier.
Cet agent est capable de communiquer avec le serveur GLPI et d'y construire une base de données du parc informatique.
L'agent permettra également le déploiement de logiciels sur les machines inventoriées.

Pour la documentation, voir  https://glpi-agent.readthedocs.io/en/latest/


1. Activation de l'inventaire sur le serveur :
----------------------------------------------

Il est nécessaire d'activer l'inventaire sur le serveur : Administration > Inventaire > cocher "Activer l'inventaire" et sauvegarder la configuration.



2. Installataion de l'agent :
-----------------------------

Il est possible d'installer l'agent sur une variété d'OS : Windows, Linux, OS X, BSD, Solaris, ...
Voir  https://github.com/glpi-project/glpi-agent/releases


Pour installer l'agent sur une machine Linux :
# cd /tmp/
# wget https://github.com/glpi-project/glpi-agent/releases/download/1.7.1/glpi-agent-1.7.1-linux-installer.pl
# perl glpi-agent-1.7.1-linux-installer.pl --server=http://glpi.postfo.lan


Pour réaliser un inventaire immédiat :
# glpi-agent




Exercices :
-----------

- Installer l'agent sur le serveur GLPI (Debian) et sur la machine cliente (Fedora) et sur une machine Windows.
  Vérifier dans l'interface web de gestion de GLPI que les machines nouvellement inventoriées s'y trouvent.

- Utiliser le module 'Assistance - Helpdesk' de GLPI afin de créer et de gérer des tickets d'assistance.
  https://glpi-user-documentation.readthedocs.io/fr/latest/modules/assistance/index.html