Documentation du plugin d'import OCS version 1.5

Présentation du plugin mass_ocs_import

Cette extension fonctionne sur la future version 0.80 de GLPI. Elle permet d'automatiser l'import et la synchronisation de machines depuis OCS Inventory.

L'extension est composée de :
  • un script pour Linux qui permet de lancer le script en ligne de commande ou via la cron. Il donne la possibilité de lancer plusieurs processus pour réaliser le traitement.
  • un script pour Windows à lancer en ligne de commandes ou à mettre dans une tâche planifiée. Sur cette plate-forme, le script ne peut lancer qu'un seul processus pour le traitement.
  • une interface graphique qui permet de suivre l'ensemble des exécutions de scripts. Elle fournit des informations sur les machines importées, synchronisées, liées et non importées.

Installation

  • Sous Linux, le package "php-cli" ou "php5-cli" doit être installé
  • Copiez les fichiers dans le répertoire plugins de GLPI.
  • Changer le propriétaire de tous les fichiers et répertoires pour le user apache
  • Rendre exécutables les scripts dans le répertoire scripts
  • Connectez-vous à GLPI
  • Dans le menu Configuration >> Plugins cliquez sur Import en masse OCS
  • Cliquez sur Installer le plugin
  • Configuration >> Mode OCSNG >> "Serveur OCS" >> Nombre d'éléments à synchroniser via le cron mettre "0"

Configuration du plugin

L'extension possède différentes options de configuration :
  • Serveur OCS par défaut : indique le serveur OCS sur lequel le script va se synchroniser.
  • Afficher les processus où rien n'a été modifié : si oui alors même les processus n'ayant rien modifié sont affichés dans la liste.
  • Autoriser la mise à jour OCS : permet de pouvoir modifier depuis le plugin la valeur du numéro de série ou du TAG dans la base OCS. Par défaut cette option est à non. Attention : cette option en fonctionne que si l'utilisateur MySQL utilisé pour la connexion à la base OCS possède des droits en écriture sur les table 'bios' et 'accountinfo'.
  • Effacer les processus après xx heures : indique le nombre d'heures pendant lesquelles les données d'un script sont gardées en base. (par défaut à 24)
  • Rafraîchir les informations d'un processus toutes les x minutes : indique la fréquence de rafraichissement en secondes de la page de détail d'un script est rafraichie. Si la valeur est 0, la page n'est jamais réaffichée.

Il est possible de désactiver manuellement la synchronisation en cliquant sur le bouton "Activer le verrouillage". Dans ce cas, un fichier de lock est posé sur le système de fichiers. Celui-ci empêche le script de synchronisation de se lancer. Cette option permet d'arrêter temporairement le processus de synchronisation OCS pendant une mise à jour de GLPI par exemple.

Utilisation

Le script de synchronisation adapté à la plateforme, est à lancer à la main ou/et par l'intermédiaire d'une tache planifiée ou d'une crontab

Lancement du script

Les scripts sont disponibles dans le répertoire scripts/ de l'extension.
  • Sous Linux le script est lancé avec l'une des commandes :

sh ocsng_fullsync.sh --thread_nbr=[nombre de threads à lancer] --server_id=[ID du serveur OCS]
ou :
php run.php --thread_nbr=[nombre de threads à lancer] --server_id=[ID du serveur OCS]

  • Sous Windows le script est lancé avec la commande
    php run.php --thread_nbr=[nombre de threads à lancer] --server_id=[ID du serveur OCS]

Si la commande php n'est pas dans un dossier de votre PATH, éditez et utilisez le fichier ''run.bat'' en renseignant les chemins corrects :

@SET path_php='C:OCSNGxamppphp'

SET plugin_glpi='C:OCSNGxampphtdocsglpipluginsmass_ocs_importscripts'@

Il est possible de suivre en temps réel l'exécution des scripts.
L'interface est accessible dans le menu Plugins >> Import OCS.

Lancement via cron

Ajouter le script dans la crontab de votre user apache (www-data pour debian) :
*/5 * * * * /var/www/glpi/plugins/massocsimport/scripts/ocsng_fullsync.sh --thread_nbr=2 --server_id=1

