fusioninventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité glpi 0.78.x, gestion...

71
Solutions de gestion de parc informatique Présentation de l’agent Implémentation de l’agent FusionInventory Guillaume Rousse <[email protected]> Journées francophones de Perl 2011 Guillaume Rousse FusionInventory

Upload: others

Post on 16-May-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

FusionInventory

Guillaume Rousse<[email protected]>

Journées francophones de Perl 2011

Guillaume Rousse FusionInventory

Page 2: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Sommaire

1 Solutions de gestion de parc informatique

2 Présentation de l’agentCaractéristiquesCapacitésObjectifs

3 Implémentation de l’agentUn lourd héritageStratégie de test

Guillaume Rousse FusionInventory

Page 3: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Avancement

1 Solutions de gestion de parc informatique

2 Présentation de l’agentCaractéristiquesCapacitésObjectifs

3 Implémentation de l’agentUn lourd héritageStratégie de test

Guillaume Rousse FusionInventory

Page 4: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

GLPI

ObjectifsApplication web de gestion de parc

inventairehelpdesk

Détailsapplication PHPmodulaire

Guillaume Rousse FusionInventory

Page 5: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

GLPI

ObjectifsApplication web de gestion de parc

inventairehelpdesk

Détailsapplication PHPmodulaire

Guillaume Rousse FusionInventory

Page 6: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

OCS-NG

ObjectifsSolution autonome de gestion de parc

inventairedéploiement logiciel

Détails

Coté serveur :interface agent Perlinterface utilisateur PHP

Coté agent :

agent Windows C

agent Unix Perl

Guillaume Rousse FusionInventory

Page 7: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

OCS-NG

ObjectifsSolution autonome de gestion de parc

inventairedéploiement logiciel

Détails

Coté serveur :interface agent Perlinterface utilisateur PHP

Coté agent :

agent Windows C

agent Unix Perl

Guillaume Rousse FusionInventory

Page 8: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Tracker

ObjectifsInventaire automatisé pour GLPI de matériels sans agent

découverte matérielinterrogation distante

Détailsplugin GLPI PHPagent Perl

Guillaume Rousse FusionInventory

Page 9: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Tracker

ObjectifsInventaire automatisé pour GLPI de matériels sans agent

découverte matérielinterrogation distante

Détailsplugin GLPI PHPagent Perl

Guillaume Rousse FusionInventory

Page 10: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Avant-hier

Guillaume Rousse FusionInventory

Page 11: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

FusionInventory

ObjectifsAgent multifonction pour GLPI

fusion de l’agent OCS Unix et de l’agent trackermodulaire

Détailsplugin GLPI PHPagent Perl multi-plateformes

Guillaume Rousse FusionInventory

Page 12: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

FusionInventory

ObjectifsAgent multifonction pour GLPI

fusion de l’agent OCS Unix et de l’agent trackermodulaire

Détailsplugin GLPI PHPagent Perl multi-plateformes

Guillaume Rousse FusionInventory

Page 13: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Hier

Guillaume Rousse FusionInventory

Page 14: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Évolution du plugin GLPI

Branches2.2.xcompatibilité GLPI 0.72.x2.3.xcompatibilité GLPI 0.78.x, gestion des inventaires2.4.x (en beta)compatibilité GLPI 0.80.x

Guillaume Rousse FusionInventory

Page 15: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Capture d’écran du plugin GLPI

Guillaume Rousse FusionInventory

Page 16: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Aujourd’hui

Guillaume Rousse FusionInventory

Page 17: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Avancement

1 Solutions de gestion de parc informatique

2 Présentation de l’agentCaractéristiquesCapacitésObjectifs

3 Implémentation de l’agentUn lourd héritageStratégie de test

Guillaume Rousse FusionInventory

Page 18: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Avancement

1 Solutions de gestion de parc informatique

2 Présentation de l’agentCaractéristiquesCapacitésObjectifs

3 Implémentation de l’agentUn lourd héritageStratégie de test

Guillaume Rousse FusionInventory

Page 19: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Modularité

Composantsmoteurtaches

Tachesinventaire localwake on landécouverte réseauinventaire distantdéploiement logiciel

Guillaume Rousse FusionInventory

Page 20: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Modularité

Composantsmoteurtaches

Tachesinventaire localwake on landécouverte réseauinventaire distantdéploiement logiciel

Guillaume Rousse FusionInventory

Page 21: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Versatilité

Mode d’exécutionprocessus temporaireprocessus résidant (daemon Unix, service Windows)

Mode de collecte du résultatstockage localenvoi au serveur

Guillaume Rousse FusionInventory

Page 22: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Versatilité

