Dans le cadre de notre mission visant à mettre en lumière des solutions permettant aux entreprises de s'adapter aux changements d'habitudes et de business plans engendrés par la crise du COVID-19, nous vous proposons cette semaine un tutoriel sur l'installation de GLPI, un logiciel de gestion informatique open source, sur un serveur Scaleway Dedibox à l'aide d'une base de données managée MySQL.

L'ITSM (gestion des services informatiques) regroupe des logiciels permettant aux entreprises de mettre en œuvre, gérer et simplifier les infrastructures informatiques via une interface graphique. Ces logiciels offrent un cadre permettant l'automatisation des processus et fournissent une visibilité sur les problèmes, incidents et changements relatifs aux opérations informatiques.

Grâce à un accès simplifié pour assurer le suivi des systèmes, de l'inventaire et des statistiques et rapports relatifs aux ressources, les services informatiques gagnent du temps en ayant une vision centralisée de l'intégralité des opérations. Les rapports automatiques et réguliers permettent une identification et une gestion agiles des problèmes.

L'ITSM offre également un avantage clé : l'évolutivité. Si, par exemple, un incident survient sur un serveur, l'équipe informatique peut se fier à la vue globale des ressources pour déterminer s'il s'agit d'un incident isolé ou associé à un seul ressource, ou bien si celui-ci est lié à un problème plus vaste qui affecte plusieurs machines à la fois. L’outil se prête donc très bien à une gestion des structures plus conséquentes.

L'ITSM peut aussi être particulièrement utile aux DCIM (gestionnaires d'infrastructure de datacenter), en raison non seulement de sa nature évolutive, mais également de sa possibilité de gestion d'un grand nombre d'incidents et de processus à distance.

En prenant compte des caractéristiques essentielles des logiciels ITSM tout en restant fidèles à nos racines françaises, nous avons décidé de vous montrer comment installer GLPI (Gestionnaire Libre de Parc Informatique), un logiciel open source de gestion informatique et des ressources basé sur le Web, écrit en PHP et disponible sous licence GNU et officiellement recommandé par le Socle Interministériel de Logiciels Libres, le catalogue de référence pour les administrations françaises.

Une interface graphique, accessible via un navigateur Web, permet aux utilisateurs d'administrer facilement les infrastructures hardware, dont l'architecture peut inclure des appareils allant des périphériques aux racks de serveurs entiers.

Parmi ses fonctionnalités, on peut citer :

  • gestion des ressources et inventaire automatique ;
  • gestion du cycle de vie des objets ;
  • gestion de l'infrastructure du datacenter ;
  • système de suivi des problèmes ;
  • support technique ;
  • gestion administrative et financière des ressources informatiques ;
  • statistiques et rapports ;
  • base de connaissances.

Prérequis

Installez la stack

Dans ce tutoriel, nous installerons et configurerons une stack LEMP à l'aide de Ngnix, une base de données managée pour MySQL et PHP.

  1. Mettez à jour les informations du référentiel apt du système et mettez ce dernier à niveau pour vous assurer que le système est à jour et dispose des derniers correctifs et mises à jour installés.
apt update && apt -y upgrade
  1. Utilisez le gestionnaire de paquets pour installer Nginx.
apt install nginx 

Ensuite, redémarrez et lancez-le.

systemctl restart nginx.service
systemctl enable nginx.service
  1. Installez PHP :
apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-soap php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip 

Créez une base de données managée pour MySQL

Dans ce tutoriel, nous allons créer une base de données managée pour une instance MySQL directement dans la console Scaleway.

1 . Dans la section Storage du menu latéral, cliquez sur Database. Ensuite, cliquez sur Create an Instance.

La page de création s'affiche.

2 . Choisissez MySQL comme moteur de base de données.

3 . Vous pouvez sélectionner la région dans laquelle votre base de données sera déployée géographiquement. À l'heure actuelle, les régions suivantes sont disponibles :

  • FR-PAR: Paris, France
  • NL-AMS: Amsterdam, Pays-Bas
  1. Sous Configure Instance Options, sélectionnez votre type d'instance et cochez les cases Backup et *High Availability au besoin.
  1. Pour créer vos identifiants, insérez un nom d'utilisateur et un mot de passe dans les cases respectives.

Prenez note de ces identifiants, car ils vous seront demandés dans une étape ultérieure.

  1. Saisissez un nom pour votre instance, vérifiez si toutes les options sélectionnées sont correctes et cliquez sur Create an Instance pour lancer sa création.

Téléchargez GLPI

1 . Passez du répertoire root au fichier dans lequel le référentiel GLPI sera téléchargé.

Dans ce tutoriel, il s'agit du répertoire /tmp.

cd /tmp

Choisissez la version la plus récente de GLPI ici et remplacez-la dans les commandes en conséquence. Dans ce tutoriel, nous utilisons la version 9.5.1

wget https://github.com/glpi-project/glpi/releases/download/9.5.1/glpi-9.5.1.tgz
tar -xvf glpi-9.5.1.tgz

2 . Déplacez glpi dans le répertoire /var/www/glpi.

mv glpi /var/www/glpi

3 . Octroyez à Nginx la propriété du répertoire.

