Installation/Configuration de GLPI
Mise en situation
Après une étude des besoins exprimés par la PME chez qui vous mettez en place une nouvelle infrastructure réseau, la réalisation d’un audit pour se rendre compte du matériel informatique présent dans les locaux, sa maintenance et la prise en compte des contraintes budgétaires, vous proposez la mise en place d’une solution de gestion de parc informatique libre nommée GLPI.
Cette solution Open Source est une application web écrite en PHP qui propose les services suivants :
-
Assistance aux utilisateurs par l’intermédiaire d’un système de remontée d’incident ou de demande d’assistance par le biais de “tickets” saisis directement dans l’interface web publique de GLPI
-
Service d’inventaire manuel ou automatique par l’intermédiaire d'“agents” installées sur les postes du parc informatique à gérer
-
Prévisions/historique des actions de maintenance
-
Gestion des tâches administratives et financières des actifs matériels et logiciels (amortissement, licences logicielles…)
Dans cet atelier vous allez :
-
Installer l’application GLPI de base sur un serveur Linux virtualisé dans Windows
-
Configurer GLPI de façon à permettre à un utilisateur d’émettre un ticket d’assistance
-
Installer la fonctionnalité d’inventaire automatique des postes du parc informatique
Accès SSH
Vous allez intéragir avec la machine virtuelle Linux sur laquelle vous devez installer GLPI depuis un poste Windows à l’aide d’un client SSH (→ PuTTY).
En effet, les serveurs d’entreprises sont généralement placés dans des pièces dédiées dans lesquelles il n’y a pas de postes de travail et où il ne fait généralement pas très chaud à cause de la climatisation destinée à refroidir les machines.
Dans cet atelier, il faut considérer que le poste Windows et la machine virtuelle Linux sont hébergés sur 2 machines physiques distinctes sur le réseau même si vous n’utiliserez qu’un seul PC, pour des raisons évidentes de disponibilité du matériel (→ celui identifié “VIR_SERV” dans le schéma de l’infrastructure réseau.). |
💻 Travail n° 1 : Accès SSH
-
Importer la machine virtuelle OpenSUSE fournie (→ OpenSUSE-15.4-x64-server-bare-metal.ova) dans VirtualBox
-
Lancer l’exécution de la machine virtuelle OpenSUSE
-
Se connecter sur le système Linux depuis le terminal affiché dans VirtualBox avec l’identifiant
root
et le mot de passeadmin
puis récupérer son adresse IP (→ commandeip addr
) de façon à pouvoir y accéder par la suite depuis Windows.login as: root (1) Keyboard-interactive authentication prompts from server: | Password: admin(2) End of keyboard-interactive prompts from server Last login: Thu Nov 9 14:30:05 2023 from 192.168.5.99 Have a lot of fun... localhost:~ # ip addr (3) 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul t qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP gr oup default qlen 1000 link/ether 08:00:27:17:23:03 brd ff:ff:ff:ff:ff:ff altname enp0s3 inet 192.168.x.y/22 brd 192.168.7.255 scope global eth0 (4) valid_lft forever preferred_lft forever inet6 2a01:e0a:1df:cbb0:e4c3:efa9:e46f:5fb4/64 scope global temporary dynami c valid_lft 86332sec preferred_lft 86128sec inet6 2a01:e0a:1df:cbb0:a00:27ff:fe17:2303/64 scope global dynamic mngtmpadd r valid_lft 86332sec preferred_lft 86332sec inet6 fe80::a00:27ff:fe17:2303/64 scope link valid_lft forever preferred_lft forever localhost:~ #
1 Connexion avec l’identifiant root
2 Saisie du mot de passe → admin
3 Exécution de la commande ip addr
pour obtenir l’adresse IP de la machine virtuelle4 Récupération de l’adresse IP. Doit faire partie du même réseau que la machine Windows qui l’héberge (← interface réseau en mode “Bridged”) -
Réduire la fenêtre VirtualBox (ou la déplacer dans un 2ème bureau de Windows) et se connecter à la machine virtuelle avec le logiciel Windows nommé PuTTY après avoir renseigné l’adresse IP de votre propre machine virtuelle.
Ce logiciel est un émulateur de terminal doublé d’un client telnet puis SSH. C’est cette dernière caractéristique qui nous intéresse ici et qui va nous permettre de nous connecter à distance à un serveur SSH (→ la machine virtuelle) et ce, de manière sécurisée (→ échanges chiffrés).
Si la connexion à la VM Linux échoue, cela peut provenir du fait que le port SSH n’a pas été ouvert dans le pare-feu de la VM.
Pour remédier à ce problème, saisir les commandes suivantes dans le terminal de la VM :
# firewall-cmd --permanent --add-service=ssh # firewall-cmd --reload
Cela peut également provenir du fait que le service n’a simplement pas été activé. L’activer alors avec :
# systemctl enable sshd.service # systemctl start sshd.service
Installation des paquets logiciels requis
GLPI est une application web codée en PHP articulée autour d’une base de données.
Elle nécessite donc la présence sur le PC :
-
d’un serveur web → Apache
-
d’un environnement PHP → PHP7
-
d’un serveur de bases de données → MariaDB
Vous allez à présent installer ces différents composants.
💻 Travail n° 2 Installation des paquets logiciels requis
-
Lancer la commande
yast2
depuis le terminal de PuTTY.Celle-ci provoque l’affichage d’une interface semi-graphique du panneau de contrôle YaST dans laquelle on peut naviguer avec les touches TAB et Shift+TAB.
-
Le déplacement sur les options d’une même rubrique se fait avec les touches ↑ et ↓
-
L’activation d’une option se fait avec la barre d’espace
-
On peut accéder directement à une rubrique en enfonçant la touche Alt puis en tapant la lettre qui est affichée en jaune dans l’intitulée de la rubrique
-
Si les cadres n’apparaissent pas correctement dans PuTTY, s’assurer dans sa configuration que le jeu de caractères utilisé est conforme à celui spécifié dans le screenshot suivant :
-
-
Procéder à l’installation des paquets logiciels listés ci-dessous à partir de la rubrique
de YaST :-
php7
: langage PHP dans sa version 7 -
php7-fileinfo
,php7-ldap
,php7-xmlrpc
,php7-opcache
,php7-mysql
,php7-zlib
,php7-curl
,php7-gd
,php7-mbstring
,php7-APCu
,php7-intl
,php7-exif
,php7-sodium
: librairies PHP requises par GLPI -
apache2
+apache2-mod_php7
: serveur Web Apache avec module PHP7 -
yast2-http-server
: plugin de l’outil d’administration YaST pour la gestion “basique” du serveur Web -
mariadb
: Base de donnée MariaDB (fork communautaire de MySQL) avec boite à outils -
phpMyAdmin
: application web d’administration de bases de donnés MariaDB
-
Installation des fichiers de l’application GLPI
GLPI n’existe pas sous forme de paquet logiciel dans OpenSUSE. GLPI est uniquement distribué sous la forme d’une archive extractible.
Vous allez donc devoir installer les fichiers de GLPI manuellement sur OpenSUSE en les copiant depuis votre machine Windows. Ceci se fera en plusieurs étapes :
-
Copie de l’archive de GLPI fournie sur la machine virtuelle.
-
Désarchivage sur la machine virtuelle
-
Modification du propriétaire et droits d’accès sur les fichiers extraits
💻 Travail n° 3 Copie des fichiers de GLPI
-
Depuis la console Windows, copier l’archive contenant GLPI sur la machine virtuelle via la commande
pscp.exe
de PuTTY. Pour cela :-
Télécharger sur Windows l’archive
.tgz
contenant GLPI -
Lancer une console Windows (→ taper
cmd
dans le menu “Démarrer”) -
Saisir, en l’adaptant à votre environnement, la commande permettant de copier l’archive de GLPI depuis le poste Windows vers le répertoire d’accueil de l’utilisateur
root
sur la VM Linux :Exemple de la commande à saisir :C:\Users\ragnar> C:\bin\PuTTY\pscp.exe -P 22 C:\Users\ragnar\Downloads\glpi-10.0.6.tgz root@192.168.5.149:
Ne pas oublier les 2 points à la fin de l’adresse IP (→ ‘192.168.5.149:’).
Dans l’exemple de commande donnée, on considère que :
-
PuTTY est installé dans le répertoire
c:\bin\PuTTY
, -
l’archive de GLPI est dans
C:\Users\ragnar\Downloads
-
l’adresse IP de la VM Linux est 192.168.5.149,
-
-
S’authentifier avec le mot de passe
admin
pour procéder à la copieC:\Users\ragnar>c:\bin\PuTTY\pscp.exe -P 22 "c:\users\claud\Downloads\glpi-10.0.6.tgz" root@192.168.5.149: Keyboard-interactive authentication prompts from server: | Password: admin(1) End of keyboard-interactive prompts from server glpi-10.0.6.tgz | 56037 kB | 56037.4 kB/s | ETA: 00:00:00 | 100% C:\Users\ragnar>
1 Mot de passe de la machine virtuelle → admin
Le téléversement de l’archive sur la machine virtuelle peut également se faire de manière graphique grâce au logiciel WinSCP
.
-
-
depuis l’invite de commande de PuTTY, saisir la commande Linux suivante qui permet d’extraire l’archive de GLPI dans le répertoire racine des sites servis par le serveur Web (→
/srv/www/htdocs
)# tar -xzvf glpi-10.0.6.tgz -C /srv/www/htdocs/
Pour l’instant, le répertoire /srv/www/htdocs/glpi/
appartient à l’utilisateur root
et seul celui-ci peut y écrire. Or, il vaut mieux que son propriétaire soit l’utilisateur associé au serveur Web Apache qui servira l’application GLPI. Sous OpenSUSE, l’utilisateur Apache se nomme wwwrun
et il fait partie du group www
.
De plus, la procédure d’installation de GLPI indique que seuls les sous-répertoires
files/
et config/
du répertoire glpi/
nécessitent un droit d’écriture.
Dans le travail suivant, vous allez donc procéder à ces modifications de droits d’accès.
💻 Travail n° 4 Modification des droits sur les fichiers de GLPI
-
Changer le propriétaire ainsi que les droits d’accès de l’arborescence de fichiers du site GLPI
# cd /srv/www/htdocs # chown -R wwwrun:www glpi/ (1) # chmod -R a-w glpi/ (2) # chmod -R u+w glpi/files/ glpi/config/ glpi/marketplace (3)
1 On change change le propriétaire et le groupe de l’arborescence de fichiers /srv/www/htdocs/glpi/
2 On retire le droit d’écriture pour tout le monde (→ a-w
) sur l’arborescence de fichiers/srv/www/htdocs/glpi/
3 On accorde enfin le droit d’écriture sur les sous-répertoires files/
,config/
etmarketplace
pour leur propriétaire uniquement (→u+w
)
Configuration du serveur Web
Bien que le serveur Web Apache ait été installé sur la machine virtuelle fournie, celui-ci n’a été ni démarré ni configuré pour accueillir l’application GLPI.
Vous allez à présent le démarrer et le configurer afin qu’il mette à disposition de l’utilisateur 2 sites Web qui hébergeront :
-
pour le 1er, l’application GLPI proprement dîte
-
pour le 2ème, l’application phpMyAdmin qui est une interface web d’administration de base de données.
phpMyAdmin simplifiera la création et la gestion de la base de données dans laquelle GLPI stocke toutes les informations du parc informatique.
La possibilité qu’offre Apache de servir plusieurs sites web passe par la configuration de ce qu’on appelle des hôtes virtuels (virtual hosts ou plus simplement vhosts).
C’est ce que vous allez faire dans le travail suivant depuis l’outil d’administration d'OpenSUSE (→ YaST
) auquel a été ajouté le plugin d’administration de serveur web (→ package yast2-http-server
) lors de la création de la machine virtuelle.
💻 Travail n° 5 Configuration serveur HTPP
-
Lancer la commande
yast2
depuis le terminal de PuTTY. -
Suivre, en les adaptant au besoin, les indications du diaporama qui suit pour créer les hôtes virtuels qui hébergeront l’application GLPI puis phpMyAdmin
Le diaporama représente l’assistant de configuration du serveur HTTP de YaST qui n’est exécuté que la 1ère fois qu’il est appelé.
Si pour une raison ou une autre, vous relancez la configuration depuis la page d’accueil de YaST, vous aboutirez à la fenêtre de configuration du serveur en mode “Expert”.
Une configuration identique à celle du diaporama sera toujours possible. La seule différence sera que les options à configurer devront être sélectionnées depuis les “onglets” de la fenêtre de configuration.
Vous avez désormais 2 sites web qui sont hébergés sur 1 seule machine.
La différenciation entre les sites Web de la machine peut se faire de plusieurs manières :
-
par nom,
-
par IP,
-
par numéro de port.
Lorsque vous avez configuré vos hôtes virtuels, la méthode de différenciation sélectionnée par défaut est celle qui se base sur le nom car c’est celle qui est généralement recommandée.
De façon à pouvoir accéder à ces 2 sites depuis votre navigateur exécuté depuis Windows, vous allez devoir mettre en place une résolution de nom d’hôtes. Cette résolution se fera, dans le travail suivant, de manière basique en renseignant le fichier hosts
de Windows avec les adresses IP des 2 hôtes virtuels.
💻 Travail n° 6 Résolution de noms
-
Depuis Windows, ouvrir le Bloc Notes en tant qu’administrateur (cliquer droit sur l’application Bloc-notes puis sélectionner “Exécuter en tant qu’administrateur”) puis éditer le fichier
c:\windows\System32\drivers\etc\hosts
pour y ajouter 2 entrées pour les 2 hôtes virtuels créés :192.168.5.22 glpi.acme.com 192.168.5.22 phpMyAdmin.acme.com
-
Penser à sélectionner le filtre “Tous les fichiers (*.*)” pour compter voir apparaître le fichier
hosts
dans la fenêtre de sélection de fichiers du Bloc-notes. -
Toutes les lignes du fichier
hosts
qui débutent par un ‘#’ sont des commentaires. Les 2 lignes à ajouter au fichier doivent donc être retranscrites telles qu’elles apparaissent dans le sujet (c-à-d sans ‘#’ devant).
-
Les 2 sites sont désormais normalement accessibles depuis vote navigateur en tapant les URLS :
Ci-dessous des liens vers des ressources qui traitent de l’installation/configuration d’un serveur web sur OpenSUSE ainsi que du pare-feu présent sur cette même distribution (→ 🕮 Sources : |
Création de la BDD MySQL
Avant d’arriver à un site GLPI opérationnel, il reste 1 étape importante a effectuer : la création d’une base de données.
GLPI s’appuie sur une base de données (BDD) pour mémoriser toutes les informations du parc informatique.
Comme celle-ci n’existe pas encore sur votre machine virtuelle, vous allez à présent la créer depuis l’interface web proposée par phpMyAdmin après avoir lancé puis configuré le serveur MariaDB pour une utilisation plus sécurisée.
💻 Travail n° 7 Création de la BDD pour GLPI
-
Démarrer le serveur MariaDB/MySQL et le configurer pour qu’il démarre automatiquement au lancement de la machine :
# systemctl start mysql.service # systemctl enable mysql.service
-
Lors de l’installation des packages de MariaDB sur OpenSUSE, la recommandation est faite d’exécuter le script
mysql_secure_installation
. Ce script va permettre, entre autres, de sécuriser l’accès à MariaDB par un mot de passe.Lancer ce script puis répondre SCRUPULEUSEMENT aux différentes questions comme illustré en jaune ci-dessous :
localhost:~ # mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and haven't set the root password yet, you should just press enter here. Enter current password for root (enter for none): Taper Enter OK, successfully used password, moving on... Setting the root password or using the unix_socket ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have your root account protected, so you can safely answer 'n'. Switch to unix_socket authentication [Y/n] Taper Enter Enabled successfully! Reloading privilege tables.. ... Success! You already have your root account protected, so you can safely answer 'n'. Change the root password? [Y/n] Taper Enter New password: Saisir "mysqladmin" Re-enter new password: Saisir "mysqladmin" Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Taper Enter ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] !! IMPORTANT !! répondre ‘n’ ... skipping. By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Taper Enter - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Taper Enter ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB! localhost:~ #
L’utilisateur
root
auquel il est fait référence n’est PAS l’administrateur Linux. C’est l’administrateur du serveur de base de données MariaDB. Le fait qu’ils portent le même nom tend à faire penser que ce sont les mêmes mais il n’en est rien : ce sont bien 2 utilisateurs différents.Ceci explique qu’à la 1ière question posée par le script, on n’a pas à saisir le mot de passe de l’administrateur du serveur de base de données nommé
root
car celui-ci n’est pas renseigné par défaut (et ne vaut donc certainement pasadmin
qui est le mot de passe de l’administrateur local Linux). -
Procéder à la création/configuration de la BDD depuis l’interface de phpMyAdmin sur l’URL
http://phpMyAdmin.acme.com
Si la sélection du menu Privilèges provoque une erreur dûe à une incompatibilité de “collation”, suivre les indications du screenshot ci-dessous pour la corriger. 🕮 Sources : |
Installation de GLPI
Maintenant que les serveurs Apache et MariaDB sont opérationnels, il ne reste plus qu’à lancer l’installation proprement dîte de GLPI pour l’associer notamment à la BDD créée précédemment.
Cette installation se fait directement depuis l’interface web de GLPI.
💻 Travail n° 8 Assistant d’installation de GLPI
-
Se rendre sur l’interface web d’installation de GLPI (→ http://glpi.acme.com) et débuter l’installation en suivant les illustrations suivantes :
Si des erreurs sont signalées à l’issue des tests effectués par GLPI au démarrage de l’installation, cela vient sûrement du fait que vous avez oublié d’installer certaines blibliothèques PHP7.
Le cas échéant, les installer depuis YaST et surtout ne pas oublier de relancer le serveur Web Apache pour prendre en compte les modifications apportées :
# systemctl restart apache2.service
Assistance aux utilisateurs
Vous allez ici configurer GLPI pour permettre aux utilisateurs d’émettre des tickets d’assistance.
💻 Travail n° 9 Mise en place d’une nomenclature de lieux, catégories de tickets
-
Se rendre dans le menu
-
Créer une arborescence de lieux via le bouton +Ajouter présent en haut de l’interface.
Vous créerez les lieux suivants :
-
Ateliers
-
Code du bâtiment
←C
-
le reste vide
-
-
Ateliers > Salle C12
-
Comme enfant de
←Ateliers
-
Code du bâtiment
←C
-
Code de la pièce
←C12
-
le reste vide
-
-
Ateliers > Salle C14
-
Comme enfant de
←Ateliers
-
Code du bâtiment
←C
-
Code de la pièce
←C14
-
le reste vide
-
-
Ateliers > Salle C25
-
Comme enfant de
←Ateliers
-
Code du bâtiment
←C
-
Code de la pièce
←C25
-
le reste vide
-
-
-
Créer une arborescence de catégories de tickets depuis le menu “
”Vous créerez les catégories suivantes :
-
Logiciels
-
Logiciels > Microsoft Project
-
Logiciels > MySQL Workbench
-
Systèmes d’exploitation
-
Systèmes d’exploitation > Windows 10
-
Systèmes d’exploitation > OpenSUSE
-
Applications réseau
-
Applications réseau > Moodle
-
Applications réseau > Pronotes
-
Matériel
-
Matériel > Ordinateur
-
Matériel > Imprimante
-
-
Créer un nouvel utilisateur depuis “
”-
identifiant : jdoe
-
Nom de famille : Doe
-
Prénom : John
-
Mot de passe : p@ssw0rd
-
Profil : Self-Service
-
-
Se déconnecter du profil “glpi” puis se reconnecter avec le profil “jdoe”
-
Émettre un ticket d’urgence “Haute” concernant le manque d’encre dans une imprimante de la salle C12.
Mettre un screenshot du ticket dans le compte rendu.
-
Se connecter avec le profil “glpi” et s’assurer de la présence du ticket émis dans le menu
Inventaire automatique
Vous allez à présent mettre en place la fonctionnalité d’inventaire automatique sous GLPI.
Cette fonctionnalité — appelée FusionInventory — s’appuie sur 2 composants :
-
un serveur de communication à installer dans GLPI sous forme d’un plugin
-
un agent d’inventaire à installer sur chaque machine Windows que l’on veut inventorier
Lorsque le plugin sera actif dans GLPI et l’agent d’inventaire installé sur Windows, les informations du poste informatique telles que le modèle, ses composants (Mémoire, CPU, disque dur…), les logiciels installés etc… seront automatiquement remontés vers GLPI et donc consultables depuis son interface web.
💻 Travail n° 10 Installation du plugin FusionInventory
-
Télécharger sur Windows l’archive contenant le plugin FusionInventory
-
Copier l’archive du plugin FusionInventory depuis le poste Windows vers le répertoire d’accueil de l’utilisateur
root
sur la VM Linux :Exemple de la commande à saisir :C:\Users\ragnar> C:\bin\PuTTY\pscp.exe -P 22 C:\Users\ragnar\Downloads\fusioninventory-10.0.6+1.1.tar.bz2 root@192.168.5.149:
-
Désarchiver l’archive contenant le plugin FusionInventory dans le répertoire adéquat du site GLPI :
# bunzip2 -c fusioninventory-10.0.6+1.1.tar.bz2 | tar -xvf - -C /srv/www/htdocs/glpi/plugins/
-
Depuis l’interface web de GLPI (→
), installer puis activer le plugin que l’on vient de désarchiver
Vous allez à présent installer l’agent d’inventaire FusionInventory sur le poste Windows qui abrite votre machine virtuelle.
L’agent est un service Windows qui sera exécuté périodiquement pour rendre compte à GLPI de l’évolution de la configuration du poste.
Ce service dispose d’une interface web basique qui renseigne sur l’état du service mais qui permet aussi de forcer un inventaire.
💻 Travail n° 11 Installation de l’agent FusionInventory
-
Installer l’agent FusionInventory pour Windows en suivant les instructions ci-dessous :
Une procédure plus complète est disponible sur Installation on Windows
.
-
Ouvrir l’interface web de l’agent d’inventaire (normalement http://localhost:62354) et forcer un inventaire
-
Attendre quelques instants et rafraîchir l’interface web de GLPI pour avoir accès aux informations du poste
Mettre un screenshot de l’inventaire des composants de votre poste dans le compte-rendu.
Résolution des problèmes pouvant survenir
|
Conclusion
Dans cet atelier, vous avez procédé aux étapes classiques de l’installation d’une application Web dynamique architecturée autour du langage PHP et d’une base de données :
-
Installation/Configuration du serveur Web avec modules PHP
-
Installation/Configuration du serveur de base de données
-
Déploiement du site web écrit en PHP
Cette installation s’est appliquée à l’application de gestion de parc informatique appelée GLPI mais peut globalement s’appliquer à d’autres applications comme WordPress par exemple.
🞄 🞄 🞄