Mise en place de GLPI 0.90+OCS

et customisation du CSS

Introduction :


Dans le cadre de mon stage de seconde année de BTS SIO SISR au siège des Amitiés d'Armor de Brest j'ai eu l'occasion de mettre en place une migration vers la nouvelle version de GLPI, la 0.90.1. Cette version apporte à GLPI pas mal de modifications, notamment au niveau de l'interface qui commence à être orientée vers le web responsive , amélioration des tickets et de nombreuses corrections de bugs.

glpi22.png


1.PNG

Explication de GLPI :

La Gestion Libre des Parcs Informatiques (abrégée en GLPI) est une solution open-source et communautaire permettant la gestion de parc informatique et de gestion de services d'assistance .En proposant certaines fonctionnalités comme : la gestion des tickets (demandes/incidents),la gestion de parc (matériel/logiciel), la gestion de problèmes, une base de connaissances, une Foire Aux Questions, un planning et de la gestion financière


Pré-requis :


Un Serveur web :



Pour pouvoir fonctionner, ne serait-ce qu'en locale, GLPI nécessite un serveur web, évidemment, on a choisi le plus courant, apache 2 (http://httpd.apache.org). Qui, pour moi est plus simple à configurer que 2IS (http://www.iis.net)...


Un serveur PHP :

GLPI nécessite PHP une version 5.3 ou supérieure...

Les extensions PHP :

Les extensions PHP suivantes sont nécessaires au bon fonctionnement de l'application :
  • JSON : support du format de données structuré JSON ;
  • Mbstring : gestion des chaînes de caractères multi-octets ;
  • MySQL : liaison avec la base de données ;
  • Session : support des sessions des utilisateurs.
Ainsi que les facultatives qui sont requises pour des fonctionnalités optionnelles :
  • CLI : utilisation de PHP en ligne de commande pour les actions automatiques ;
  • CURL : pour l'authentification CAS ;
  • DOMXML : pour l'authentification CAS ;
  • GD : génération d'images ;
  • IMAP : utilisation de serveurs de messagerie pour la collecte des tickets ou l'authentification des utilisateurs ;
  • LDAP : utilisation d'un annuaire externe pour l'authentification ;
  • OpenSSL : communication chiffrée.

image55.png

(source : http://www.glpi-project.org)

Configuration PHP :

Le fichier de configuration de php (php.ini) doit être modifié afin de contenir les variables suivantes : memory_limit = 64M ; // Valeur minimale file_uploads = on ; max_execution_time = 600 ; // Préconisé mais non obligatoire register_globals = off ; // Préconisé mais non obligatoire magic_quotes_sybase = off ; session.auto_start = off ; session.use_trans_sid = 0 ; // Préconisé mais non obligatoire

Installation du système Debian 8 Netinstall

OCS Et GLPI ont des versions natives sous Windows, mais ayant déjà fait cela en cours, il était plus intéressant de faire sous Linux. On a choisi la version Netinstall de Debian 8. Tant qu'à faire, autant avoir la dernière version stable sans le problème des dépôts et dépendances manquantes sous Debian 7. (Le netinstall, c'est juste pour une question de connexion internet ne supportant pas les gros téléchargements...) Cette machine virtuelle sera mise en place via l'Hyper-V de Windows 2012. Le serveur est actuellement en production.

3.png


(Capture d'écran de l'Hyper-V vide...)


Une fois la machine crée et configuré, on la démarre sur l’iso Debian et on arrive au "grub" d'installation. On choisis la première option. :

image124.png



Ensuite, il y a le choix de la version de la langue du système et le pays dans lequel on se trouve. Vu qu'il n'y a pas Bretagne,c'est donc la France...


image133.png

La disposition du clavier en AZERTY.

image131.png

Le nom de machine permet d’être reconnue plus facilement. Ici SRV-GLPI-OCS-STAGE-2
pour rester cohérent avec l'existant

image73.png

Il est possible d'utiliser un nom de domaine, ici on n'en a pas besoin, donc on passe cette étape .

image02.png

Configuration du mot de passe pour le root

image142.png

l’identifiant et le mot de passe pour l’utilisateur.

image128.png