Mode d’exécutionprocessus temporaireprocessus résidant (daemon Unix, service Windows)

Mode de collecte du résultatstockage localenvoi au serveur

Guillaume Rousse FusionInventory

Page 23: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Portabilité

Cible des résultatsdistributionexécution

Exécution

WindowsLinuxMacOSBSD

Solaris

HPUX

AIX

Distribution

sourcespaquetages

installeur interactifarchive autonome

Guillaume Rousse FusionInventory

Page 24: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Portabilité

Cible des résultatsdistributionexécution

Exécution

WindowsLinuxMacOSBSD

Solaris

HPUX

AIX

Distribution

sourcespaquetages

installeur interactifarchive autonome

Guillaume Rousse FusionInventory

Page 25: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Portabilité

Cible des résultatsdistributionexécution

Exécution

WindowsLinuxMacOSBSD

Solaris

HPUX

AIX

Distribution

sourcespaquetages

installeur interactifarchive autonome

Guillaume Rousse FusionInventory

Page 26: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Interopérabilité

Serveur OCScompatibilité : version serveur 1.xfonctionalités :

inventaire localdéploiement logiciel

Serveur GLPIversion serveur 0.72 :

découverte réseauinventaire distant

version serveur 0.78 : fonctionalités complètes

Guillaume Rousse FusionInventory

Page 27: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Interopérabilité

Serveur OCScompatibilité : version serveur 1.xfonctionalités :

inventaire localdéploiement logiciel

Serveur GLPIversion serveur 0.72 :

découverte réseauinventaire distant

version serveur 0.78 : fonctionalités complètes

Guillaume Rousse FusionInventory

Page 28: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Avancement

1 Solutions de gestion de parc informatique

2 Présentation de l’agentCaractéristiquesCapacitésObjectifs

3 Implémentation de l’agentUn lourd héritageStratégie de test

Guillaume Rousse FusionInventory

Page 29: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Inventaire local

Composants matérielsCPU, mémoire, etc...bus USB, PCI, SCSIpériphériques connectés

Composants logiciels

système d’exploitationliste de paquetages

Configuration

paramètre réseauparamètre affichagevariables d’environnement

Guillaume Rousse FusionInventory

Page 30: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Inventaire local

Composants matérielsCPU, mémoire, etc...bus USB, PCI, SCSIpériphériques connectés

Composants logiciels

système d’exploitationliste de paquetages

Configuration

paramètre réseauparamètre affichagevariables d’environnement

Guillaume Rousse FusionInventory

Page 31: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Inventaire local

Composants matérielsCPU, mémoire, etc...bus USB, PCI, SCSIpériphériques connectés

Composants logiciels

système d’exploitationliste de paquetages

Configuration

paramètre réseauparamètre affichagevariables d’environnement

Guillaume Rousse FusionInventory

Page 32: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Découverte réseau

Principebalayage d’une plage réseauidentification des éléments trouvés

BalayagenmapNetBIOSSNMP

IdentificationSNMPattribution d’un modèle descriptif

Guillaume Rousse FusionInventory

Page 33: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Découverte réseau

Principebalayage d’une plage réseauidentification des éléments trouvés

BalayagenmapNetBIOSSNMP

IdentificationSNMPattribution d’un modèle descriptif

Guillaume Rousse FusionInventory

Page 34: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Découverte réseau

Principebalayage d’une plage réseauidentification des éléments trouvés

BalayagenmapNetBIOSSNMP

IdentificationSNMPattribution d’un modèle descriptif

Guillaume Rousse FusionInventory

Page 35: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Inventaire distant

PrincipeSNMPutilisation d’un modèle descriptif

Matériel réseauports utiliséséquipements branchés

Imprimantescompteurs d’impressionniveaux d’encre

Guillaume Rousse FusionInventory

Page 36: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Inventaire distant

PrincipeSNMPutilisation d’un modèle descriptif

Matériel réseauports utiliséséquipements branchés

Imprimantescompteurs d’impressionniveaux d’encre

Guillaume Rousse FusionInventory

Page 37: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Inventaire distant

PrincipeSNMPutilisation d’un modèle descriptif

Matériel réseauports utiliséséquipements branchés

Imprimantescompteurs d’impressionniveaux d’encre

Guillaume Rousse FusionInventory

Page 38: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Déploiement logiciel

Principetéléchargement d’une charge utileexécution

Intérêttéléchargement pair à pairexécution immédiateutilisation des critères de sélection de GLPI

Guillaume Rousse FusionInventory

Page 39: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Déploiement logiciel

Principetéléchargement d’une charge utileexécution