chown -R www-data:www-data /var/www/glpi/

Configurez Nginx

1 . Utilisez un éditeur de texte pour créer un nouveau fichier VirtualHost de bloc serveur nommé glpi sous le répertoire /etc/nginx/sites-available pour inclure les paramètres de demande client de votre serveur Web.

nano /etc/nginx/sites-available/glpi

Copiez-collez la configuration ci-dessous dans le fichier. Remplacez example.com par votre nom de domaine et enregistrez.

server {
    listen 80;
    listen [::]:80;

    server_name  example.com www.example.com;
    root   /var/www/glpi;
    index  index.php index.html index.htm;
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;
    client_max_body_size 100M;
  
    autoindex off;

    location / {
        try_files $uri $uri/ =404;
    }

    location /dataroot/ {
      internal;
      alias /var/www/glpi/;
    }

location ~ [^/].php(/|$) {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;

    }
}

2 . Créez un lien symbolique pour activer le bloc serveur et redémarrez Nginx.

ln -s /etc/nginx/sites-available/glpi /etc/nginx/sites-enabled/
systemctl restart nginx.service

Vous pouvez vérifier si GLPI est accessible via une interface Web en accédant à http://localhost à l'aide de l'IP du serveur ou de votre domaine.

Installez un certificat SSL/TLS

Afin de protéger les identifiants utilisateur et d'autres informations confidentielles qui seront stockées dans GLPI, vous pouvez créer un certificat SSL/TLS généré gratuitement par Let's Encrypt.

Pour cela, nous allons utiliser Certbot.

1 . Préparez le système :

apt-get update
apt-get install software-properties-common
add-apt-repository ppa:certbot/certbot
apt-get update

2 . Installez certbot à l'aide de snap.

apt-get install python3-certbot-nginx

3 . Exécutez certbot :

certbot --nginx

4 . Répondez aux questions lorsque vous y êtes invité par l'assistant Certbot.

Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

Saisissez votre adresse e-mail.

Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

Tapez A pour accepter.

Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: 

Choisissez Yes ou No.

L'assistant vous demande alors pour quels noms vous souhaitez activer HTTPS. Saisissez le(s) nombre(s) correspondant et appuyez sur Entrée.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1

Si vous souhaitez rediriger le trafic HTTP vers HTTPS, répondez à l'invite suivante en saisissant 2 puis en appuyant sur Entrée.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Votre certificat est généré.

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for openproject-scw.ga
Using the webroot path /opt/openproject/public for all unmatched domains.
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/yourdomain.name/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/yourdomain.name/privkey.pem
  Your cert will expire on 2020-10-20. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.

Prenez note des chemins fournis car ils vous seront demandés dans une étape ultérieure.

Pour configurer automatiquement le renouvellement de votre certificat, exécutez :

certbot renew --dry-run

Configurez GLPI

1 . Accédez à votre interface GLPI via un navigateur Web à l'aide de votre nom de domaine ou de votre adresse IP.

L'assistant de configuration GLPI s'affiche. Sélectionnez la langue et cliquez sur OK.

2 . Les termes du contrat de licence GLPI s'affichent. Lisez-les intégralement et cochez J'ai lu et ACCEPTE les termes de la licence énoncés ci-dessus. pour continuer.

3 . Pour commencer l'installation, cliquez sur Installer.

4 . Un contrôle de compatibilité est exécuté et une liste des tests réalisés sur l'environnement s'affiche. Cliquez sur Continuer pour poursuivre.

5 . Pour configurer votre connexion à la base de données, indiquez les informations suivantes dans les cases correspondantes :

SQL Server (MariaDB or MySQL): XXX.XXX.XX.XX:22972 (L'adresse IP de votre instance de base de données suivie du port MySQL)

SQL User: db-username (Le nom d'utilisateur précédemment créé pour votre base de données managée)

SQL Password: db-password (Le mot de passe précédemment créé pour votre base de données managée)

Cliquez sur Continuer pour poursuivre.

6 . Sélectionnez une base de données et cliquez sur Continuer :

L'initialisation de la base de données peut prendre quelques minutes. Une fois terminé, l'écran suivant s'affiche :

Cliquez sur Continuer.

7 . Une fois l'installation terminée, vos identifiant et mot de passe par défaut s'affichent :

Vos identifiant et mot de passe par défaut s'affichent. Utilisez l'identifiant glpi et le mot de passe glpi pour vous connecter en tant qu'administrateur.

Le tableau de bord GLPI s'affiche.

Pour des raisons de sécurité, GLPI vous recommande de changer le mot de passe de vos utilisateurs par défaut et de supprimer le fichier install/install.php.

Pour changer le mot de passe, cliquez sur les noms d'utilisateur par défaut affichés dans le message d'avertissement ou cliquez sur Administration > Users dans le menu supérieur pour gérer les utilisateurs.

Pour supprimer le fichier install/install.php, exécutez la commande suivante sur votre instance :

rm -rf /var/www/glpi/install/

Votre configuration est terminée ! Vous pouvez dès à présent commencer à gérer des ressources et des assets. GLPI dispose d'un site Web de documentation pour vous aider à démarrer.