Ici c'est le partitionnement du disque dur. La première option état suffisante pour l'usage actuel, pas besoin de le faire en manuel.

image57.png

Une fois arrivé à cette étape, on vérifie si la configuration du partitionnement est bonne et on passe à la suite.

image70.png
Ensuite il faut choisir les miroirs permettant de téléchargement des paquets Debian.


image63.png

Il est possible d’attribuer un mandataire HTTP, mais cela est inutile pour nous.

image102.png

Sélection des paquets à installer. Ici,simplement les utilitaires usuels du système.

image125.png

Is the end of the world as we know it !

image117.png

Installation des recommandations et des dépendances sur le serveur Debian

Configuration de l’adressage IP du serveur Initialement, le serveur est configuré en DHCP, on va donc lui attribuer une IPstatic, pour éviter tout conflit réseau. Pour cela, il faut modifier le fichier des interfaces :

Commande :
apt-get install vim vim /etc/network/interfaces

Et modifier de la façon suivant :

glpi4.png

4.png

Appliquer ensuite les modification sans redémarrer le serveur et vérifier le bon fonctionnement


ifdown eth0 ifup eth0 ifconfig


5.png


Installation du service SSH


Pour pouvoir accéder au serveur à distance il faut installer le service SSH
apt-get install openssh-server


Maintenant il faut éditer le fichier sshd_config pour accorder l'accès au root (désactivé par défaut) en modifiant la ligne PermitRootLogin
vim/etc/ssh/sshd_config

image101.png

Puis redémarrer le service :
service ssh restart


Installation du service apache2 et php

Pour installer apache et php, il faut entrer ces commande :
apt-get install apache2 libapache2-mod-php5

glpi5.png

Il est possible de vérifier la disponibilité du service avec l’outil suivant :

Commande :
sysv-rc-conf

image25.png

Installation du service mysql + phpmyadmin

Cette commande permet d’installer le service mysql ainsi que ses prè-requis.
apt-get install php5-gd php5-mysql mysql-server


Puis, une fenêtre graphique sauvage apparait ! Elle nous propose de choisir le nom du super administrateur de MySQL. Une fois le mot de passe confirmé, l’installation continue.

image105.pngs

On revérifie si le service est opérationnel :
sysv-rc-conf


Une fois que le service Mysql, on va passer en mode fainéant en installant l'outil graphique, phpmyadmin
apt-get install phpmyadmin


image109.png

Grâce à ça, on peut installer une base de données via phpmyadmin.

image62.png

Ensuite, il faut renseigner le mot de passe administrateur mysql.

image129.png

Une fois que c'est finis, on peut y accéder via le navigateur : http://adresse.ip/phpmyadmin

6.png

Avant l’installation GLPI

il faut télécharger l’archive .gz sur l'internet. Pour cela, il faut pointer sur un répertoire, bon pour moi c'est le dossier /root car je préfère préserver ce genre d'archive, sinon on peut le mettre dans le /tmp pour qu'elle soit automatiquement supprimée au prochain redémarrage...
wget https://github.com/glpi-project/glpi/releases/download/0.90.1/glpi-0.90.1.tar.gz

image14.png

2 Une fois l’archive télécharger, il faut désarchiver
tar -zvxf glpi-0.90.1.tar.gz

image71.png

Il faut maintenant déplacer le répertoire GLPI dans répertoire désiré. Généralement c'est dans le /var/www/. Mon collègue lui, l'a mit dans le /opt, pour soit disant des raisons de sécurités, mais ça ne change pas grand chose. C'est limite plus "relou", car il faut créer des alias dans apache...
mv glpi /var/www/html

glpi7.png

(J'en ai profité pour dupliquer l'archive dans ce dossier)

