66
FusionInventory Journ ´ ees Perl Gon ´ eri Le Bouder <[email protected]> Strasbourg Juin 2012

Fusioninventory journees-perl-2012

Embed Size (px)

DESCRIPTION

FusionInventory presentation done during Journées Perl 2012 meeting in Strasbourg. The slides are in French.

Citation preview

Page 1: Fusioninventory journees-perl-2012

FusionInventoryJournees Perl

Goneri Le Bouder <[email protected]>

Strasbourg

Juin 2012

Page 2: Fusioninventory journees-perl-2012

A propos de moi

Goneri Le Bouder

I Developpeur FusionInventoryI Developpeur DebianI Mongueur PerlI Travaille chez TECLIB’, Paris

Page 3: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 4: Fusioninventory journees-perl-2012

Les origines du logiciel

2006 Creation de l’agent2008 Debut du serveur (le plugin GLPI, Tracker)2009 Integration Agent/Serveur2010 Projet FusionInventory2010 Integration avec Uranos2011 Integration avec Rudder (cfengine)2012 Integration avec OTRS

Page 5: Fusioninventory journees-perl-2012

La structure du projet

FusionInventory est un projet communautaire.

I liste de diffusion activeI IRC: #FusionInventory sur FreeNodeI Forge, depot Git, etc

Page 6: Fusioninventory journees-perl-2012

Les contributeurs

I 4 developpeursreguliers

I une communauteactive

I 2 entreprises partiesprenantes

Nous aimons le sang chaud !

Page 7: Fusioninventory journees-perl-2012

Les contributeurs

I 4 developpeursreguliers

I une communauteactive

I 2 entreprises partiesprenantes

Nous aimons le sang chaud !

Page 8: Fusioninventory journees-perl-2012

Un peu de vocabulaire

FusionInventory n’est pas directement un logiciel

I Agent: un logiciel destine aux machines du parcI Serveur: dialogue avec l’agentI Tache: une action effectuee par un agent pour le

serveur

Page 9: Fusioninventory journees-perl-2012

Les serveurs aujourd’hui

4 solutions aujourd’hui

I FusionInventory for GLPIhttp://www.FusionInventory.org

I Uranoshttp://uranos.sourceforge.net/

I Rudder de Normationhttp://www.normation.com/#produits

I OCS Inventory NGI Pulse 2 de Mandriva

... il est aussi possible de produire un inventaire XML (etbientot JSON) en local.

Page 10: Fusioninventory journees-perl-2012

Des integrations sont en discussion avec

I FusionDirectoryI OTRS ITSM (developpement pratiquement termine)

Page 11: Fusioninventory journees-perl-2012

pull / push

FusionInventory permet le ”push” ou ”pull”

I ”pull”: Agent =⇒ Serveurl’agent est a l’origine du dialogue.

I ”push”: Agent⇐= Serveurle serveur commence le dialogue.

Page 12: Fusioninventory journees-perl-2012

Agent: Installation

Plusieurs solutions

I distribution packagesDebian, Fedora, EPEL, Ubuntu, Mageia, ...

I Windows installerGPO, psexec, ...

I static prebuilt packages, untar et lancer62 differents system so far

I tarball et CPAN

Page 13: Fusioninventory journees-perl-2012

Agent: Installation

Sur Android, l’application est surGoogle Play.

Page 14: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 15: Fusioninventory journees-perl-2012

Les systemes d’exploitation supportes

I LinuxI WindowsI MacOSXI BSDI AIXI HP-UXI SolarisI Android

Page 16: Fusioninventory journees-perl-2012

Perl aide beaucoup

I Peu de differences fondamentales entre les UNIX likeI Il reste Win32

Page 17: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 18: Fusioninventory journees-perl-2012

Decouverte du reseau

Une remontee rapide des elements actifs

I NMAPI NetBiosI requete SNMP

Page 19: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 20: Fusioninventory journees-perl-2012

... INTERMEDE ...

Page 21: Fusioninventory journees-perl-2012

SNMP

L’origine de SNMP

I Un standardPremiere RFC: 1988

I Cree pour superviser les equipementsI 3 versions differentes 1, 2c, 3 (Chiffrement)I OID: L’adresse d’une informationI MIB: Un catalogue d’OID

Page 22: Fusioninventory journees-perl-2012

SNMP: Pour faire quoi?

Quelle utilisation de SNMP?

I Identifier les equipements distants (commutateurs,imprimantes, ...)

I Faire un inventaireI Collecter les informations importantes

