Migration d'un serveur GLPI

Le serveur GLPI est sur une Debian 7.11 et en version 9.1. Création d'un nouveau serveur en Debian 10 avec la dernière version de GLPI 9.4.6

Préparation du nouveau système

Je vous passe la création d'une VM sous Debian 10.

Modification du source.list

/etc/apt/source.list

# deb cdrom:[Debian GNU/Linux 10.4.0 _Buster_ - Official amd64 NETINST 20200509-10:25]/ buster main 

deb http://deb.debian.org/debian/ buster main contrib non-free 
deb-src http://deb.debian.org/debian/ buster main contrib non-free 

deb http://security.debian.org/debian-security buster/updates main contrib non-free 
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free 

# buster-updates, previously known as 'volatile' 
deb http://deb.debian.org/debian/ buster-updates main contrib non-free 
deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free 

# Backports repository 
deb http://deb.debian.org/debian buster-backports main contrib non-free 
#deb http://deb.debian.org/debian buster-backports-sloppy main contrib non-free 

Installation des paquets de base

apt install -y \ 
apt-transport-https \ 
bash-completion \ 
curl \ 
dnsutils \ 
git \ 
htop \ 
locate \ 
net-tools \ 
openssl \ 
open-vm-tools \ 
python3-pip \ 
ssl-cert \ 
sudo \ 
telnet \ 
traceroute \ 
tuned \ 
v4l2loopback-utils \ 
wget \ 
unzip  

MariaDB

Dépôt officiel

apt install software-properties-common dirmngr 
apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' 
add-apt-repository 'deb [arch=amd64] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.4/debian buster main' 

Installation de MariaDB

apt install -y mariadb-client mariadb-server 

Sécurisation MariaDB 

mariadb-secure-installation 
	Enter current password for root (enter for none): 
		Switch to unix_socket authentication [Y/n] y 
		Change the root password? [Y/n] y 
		Remove anonymous users? [Y/n] y 
		Disallow root login remotely? [Y/n] y 
		Remove test database and access to it? [Y/n] y 
		Reload privilege tables now? [Y/n] y 

Pour l'importation de la base de donnée, cela sera via le compte root. Avec un autre compte même avec les mêmes priviligère que root, ça ne fonctionne pas.

Installation d’Apache et PHP

apt -y install \ 
apache2 \ 
libapache2-mod-php \ 
php \ 
php-apcu \ 
php-cas \ 
php-cli \ 
php-curl \ 
php-gd \ 
php-gmp \ 
php-imap \ 
php-intl \ 
php-json \ 
php-ldap \ 
php-mysql \ 
php-mbstring \ 
php-xml \ 
php-xmlrpc \ 
php-zip 

 

Sauvegarde de l'ancien GLPI

Backup de la base de donnée

Soit on sauvegarde seulement la base de GLPI ou la totalité, surtout si on a un OCS Inventory

mysqldump -u root -p glpi > dump-glpi-2020-06-22.sql 
mysqldump -all-databases > dump-all_base.sql 
tar -zcvf dump.sql 

Backup binaire

tar -zcvf glpi-backup.tar.gz /var/www/glpi 

Pas indispensable, juste une sécurité.

Lister les plugins utilisé

 

Transfert des backups vers le nouveau serveur

scp glpi-backup.tar.gz root@xxxxxxxxx:/var/www/ 
scp dump-glpi-2020-06-22.sql root@xxxxxxxxx:/root/ 

Restauration des données de la base MySQL

Restauration

mysql -u root -p glpi_db < dump-glpi-2020-06-22.sql 

Contrôle de l'import du dump sql

mysql -u root -p 
MariaDB [(none)]> USE glpi_db; 
MariaDB [glpi_db]> SELECT DATABASE(); 
SHOW TABLES; 

 

Installation de GLPI

Récupération des binaires 

 Récupérer GLPI sur le github officiel : https://github.com/glpi-project/glpi/releases 

curl -OL https://github.com/glpi-project/glpi/releases/download/9.4.6/glpi-9.4.6.tgz 
tar -xvf glpi-9.4.6.tgz -C /var/www/ 
chown -R www-data:www-data /var/www/glpi/ 

Apache

Création d’un certificat auto signé 

mkdir -p /etc/ssl/localcerts 
openssl req -new -x509 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key 
chmod 600 /etc/ssl/localcerts/apache* 

Le GLPI n'est accessible que sur le réseau interne, le certificat auto signé est intégré dans l'AD.
Si le GLPI est accessible, utiliser Let's Encrypt

Création du vhost SSL 

Editer le fichier /etc/apache2/sites-available/new.glpi.local.conf

<VirtualHost *:80> 
    #Redirection du flux TCP 80 vers TCP 443 

    ServerName glpi.local 
    ServerAlias *.glpi.local 

    RewriteEngine On 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L] 

</VirtualHost> 
	<VirtualHost *:443> 
	    ServerName glpi.local 
        ServerAlias *.glpi.local 
		ServerAdmin webmaster@localhost 
        
        DocumentRoot /var/www/glpi 
         <Directory /var/www/glpi> 
              Options -Indexes +FollowSymLinks 
              AllowOverride All 
              Require all granted 
         </Directory> 

    # Paramètres SSL 
    SSLEngine on 
    SSLCertificateFile /etc/ssl/localcerts/apache.pem 
    SSLCertificateKeyFile /etc/ssl/localcerts/apache.key 

    SSLProtocol all -SSLv2 -SSLv3 
    SSLHonorCipherOrder on 
    SSLCompression off 
    SSLOptions +StrictRequire 
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA$    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" 
 
	# Log
    LogLevel warn 
    ErrorLog ${APACHE_LOG_DIR}/*.glpi.local-error.log 
    CustomLog ${APACHE_LOG_DIR}/*.glpi.local-access.log combined 
</VirtualHost> 

Mod à activer

a2enmod rewrite 
a2enmod ssl  

Activer le vhost

a2ensite new.glpi.local.conf 
a2dissite 000-default.conf 

Contrôle de la configuration 

apache2ctl configtest 

Si ce message d’erreur apparaît : 

Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration 
Action 'configtest' failed. 

Exécuter la commande suivante

cp -arp /etc/apache2/mods-available/headers.load  /etc/apache2/mods-enabled/headers.load

Relancer Apache

systemctl restart apache2 

Installation & mise à jour

glpi01.png

glpi02.png

glpi03.png

glpi04.png

glpi05.png

glpi06.png

glpi07.png

glpi08.png

 

Migration de la DB en innodb

glpi10.png

cd /var/www/glpi/ 
php bin/console glpi:migration:myisam_to_innodb