On fait un chown sur le dossier en question en plus. (www-data = le nom d'utilisateur utilisé par le serveur apache) pour autoriser apache à accéder à ce dossier
chown -R www-data /var/www/html/glpi

Puis redémarrer le serivce
/etc/init.d/apache2 restart

glpi8.png

ou sur une distribution se basant sur systemd
service apache2 restart

Dans le répertoire glpi, il faut changer les droits des dossiers /files,/pics,/css et /config
chmod -R 775 /var/www/glpi/files /var/www/glpi/config /var/www/glpi/css /var/www/glpi/pics

L'installation de GLPI

Avant l’installation, il faut créer un utilisateur et une base de donnée pour glpi. Pour cela, sur mysql, il faut se connectée avec le compte administrateur.
mysql -h localhost -u root -p

glpi9.png

Une fois connectée, il on va créer une base pour glpi
create database glpid;

Attribution de tout les privilèges d'accès à l'utilisateur "glpi"
grant all privileges on glpid.* to glpi@localhost identified by 'mot_de_passe'; flush privileges;

aller sur la base fraichement crée
use glpid;

glpi10.png

Entrer les paramètres d'utilisateurs et vérifier que tout est crées

glpi11.png

Une fois ces modifications effectuées, il faut se rendre sur un navigateur et aller sur le lien http://adresse.ip/glpi Lors de l’installation, il faut choisir sa langue et accepter les termes de licence puis passé à la suite.

15.png

Il est possible de faire des mise à jour depuis l’installateur si l’on dispose déjà d’une version glpi, il est même obligatoire de passer par là, car on ne peut importer la base de données directement ! mais dans notre cas il faut choisir Installer .

10.PNG

Cette page vérifie si tout est bon.

14.png

Il faut indiquer l’adresse du serveur MySQL ainsi que l’utilisateur pour se connecté à la base de données.

9.PNG

Je sélectionne le second choix.. (dépend des bases de données crées).

12.png

Fin de l’installation GLPI

8.PNG

La dernière fenêtre affiche les comptes GLPI par défaut

11.png

Une fois l’installation terminé, il faut supprimer le fichier d’installation dans le répertoire de GLPI
rm -vf /var/www/html/glpi/install/install.php

1.PNG

Avant le déploiement d'OCS Inventory

Recommandations :
  • Apache version 1.3.33 ou plus / Apache version 2.0.46 ou plus.
    • Mod_perl version 1.29 ou plus.
    • Mod_php version 4.3.2 ou plus.
  • PHP 4.3.2 ou plus, avec ZIP et support GD activé.
  • PERL 5.6 ou plus.
    • Perl module XML::Simple version 2.12 ou plus.
    • Perl module Compress::Zlib version 1.33 ou plus.
    • Perl module DBI version 1.40 ou plus.
    • Perl module DBD::mysql version 2.9004 ou plus.
    • Perl module Apache::DBI version 0.93 ou plus.
    • Perl module Net::IP version 1.21 ou plus.
    • Perl module SOAP::Lite version 0.66 ou plus (pas de proxy)
  • MySQL version 4.1.0 ou plus avec InnoDB engine active.
  • Make (Oui, il n'est pas installé par défaut apparemment, on en a besoin pour compiler OCS)
Schéma explicatif OCS Inventory

poster_simplifie.jpg

Installation des pré-requis sur le serveur Debian pour OCS

Installation des divers services pour le fonctionnement du serveur

Installation de l’outil MAKE sur le serveur Debian Commande :
apt-get install make

"L'utilitaire GNU Make contrôle la création d'exécutables et autres fichiers d'un programme à partir des sources. Il détermine automatiquement quelles parties d'un long programme doivent être (re)créées et génère les commandes pour les (re)créer. Make ne se limite pas aux programmes et exécutables. Il peut être utilisé pour toute tâche où un ensemble de fichiers cibles doivent être créés à partir d'un ensemble de fichiers sources en se basant sur des règles de traitement et de dépendances. En fait, Make est un résolveur de dépendances généraliste."

Configuration de la base de donnée pour OCS Inventory :

vim /etc/mysql/my.cf


image23.png

Installation de l’outil PERL sur le serveur Debian

"Perl est un langage de programmation de script dont la syntaxe est semblable au langage C. Il comprend un certain nombre d'installations UNIX populaires."

aptitude install libapache2-mod-perl2 apt-get install libxml-simple-perl libcompress-zlib-perl libdbi-perl libdbd-mysql-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl

Vérification de l’installation :

image140.png

Ensuite les modules non packagés. Pour commencer, on met à jour CPAN :
perl -MCPAN -e shell install CPAN reload CPAN

image134.png

Ensuite on installe les modules :
install YAML install XML::Entities

Préparation de l’installation d'OCS Inventory

Avant l’installation, il faut télécharger l’archive .gz sur l'internet. Bon, directement dans /var/www/html, ça évite de faire trop de commandes :p
wget https://forge.glpi-project.org/attachments/download/2114/glpi-ocsinventoryng-1.2.1.tar.gz

12.png

Une fois l’archive télécharger, il faut la décompresser à l’aide de la commande suivante : Commandes :
tar -zvxf glpi-ocsinventoryng-1.2.1.tar.gz

Installation OCS Inventory

Une fois la préparation pour l’installation terminée, il faut lancer l’installation en exécutant le script dans le répertoire OCS précédemment déplacer.
sh /var/www/html/OCSNG_UNIX_SERVER-2.1.2/setup.sh

546.png

Toutes les informations sont déjà présentes par défaut. Sauf : Information lors de l’installation : Répretoire de configuration OCS : /etc/apache2/conf-enabled

image19.png

La page d'ocs ne s'affichant pas dans le navigateur, il faudra commenter ou supprimer les lignes suivantes :
vim /etc/apache2/conf-enabled/z-ocsinventory-server.conf

image113.png

3 - Une fois cela terminé, il faudra reload le service apache2
service apache2 restart

image112.png

Puis, il faut aller sur un navigateur avec le lien suivant pour configurer l’accès à la base de donnée. http://ip/ocsreports/

image103.png

Ensuite, OCS-NG génère la base de données du serveur.

image127.png

Maintenant on à accès au portail de connexion du serveur OCS Inventory

image119.png

Installation du plugin OCS sur GLPI

Il faut ce rendre sur répertoire plugins du serveur GLPI :
cd /var/www/html/glpi/plugins

02.png

Et télécharger l’archive du plugin OCS de GLPI et a désarchiver dans le répertoire .
wget https://forge.glpi-project.org/attachments/download/1847/glpi-ocsinventoryng-1.0.3.tar.gz

tar -zvxf glpi-ocsinventoryng-1.0.3.tar.gz

image122.png

Aller dans Configuration -> Plugins Un plugin sauvage apparait :

0.png

Il faut évidemment l'installer et l'activer :

0.png

Ensuite, il faut aller dans le plugins et le configurer. Il est possible de configurer l’importation de OCS vers GLPI.

23.PNG

Déploiement d'OCS sur Windows 7 via GPO

Il faut d'abord installer l'agent windows, Ocspackager et psexec.exe (à placer dans le dossier OCS)

capture2.PNG

>

ensuite, il faut lancer OcsPackager.exe
On pourra alors noter l'information de configuration

capture33.PNG

>

Agent setup file :Une fois arrivé à cette étape, on vérifie si la configuration du partitionnement est bonne et on passe à la suite. Pour selectionner le fichier exe (eXe file en anglais...) de l'agent Windows (OCS-NG-Windows-Agent-Setup.exe)
Command line option : : /S /NOSPLASH /Server=http:/X.X.X.X/ocsinventory /NOW (installation silencieuse sans fenêtres apparentes se rapportant au serveur ocs et qui envois les informations après l'installation)
User: utilisateur avec droits administrateur sous la forme : login@domain.local Dans le service de Gestion de stratégie de groupe,
il faudra créer une GPO pour l’unité concernée :

capture33.PNG

Puis la modifier en se rendant dans l'onglet démarrage : (Configuration ordinateur \Stratégies \Paramètres Windows\Script)

capture2.PNG

Et ajouter un script en choisissant comme nom 'OcsLogon.exe' et comme paramètres de scripts :
/PACKAGER /GPO/DEPLOY=2..1.1.1 /Server=http://<@ipduserveur>/ocsinventory

capture33.PNG

Pour finir,forcer l’application des paramètres avec la commande « gpudapte /force »

Sans titre.png

Vérification :

Capture1.PNG

Exportation et exportation de la base de données existante

Le problème avec GLPI, c'est que lorsqu'on installe une nouvelle version, il faut converti la base de données. C'est pourquoi, il a fallu repasser sur la version 0.84. Sur une autre vm, Après réinstallation de la version 0.84 (qui est similaire à la 0.90.1, à quelques variations près...) puis, se connecter à la base Mysql pour importer la base de données existante. Il faut bien évidement créer une base de données "glpi" et la sélectionner

19.png

[gallery ids="366,367,365" type="rectangular"] Présentement, on va mettre à jour le service, pour cela, on va simplement lancer glpi par le navigateur, suivre les premières instruction puis cliquer sur le bouton "mise à jour" au lieu d'installer [gallery ids="357,363,371" type="rectangular"]

25.png


Changement de base de données glpi

Il est aussi possible de changer la base de données par défaut sans pour autant tout réinstaller. Par exemple, on passe d'une base se nommant "glpid" à une qui se nome "glpi". Pour ce faire, il suffit d'éditer le ficher config_db.php
vim /var/www/html/glpi/config/config_db.php

24.PNG

Synchronisation avec annuaire LDAP

Cela permet d'authentifier les utilisateurs, de récupérer leurs informations personnelles et d'importer des groupes et de contrôler leur accès tout en permettant une synchronisation des données à chaque fois que l'utilisateur ce connecte. Tout les annuaires compatible avec la version 3 de LDAP sont supportés. Notamment l'Active directory de Microsoft. Pour ce faire, il faut aller dans l'onglet utilisateur et cliquer sur "Liaison annuaire LDAP"

35.PNG

Et sélectionner "importation de nouveaux utilisateurs"

36.png

Et aller dans le mode expert

37.png

Ensuite entrer les information suivantes :

38.PNG

et cliquer sur rechercher

Le collecteur de mail

Glpi offre la possibilité de mettre en place un collecteur de mail, cela permet de convertir automatiquement un mail en ticket tout en étant synchronisé aux utilisateurs référencés. En gros il associe le mail au nom de l'utilisateur Pour ce faire il faut aller dans le menu configuration, puis dans l'option collecteur

26.PNG

Pour créer un collecteur, il suffit de cliquer sur "+" et de remplir les champs demandés pour enfin valider

27.PNG

28.PNG

29.PNG

Si il y a une synchronisation avec un annuaire ldap, une adresse de messagerie inconnue sera recherchée dans l'annuaire pour créer l'utilisateur associé. Test :

33


34


32


Évolution : customisation du CSS

Pour des raisons esthétiques, il est possible de modifier le css de glpi. A la base, glpi propose plusieurs paterne de couleurs, mais ce n'est pas suffisant. Notamment, pour l'intégrer ensuite dans l'intranet, il faut qu'il y ait une certaine cohérence.

16.png

On va donc éditer une de ces paternes , ici on va utiliser Auror.
cd /var/www/html/glpi/css/palettes/

Avant de faire des bêtises, il est préférable de dupliquer le fichier en question puis de le supprimer
cp auror.css auror.css.vieu rm -vf auror.css

0.png

Préquel

Bon, normalement un "vim auror.css" aurait fait l'affaire, mais comme je ne suis pas programmeur, j'ai du faire un travail d'analyse via firefox. Car à l'époque, je ne savait même pas quoi modifier

17.png

Ici on observe que le design dépend du fichier Auror.css

0.png

Du coup, on clique dessus, on récupère le code et on le colle dans bloc-notes :

18.png

Même technique pour récupérer les ressources nécessaires sur l'intranet de l'entreprise, notamment l'image de fond. Vu qu'elle est déjà hébergée sur un serveur local, je me suis contenté de copier coller le lien... Après un passage sur gimp pour éditer le logo. Ce dernier ressemblant ira directement remplacer le fichier /var/www/html/glpi/pics/login_logo_glpi.png

login_logo_glpi.png

Au final le code ressemble à ça (les modifications sont les lignes surlignées) :

0.png

Maintenant on le colle dans le nouveau fichier auror.css
vim auror.css

0.png

Et voila :

0.png

Ressources : Site officiel Debian : https://www.debian.org/index.fr.html Site officiel GLPI : http://glpi-project.org/ Site officiel OCS Inventory : http://www.ocsinventory-ng.org/fr/ Remerciements : Erwan Berthou et l'association des Amitiés d'armor