Dans mes articles précédents nous avons vu comment installer GLPI en version 10 et comment le connecter à l’Active Directory.
Nous partions de l’hypothèse qu’aucun GLPI n’était existant dans notre réseau, et que nous ne reprenions aucun historique.

Nous allons voir ici comment migrer d’un GLPI existant vers un nouveau serveur.

Situation initiale et méthodologie

Dans notre contexte technique nous partirons d’un serveur GLPI de production, installé sur une Debian 10 et un GLPI 9.5.
Nous aurons plusieurs plugins installés tels que:

Le serveur Apache sera configuré pour publier GLPI en HTTP seulement.

Nous souhaitons migrer vers un serveur Ubuntu 22.04LTS et un GLPI 10.
Nous souhaitons aussi conserver les fonctionnalités de base telles que nos plugins et l’import dans l’inventaire via Fusion Inventory.

La migration consistera d’abord à migrer l’existant sur un nouveau serveur, puis à mettre à jour notre installation.
Nous considérerons les actions suivantes:

  1. Sauvegarde de la base de données par la création d’un dump au format .sql
  2. Sauvegarde des données de GLPI 9.5
  3. Sauvegarde de la configuration Apache
  4. Copie du dump, des données et des fichiers de configuration sur le nouveau serveur
  5. Configuration du nouveau serveur
  6. Réinjection de la base de données
  7. Copie des fichiers GLPI 9.5
  8. Test et vérification de fonctionnement
  9. Mise à jour en GLPI 10
  10. Mise à jour des plugins

Nos serveurs seront configurés avec les IP suivantes:

Serveurs IP
GLPI 9.5 192.168.1.105
GLPI 10 192.168.1.101

Extraction des données de GLPI9.5

Nos premières actions seront la création d’un fichier dump de la base de données et la récupération des fichiers de GLPI 9.5.

Nous nous connecterons en SSH sur le serveur puis nous passerons en root.

ssh admin@192.168.1.105
su root

Une fois en root, nous créerons un répertoire dans lequel nous mettrons toutes nos sauvegardes :

mkdir /temp_glpi

Nous compresserons les fichiers dans le répertoire de sauvegarde:

tar -czvf /temp_glpi/glpi_dir.tar.gz /var/www/glpi.domaintest.loc/

Puis nous nous connecterons à MARIADB pour vérifier le nom de la base de données à exporter:

mysql -u root -p

Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 99
Server version: 10.3.27-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| glpidb             |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.011 sec)

MariaDB [(none)]> exit
Bye

Ici notre base de données s’appelle « glpidb ». Nous l’exporterons donc dans un fichier .sql avec mysqldump:

mysqldump -u root -p glpidb > /temp_glpi/glpi.sql

Une fois ces opérations effectuées vous serez prêt à les copier sur le nouveau serveur.

Copie des fichiers sur le nouveau serveur

A partir du serveur GLPI 9.5 nous lancerons une commande scp afin de copier les fichiers sur le serveur GLPI 10.