Intérêttéléchargement pair à pairexécution immédiateutilisation des critères de sélection de GLPI

Guillaume Rousse FusionInventory

Page 40: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Avancement

1 Solutions de gestion de parc informatique

2 Présentation de l’agentCaractéristiquesCapacitésObjectifs

3 Implémentation de l’agentUn lourd héritageStratégie de test

Guillaume Rousse FusionInventory

Page 41: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

CaractéristiquesCapacitésObjectifs

Versions

Branches2.0.x version initiale2.1.x branche stableajout du support Windows, nettoyage syntaxique2.2.x branche développementnettoyage architecture, maintien de la compatibilité OCS3.x branche expérimentalechangement architecture, abandon de la compatibilité OCS

Version stable2.1.9

Guillaume Rousse FusionInventory

Page 42: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Avancement

1 Solutions de gestion de parc informatique

2 Présentation de l’agentCaractéristiquesCapacitésObjectifs

3 Implémentation de l’agentUn lourd héritageStratégie de test

Guillaume Rousse FusionInventory

Page 43: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Avancement

1 Solutions de gestion de parc informatique

2 Présentation de l’agentCaractéristiquesCapacitésObjectifs

3 Implémentation de l’agentUn lourd héritageStratégie de test

Guillaume Rousse FusionInventory

Page 44: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Support syslog

FusionInventory::LoggerBackend::Syslog

set logsock ( ’ un ix ’ ) ;openlog ( " fus ion inven to ry−agent " , ’ cons , p id ’ , $ENV{ ’USER ’ } ) ;sys log ( ’ debug ’ , ’ sys log backend enabled ’ ) ;c lose log ( ) ;

Guillaume Rousse FusionInventory

Page 45: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Extraction des logiciels installés sous HPUX

FusionInventory::Agent::Task::Inventory::OS::HPUX::Software

@sof tL is t = ‘ s w l i s t | grep −v ’ ^ PH ’ | grep −v ’ ^# ’ | t r −s " \ t " " " | t r −s " " ‘

Guillaume Rousse FusionInventory

Page 46: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Export de fonctions

FusionInventory::Agent::Task::Inventory

my $backendSharedFuncs = {can_run => sub {

. . .} ,

} ;

foreach my $package ( @packages ) {foreach my $func ( keys %{$backendSharedFuncs } ) {

$package−>{$func } = $backendSharedFuncs−>{$func } ;}

}

Guillaume Rousse FusionInventory

Page 47: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Grand chantier

Nettoyage du codesyntaxestructurationarchitecture

Amélioration des performancesmémoisationindexation

Amélioration fonctionnellesinterface RESTremplacement de XML par JSONmodèle conceptuel homogène

Guillaume Rousse FusionInventory

Page 48: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Grand chantier

Nettoyage du codesyntaxestructurationarchitecture

Amélioration des performancesmémoisationindexation

Amélioration fonctionnellesinterface RESTremplacement de XML par JSONmodèle conceptuel homogène

Guillaume Rousse FusionInventory

Page 49: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Grand chantier

Nettoyage du codesyntaxestructurationarchitecture

Amélioration des performancesmémoisationindexation

Amélioration fonctionnellesinterface RESTremplacement de XML par JSONmodèle conceptuel homogène

Guillaume Rousse FusionInventory

Page 50: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Avancement

1 Solutions de gestion de parc informatique

2 Présentation de l’agentCaractéristiquesCapacitésObjectifs

3 Implémentation de l’agentUn lourd héritageStratégie de test

Guillaume Rousse FusionInventory

Page 51: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Suite de tests

État actuel1330 tests, 76 fichierscouverture très hétérogène

Problèmestester des interactions client-serveurtester l’analyse du résultat d’une commandetester la réponse à un environnement

Guillaume Rousse FusionInventory

Page 52: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Suite de tests

État actuel1330 tests, 76 fichierscouverture très hétérogène

Problèmestester des interactions client-serveurtester l’analyse du résultat d’une commandetester la réponse à un environnement

Guillaume Rousse FusionInventory

Page 53: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Tester des interactions client-serveur

