GLPI (Inventaire de parc)
Environnement
- Conteneur LXC Proxmox
- Ubuntu 20.04
1. GLPI
Installer Apache, PHP et MariaDB :
apt install apache2 mariadb-server php7.4 libapache2-mod-php7.4 php7.4-intl php7.4-bz2 php7.4-mysql php7.4-mbstring php7.4-curl php7.4-gd php7.4-imap php7.4-cli php7.4-xml php7.4-xmlrpc php7.4-zip php7.4-ldap php-apcu php-cas
Activer le module de réécriture d'URL et redémarrer Apache :
a2enmod rewrite
systemctl restart apache2
Télécharger et décompresser la dernière version stable de glpi :
cd /var/www/
wget https://github.com/glpi-project/glpi/releases/download/9.5.3/glpi-9.5.3.tgz
tar zxvf glpi-9.5.3.tgz
rm glpi-9.5.3.tgz
chown www-data:www-data -R /var/www/glpi
Créer le virtualhost :
mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf.bak
nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerName glpi.ucpt.fr
DocumentRoot /var/www/glpi/
<Directory /var/www/glpi/>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
LogLevel warn
ErrorLog /var/log/apache2/glpi-error.log
CustomLog /var/log/apache2/glpi-access.log combined
</VirtualHost>
Configurer les fichiers php.ini :
cp -p /etc/php/7.4/apache2/php.ini /etc/php/7.4/apache2/php.ini.bak
cp -p /etc/php/7.4/cli/php.ini /etc/php/7.4/cli/php.ini.bak
sed -i 's,upload_max_filesize = 2M,upload_max_filesize = 16M,g' /etc/php/7.4/apache2/php.ini
sed -i 's,upload_max_filesize = 2M,upload_max_filesize = 16M,g' /etc/php/7.4/apache2/php.ini
sed -i 's,memory_limit = 128M,memory_limit = 256M,g' /etc/php/7.4/apache2/php.ini
sed -i 's,max_execution_time = 30,max_execution_time = 600,g' /etc/php/7.4/apache2/php.ini
sed -i 's,memory_limit = 128M,memory_limit = 256M,g' /etc/php/7.4/cli/php.ini
sed -i 's,max_execution_time = 30,max_execution_time = 600,g' /etc/php/7.4/cli/php.ini
Redémarrer le serveur Apache :
systemctl restart apache2
Sécuriser l'installation de MariaDB :
mysql_secure_installation
Se connecter à MariaDB et modifier le mode de connexion pour passer du compte root "système" au compte root "MariaDB" :
mysql -u rootUSE mysql;UPDATE user SET plugin='' WHERE User='root';FLUSH PRIVILEGES;exit;
Se connecter à MariaDB et créer la base de données pour GLPI :
mysql -u root -pCREATE DATABASE glpi;CREATE USER 'glpi-admin'@'localhost' IDENTIFIED BY 'mot_de_passe';GRANT ALL PRIVILEGES ON glpi.** TO 'glpi-admin'@'localhost';FLUSH PRIVILEGES;exit;
Dans un navigateur, se connecter au serveur GLPI http://mon.serveur.glpi.tld/install/install.php et poursuivre l'installation.
Supprimer le fichier rm /var/www/glpi/install/install.php :
rm /var/www/glpi/install/install.php
Pour gérer les fuseaux horaires :
mysql -u root -pGRANT SELECT ON mysql.time_zone_name TO 'yourglpiuser'@'localhost';FLUSH PRIVILEGES;exit;cd /var/www/glpisudo bin/console glpi:migration:timestamps
Aller à l'adresse http://mon.serveur.glpi.tld/front/preference.php et choisir le fuseau.
2. FusionInventory
Télécharger et décompresser le plugin FusionInventory :
cd /var/www/glpi/pluginswget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.5.0+1.0/fusioninventory-9.5.0+1.0.tar.bz2tar xjvf fusioninventory-9.5.0+1.0.tar.bz2rm fusioninventory-9.5.0+1.0.tar.bz2chown www-data:www-data -R /var/www/glpi
Aller dans le menu Configuration -> Plugins, installer puis activer le plugin FusionInventory.
Aller dans le menu Administration -> FusionInventory si le message Le cron de GLPI ne fonctionne pas, voir documentation est présent, exécuter les commandes suivantes :
crontab -u www-data -e
*/1 * * * * /usr/bin/php7.4 /var/www/glpi/front/cron.php &>/dev/null
Redémarre le service Cron :
systemctl restart cron
Dans l'interface web, aller dans Configuration -> actions automatiques -> taskscheduler et cliquer sur le bouton Exécuter
3. FusionInventory Agent
3.1. Linux
Installer les dépendances pour l'agent Linux :
apt -y install dmidecode hwdata ucf hdparm perl libuniversal-require-perl libwww-perl libparse-edid-perl libproc-daemon-perl libfile-which-perl libhttp-daemon-perl libxml-treepp-perl libyaml-perl libnet-cups-perl libnet-ip-perl libdigest-sha-perl libsocket-getaddrinfo-perl libtext-template-perl libxml-xpath-perl libyaml-tiny-perl libnet-snmp-perl libcrypt-des-perl libnet-nbname-perl libdigest-hmac-perl libfile-copy-recursive-perl libparallel-forkmanager-perl libxml-parser-perl
Téléchager les paquets et les installer :
cd /tmpwget https://github.com/fusioninventory/fusioninventory-agent/releases/download/2.6/fusioninventory-agent_2.6-1_all.debwget https://github.com/fusioninventory/fusioninventory-agent/releases/download/2.6/fusioninventory-agent-task-collect_2.6-1_all.debwget https://github.com/fusioninventory/fusioninventory-agent/releases/download/2.6/fusioninventory-agent-task-network_2.6-1_all.debwget https://github.com/fusioninventory/fusioninventory-agent/releases/download/2.6/fusioninventory-agent-task-deploy_2.6-1_all.debwget https://github.com/fusioninventory/fusioninventory-agent/releases/download/2.6/fusioninventory-agent-task-esx_2.6-1_all.debdpkg -i fusioninventory-agent_2.6-1_all.debdpkg -i fusioninventory-agent-task-collect_2.6-1_all.debdpkg -i fusioninventory-agent-task-network_2.6-1_all.debdpkg -i fusioninventory-agent-task-deploy_2.6-1_all.debdpkg -i fusioninventory-agent-task-esx_2.6-1_all.deb
Éditer le fichier /etc/fusioninventory/agent.cfg pour configurer l'agent :
nano /etc/fusioninventory/agent.cfg# send tasks results to a FusionInventory for GLPI server server = http://glpi.mon.serveur/plugins/fusioninventory/
Activer et démarre l'agent :
systemctl enable fusioninventory-agentsystemctl start fusioninventory-agent
Exécuter l'agent :
fusioninventory-agent
3.2. VMware
Depuis une machine GNU/Linux, installer l'agent fusioninventory-agent-task-esx :
apt install libfusioninventory-agent-task-esx-perl
Éxécuter la commande suivante pour récupérer les données des ESXi :
fusioninventory-esx --host ip_vcenter --user vcenter_user --password 'vcenter_password' --directory /tmp
Intégrer les données à partir de l'interface web (Administration -> FusionInventory -> Tâches -> Importer un fichier XML de l'agent) ou par la commande suivante :
fusioninventory-injector -v --file /tmp/esx-2020-01-28-19-03-46.ocs -u http://glpi.mon.serveur/plugins/fusioninventory/
3.3. SNMP
Les agents du serveur GLPI seront utilisés pour la découverte réseau.
Aller dans Administration -> FusionInventory -> Général -> Gestion des agents et choisir le serveur GLPI. Dans le menu Module des agents, cocher toutes les cases.
3.3.1. Imprimantes
3.3.1.1. Méthode automatique
3.3.1.1.1 Détection des imprimantes
Aller dans Administration -> FusionInventory -> Réseau -> Plages IP, et ajouter la plage IP contenant les imprimantes.
Au sein de cette plage IP, aller dans Identifiants SNMP associés et associer Public community v2c.
Aller dans Administration -> FusionInventory -> Règles -> Règles d'import et de liaison des matériels et activer les règles suivantes :
- Printer update (by mac)
- Printer import (by mac)
Aller dans Administration -> FusionInventory -> Tâches -> Gestion des tâches et ajouter une nouvelle tâche Imprimantes - Découverte réseau.
Cocher les cases Re-préparer un job si l'exécution précédente était un succès : et Actif :
Au sein de cette tâche, aller dans Configuration des jobs et ajouter un nouveau job avec comme méthode du module Découverte réseau.
Ajouter la plage IP précédemment créée comme cible, le serveur GLPI comme acteur et mettre à jour.
Aller dans Parc -> Ordinateurs -> serveur GLPI et cliquer sur la double-flèche circulaire suivant Statut : pas encore demandé, rafraîchir ? puis sur le bouton Forcer l'inventaire afin de lancer le job de découverte réseau.
Le résultat de la découverte réseau est disponible dans le menu Administration -> FusionInventory -> Tâches -> Gestion des tâches- > Exécutions des jobs.
3.3.1.1.2. Récupérations des informations via SNMP
Aller dans Administration -> FusionInventory -> Tâches -> Gestion des tâches et ajouter une nouvelle tâche Imprimantes - SNMP.
Cocher les cases Re-préparer un job si l'exécution précédente était un succès : et Actif :
Au sein de cette tâche, aller dans Configuration des jobs et ajouter un nouveau job avec comme méthode du module SNMP.
Ajouter les imprimantes précédemment trouvées comme cible et le serveur GLPI comme acteur.
Aller dans Parc -> Ordinateurs -> serveur GLPI et cliquer sur la double-flèche suivant Statut : pas encore demandé, rafraîchir ? puis sur le bouton Forcer l'inventaire afin de lancer le job de découverte réseau.
Le résultat de la découverte réseau est disponible dans le menu Administration -> FusionInventory -> Tâches -> Gestion des tâches- > Exécutions des jobs.
/!\ Selon les refus d'importation, il faudra désactiver (temporairement ou pas) la règle :
- Printer constraint (name)
3.3.1.2. Méthode manuelle
Lancer la commande suivante afin de récupérer les données de l'imprimante dans un fichier XML :
fusioninventory-netinventory --host imprimante_ip --credentials version:2c,community:public --type PRINTER > mon_imprimante.xml
Importer le contenu du fichier dans GLPI :
fusioninventory-injector -v --file mon_imprimante.xml -u http://glpi.mon.serveur/plugins/fusioninventory/
3.3.2. Switches
3.3.2.1. Méthode automatique
Aller dans Administration -> FusionInventory -> Réseau -> Plages IP, et ajouter la plage IP contenant les switches.
Au sein de cette plage IP, aller dans Identifiants SNMP associés et associer Public community v2c
Aller dans Administration -> FusionInventory -> Tâches -> Gestion des tâches et ajouter une nouvelle tâche Découverte Réseau Switches
Cocher les cases Re-préparer un job si l'exécution précédente était un succès : et Actif :
Au sein de cette tâche, aller dans Configuration des jobs et ajouter un nouveau job avec comme méthode du module Découverte réseau
Ajouter la plage IP précédemment créée comme cible et le serveur GLPI comme acteur
Aller dans Parc -> Ordinateurs -> serveur GLPI et cliquer sur la double-flèche suivant Statut : pas encore demandé, rafraîchir ? puis sur le bouton Forcer l'inventaire afin de lancer le job de découverte réseau
Le résultat de la découverte réseau est disponible dans le menu Administration -> FusionInventory -> Tâches -> Gestion des tâches- > Exécutions des jobs
3.3.2.2. Méthode manuelle
Lancer la commande suivante afin de récupérer les données du switch dans un fichier XML :
fusioninventory-netinventory --host switch_ip --credentials version:2c,community:public --type NETWORKING > mon_switch.xml
Importer le contenu du fichier dans GLPI :
fusioninventory-injector -v --file mon_switch.xml -u http://glpi.mon.serveur/plugins/fusioninventory/
3.4. Android
/!\ Le serveur GLPI étant sur le réseau local, la remontée de données depuis un appareil Android ne fonctionnera qu'en Wi-Fi local.
Télécharger et installer le client GLPI Agent (org.glpi.inventory.agent) à partir du Play Store ou de Aurora Store
Lancer l'application et cliquer sur le bouton en bas à droite puis sur Advanced Settings -> Open List Servers -> Add Server
L'adresse du serveur doit être du type : http://mon.serveur.glpi.tld/plugins/fusioninventory/front/plugin_fusioninventory.communication.php
3.5. Windows (Déploiement silencieux)
Ajouter un enregistrement DNS sur le controleur de domaine pour le serveur GLPI
Télécharger les fichiers suivants :
- fusioninventory-agent_windows-x64_2.6.exe (https://github.com/fusioninventory/fusioninventory-agent/releases/)
- fusioninventory-agent-deployment.vbs (https://github.com/fusioninventory/fusioninventory-agent/tree/develop/contrib/windows)
- FusionInventory.adml (https://github.com/fusioninventory/fusioninventory-agent/tree/develop/contrib/windows)
- FusionInventory.admx (https://github.com/fusioninventory/fusioninventory-agent/tree/develop/contrib/windows)
Sur le contrôleur de domaine :
-
placer fusioninventory-agent_windows-x64_2.6.exe dans \\dc_server\applications$
-
placer fusioninventory-agent-deployment.vbs dans \\dc_server\NETLOGON
- placer FusionInventory.admx dans \\dc_server\sysvol\ucpt.fr\Policies\PolicyDefinitions
- placer FusionInventory.adml dans \\dc_server\sysvol\ucpt.fr\Policies\PolicyDefinitions\fr-FR
- placer FusionInventory.adml dans \\dc_server\sysvol\ucpt.fr\Policies\PolicyDefinitions\en-US
Éditer le fichier fusioninventory-agent-deployment.vbs et configurer les paramètres suivants :
- SetupVersion = "2.6"
- SetupArchitecture = "x64"
- SetupOptions = "/acceptlicense /runnow /execmode=service /add-firewall-exception /tag=SIEGE /server='http://glpi.mon.serveur/plugins/fusioninventory/' /S"
Sur le contrôleur de domaine, créer un GPO Deploiement FusionInventory et le modifier.
Naviguer jusqu'au dossier Configuration ordinateur -> Stratégies -> Paramètres Windows -> Scripts (démarrage/arrêt) et éditer le paramètre Démarrage et ajouter le script fusioninventory-agent-deployment.vbs (\\domain.lan\SysVol\domain.lan\scripts\fusioninventory-agent-deployment.vbs)
Naviguer jusqu'au dossier : Configuration ordinateur -> Stratégies -> Modèles d'administration -> Système -> Fusion Inventory et modifier Configure the agent :
- Server : http://glpi.mon.serveur/plugins/fusioninventory/
- Tag : SIEGE
Lier le GPO à une ou plusieures OU.
Sources
https://glpi-project.org/DOC/FR/glpi/preface.html
https://www.osradar.com/how-to-install-glpi-on-ubuntu-server-18-04/
http://fusioninventory.org/documentation/fi4g/cron.html
http://fusioninventory.org/documentation/agent/installation/linux/deb.html
https://www.it-connect.fr/glpi-fusioninventory-comment-inventorier-un-appareil-android
https://www.it-connect.fr/deployer-lagent-fusion-inventory-par-gpo/
https://www.dsfc.net/logiciel-libre/glpi/installation-silencieuse-agent-fusioninventory-windows/
https://openclassrooms.com/fr/courses/1730516-gerez-votre-parc-informatique-avec-glpi
http://fusioninventory.org/documentation/tasks/esxinventory/