scp /temp_glpi/* admin@192.168.1.101:/home/admin/ 
The authenticity of host '192.168.1.101 (192.168.1.101)' can't be established. 
ECDSA key fingerprint is SHA256:LL51Nmi1qS5hYg1zBuQy679gufX+PY5QS7MYzwKweAE. 
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added '192.168.1.101' (ECDSA) to the list of known hosts. 
admin@192.168.1.101's password: 
glpi_dir.tar.gz 100% 368MB 9.2MB/s 00:39 
glpi.sql 100% 889MB 8.8MB/s 01:41

 

Une fois la copie terminée nous nous connecterons sur le nouveau serveur:

ssh admin@192.168.1.101

Nous pourrons constater avec la commande « ls » que les fichiers sont bien présents dans  /home/admin.

Configuration du nouveau serveur

Pour configurer notre nouveau serveur nous pourrons utiliser l’article suivant: https://remiflandrois.fr/2022/08/31/installation-de-glpi-10/

Nous réaliserons les étapes suivantes:

  1. Installation des pré-requis

  2. Configuration de MariaDB

  3. Configuration de PHP

  4. Configuration du VHost Apache

  5. Configuration du pare-feu IPTABLES

Une fois ces opérations réalisées nous pourrons créer le dossier qui accueillera les données de GLPI 9.5

sudo mkdir /var/www/glpi.domaintest.loc

Puis nous copierons les données à l’intérieur:

tar -xvf glpi_dir.tar.gz
cp -R var/www/glpi.domaintest.loc/* /var/www/glpi.domaintest.loc/

Puis nous donnerons les droits au répertoire:

sudo chown -R www-data:www-data /var/www/glpi.domaintest.loc/
sudo chmod -R 775 /var/www/glpi.domaintest.loc/

Enfin nous réintégrerons la base de données:

mysql -u root -p glpidb < glpi.sql

A ce stade si vous obtenez une page blanche dans votre navigateur vous devrez reconfigurer le connecteur de base de données de GLPI.
Pour cela nous éditerons le fichier /var/www/glpi.domaintest.loc/config/config_db.php :

nano /var/www/glpi.domaintest.loc/config/config_db.php

<?php
class DB extends DBmysql {
   public $dbhost     = 'localhost';
   public $dbuser     = 'glpi';
   public $dbpassword = 'votre mot de passe';
   public $dbdefault  = 'glpidb';
}

Une fois ceci fait il vous restera à:

  • Modifier votre DNS vers le nouveau serveur Ubuntu de manière à ce que le domaine glpi.domaintest.loc soit redirigé vers l’IP 192.168.1.101
  • Accéder à votre installation de GLPI 9.5 migrée sur le nouveau serveur Ubuntu avec l’adresse https://glpi.domaintest.loc et vous y connecter avec vos identifiants habituels

 

Mise à jour vers GLPI 10

Nous récupérerons les sources de l’outil et nous les placerons dans le bon répertoire avec les commandes suivantes:

wget https://github.com/glpi-project/glpi/releases/download/10.0.3/glpi-10.0.3.tgz
sudo tar -xzvf glpi-10.0.3.tgz
sudo cp -R glpi/* /var/www/glpi.domaintest.loc/

Puis nous donnerons les droits adéquats:

sudo chown -R www-data:www-data /var/www/glpi.domaintest.loc/
sudo chmod -R 775 /var/www/glpi.domaintest.loc/

Pour lancer la mise à jour nous nous connecterons à GLPI 10 à l’adresse http://glpi.domaintest.loc

Nous lancerons la mise à jour en cliquant sur le bouton « Mettre à jour ».

La mise à jour se lancera et passera les versions qui vous séparent de la dernière release (ici la 10.0.3).

Une fois la mise à jour terminée, nous pourrons accéder à notre GLPI 10 en cliquant sur le bouton « Utiliser GLPI ».

Vous retrouverez alors votre GLPI en version 10.
Un encart orange vous indiquera les actions à réaliser post mise à jour.

Nous commencerons par supprimer le dossier d’installation:

sudo rm -R /var/www/glpi.domaintest.loc/install/

Puis nous passerons les commandes PHP recommandées:

cd /var/www/glpi.domaintest.loc/

php bin/console glpi:migration:utf8mb4

php bin/console glpi:migration:unsigned_keys

Il est probable que la deuxième commande échoue car les plugins ne sont pas à jour.

Mise à jour des Plugins

Pour connaitre la liste des plugins installés nous irons dans « Configuration => Plugins ».

Pour mettre à jour les plugins, la procédure est sensiblement la même à chaque fois.
Nous prendrons comme exemple le plugin « Adressage IP ».

Dans le menu « Plugins » nous pourrons constater que le plugin est désactivé et qu’un lien vers le GitHub du plugin est disponible.

Nous cliquerons sur le lien pour accéder au Github et récupérer la dernière release.
Nous téléchargerons le plugin, nous le décompresserons et nous mettrons à jour les droits:

sudo wget https://github.com/pluginsGLPI/addressing/archive/refs/tags/3.0.1.tar.gz
tar -xvf 3.0.1.tar.gz
cp -R addressing-3.0.1/* /var/www/glpi.domaintest.loc/plugins/adressing
sudo chown -R www-data:www-data /var/www/glpi.domaintest.loc/
sudo chmod -R 775 /var/www/glpi.domaintest.loc/

Nous retournerons sur GLPI 10, dans le menu « Plugins » pour constater que le plugin est en attente de mise à jour.
Pour lancer la mise à jour nous cliquerons sur l’icône avec un +.

Une fois la mise à jour effectuée nous pourrons l’activer via le bouton rouge.

Nous aurons alors un pop up indiquant que l’activation du plugin à jour est effectué.

 

Quand tous nos plugins seront à jour, nous pourrons relancer les commandes suivantes:

cd /var/www/glpi.domaintest.loc/
php bin/console glpi:migration:unsigned_keys

Conclusion

La mise à jour vers GLPI 10 n’est pas une chose si compliquée, mais cela requiert de la méthode.
Lors de mes tests, j’ai pu noter que le plugin Fusion Inventory n’était pas disponible pour la version 10. Cela n’est en soit pas une vraie contrainte car en installant l’agent d’inventaire natif de GLPI 10 les informations des postes peuvent être récupérées sans la création de doublon dans l’inventaire.

Dans le cas ou vous souhaiteriez passer votre GLPI en HTTPS, il faudra vous inspirer de mes précédents articles sur l’installation de GLPI 10.

Categories:

Comments are closed