Serveur de testTest::Apache2 :(Net::Server::HTTP :(HTTP::Server::Simple :)

Fonctionnalité additionellesHTTP::Server::Simple::AuthenIO::Socket::SSLHTTP::Proxy

Utilisation de véritable serveurserveur public ou privétest obligatoire ou conditionel

Guillaume Rousse FusionInventory

Page 54: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Tester des interactions client-serveur

Serveur de testTest::Apache2 :(Net::Server::HTTP :(HTTP::Server::Simple :)

Fonctionnalité additionellesHTTP::Server::Simple::AuthenIO::Socket::SSLHTTP::Proxy

Utilisation de véritable serveurserveur public ou privétest obligatoire ou conditionel

Guillaume Rousse FusionInventory

Page 55: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Tester des interactions client-serveur

Serveur de testTest::Apache2 :(Net::Server::HTTP :(HTTP::Server::Simple :)

Fonctionnalité additionellesHTTP::Server::Simple::AuthenIO::Socket::SSLHTTP::Proxy

Utilisation de véritable serveurserveur public ou privétest obligatoire ou conditionel

Guillaume Rousse FusionInventory

Page 56: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Tester l’analyse du résultat d’une commande

Objectiftester le code qui analyse le résultat d’une commande

Code initial

my @output = ‘command ‘ ;foreach my $ l i n e ( @output ) {

i f ( $ l i n e =~ / ^ foo : ( . ∗ ) / ) {$ inventory−>addItem ( $1 ) ;

}}

Guillaume Rousse FusionInventory

Page 57: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Tester l’analyse du résultat d’une commande

Objectiftester le code qui analyse le résultat d’une commande

Code initial

my @output = ‘command ‘ ;foreach my $ l i n e ( @output ) {

i f ( $ l i n e =~ / ^ foo : ( . ∗ ) / ) {$ inventory−>addItem ( $1 ) ;

}}

Guillaume Rousse FusionInventory

Page 58: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Adapter le code au test

Code intermédiaire

$inventory−>addItems ( $_ ) foreach get I tems ( ) ;

sub get I tems {my @output = ‘command ‘ ;my @items ;foreach my $ l i n e ( @output ) {

push @items , $1 i f $ l i n e =~ / ^ foo : ( . ∗ ) / ;}return @items

}

Code final

$inventory−>addItems ( $_ ) foreach get I tems (command => ’command ’ ) ;

sub get I tems {my $handle = getF i leHandle (@_) ;while (my $ l i n e = <$handle >) {

push @items , $1 i f $ l i n e =~ / ^ foo : ( . ∗ ) / ;}close $handle ;return @items ;

}Guillaume Rousse FusionInventory

Page 59: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Adapter le code au test

Code intermédiaire

$inventory−>addItems ( $_ ) foreach get I tems ( ) ;

sub get I tems {my @output = ‘command ‘ ;my @items ;foreach my $ l i n e ( @output ) {

push @items , $1 i f $ l i n e =~ / ^ foo : ( . ∗ ) / ;}return @items

}

Code final

$inventory−>addItems ( $_ ) foreach get I tems (command => ’command ’ ) ;

sub get I tems {my $handle = getF i leHandle (@_) ;while (my $ l i n e = <$handle >) {

push @items , $1 i f $ l i n e =~ / ^ foo : ( . ∗ ) / ;}close $handle ;return @items ;

}Guillaume Rousse FusionInventory

Page 60: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Utiliser une couche d’abstraction

getFileHandle

sub getF i leHandle {my %params = @_;

my $handle ;

SWITCH: {i f ( $params { f i l e } ) {

i f ( ! open $handle , ’ < ’ , $params { f i l e } ) {$params { logger}−>e r r o r ( "Can ’ t open f i l e $params { f i l e } : $ERRNO" ) ;return ;

}l as t SWITCH;

}i f ( $params {command } ) {

i f ( ! open $handle , ’−| ’ , $params {command} . " 2 >/dev / n u l l " ) {$params { logger}−>e r r o r ( "Can ’ t run command $params {command } : $ERRNO" ) ;return ;

}l as t SWITCH;

}die " n e i t h e r command nor f i l e parameter given " ;

}

return $handle ;}

Guillaume Rousse FusionInventory

Page 61: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Problème de disponibilité du résultat

Commandes et fichiers exotiqueslsvpd sur AIXmachinfo sur HPUX/proc/cpuinfo sur Linux Alpha

Campagnes de collecte d’échantillons

répertoire resourcesbesoin d’organisation (tri, tracabilité, ...)

Problème sous Windowsbase de registreWMI

Guillaume Rousse FusionInventory

Page 62: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Problème de disponibilité du résultat

Commandes et fichiers exotiqueslsvpd sur AIXmachinfo sur HPUX/proc/cpuinfo sur Linux Alpha

Campagnes de collecte d’échantillons

répertoire resourcesbesoin d’organisation (tri, tracabilité, ...)

Problème sous Windowsbase de registreWMI

Guillaume Rousse FusionInventory

Page 63: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Problème de disponibilité du résultat

Commandes et fichiers exotiqueslsvpd sur AIXmachinfo sur HPUX/proc/cpuinfo sur Linux Alpha

Campagnes de collecte d’échantillons

répertoire resourcesbesoin d’organisation (tri, tracabilité, ...)

Problème sous Windowsbase de registreWMI

Guillaume Rousse FusionInventory

Page 64: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Tester la réponse à un environnement

Objectiftester le code qui sélectionne la commande à utiliser

Code initial

my @packages =−x ’ / b in / rpm ’ ? getRPMPackagesList (command => ’ rpm −qa ’ ) :−x ’ / b in / dpkg ’ ? getDPKGPackagesList (command => ’ dpkg − l ’ ) :−x ’ / b in / equery ’ ? getEqueryPackagesList (command => ’ equery l i s t − i ’ ) :

( ) ;}

Guillaume Rousse FusionInventory

Page 65: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Tester la réponse à un environnement

Objectiftester le code qui sélectionne la commande à utiliser

Code initial

my @packages =−x ’ / b in / rpm ’ ? getRPMPackagesList (command => ’ rpm −qa ’ ) :−x ’ / b in / dpkg ’ ? getDPKGPackagesList (command => ’ dpkg − l ’ ) :−x ’ / b in / equery ’ ? getEqueryPackagesList (command => ’ equery l i s t − i ’ ) :

( ) ;}

Guillaume Rousse FusionInventory

Page 66: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Adapter son code

Code final

my @packages =canRun ( ’ / b in / rpm ’ ) ? getRPMPackagesList (command => ’ rpm −qa ’ ) :canRun ( ’ / b in / dpkg ’ ) ? getDPKGPackagesList (command => ’ dpkg − l ’ ) :canRun ( ’ / b in / equery ’ ) ? getEqueryPackagesList (command => ’ equery l i s t − i ’ ) :

( ) ;}

