====== Mise en place d'un serveur GLPI 10.0 avec configuration LDAP et du système de ticket====== {{ :wiki:linux:logo-glpi-bleu-1.png?400 |}} Dans cette documentation nous installerons une solution GLPI avec une liaison LDAP et un certificat SSL. Cette documentation est réalisée dans le cadre d'un TP guidé, il peut donc y avoir d'autre méthode plus ou moins simple pour y parvenir. Pour mieux s'y retrouver cette documentation disposera de plusieurs screenshots illustrant les consignes. ## Préambule ### Fonctionnalités : - Help-desk : gestion des incidents et des demandes - Inventaire automatique du parc informatique - Gestions des licences - Gestion de projets - Gestion financière : budget et amortissement du matériel Nous considérons que vous êtes équipé de cette manière : - Une VM sous Windows Serveur 2k16 **[AD]** - Une VM sous Debian 11 vierge **[GLPI]** Les allocations de matériel (CPU/RAM...) sont à allouer selon vos envies, attention à respecter la configuration minimale. C'est à dire : Pour **GLPI** : - *2GB* de ram - *2* cœurs de CPU - *20GB* d'espace disque - *Debian 11* - *PHP 7.4* Nos IP pour notre infrastructure seront : - [AD] : **10.192.43.101** - [GLPI] : **10.192.43.10** Mot de passe par défaut sur toutes les sessions : **Not24get** Rappel des deux commandes essentiels : - ''ip a'' (connaitre son adresse IP) - ''nano /etc/network/interfaces'' (configuration de l'interface réseau) **Conseil :** Ajouter les deux machines dans un logiciel tel que mRemoteNG pour faciliter l'administration. # Installation de GLPI par le binary ## Installation des dépendances ### GIT apt install git Vérifier avec : git --version ### MariaDB Nous considérons que vous utilisez un serveur SQL externe hébergé sur une autre machine. IP de celui-ci : **10.192.43.11** *[node02]* ### apache2 apt-get install apache2 ## Téléchargement du binary - Se placer dans le dossier 'www' cd /var/www - Telecharger le binary Récupérer la dernière version de GLPI sur [Github Release](https://github.com/glpi-project/glpi/releases). wget -0 "download_link" glpi.tgz - Extraction de l'archive tar xvf glpi.tgz ## Création de l'utilisateur dans le SGBD mysql -h 10.192.43.11 -u root -p ```sql CREATE USER glpiUser IDENTIFIED BY 'Not24get'; CREATE DATABASE glpiDB DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON glpiDB.* TO glpiUser; FLUSH PRIVILEGES; ``` * Tester la connexion : mysql -u glpiUser-p -e "SHOW DATABASES;" ## Création structure de dossier ### Permissions dossiers chown -R www-data:www-data /var/www/glpi ## Configuration du serveur SQL sur GLPI - **1** Hôte : ''10.192.43.11:3306'' - **2** Nom d'utilisateur : ''glpiUser'' - **3** Mot de passe : "password" {{ :wiki:linux:09-glpi-script-install.png?500 |}} Puis une fois l'installation terminée, supprimer le dossier ''install'' : rm -R /var/www/glpi/install ### Pour effectuer des sauvegardes de la BDD Il est possible d'effectuer cette sauvegarde en ligne de commande (Technique permettant d'automatiser la tâche) cd /var/www/glpi/files/_dumps mysqldump --databases --add-drop-database --opt -u root -p glpi >glpi-$(date +"%Y%m%d").sql - Création d'un .zip du dump gzip glpi-$(date +"%Y%m%d").sql # Reverse proxy avec apache {{ :wiki:linux:656px-apache-load-balancer-mod-proxy-http.png?400 |}} ## Création de la config apache2 - Activer l'option reverse_proxy : ``` a2enmod proxy proxy_http service apache2 restart ``` - Créer la configuration dans les *sites-available* : nano /etc/apache2/sites-available/glpi.dom.vade.fr.conf ```xml DocumentRoot /var/www/glpi/ ServerName glpi.dom.vade.fr Require all granted AllowOverride All Options FollowSymLinks MultiViews Dav off ``` - Activer la configuration : a2ensite glpi.dom.vade.fr.conf systemctl apache2 reload - Puis vérifier : systemctl status apache2 # Configuration de GLPI : ### En cas d'oubli du mot de passe : Si vous avez oublié le mot de passe de l'utilisateur local "glpi" et que vous avez accès sous Linux à la base de données MariaDB, exécutez la requête suivante pour réinitialiser le mot de passe de l'utilisateur glpi. - Se connecter sur la base de données : mysql -h 10.192.43.11 -u glpiUser -p ```sql UPDATE glpi_users SET password='$2y$10$/7QrWCYiNwriJyMnLAZCFONlRt1cdAJtO6/qwy3Xyg7Z9MvmCkzNq', is_active=1 WHERE name='glpi'; ``` Désormais, le compte utilisateur ''glpi'' de la base locale a pour mot de passe ''glpi''. ### Ajouter une tâche planifiée permettant de déclencher les actions automatiques de GLPI : - Installer le module php-cli : apt install php-cli - Ajouter dans les tâches cron le script PHP : crontab -u www-data -e `*/5 * * * * /usr/bin/php /var/www/glpi/front/cron.php` ## Ajout d'un lien LDAP et configuration des groupes Afin de permettre aux utilisateurs de se connecter avec leurs comptes AD, il faut ajouter une liaison avec le serveur LDAP de l'AD. Exemple avec un AD de cette structure : {{ wiki:linux:mremoteng_iyvxfawx04.png?300 |}} ### Configuration de la liaison LDAP Dans ''Configuration'', choisissez ''Authentification'' (1) puis dans ''Annuaire LDAP'' (2). {{ wiki:linux:firefox_k8w3hr339j.png?500 |}} Cliquez sur ''Ajouter'' (1) en haut de la page pour ajouter un serveur Active Directory. {{ wiki:linux:firefox_erxzo4au7s.png?400 |}} Remplissez les champs (1) à (7) avec les valeurs correspondants à votre serveur AD. Pour le filtre de connexion il existe une pré-configuration en cliquant sur ''Active Directory'' en haut de la page. {{ wiki:linux:firefox_covllpq22a.png?800 |}} Vous pouvez tester en choisissant à gauche l'onglet ''Tester''. {{ wiki:linux:firefox_sgktcby0mz.png?400 |}} ### Synchroniser la base et ajouter les nouveaux utilisateurs Dans ''Administratation'', choisissez ''Utilisateurs'' (1) puis en haut à droite : ''Liaisons annuaire LDAP'' (2) {{ wiki:linux:wdadesktopservice_7kvalhmul8.png?500 |}} Choisissez ''Importation de nouveux utilisateurs'' (1). {{ wiki:linux:firefox_aybmjpvmzo.png?400 |}} Sélectionner les uitlisateurs à importer puis cliquer sur ''Action'' (2) et choisissez ''Importer'' (3). {{ wiki:linux:firefox_dozewg45rk.png?500 |}} Les utilisateurs sont désormais importés. ### Attribuer des rôles à des utilisateurs LDAP selon leurs groupes AD Pour cela nous allons créer une règle d'habilitation dans GLPI afin d'attribuer les rôles automatiquement aux utilisateurs. Avoir préablement créé les groupes : ''GLPI-ADMIN'', ''GLPI-TECH'', ''GLPI-USERS'' Et y avoir ajouter les utilisateurs nécessaires. Dans ''Règles'', choisissez ''Règles d'affectation d'habilitations à un utilisateur'' (2), puis créer une nouvelle règle. {{ wiki:linux:firefox_r3jbsl6ycu.png?600 |}} Mettre dans les critères que l'utilisateur doit faire parti de ''GLPI-ADMIN'' (la requête LDAP va vérifier si il contient bien le string ''GLPI-ADMIN''). {{ wiki:linux:firefox_gfafxaonre.png?600 |}} Puis l'assigner dans l'entité racine et indiquer le profil souhaité (dans ce cas ''Administrateur''). {{ wiki:linux:firefox_1mna0rcekv.png?600 |}} ## Configuration du système de notification par e-mail ## Configuration du collecteur de ticket ### Créations de l'adresse mail support ### Configuration du collecteur # Ajout des machines dans GLPI ## Ajout manuel avec l'agent GLPI Depuis la version 10.0, Techlib propose un client natif a GLPI, il est toujours possible d'utiliser Fusion Inventory, mais il est recommandé de migrer le parc informatique sur ce nouvel agent. ### Sur une machine Linux ### Sur une machiner Windows ## Script de désinstallation des anciennes versions de l'agent Ce script peut être intégré dans une GPO ou dans un package dans *MECM*. Il permet d'éxecuter en silent les désinstallateur de : - OCS Inventory - FusionInventory *C'est un script écrit en VBScript.* ```vb Wscript.Echo "Uninstalling OCS Inventory, Fusion-Inventory..." Set fso = CreateObject("Scripting.FileSystemObject") If (fso.FileExists("C:\Program Files (x86)\OCS Inventory Agent\uninst.exe")) Then Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run """C:\Program Files (x86)\OCS Inventory Agent\uninst.exe"" /S" End If If (fso.FileExists("C:\Program Files\OCS Inventory Agent\uninst.exe")) Then Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run """C:\Program Files\OCS Inventory Agent\uninst.exe"" /S" End If If (fso.FileExists("C:\Program Files\FusionInventory-Agent\Uninstall.exe")) Then Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run """C:\Program Files\FusionInventory-Agent\Uninstall.exe"" /S" End If If (fso.FileExists("C:\Program Files (x86)\FusionInventory-Agent\Uninstall.exe")) Then Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run """C:\Program Files (x86)\FusionInventory-Agent\Uninstall.exe"" /S" End If ``` ## Installation automatique par déploiement GPO de l'agent ## Mes sources 1. [https://rdr-it.com/glpi-liaison-avec-un-active-directory/](https://rdr-it.com/glpi-liaison-avec-un-active-directory/) 2. [https://pixelabs.fr/configuration-ldap-pour-glpi-active-directory/](https://pixelabs.fr/configuration-ldap-pour-glpi-active-directory/) 3. Les documentations et les cours de [Marc-Henri Pamiseux](https://www.linkedin.com/in/marc-henri-pamiseux), professeur à l'école IIA Laval