Page 23: Fusioninventory journees-perl-2012

SNMP: Le cauchemar

“Vous pouvez supporter mon materiel, j’ai la MIB !”

I En regle generale, elles sont dures a trouverI Rarement libres ou redistribuablesI Des informations importantes sont souvant absentesI Le pire ! Elles sont bien souvent fausses !

Page 24: Fusioninventory journees-perl-2012

SNMP: Le cauchemar

“Vous pouvez supporter mon materiel, j’ai la MIB !”

I En regle generale, elles sont dures a trouverI Rarement libres ou redistribuablesI Des informations importantes sont souvant absentesI Le pire ! Elles sont bien souvent fausses !

Page 25: Fusioninventory journees-perl-2012

SNMP: Un exemple

Exemple: Cisco 6500 firmware

12.2(33)SXI2a (02-Sep-09 01:00)I Serial OID:

.1.3.6.1.2.1.47.1.1.1.1.11.112.2(33)SXI3 (27-Oct-09 11:12)

I Serial OID:.1.3.6.1.2.1.47.1.1.1.1.11.2⇐=Gni?!

Page 26: Fusioninventory journees-perl-2012

SNMP: aıe

Page 27: Fusioninventory journees-perl-2012

SNMP: Comment etre fiable?

On prepare nos propres “MIB”

I Un travail manuel pour chaque equipementI Des fichiers XMLI Definition des relations entre les OID et les infos

ex: numero de serie→ OID 1.2.4.34.53...I Support des OID dynamiques

Page 28: Fusioninventory journees-perl-2012

... FIN DE L’INTERMEDE ...

Page 29: Fusioninventory journees-perl-2012

SNMP: Commutateur (1/3)

Informations generales

I Numero de serieI FabricantI ModeleI Version du firmwareI Adresse MACI Charge CPU / RAMI etc

Page 30: Fusioninventory journees-perl-2012

SNMP: Commutateur (2/3)

Informations specifiques (support avance)

I Nom des portsI La vitesseI Le statutI Les compteurs d’erreursI VLANI Trunk (tagge)I ...

Page 31: Fusioninventory journees-perl-2012

SNMP: Commutateur (3/3)

Connexion par port

I Adresse MACune a “n”

I Decouverte LLDP / CDPremontee POIP, etc

Page 32: Fusioninventory journees-perl-2012

SNMP: exemple d’un commutateur

Page 33: Fusioninventory journees-perl-2012

SNMP: Imprimante (1/2)

Informations generales

I Numero de serieI FabricantI ModeleI FirmwareI MemoireI Adresse MACI etc

Page 34: Fusioninventory journees-perl-2012

SNMP: Imprimante (2/2)

Informations avancees

I Etats des cartouchesI Compteur de page

Page 35: Fusioninventory journees-perl-2012

SNMP: exemple d’une imprimante

Page 36: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 37: Fusioninventory journees-perl-2012

Wake On Lan

WoL

I Possiblite d’utiliser l’agent comme un proxy pouremettre des requetes WoL.

Page 38: Fusioninventory journees-perl-2012

Wake On Lan : Exemple

Exemple

I Un site distantI 50 ordinateurs

Ce qu’on peut faire

I Demarrer toutes les machines a 2h00 tous les soirspour les mises a jour.

Page 39: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 40: Fusioninventory journees-perl-2012

La telediffusion (1/2)

Possibilite d’envoyer des actions a realiser auxmachines?

I Pouvoir realiser des actions sur les machinesI Envoyer des fichiersI Reduire la bande passante grace au “pair a pair”

Attention : ce n’est pas de la gestion de configuration.

Page 41: Fusioninventory journees-perl-2012

La telediffusion (2/2)

Pourquoi un outil pour faire des telediffusions vers lespostes?

I Utiliser l’interface existante de GLPII La gestion des droits de GLPI (groupes/profiles/entites)I Multi-plateforme

Page 42: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 43: Fusioninventory journees-perl-2012

vCenter/ESX/ESXi

Le probleme

Des boites noires : On ne peut pas installer d’agent dessuscomme pour les autres hyperviseurs.

Page 44: Fusioninventory journees-perl-2012

vCenter/ESX/ESXi

La solutionL’agent peut se connecter sur les equipements VMwarevia l’interface SOAP API:

I inventaire HardwareI lister les Machines VirtuellesI lister les ESX (dans les cas des vCenter)

Page 45: Fusioninventory journees-perl-2012

