GLPI (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 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 informatiques à 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.
Commencons par mettre à jour le serveur:
apt update && apt upgrade
apt install apache2
Une fois l’installation complète, Debian démarre le service et l’active au démarrage du système.
Pour démarrer/arrêter/ voir le statut du serveur web :
systemctl start apache2
systemctl stop apache2
systemctl status apache2
root@srvglpi:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-10-13 09:33:27 CEST; 1h 10min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 387225 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 387229 (apache2)
Tasks: 11 (limit: 9265)
Memory: 136.5M
CPU: 49.046s
CGroup: /system.slice/apache2.service
├─387229 /usr/sbin/apache2 -k start
├─387232 /usr/sbin/apache2 -k start
├─387234 /usr/sbin/apache2 -k start
├─387236 /usr/sbin/apache2 -k start
├─387241 /usr/sbin/apache2 -k start
├─387243 /usr/sbin/apache2 -k start
├─387247 /usr/sbin/apache2 -k start
├─387248 /usr/sbin/apache2 -k start
├─387249 /usr/sbin/apache2 -k start
├─389222 /usr/sbin/apache2 -k start
└─389324 /usr/sbin/apache2 -k start
Pour l’activer/désactiver au démarrage :
systemctl disable apache2
systemctl enable apache2
On teste le serveur Web en se connectant en HTPP via l’@IP du serveur, on obtient la page par défaut d’Apache :
Installation de PHP et des modules nécessaires à GLPI :
apt install php libapache2-mod-php php-curl php-fileinfo php-json php-zip php-gd php-intl php-pear php-imagick php-imap php-memcache php-pspell php-tidy php-xmlrpc php-xsl php-mbstring php-ldap php-cas php-apcu php-mysqli php-mysql php-simplexml php-xml php-cli php-bz2
Il est intéressant de tester PHP. Créer un fichier /var/www/html/test.php et ajouter :
<?php
phpinfo();
?>
On redémarre Apache :
systemctl restart apache2
Puis on test l’affichage de PHP via http://XX.XX.XX.XX/test.php :
On supprime le fichier de test :
rm -Rf /var/www/html/test.php
On télécharge le paquet :
apt install mariadb-server
On sécurise l’installation (taper Y aux questions demandées) :
mysql_secure_installation
Set Root Password? Y
Remove anonymous users? Y
Disallow root login remotely? Y
Remove test database and access to it? Y
Reload privilege tables now? Y
On se connecte :
mysql -u root -p
On crée la base de données, on la nommera glpidb
:
CREATE DATABASE glpidb;
On donne tous les privilèges à la database glpidb
et on crée l’utilisateur glpiuser
par exemple avec son mot de passe, puis on enlève les autres droits :
GRANT ALL PRIVILEGES ON glpidb.* TO 'glpiuser'@'localhost' IDENTIFIED BY 'your-password';
FLUSH PRIVILEGES;
EXIT;
Si besoin, les sources sont disponibles sur leur github
À ce jour, la dernière version est la 10.0.3
On se place dans un répertoire de travail temporaire et on télécharge l’archive :
cd /tmp/
wget -c https://github.com/glpi-project/glpi/releases/download/10.0.3/glpi-10.0.3.tgz
On extrait l’archive et on déplace les fichiers dans /var/www/html/ avec les bonnes permissions
tar -xvf glpi-10.0.3.tgz
sudo mv glpi /var/www/html/
sudo chmod 775 -R /var/www/html/
sudo chown www-data:www-data -R /var/www/html/
On créé un nouvel VirtualHost pour GLPI :
sudo nano /etc/apache2/sites-available/glpi.conf
Coller et adapter à votre structure !
<VirtualHost *:80>
ServerAdmin admin@your_domain.com
DocumentRoot /var/www/html/glpi
ServerName your-domain.com
<Directory /var/www/html/glpi>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined
</VirtualHost>
On enregistre le fichier et on active le nouvel Virtualhost :
sudo ln -s /etc/apache2/sites-available/glpi.conf /etc/apache2/sites-enabled/glpi.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
On se connecte à l’interface web vai l’adresse IP de votre serveur : http://XX.XX.XX.XX/glpi
Sélectionner Français puis OK :
Acceptez les conditions puis Continuer :
Cliquer alors sur Installer:
Une liste de tests va s’afficher, si vous avez bien tout suivi, vous n’aurez pas d’erreur à part la dernière tout en bas qui indique :
• L’accès web au dossier « files » ne devrait pas être autorisé
Vérifier le fichier .htaccess et la configuration du serveur web
-> N’en prenez pas compte pour le moment, on s’en occupera plus tard. Cliquez donc sur Continuer
On vous demande alors quel est le serveur de base de données et les identifiants qui permettront d’écrire dans la BDD glpi créée précédemment. Dans Serveur SQL on va mettre localhost
, ce qui signifie que MySQL est sur la même machine qu’Apache. Dans Utilisateur SQL, on met celui que l’on a créé dans MariaDB nommé glpiuser
, avec son mot de passe. Puis on clique sur Continuer
:
Sélectionnez ensuite la BDD glpidb
créé précédemment puis Continuer :
La base de données va alors être peuplée, ce qui va prendre quelques secondes… Soyez patient
Et c’est une belle réussite ! Cliquez sur Continuer :
Choisissez d’envoyer ou non des données de statistiques puis Continuer :
Prenez note qu’il existe un service de support professionnel pour GLPI puis Continuer :
Sont ensuite affichés les identifiants d’accès par défaut de GLPI. Cliquez sur Utiliser GLPI :
On va supprimer le fichier PHP d’installation au niveau du serveur pour enlever le message d’erreur:
rm /var/www/html/glpi/install/install.php
On va s’occuepor du message suivant vu tout à l’heure à l’installation :
• L’accès web au dossier « files » ne devrait pas être autorisé
Vérifier le fichier .htaccess et la configuration du serveur web
On arrête le serveur Apache :
systemctl stop apache2
On édite le fichier suivant :
nano /etc/apache2/sites-available/000-default.conf
<Directory /var/www/html/glpi>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
On active le module de réécriture du serveur web et on le redemamare:
a2enmod rewrite
systemctl start apache2
La sécurisation des connexions est obligatoire pour le déploiement et pour la sécurité des connexions au serveur, on va voir très rapidement ici comment l’activer sur notre apache, à l’aide d’un certificat SSL auto-signé.
Créer un dossier pour stocker le certificat :
mkdir /etc/apache2/ssl
Installez openssl si ce n’est déjà le cas :
apt-get install openssl
Générez la clé RSA (nommer le fichier comme vous le souhaitez) :
openssl genrsa 2048 > /etc/apache2/ssl/srvglpi.key
Créez le certificat (nommer le fichier comme vous le souhaitez) :
Faire une sauvegarde et éditer ensuite le fichier default-ssl.conf du serveur web:
cp -Rf /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.sauv
nano /etc/apache2/sites-available/default-ssl.conf
Trouvez ces directives :
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
Et remplacez les valeurs par le chemin vers le certificat précédemment créer (A adapter) :
SSLCertificateFile /etc/apache2/ssl/srvglpi.crt
SSLCertificateKeyFile /etc/apache2/ssl/srvglpi.key
Activer SSL et le fichier de conf :
sudo a2enmod ssl
sudo a2ensite default-ssl
Redémarrer apache:
systemctl stop apache2
systemctl start apache2
systemctl reload apache2
Enfin, testez de vous connecter en SSL sur votre serveur : https://X.X.X.X/glpi
Vous aurez un message dans le navigateur, cela vient du fait que le certificat est auto-signé, cliquez sur Avancé puis Ajouter une exception puis Confirmer l’exception de sécurité.
Pour vous identifier la première fois, l’identifiant par défaut est glpi avec le mot de passe glpi :
On va tout de suite se créer un vrai utilisateur super-admin au sein de GLPI, et supprimer les utilisateurs par défaut. Pour cela allez dans le menu Administration/Utilisateurs/
:
Cliquez sur Ajouter utilisateur
et choisir un Identifiant/Mot de passe. Et enfin, dans Habilitation
, prenez soin de bien sélectionner Super-admin :
Vous pouvez maintenant vous identifier avec ce super-admin fraîchement créé et supprimer/désactiver les comptes nommés glpi, normal, post-only, tech, qui ne sont que des exemples.
Pour pouvoir recevoir un email lors de ticket ou autre, il faut paramétrer les notifications de GLPI. Pour se faire, aller dans le menu Configuration/Notifications
. Dans Configuration des notifications, activer le suivi, les notifications par courriel et navigateur. Cliquez ensuite sur Configuration des notifications par courriel
:
Ajoutez vos informations de vos serveurs mail et BAL puis enregistrer vos paramètres.
Pour Azure/office365, un tuto est disponible sur le forum officiel
Vous pouvez paramétrer l’authentification de GLPI en synchronisant votre annuaire LDAP à partir du menu Configuration > Authentification > Annuaires LDAP
:
Nous allons maintenant importer les utilisateurs Active Directory dans GLPI.
La manière la plus simple pour installer un plugin est d’avoir un compte GLPI Network et paramètrer celui-ci sur l’interface. De ce fait l’installation de plugins se fera directement via l’interface web.
Une fois votre compte enregistré et activé, vous recevrez une clé d’enregistrement à coller dans Accueil/Configuration/Générale/GLPI Network
:
Une fois cela fait vous pouvez aller Configuration/Plugins/Découvrir
:
Vous pouvez tlécharger un plugin comme ceci
Il apparaitra ensuite dans les plugins installés.
Voici le détails des manipulations de plugins :
Les plugins GLPI sont dispo à cette adresse : https://plugins.glpi-project.org/#/
Vérifier la compatibilité avec votre version de GLPI
Prenons l’exemple du plugin GLPI Data Injection, télécharger-le via un wget et placer l’archive dans le répertoire des plugins /var/www/html/glpi/plugins
Décompresser l’archive et supprimer là:
cd /var/www/html/glpi/plugins
bzip2 -dk glpi-datainjection-2.7.0.tar.bz2
tar xls vf glpi-datainjection-2.7.0.tar
rm -f glpi-datainjection-2.7.0.tar glpi-datainjection-2.7.0.tar.bz2
Vous vous retrouver donc avec un dossier nommé datainjection dans /var/www/html/glpi/plugins
Vérifier les droits !!!
Dans GLPI, allez ensuite dans le menu Configuration/Plugins
. Votre plugin apparaitra, il vous suffira de l’installer et l’activer.
Aller au chapitre Installation et configuration de plugins pour savoir comment installer le plugin Data Injection.
Nous allons utiliser le plugin datainjection qui va nous permettre l’importation de données depuis des fichiers CSV.
Il pourra servir, par exemple, à :
+ Importer des machines à la livraison (bon de livraison électronique en CSV)
+ Importer des données complémentaires de configuration (utilisateurs, adresses, lieux etc…)
+ Importer des matériels non gérés par OCS/Fusion inventory/Glpi Agent
+ Migrer depuis un autre outil de gestion de parc
Seuls les utilisateurs disposant du profil Super-Admin sont autorisés à importer des données dans GLPI via le plugin Data Injection. Pour donner les autorisations d’utiliser et des créer des modèles d’injection de fichiers, il faut aller dans Administration/Profils
.
Cliquez sur le profil de l’utilisateur concerné. Choisissez Data Injection dans le bandeau de gauche du profil et donnez les autorisations adéquates.
Vous devez ensuite définir un modèle d’injection de fichiers en allant dans Outils/Data Injection/Modèles
:
Nous allons pour l’exemple, ajouter un modèle permettant d’importer des lieux dans GLPI :
L’option Ajouter des intitulés permet de créer de nouveau enregistrements dans des tables liées (lieux, etc) :
Préparer et ajouter votre fichier CSV :
Établissez les correspondance entre vos champs CSV et les tables de GLPI en activant les champs de liaison :
Il peut être interressant d’imposer des champs obligatoire lors de la création de ticket apr les utilisateurs.
Pour se faire, nous allons devoir crééer un gabarit de ticket.
Aller dans le menu Assistance/Tickets
:
Puis cliquer sur Gabarits
et Ajouter :
Donner un nom au gabarit :
Sélectionner ensuite les champs obligatoires à ajouter :
Vous pouvez aussi préremplir automatiquement certains champs dans l’onglet Champs prédéfinis
:
Vous pouvez ensuite voir le résultat dans l’onglet Interface standard
et Interface simplifiée
, les champs obligatoires ont un petit astérisque rouge :
Il faut ensuite appliquer/attribuer ce nouveau gabarit à un profil existant. Aller dans le menu Administration/Profils
:
Sélectionner le profil désiré (ici le profil Technician), dans l’onglet Assistance
, attribuer votre nouveau gabarit au profil puis sauvegarder :
Lors de la création d’un ticket, un mécanisme permet de modifier les attributs du ticket de manière automatique. Ce type de règle est accessible depuis le menu Administration/Règles/Règles métier pour les tickets.
Les critères disponibles sont tous les attributs du ticket (titre, description, statut, catégorie, urgence, impact, priorité, source de la demande, type de matériels, demandeurs groupe/utilisateur/lieu, attribué à fournisseur/groupe/technicien, type de matériels, entité) ainsi que d’autres liés aux collecteurs de courriels (entêtes…).
Les actions possibles sont de modifier certains attributs du ticket (statut, catégorie, urgence, impact, priorité, demandeurs groupe/utilisateur/lieu, attribué à fournisseur/groupe/technicien). Il est aussi possible d’attribuer un ticket à un matériel en fonction de données présentes dans le ticket (attribution sur l’adresse IP, le nom complet et le domaine, l’adresse MAC).
Remarque : les règles métier pour les tickets ne sont jouées qu’à la création du ticket. Lors de la modification de celui-ci, aucun mécanise automatique n’est lancé.
Important : le moteur joue toutes les règles les unes après les autres. Le résultat des règles précédentes est passé à la règle en cours. Cela veut dire que si une règle précédente modifie un attribut utilisé par la règle courante, c’est la valeur modifiée de celui-ci qui sera traité.
Depuis le version 10.0.0, GLPI à forké le plugin Fusion Inventory, leur outils se nomme GLPI Agent.
L’idée est de déployer cette agent avec des paramètres spécifiques (URL/IP du serveur etc, fréquence d’inventaire, etc…) et celui ci va inventorier la machine (hostname, OS, IP, logiciels, hdd, etc…) et remonter les informations au serveur GLPI.
Cette agent peux être déployer facilement par GPO dans votre domaine via un petit script batch ou manuelement.
La documentation officielle se trouve ici: https://glpi-agent.readthedocs.io/en/latest/
Pour ma part, j’ai plus de 40 sites à gérer et j’aimerais automatiser les éléments suivants :
L’assignation automatique du lieu en fonction de l’@IP est possible grâce aux règles d’affectation d’un élément à une entité
L’assignation automatique du groupe en fonction du lieu est possible grâce aux règles métier pour les matériels
L’assignation automatique du groupe technique & responsable technique en fonction du type d’élément (Ordinateur) est possible grâce aux règles métier pour les matériels
Bien sur, si cela ne vosu interresse pas, vous pouvez passer directement au chapitre d’installation de l’agent.
Il faut bien sur que les intitulés de lieux soit créer en amont via le menu
Paramètres/Intitulés/Général/Lieux
Pour cela on va créer des règles d’affectation d’un élément à une entité via le menu Administration/Règles/règles d'affectation d'un élément à une entité
:
Ajouter une règle. Donner lui un nom, définir l’opérateur logique Et et activer la règle :
Dans l’onglet Critères
, ajouter un nouveau critère: Adresse IP, contient, votre ip
Mon sosu-réseau est définit via les 3 premiers octets donc je laisse un point à la fin (à vous d’adapter en suivnat la même logique)
Dans l’onglet Action
, ajouter un nouvelle action: Lieu, Assigner, votre lieu
Il faut bien sur que les groupes soit créer en amont via le menu
Administration Groupes
Pour cela on va créer des règles métier pour les matériels via le menu Administration/Règles/règles métier pour les matériel
:
Ajouter une règle. Donner lui un nom, définir l’opérateur logique Et, activer la règle et définit Ajouter/Mettre à jour :
Dans l’onglet Critères
, ajouter un nouveau critère: Lieux, est, votre lieu
Dans l’onglet Action
, ajouter un nouvelle action: Groupe, Assigner, votre groupe
Il faut bien sur que les éléments nécéssaires soit créer en amont !
Pour cela on va créer des règles métier pour les matériels via le menu Administration/Règles/règles métier pour les matériel
:
Ajouter une règle. Donner lui un nom, définir l’opérateur logique Et, activer la règle et définit Ajouter/Mettre à jour :
Dans l’onglet Critères
, ajouter un nouveau critère: Type d’éléments, est, ordinateur
Dans l’onglet Action
, ajouter un nouvelle action: Responsable Technique, Assigner, votre groupe
Dans l’onglet Action
, ajouter un nouvelle action: Groupe Technique, Assigner, votre groupe
Voici mon script d’installation utilisé en production. C’est cadeau !
A vous d’adapter selon vos besoin
@ECHO off
ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::
ECHO :::. INSTALLATION SILENCIEUSE .:::
ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::
ECHO.
ECHO ==================================================
ECHO INSTALL GLPI AGENT INVENTORY
ECHO ==================================================
ECHO Date de creation : 26.04.2022
ECHO Date de version : 13.10.2022
ECHO Auteur : VIOLENCE
ECHO Version : 1.1
ECHO ==================================================
::ECHO 26.04.2022: Creation du script
::ECHO 26.04.2022 VIOLENCE V 1.0: Installation GLPi Agent v.1.2
::ECHO 13.10.2022 VIOLENCE V 1.1: Installation GLPi Agent v.1.4
ECHO ==================================================
ECHO.
@ECHO off
COLOR 0B
ECHO Installation de l'agent GLPi...
msiexec /i \\VIOLENCE\Sauvegardes\GLPI\agent_glpi\GLPI-Agent-1.4-x64.msi /quiet RUNNOW=1 SERVER='http://172.23.62.213/glpi/front/inventory.php' ADD_FIREWALL_EXCEPTION=1 ADDLOCAL=ALL DEBUG=2 RUNNOW=1 TASK_FREQUENCY=daily
ECHO Installation de l'agent GLPi OK...
ECHO ==================================================
ECHO TESTS LOG ET FICHIERS JOURNAUX
ECHO ==================================================
:CREER
cd \
C:
mkdir C:\_VIOLENCE
CD _VIOLENCE
mkdir Log_Install_Logiciels
cd \
C:
:REMOVEOLDLOG
ECHO Suppression du fichier log si présent
CD C:\_VIOLENCE\Log_Install_Logiciels
DEL C:\_VIOLENCE\Log_Install_Logiciels\version_glpi_agent_*.*.* /f /q
ECHO =================================================
ECHO ECRITURE DU FICHIER JOURNAL
ECHO =================================================
:fichier_journal
ECHO ecriture du nouveau fichier journal
cd \
C:
CD C:\_VIOLENCE\Log_Install_Logiciels
ECHO ... > version_glpi_agent_1.4.txt
ECHO Installation terminee le %DATE% >> version_glpi_agent_1.4.txt
ECHO A %TIME% >> version_glpi_agent_1.4.txt
ECHO ... >> version_glpi_agent_1.4.txt
ECHO .... NOM du domaine >> version_glpi_agent_1.4.txt
set USERDOMAIN >> version_glpi_agent_1.4.txt
ECHO ... >> version_glpi_agent_1.4.txt
ECHO .... Nom du poste >> version_glpi_agent_1.4.txt
set COMPUTERNAME >> version_glpi_agent_1.4.txt
ECHO ... >> version_glpi_agent_1.4.txt
ECHO .... Version de l'OS >> version_glpi_agent_1.4.txt
set OS >> version_glpi_agent_1.4.txt
ECHO ... >> version_glpi_agent_1.4.txt
ECHO .... NOM du profil utilisateur >> version_glpi_agent_1.4.txt
set USERPROFILE >> version_glpi_agent_1.4.txt
ECHO ... >> version_glpi_agent_1.4.txt
ECHO .... >> version_glpi_agent_1.4.txt
ECHO =================================================
ECHO SORTIE DU SCRIPT
ECHO =================================================
:FIN
exit
Le plus important étant ce qui suit, vous pouvez vous passer du reste :
msiexec /i \\VIOLENCE\Sauvegardes\GLPI\agent_glpi\GLPI-Agent-1.4-x64.msi /quiet RUNNOW=1 SERVER='http://172.23.62.XXX/glpi/front/inventory.php' ADD_FIREWALL_EXCEPTION=1 ADDLOCAL=ALL DEBUG=2 RUNNOW=1 TASK_FREQUENCY=daily
On va donc lancer l’éxécutable de l’agent GLPI à partir d’une ressource réseau avec certains paramètres:
Vous pouvez déployer l’agent sur tout les postes (ou non) de votre domaine en crééant une GPO sur une OU de votre domaine ou plusieurs.
Le tuto n’as pas pour but de vous expliquer la création de GPO.
Sachez juste que c’est une GPO Ordinateur qui déploie un script de démarrage comme illustré ci-dessous :
Une fois que vous êtes bien dans cette partie de l’éditeur, double-cliquez sur « Démarrage » dans la partie de droite et vous verrez la fenêtre suivante :
Cliquez sur le bouton « Ajouter ».
Il y a 2 parties à remplir ici :
Dans la 1ère partie, il faut saisir le chemin du partage suivi du nom du fichier exécutable.
Attention de ne pas utiliser le bouton
Parcourir
qui peut vous induire en erreur si vous déclaré un chemin local de typeE:\GLPI-Agent-1.4-x64.msi
Dans mon cas, je vais saisir ceci en tant que « nom du script » :
\\VIOLENCE\Sauvegardes\GLPI\agent_glpi\GLPI-Agent-1.4-x64.msi
\\
signifie que c’est un dossier hébergé sur le réseau et donc accessible à distance, ensuite le nom de la machine qui héberge le partage (ici donc c’est le nom de mon serveur), puis le nom du partage lui-même, et pour finir le nom du logiciel à installer avec son extension à la fin.
Ensuite on va s’attaquer aux paramètres !
Pour nous ce sera donc:
/quiet RUNNOW=1 SERVER='http://172.23.62.XXX/glpi/front/inventory.php' ADD_FIREWALL_EXCEPTION=1 ADDLOCAL=ALL DEBUG=2 RUNNOW=1 TASK_FREQUENCY=daily
Pour résumer:
Une fois le pc redémarré (pour le cas d’un déploiement via GPO), l’agent est installé dans C:\Program Files\GLPI-Agent
Les logs sont disponibles dansa le fichier situé dans C:\Program Files\GLPI-Agent\logs\glpi-agent.log
Vous pouvez forcer un inventaire en se connectant sur l’interface web de l’agent via l’URL http://localhost:62354
(Noter que l’agent GLPi utilise le port N°62354) en utilisant le lien Force en inventory
:
Votre PC devrait remonter dans les groupes et intitulés de lieux adéquats dans votre GLPI
On se connecte en root :
mysql -u root -p
On regarde les BDD existantes :
SHOW DATABASES;
Nous allons exporter la base de données « glpidb » dans un fichier .sql.
Pour cela, nous allons utiliser la commande mysqldump
, fournie directement par le logiciel MariaDB
Adapter le chemin de sortie et le nom du fichier dans la commande !
mysqldump -u root -p -q --databases glpidb > /home/glpi/Sauvegarde_GLPI_BDD/glpi-backup-10.0.3-2022-10-13-14-00.sql
On peut vérifier le bon déroulement de l’export via la commande CAT :
cat /home/glpi/Sauvegarde_GLPI_BDD/glpi-backup-10.0.3-2022-10-13-14-00.sql
Désormais, avant d’importer notre base et ses données, nous allons créer une base ayant le même nom.
mysql -u root -p
CREATE DATABASE glpidb;
SHOW DATABASES;
Nous pouvons désormais passer à l’import de notre base de données. Pour cela, nous utilisons directement la commande mysql :
mysql -u root -p glpidb < /home/glpi/Sauvegarde_GLPI_BDD/glpi-backup-10.0.3-2022-10-13-14-00.sql
La base étant importée, nous pouvons vérifier si celle-ci dispose bien des données correspondantes en affichant les tables par exemple :
mysql -u root -p
On se positionne sur la base de données glpidb :
MariaDB [(none)]> use glpidb;
Sélection des données de la table glpidb :
MariaDB [glpidb]> show tables;
Ou bien en affichant les données d’une table (Ici Contacts par exemple)
MariaDB [glpidb]> SELECT * FROM glpi_contacts;
Télécharger l’archive d’installation de GLPI sur le site web du projet GLPI : http://www.glpi-project.org dans la rubrique Télécharger puis la transférer sur le serveur via WinSCP ou SSH.
Remarque : Numérotation des versions : l’archive est nommée GLPI Version X.YY.ZZ où X.YY est le numéro de version majeure et ZZ indique le numéro de version corrective. Exemple : GLPI 0.72.4 correspond à la 4ème version corrective de la version majeure 0.72.
On peut aussi la récupérer en direct sur le github via un wget (Nous travaillons dans le répertoire /home/glpi):
cd /home/glpi/
wget https://github.com/glpi-project/glpi/releases/download/10.0.2/glpi-10.0.4.tgz
On décompresse l’archive :
tar -xvf glpi-10.0.4.tgz
Sauvegarder le répertoire GLPI dans son intégralité dans un répertoire temporaire et/ou sur une clé USB en se déconnectant de GLPI et en arrêtant le serveur web :
systemctl stop apache2
cp -aRf /var/www/html/glpi/ /home/glpi/Sauvegarde_GLPI/
Sauvegarder la base de données via GLPI et/ou Maria DB (comme vous le voulez, voir le chapitre dédié)
Retournons sur le répertoire de la nouvelle version de GLPI (10.0.4) :
cd /home/glpi/glpi/
Supprimer le répertoire files
et plugins
. On les restaura ensuite avec les répertoires de l’anciennes versions qui contient les documents déjà existants :
rm -R files/
rm -R plugins/
Nous devons maintenant déplacer le répertoire de notre GLPI en production dans un répertoire temporaire :
mv /var/www/html/glpi /root/glpi_old
Nous allons remettre les anciens dossiers nécessaires vers le dossier GLPI de la nouvelle version :
cp -Rf /home/glpi/Sauvegarde_GLPI/glpi/files/ /home/glpi/glpi
cp -Rf /home/glpi/Sauvegarde_GLPI/glpi/plugins/ /home/glpi/glpi
cp -Rf /home/glpi/Sauvegarde_GLPI/glpi/pics/login_logo_glpi.png /home/glpi/glpi/pics
cp -Rf /home/glpi/Sauvegarde_GLPI/glpi/config/glpicrypt.key /home/glpi/config
Le fichier de clé
/var/www/html/glpi/config/glpicrypt.key
est utilisé pour chiffrer / déchiffrer les données sensibles. Vous devez le récupérer à partir de votre installation précédente, sinon les données chiffrées seront illisibles.
Le fichierlogin_logo_glpi.png
est optionel, je l’utilise pour mon logo personel
À partir de là, nous pouvons mettre la nouvelle version dans le répertoire « www » du serveur web :
mv /home/glpi/glpi /var/www/html/
Pour finir, nous devons attribuer tous les droits à l’utilisateur www-data
à ce dossier afin de prévenir des problèmes d’écritures qu’on aurait pu avoir lors de la configuration :
chmod 775 -R /var/www/html/
chown www-data:www-data -R /var/www/html/
On redémarre le serveur web :
systemctl start apache2
Rendez-vous sur le nouveau GLPI dans votre navigateur :
Sélectionner le français et accepter la licence :
Ne cliquez pas sur installer mais Mettre à jour
, car nous souhaitons conserver les données de l’ancienne version :
Cliquez sur Continuer si pas d’erreur dérangeante :
On vous demande alors quel est le serveur de base de données et les identifiants qui permettront d’écrire dans la BDD glpi créée précédemment. Dans Serveur SQL on va mettre localhost
, ce qui signifie que MySQL est sur la même machine qu’Apache. Dans Utilisateur SQL, on met celui que l’on a créé dans MariaDB nommé glpiuser
, avec son mot de passe. Puis on clique sur Continuer :
Sélectionnez ensuite la BDD glpidb
créé précédemment puis Continuer :
Un avertissement apparait pour mettre à jour la BDD, cliquer sur Continuer :
Vous pouvez désormais vous connecter.
Comme pour une première installation, on va supprimer le fichier PHP d’installation au niveau du serveur :
rm /var/www/html/glpi/install/install.php
Il sera nécessaire de réactiver les plugins existants si le répertoire Plugins & été sauvegarde puis réinjecter.