par exemple, pour lancer le scripts toutes les 5 minutes

Pour Debian/Ubuntu, si la tâche CRON ci-dessus ne fonctionne pas, essayez plutôt :
*/5 * * * * php /var/www/glpi/plugins/massocsimport/scripts/run.php --thread_nbr=2 --server_id=1

_Note : le nombre de thread par défaut est fixé à 2. Si vous ne voulez pas modifier cette valeur, l'argument thread_nbr n'est pas utile dans la ligne de commande.
_Note : l'identifiant du serveur OCS peut-être configuré directement depuis le menu de configuration du plugin. Il n'est important de la préciser que lorsque l'on veut exécuter le processus d'import et de synchronisation sur un seul serveur en particulier (par exemple pour une planification d'une synchronisation à des heures différente en fonction du serveur OCS).++

Interface de suivi fournies par le plugin

Le plugin d'import OCS fournit 3 interfaces :
  • la console de suivi de l'exécution des scripts
  • les journaux d'exécution des ordinateurs importés, synchronisés ou liés
  • la liste des matériels non importés

Celles-ci permettent de suivre l'ensemble du processus de liaison avec OCSNG, de traiter le cas des machines qui ne peuvent-être importées.

Interface de suivi des exécutions des scripts

Le premier onglet affiche la liste de tous les scripts lancés. Pour chacun d'entre eux, un résumé des actions effectuées est présenté.
En cliquant sur l'identifiant du script s'ouvre un 3ème onglet qui affiche le détail de toutes les opérations, thread par thread.
Note : cette liste n'est accessible que par les personnes possèdant un profil de visualisation des journaux et possèdant la vision sur l'entité racine et toutes les sous-entités. Dans le cas contraire, l'utilisateur est redirigé sur la console d'exécution des scripts

Journaux d'exécution des scripts

Cette interface indique matériel par ordinateur l'action qui a été réalisé et de faire des recherches :
  • ordinateur importé
  • ordinateur synchronisé
  • ordinateur lié
    Note : les ordinateurs non importés sont affichés dans une liste séparée.
    Note : les journaux d'exécution sont filtrés par entité et donc délégables.

Interface de visualisation des machines non importées

Cette interface affiche la liste des machines qui n'ont pu être importées depuis OCS, avec un certain nombre d'informations permettant d'en comprendre la cause.
Pour les machines présentes dans cet onglet, il est possible d'effectuer un import manuel. Il suffit, pour cela, de sélectionner les ordinateurs et l'entité destination. Appuyer ensuite sur "Importer", et l'import s'effectue.

Un matériel peut-être non importé parce que :
  • aucune règle n'a pu lui affecter d'entité de destination. Dans ce cas la raison du refus sera "Impossible d'affecter une entité"
  • l'import de l'ordinateur a été explicitement refusé par une règle d'import et de liaison OCSNG. La raison sera "Import explicitement refusé par une règle"
  • les critères d'unicité de la machine ne sont pas remplis et elle constitue un doublon par rapport à une machine déjà présente dans GLPI. La raison du refus sera "Critères d'unicité non vérifiés"
Pour chaque matériel dont l'import est refusé, sont repris un ensemble d'informations sur celui-ci :
  • matérielles : deviceid, nom, TAG, numéro de sériel
  • import : raison du refus, ainsi que règles ayant été vérifiées
Si l'option "Autoriser la mise à jour OCS" est à "oui" alors il est possible de spécifier de nouvelles valeurs pour le TAG ainsi que le numéro de série.
Des actions sont disponibles sur ce matériel non importé :
  • relancer l'import : repasse le processus d'import normal
  • forcer l'import dans une entité
  • lier cet ordinateur à un autre déjà présent dans GLPI
  • supprimer la machine dans la base OCS (si le plugin Désinstallation de matériels est installé)

Une fois la machine importée dans la base GLPI, elle disparait des matériels non importés.

Notifications

Il est possible d'être notifié après l'exécution d'un script afin de savoir la liste des nouveaux matériels non importés.
L'installation du plugin ajoute un nouveau modèle de notification appelé "Computers not imported" ainsi qu'une notification au nom identique.
Il est nécessaire d'ajouter des destinataires à la notification.