You are not logged in.
Installation LAMP, GLPI et Fusioninventory sur CentOS 8.2
Avant toute chose, qui n'a pas été faite en 2014, je tiens à remercier Mr Durieux et sa team GLPI ainsi que Mr Collet "au chapeau rouge" pour leurs travaux et impliquations dans le monde du libre, un grand bravo à eux.
Ceci est une mise à jour de mon précédent projet de formation datant de 2014.(voir en fin de page)
OpenSuse avait été retenu car seule distribution linux maitrisée à l'époque, mais CentOS reste selon moi la distribution Linux la plus apropriée dans un environnement professionnel.
I Installation LAMP.
Dans cette mise à jour mon choix s'est porté sur la dernière version de CentOS 8.2.2004, choisissez un mirroir.
Vérifiez l'intégrité de l'image ISO https://wiki.centos.org/TipsAndTricks/sha256sum
Une fois l'OS installé et mis à jour, nous allons installer les paquets nécessaires à l'élaboration d'un environnement de site web.
Les dépôts par défaut de CentOS 8.2 ne prennent pas en charge certains plugins nécessaires au bon fonctionnement de glpi ainsi que phpMyAdmin, pour cela nous allons activer les dépôts remi.
Dans une fenêtre en root rentrons les lignes suivantes:
dnf update && dnf upgrade
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Mettons les dépôts à jour:
dnf update
Activons ensuite le dépôt remi:
dnf config-manager --set-enabled remi
Ia Apache.
Installé par défaut en fonction du choix des options durant l'installation, dans mon exemple ce sera en minimal.
Ouvrons une fenêtre terminal en root:
dnf module install httpd -y
Activons et démarrons le service:
systemctl enable --now httpd
Vérifions le statut du service:
systemctl status httpd
Si ces lignes aparaissent le service est fonctionnel:
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since *
Nous allons désactiver le firewall:
systemctl stop firewalld
systemctl disable firewalld
Ensuite Testons notre serveur web apache:
http://mon_ip
Une page de test s'affiche comme suit:
Ib MYSQL.
Installons mariadb:
dnf module install mariadb -y
Activons et démarron son service:
systemctl enable --now mariadb
Vérifions le statut du service:
systemctl status mariadb
Si ces lignes aparaissent le service est fonctionnel:
● mariadb.service - MariaDB 10.3 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since *
Par défaut il n'y a pas de mot de passe, pour cela nous allons lancer le script suivant afin de sécuriser mysql.
Paramétrons l'utilisateur root:
mysql_secure_installation
S'ensuivent des questions auxquelles nous répondrons à toutes par un "y".
Choix d'un mot de passe fort de 16 caractères maximum et sans caractères alphanumériques, préférence avec un gestionnaire de mot de passe par exemple keepassxc.
Une fois le paramétrage terminé on pourra se connecter à mariadb:
mysql -u root -p
Nous allons plus tard utiliser phpMyAdmin pour la création d'une base de donnée.
Ic PHP.
Par défaut les dépôts de centOS 8.1 proposent la version 7.2 de PHP, or nous désirons la dernière version en date soit la 7.4, pour cela il suffit de réinitialiser PHP.
Installation du dernier module PHP:
dnf module reset php
dnf module install php:remi-7.4 -y
Installation des plugins nécessaires à glpi:
dnf install php-mysqlnd php-opcache php-gd php-xmlrpc php-ldap php-imap php-soap php-pecl-apcu php-pear php-devel make libsodium libsodium-devel php-pear-CAS -y
Compilons l'extension sodium nécessaire plus tard dans glpi:
sudo pecl install -f libsodium
Rajoutons l'extension dans le fichier php.ini:
echo "extension=sodium.so" >> /etc/php.ini
Nous allons tester PHP:
nano /var/www/html/info.php
Puis éditez le fichier avec le script suivant:
<?php
phpinfo();
?>
Redémarrer le service apache pour la prise en compte des modifications:
systemctl restart httpd
Ouvrir une page web et se rendre à l'adresse suivante pour tester le script:
http://mon_ip/info.php
S'ouvre une page web informant de la version et configuration de php:
Une fois effectué il est préférable de supprimer notre script de teste ainsi que celui de l'index pour plus de sécurité:
rm -rf /var/www/html/*
Id phpMyAdmin.
Passons à l'installation de phpMyAdmin:
dnf install phpmyadmin -y
Redémarrez le service apache pour la prise en compte de pma:
systemctl restart httpd
Testons ensuite phpMyAdmin dans un navigateur web:
http://mon_ip/phpmyadmin
S'ouvre une page web proposant la configuration de la langue de phpMyAdmin:
Il suffira de renseigner les identifiants précédemment configurés pour rentrer dans l'interface de phpMyAdmin.
Notre LAMP est maintenant prêt à l'emploi, prochaine étape l'installation et le paramétrage de glpi.
II Installation GLPI et plugins.
Nous allons nous placer dans le dossier tmp:
cd /tmp
Puis téléchargeons GLPI 9.4.6, car le plugin webservices n'est plus compatible avec la version 9.5:
wget https://github.com/glpi-project/glpi/releases/download/9.4.6/glpi-9.4.6.tgz
Extrayons GLPI:
tar -xvzf glpi-9.4.6.tgz
Copions le dossier glpi dans le dossier html:
cp -R /tmp/glpi /var/www/html/
Nous gardons ainsi une copie conforme du dossier glpi de départ au cas ou.
Donnons les permissions adéquates:
chown -R apache:apache /var/www/html/glpi
chmod -R 755 /var/www/html/glpi
Rajoutons des droits SELinux pour le serveur Web:
chcon -R -t httpd_sys_rw_content_t /var/www/html/glpi
chcon -R -t httpd_sys_script_rw_t -u system_u /var/www/html/glpi
Activons ensuite certains booléens SELinux requis:
setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db on
setsebool -P httpd_can_sendmail on
Créeons le fichier de configuration pour interdire l’accès aux répertoires sensibles:
nano /etc/httpd/conf.d/glpi.conf
Dans ce fichier de configuration remplacez les astérix dans require ip par votre ip locale, ne surtout pas oublier de la retirer en fin d'installation!
<virtualhost *:80>
Alias /glpi /var/www/html/glpi
DocumentRoot /var/www/html/glpi
ServerName glpi
# Redirect configuration for multi-glpi installation
# You can set this value in each vhost configuration
#SetEnv GLPI_CONFIG_DIR /etc/glpi
<Directory /var/www/html/glpi>
Options None
AllowOverride Limit Options FileInfo
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
<Directory /var/www/html/glpi/install>
# Install is only allowed via local access (from the GLPI server).
# Add your IP address if you need it for remote installation,
# but remember to remove it after installation for security.
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
ErrorDocument 403 "<p><b>Restricted area.</b><br />Only local access allowe$
<IfModule mod_php5.c>
# migration could be very long
php_value max_execution_time 0
php_value memory_limit -1
</IfModule>
<IfModule mod_php7.c>
# migration could be very long
php_value max_execution_time 0
php_value memory_limit -1
</IfModule>
</Directory>
<Directory /var/www/html/glpi/config>
Order Allow,Deny
Deny from all
</Directory>
<Directory /var/www/html/glpi/locales>
Order Allow,Deny
Deny from all
</Directory>
<Directory /var/www/html/glpi/install/mysql>
Order Allow,Deny
Deny from all
</Directory>
<Directory /var/www/html/glpi/scripts>
Order Allow,Deny
Deny from all
</Directory>
</virtualhost>
Testons si la syntaxe est bonne dans httpd:
httpd -t
si une erreur il y a vous le saurez très vite, sinon ce sera syntaxe ok
Téléchargeons ensuite fusioninventory for glpi:
wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.4%2B2.4/fusioninventory-9.4+2.4.tar.bz2
Extrayons fusioninventory:
tar -xvf fusioninventory-9.4+2.4.tar.bz2
Copions le dossier vers celui des plugins dans glpi:
cp -R /tmp/fusioninventory /var/www/html/glpi/plugins/
Le plugin glpi-webservices 2.0 n'est plus supporté sous glpi 9.5.
Et pour finir le plugin Webservices utilisé pour connecter l'application GOATS:
wget https://forge.glpi-project.org/attachments/download/2299/glpi-webservices-2.0.0.tar.gz
Extrayons Webservices:
tar -xvzf glpi-webservices-2.0.0.tar.gz
Copions le dossier webservices vers le dossier plugins:
cp -R /tmp/webservices /var/www/html/glpi/plugins/
Redémarrons le service apache:
systemctl restart httpd
Puis Testons GLPI dans un navigateur web:
http://mon_ip/glpi
S'ouvre une page d'accueil de GLPI:
IIa Création base de donnée.
Nous allons générer une nouvelle base de donnée via phpMyAdmin.
Pour cela rendons nous dans une fenêtre de votre navigateur web et tapez:
http:/mon_ip/phpmyadmin
Dans la page d'accueil renseignez root comme utilisateur et votre mdp généré précédemment via mariadb.
Une fois dans l'interface rendons nous dans l'onglet comptes utilisateurs:
Ajoutons ensuite un nouvel utilisateur en sélectionnant l'onglet "Ajouter un compte utilisateur":
Renseignez comme suit en choisissant un mot de passe fort de 16 caractères minimum et privilégiez un gestionnaire de mdp:
Donnons lui tout les droits:
Et enfin executer sa création:
Quittons ensuite phpMyAdmin pour se connecter avec notre nouvel utilisateur:
Une fois dans l'interface nous allons créer une nouvelle base de donnée en sélectionnant l'onglet "Bases de données":
Nommons notre base comme suit:
Notre base est visible dans l'accueil:
Il s'agit d'une base de donnée vierge, nous iront la structurer plus tard dans la configuration de GLPI.
IIb Paramétrage GLPI.
Place au paramétrage de GLPI et des plugins en images.
Acceptons la licence:
Intallation:
Vérification si toutes les dépendances sont satisfaites:
Synchronisation de GLPI avec mariadb:
les identifiants sont localhost - glpi - mdp de glpi créés précédemment dans phpMyAdmin
GLPI découvre une base de donnée existante:
Ayant fait cette procédure sur une machine virtuelle (ignorez cette étape si vous avez une installation native), si vous avez un message d'erreur 504, il suffira d'augmenter le TimeOut dans httpd.conf:
nano /etc/httpd/conf/httpd.conf
Rajoputez ces lignes en fin de page:
#TimeOut
TimeOut 600
A augmenter en cas de besoin.
Redémarrons apache pour prendre en compte les modifications:
systemctl restart httpd
Il suffira de réinitialiser le fichier de configuration comme suit:
rm -rf /var/www/html/glpi/config/config_db.php
Puis regénérer les étapes précédentes.
Si tout concorde la base de donnée est générée:
Vous pouvez choisir d'envoyer des statistiques d'usages:
J'encourage a effectuer un don pour l'énorme travail produit:
Installation terminée:
Prochaine étape s'identifier, l'utilisateur et mdp par défaut sont glpi, à changer bien sur une fois dans l'interface:
Nous allons supprimer le script d'installation pour plus de sécurité comme suggéré par GPI:
rm -rf /var/www/html/glpi/install/install.php
Passons ensuite à l'attributions de nouveaux mots de passe aux utilisateurs par défaut:
IIc Paramétrage du plugin fusioninventory.
Le plugin glpi-webservices 2.0 n'est plus supporté sous glpi 9.5.
Tout d'abord nous allons installer fusioninventory et l'activer.
Pour cela se rendre dans l'onglet Configuration puis Plugins:
Dans le panneau Plugins nous apercevons nos 2 protagonistes:
Installons d'abord webservices puis fusioninventory:
Et pour finir activons les plugins en commençant par webservices puis fusioninventory:
Pour résoudre le problème de cron avec fusioninventory:
https://forum.glpi-project.org/viewtopi … 95#p343895
Pour la suite je vous laisse la lecture de mon précédent projet, dans lequel vous pourrez puiser des idées quand à l'utilisation de fusioninventory et bien plus.
https://forum.glpi-project.org/viewtopic.php?id=43472
Sources:
https://forum.glpi-project.org
https://blog.remirepo.net/post/2019/12/ … -or-Fedora
https://httpd.apache.org/docs/2.4/fr/
https://computingforgeeks.com/how-to-in … os-rhel-8/
Last edited by vandykmarsu (2020-07-24 13:59:49)
Offline
Mise à niveau et rectification ce jour de mon topic vers les dernières versions de CentOS, GLPI et FusionInventory.
Last edited by vandykmarsu (2020-07-22 16:23:52)
Offline