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

Journees Perl´ Goneri Le Bouder´ - FusionInventoryfusioninventory.org/news_docs/fusioninventory-journees-perl-2012.pdf · 2008Debut du serveur (le plugin GLPI, Tracker)´ 2009Integration

Embed Size (px)

Citation preview

FusionInventoryJournees Perl

Goneri Le Bouder <[email protected]>

Strasbourg

Juin 2012

A propos de moi

Goneri Le Bouder

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

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

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

La structure du projet

FusionInventory est un projet communautaire.

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

Les contributeurs

I 4 developpeursreguliers

I une communauteactive

I 2 entreprises partiesprenantes

Nous aimons le sang chaud !

Les contributeurs

I 4 developpeursreguliers

I une communauteactive

I 2 entreprises partiesprenantes

Nous aimons le sang chaud !

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

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.

Des integrations sont en discussion avec

I FusionDirectoryI OTRS ITSM (developpement pratiquement termine)

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.

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

Agent: Installation

Sur Android, l’application est surGoogle Play.

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

Les systemes d’exploitation supportes

I LinuxI WindowsI MacOSXI BSDI AIXI HP-UXI SolarisI Android

Perl aide beaucoup

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

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

Decouverte du reseau

Une remontee rapide des elements actifs

I NMAPI NetBiosI requete SNMP

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

... INTERMEDE ...

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

SNMP: Pour faire quoi?

Quelle utilisation de SNMP?

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

I Faire un inventaireI Collecter les informations importantes

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 !

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 !

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?!

SNMP: aıe

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

... FIN DE L’INTERMEDE ...

SNMP: Commutateur (1/3)

Informations generales

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

SNMP: Commutateur (2/3)

Informations specifiques (support avance)

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

SNMP: Commutateur (3/3)

Connexion par port

I Adresse MACune a “n”

I Decouverte LLDP / CDPremontee POIP, etc

SNMP: exemple d’un commutateur

SNMP: Imprimante (1/2)

Informations generales

I Numero de serieI FabricantI ModeleI FirmwareI MemoireI Adresse MACI etc

SNMP: Imprimante (2/2)

Informations avancees

I Etats des cartouchesI Compteur de page

SNMP: exemple d’une imprimante

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

Wake On Lan

WoL

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

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.

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

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.

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

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

vCenter/ESX/ESXi

Le probleme

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

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)

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 /

vCenter/ESX/ESXi: l’interface GLPI

Une interface existe dansGLPI

I Definir l’authentificationI Cibler un serveur

vCenter/ESX/ESXiI Planifier les inventaires

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

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

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

Informations remontees (3/3)

Android: carte SIM, IMEI , etc

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

Quelques metriques

Aujourd’hui

I 194 modules PerlI 21851 lignesI 938 tests unitaires

Quelques metriques

Aujourd’hui

I 194 modules PerlI 21851 lignesI 938 tests unitaires !

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

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

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

Utiliser l’inventaire dans votre application

demo

Etendre la couverture de l’inventairedemo

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

I $serveurI $configI $logger

Interface avec GLPI ou autres

I SOAP (GLPI et OTRS)

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

What else?

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

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

Questions?

Question?

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/