====== GLPI ====== [[http://www.glpi-project.org|Gestion Libre de Parc Informatique]] est un logiciel libre qui permet de gérer un parc de machines liées à l'informatique (ordinateurs, imprimantes, équipements réseau, etc). ===== Vider l'inventaire des bases de données ===== Après une période de tests de mise en place d'une solution OCS+GLPI, il nous a fallu effacer les données d'inventaire sans pour autant effacer les données nécessaires à l'utilisation des logiciels. Nous indiquons ici comment nous avons procédé en espérant que cela puisse servir à d'autres. :!: Même si une réinstallation n'a pas été nécessaire, tout n'a pas fonctionné. Voir les [[service_oel:glpi#pistes_d_ameliorations_possibles|pistes d'amélioration possibles]]. :!: ==== Principe Général ==== Voici l'idée générale de la démarche pour effacer uniquement les données d'inventaire sans toucher aux données nécessaires aux fonctionnement des logiciels: - faire la liste des tables remplies par l'installation des logiciels utilisés - faire la liste de toutes les tables de chaque base - croiser les deux listes ci-dessus pour avoir la liste des tables **non modifiées** lors de l'installation des logiciels - supprimer les données qui ne sont pas nécessaires au fonctionnement des logiciels, c'est à dire les données contenues dans les tables de la liste croisée ==== Détails de la mise en œuvre ==== === Logiciels utilisés === Avant de procéder à toute intervention, nous avons fait la liste des logiciels utilisés. Dans notre cas il s'agit de : * GNU/Linux Debian Wheezy 7.0 * OCS Inventory version du paquet GNU/Linux Debian 2.0.5-1 * GLPI version version du paquet GNU/Linux Debian 0.83.31-1 * les [[http://plugins.glpi-project.org/|plugins GLPI]] suivants: * FusionInventory version 0.83+1.0 * FusionInventory INVENTORY version 0.83+1.0 * FusionInventory SNMP version 0.83+1.0 * Import OCS version 1.6.1 * Rapports version 1.6.1 Avec ces informations, il a été possible de voir dans quelles tables sont créées les données nécessaires au fonctionnement des différents logiciels. === Tables contenant les données initiales === La liste des données initiales a été récupérée en cherchant les commandes ''INSERT'' dans les fichiers d'installation des bases de données. Voici les commandes utilisées et, après quelques manipulations pour supprimer les doublons, les fichiers obtenus. Pour OCS Inventory: {{:service_oel:insert_ocsweb.txt|Fichier insert base ocsweb}} grep -i INSERT /usr/share/ocsinventory-reports/ocsreports/files/*.sql | cut -f 3 -d " " | sort -u > insert_install_ocsweb Pour GLPI: {{:service_oel:insert_glpi.txt|Fichier insert base glpi}} grep -i INSERT /usr/share/glpi/install/mysql/glpi-0.83.1-empty.sql| cut -f 3 -d " "|sort -u Pour le plugin GLPI Import OCS: rgrep -i INSERT /usr/share/glpi/plugins/massocsimport/ | cut -f 2 -d "\"| sort -u Pour les autres plugins GLPI: find /usr/share/glpi/plugins/ -name "*.sql" -exec grep INSERT {} \; | cut -f 3 -d " "|sort -u === Liste de toutes les tables === La liste de toutes les tables est obtenue en se connectant à la base de données mysql et en utilisant la commande show tables; et en faisant une petite mise en forme. {{:service_oel:tables_ocsweb.txt|Liste des tables de la base ocsweb}}. {{:service_oel:tables_glpi.txt|Liste des tables de la base glpi}}. === Croisement des listes === Il s'agit d'enlever des listes de toutes les tables, celles où l'on trouve les données initiales. Pour cela, rien de tel qu'une commande ''grep'' pour chaque base. Pour la base ocsweb: {{:service_oel:truncate_list_ocsweb.txt|Fichier final des tables à vider}}. grep -F -f insert_ocsweb.txt -v tables_ocsweb.txt Pour la base glpi: {{:service_oel:truncate_list_glpi.txt|Fichier final des tables à vider}}. grep -F -f insert_glpi.txt -v tables_glpi.txt === Suppression des données d'inventaire === :!: **Avant** toute modification des données, assurez-vous d'avoir une sauvegarde récente (et une possibilité de pouvoir restaurer vos données rapidement; idéalement, testez la restauration des données sur une machine différente). Pensez aussi à arrêter la remontée des inventaires (activer le verrouillage du script d'import OCS, arrêter les tâches automatiques de type //cron// et arrêter le serveur web qui réceptionne les données du parc informatique):!: La commande permettant d'effacer les données d'une table est [[http://dev.mysql.com/doc/refman/5.0/fr/truncate.html|TRUNCATE TABLE ]]. Après transformation, la liste des tables à vider devient une liste de commandes mysql. {{:service_oel:truncate_ocsweb.sql.txt|Pour la base ocsweb}}. {{:service_oel:truncate_glpi.sql.txt|Pour la base glpi}}. Ces commandes sont lancées directement sur les bases avec les commandes suivantes: mysql -u -p ocsweb < truncate_ocsweb.sql.txt mysql -u -p glpi < truncate_glpi.sql.txt ==== Pistes d'améliorations possibles ==== Tout s'est //presque// passé comme prévu. En effet, après avoir redémarré le serveur web, il est apparu que les plugins GLPI n'étaient plus installés et que les entités ont disparu de GLPI ! Il nous a donc fallu restaurer les données de la table ''glpi_entities'' et réinstaller les plugins GLPI. Cela s'est fait très simplement à partir des sauvegardes et de l'interface GLPI. Comme la configuration des règles a été conservée, nous sommes en train d'observer les remontées d'inventaires des machines aller directement dans la bonne entité ! \o/ ===== Utiliser des certificats signés par l'autorité CAcert.org avec l'agent FusionInventory ===== L'autorité de certification préconisée par Demo-TIC est [[service_oel:ca-cert]]. Donc, pour que les agents FusionInventory fassent confiance au certificat du serveur GLPI de Demo-TIC, ils doivent faire confiance à l'autorité de certification. Pour cela, il faut donc: - télécharger les certificats racine de CAcert.org et les mettre dans un fichier, par exemple ''cacert.org.crt'':wget -O cacert.org.crt "http://www.cacert.org/certs/class3.crt" "http://www.cacert.org/certs/root.crt" - indiquer à l'agent d'utiliser ces certificats:fusioninventory --ca-cert-file=/chemin/vers/le/fichier/cacert.org.crt -f Il est possible de le faire de manière pérenne en modifiant le paramètre ''ca-cert-file'' dans le fichier de configuration de l'agent. Voir [[http://www.fusioninventory.org/|la documentation officielle]], notamment [[http://www.fusioninventory.org/documentation/security/|la page sur la sécurité]] et [[http://www.fusioninventory.org/documentation/agent/configuration/|celle sur la configuration de l'agent]].