Guillaume Rousse FusionInventory

Page 67: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Utiliser une couche d’abstraction

canRun

sub canRun {my ( $wanted ) = @_;

return −x $wanted ;}

Guillaume Rousse FusionInventory

Page 68: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Redéfinir des fonctions

mockGetRun

sub mockCanRun {my (%params ) = @_;

my $new = sub {my $wanted = $_ [ 0 ] ;return $params {commands}−>{$wanted } ;

} ;

no warnings ’ rede f i ne ’ ;∗Fus ionInventory : : Agent : : Tools : : canRun = $new ;

}

Guillaume Rousse FusionInventory

Page 69: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Redéfinir des fonctions

mockGetFileHandle

sub mockGetFileHandle {my (%params ) = @_;

my $old = \& Fus ionInventory : : Agent : : Tools : : ge tF i leHandle ;

my $new = sub {my (%opt ions ) = @_;

my $ f i l e = $params {commands}−>{$wanted } ;

i f ( $ f i l e ) {pr in t STDERR " f i l e ’ $ f i l e ’ de l i ve red \ n " ;return $old−>(@_, f i l e => $ f i l e ) ;

} else {pr in t STDERR " noth ing de l i ve red \ n " ;return ;

}} ;

no warnings ’ rede f i ne ’ ;∗Fus ionInventory : : Agent : : Tools : : ge tF i leHandle = $new ;

}

Guillaume Rousse FusionInventory

Page 70: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Simuler un environnement

Code

package Fus ionInventory : : Test : : MockSystem : : Debian ;

use Fus ionInventory : : Test : : MockSystem ;

mockSystem (commands => {

’ dpkg ’ => ’ resources / packaging / dpkg ’} ,f i l e s => {

’ / e tc / debian_vers ion ’ => ’ resources / re lease / debian ’}

) ;

Utilisation$> perl -MFusionInventory::Test::MockSystem::Debian \

fusioninventory

Guillaume Rousse FusionInventory

Page 71: FusionInventory - zarb.orgguillomovitch/presentations/fpw2011.pdfcompatibilité GLPI 0.78.x, gestion des inventaires 2.4.x (en beta) compatibilité GLPI 0.80.x Guillaume Rousse FusionInventory

Solutions de gestion de parc informatiquePrésentation de l’agent

Implémentation de l’agent

Un lourd héritageStratégie de test

Simuler un environnement

Code

package Fus ionInventory : : Test : : MockSystem : : Debian ;

use Fus ionInventory : : Test : : MockSystem ;

mockSystem (commands => {

’ dpkg ’ => ’ resources / packaging / dpkg ’} ,f i l e s => {

’ / e tc / debian_vers ion ’ => ’ resources / re lease / debian ’}

) ;

Utilisation$> perl -MFusionInventory::Test::MockSystem::Debian \

fusioninventory

Guillaume Rousse FusionInventory