vCenter/ESX/ESXi: en ligne de commande

fus ioninventory−esx −−host vcenter −−user foo \−−password bar −−directory /tmp

Il ne reste plus qu’a pousser les inventaires :

fus ioninventory−i n jecto r −v −− f i l e /tmp/∗ . ocs \−u https : / / server / plugins / fus ioninventory /

Page 46: Fusioninventory journees-perl-2012

vCenter/ESX/ESXi: l’interface GLPI

Une interface existe dansGLPI

I Definir l’authentificationI Cibler un serveur

vCenter/ESX/ESXiI Planifier les inventaires

Page 47: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 48: Fusioninventory journees-perl-2012

Informations remontees (1/3)

I BIOSI modules PCII slots memoiresI CPUsI disques durs, lecteur, etcI carte mereI systeme d’exploitationI ecransI portsI slotsI partitionsI logiciels

Page 49: Fusioninventory journees-perl-2012

Informations remontees (2/3)

I utilisateurs connectesI cartes videosI machines virtuellesI carte sonsI modemsI variables d’environnementI equipements USBI configuration reseauI batteriesI imprimantesI processusI antivirusI LVM

Page 50: Fusioninventory journees-perl-2012

Informations remontees (3/3)

Android: carte SIM, IMEI , etc

Page 51: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 52: Fusioninventory journees-perl-2012

Quelques metriques

Aujourd’hui

I 194 modules PerlI 21851 lignesI 938 tests unitaires

Page 53: Fusioninventory journees-perl-2012

Quelques metriques

Aujourd’hui

I 194 modules PerlI 21851 lignesI 938 tests unitaires !

Page 54: Fusioninventory journees-perl-2012

test-unitaire

Pour ?

I tester le parsing sur des OS qu’on a pasI verifier le code Win32 depuis un autre OS

jusqu’a WMI et la base de registreI verifier des choses penibles

unicode, HTTPS, etc

Page 55: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 56: Fusioninventory journees-perl-2012

Ce que FusionInventory peut apporter

Plusieurs scenarii

I Utiliser l’inventaire dans votre applicationI Etendre la couverture de l’inventaireI Interface avec GLPI ou autres

Uranos, bientot OTRS, etcI Creer des nouvelles taches

Page 57: Fusioninventory journees-perl-2012

Utiliser l’inventaire dans votre application

demo

Page 58: Fusioninventory journees-perl-2012

Etendre la couverture de l’inventairedemo

Page 59: Fusioninventory journees-perl-2012

Creer des nouvelles tachesVous permet de recuperer facilement des objets dans lebon contexte :

I $serveurI $configI $logger

Page 60: Fusioninventory journees-perl-2012

Interface avec GLPI ou autres

I SOAP (GLPI et OTRS)

Page 61: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 62: Fusioninventory journees-perl-2012

What else?

Page 63: Fusioninventory journees-perl-2012

Notre roadmap

Prochaines etapes :I FusionInventory Agent 2.3.xI Editeur de modele SNMP XMLI Integration avec nut

Transition en cours :I OCS/XML→ REST/JSON prevue pour l’agent 3.0.0

utilisee par OTRS

Page 64: Fusioninventory journees-perl-2012

Outline

Vue d’ensemble

Agent : OS supportes

Tache : Decouverte du reseau

Tache : Inventaire reseau

Tache : Reveil sur le reseau

Tache : La telediffusion

Tache : Inventaire vCenter/ESX/ESXi

Tache : L’inventaire

La qualitaı!

D’un point de vu developpeur

La suite

Questions

Page 65: Fusioninventory journees-perl-2012

Questions?

Question?

Page 66: Fusioninventory journees-perl-2012

Thanks

Thanks!

I Windows http://www.flickr.com/photos/aeu04117/430338509/sizes/z/in/photostream/

I AIX http://www.flickr.com/photos/pchow98/5115638572/

I MacOSXhttp://www.flickr.com/photos/adriannier/5555516312/sizes/l/in/photostream/

I Cisco 6500http://www.flickr.com/photos/joachim_s_mueller/3084164647/sizes/z/in/photostream/

I Teletubbies http://www.flickr.com/photos/tudor/232849285/lightbox/

I Worker http://www.flickr.com/photos/wsdot/6783674428/sizes/l/in/photostream/

I Bee http://www.flickr.com/photos/8583446@N05/7454903214/sizes/l/in/photostream/

I Montagne http://www.flickr.com/photos/blmiers2/6167391543/sizes/l/in/photostream/