LE CLIENT LINUX
L'agent
d'inventaire linux est écris en Perl. Dans la plate-forme
originale ocs
inventory, il existait bien un script qui génèrait,
en exploitant
des variables d'environnement "symboliques", des fichiers .csv
compatibles, mais rien ne procédait à l'inventaire
proprement dit. Nous avons donc développé le client Linux
intégralement.
Tout d'abord, je vous invite à consulter et
imprimer la structure des fichiers .csv, ce qui vous servira de
référenciel en lisant le code.
La préoccupation majeure de ce travail a
été la Portabilité. Débuté dans un
premier temps en c, les problèmes pouvant être
engendrés
par le non respect des normes posix ou le changement de librairies nous
a encouragé à utiliser Perl. La aussi, ("There's more
than one way to do it"), nous avons toujours fait le choix de
l'universalité. Si une information pouvait être recueillie
par une commande et des options implémentées sur tous les
systèmes depuis system V, ou bien par le biais d'appels
systemes à l'implémentation non-garantie, le choix
était
vite fait. De plus, Perl se pretant particulierement bien au traitement
du texte, cela était conforme à l'esprit du langage.
Le client est composé d'un script principal
(OCSF.pl), qui fait appel à deux modules, MaintenanceOCSF.pm et
Inventory.pm, qui font eux meme appel au binaire dmidecode (pour la
lecture des entetes SMBIOS) et au module Net::FTP de Perl, qui est
embarqué avec le client (Ceci afin de ne nécessiter aucun
prerequis à l'installation). L'ensemble du code pourrait tout
à fait tenir dans un seul et même script. Juste un
soucis d'organisation.
NB
: Le script a été testé entre autre sur une vieille
Woody et n'a nécessité aucune installation
préalable.
OCSF.pl
C'est le "main" du programme. Il appelle les scripts
après s'être assuré de la lisibilité des
deux fichiers de
configuration. Il redirige également les entrées et
sorties standards de l'application vers des fichiers de log (OCSF.log
et OCSF.log.err).
C'est lui qui lance dmidecode (Programme open source
tiers, dont vous trouverez l'adresse du site web dans la section liens)
et qui met
à disposition du script d'inventaire les informations
receuillies. Enfin, il lit et met en mémoire l'identifiant
unique de la machine contenu dans le fichier OCSF.id.
MaintenanceOCSF.pm
C'est lui qui archive, compresse et exporte
l'inventaire. Selon la valeur trouvée dans OCSF.ini, il le
transfert au serveur, ou sollicite l'utilisateur pour savoir ou le
copier (Support amovible).
Inventory.pm
L'inventaire proprement dit. C'est lui qui
récolte les informations et qui construit les 18 fichiers.