Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
The FusionInventory projectRMLL / LSM 2012
Walid Nouh - Mathieu Simon
Geneve
Juillet 2012
About us
Walid Nouh
I FusionInventory contributorI GLPI contributorI Working for TECLIB’, Montpellier
About us
Mathieu Simon
I FusionInventory contributor (l10n)I GLPI plugin translationI Working for Gymnasium Koniz-Lerbermatt, Bern
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
FusionInventory timeline
2006 First unified inventory agent for Unix2008 First server implementation (Tracker, a plugin
for GLPI)2009 Agent and server integration2010 FusionInventory project is born!2010 Uranos integration2011 Rudder (cfengine) integration2012 OTRS integration
The project
FusionInventory is a community driven project
I Active mailing listI IRC: #FusionInventory on FreeNodeI Forge, Git repositories, etc
Contributors
I 4 active developersI An active communityI 2 companies involved
We’re looking for more contributors !
Contributors
I 4 active developersI An active communityI 2 companies involved
We’re looking for more contributors !
Before starting
FusionInventory is not a software
I Agent: a software to install on the computersI Server: handles communication with the agentsI Task: is prepared by the server, executed by an agent
pull / push
FusionInventory enables ”push” or ”pull” mode
I ”pull”: Agent =⇒ Serverthe agent contacts the server.
I ”push”: Agent⇐= Serverthe server initiates the contact.
Available servers today
4 solutions so far
I FusionInventory for GLPIhttp://www.FusionInventory.org
I Uranoshttp://uranos.sourceforge.net/
I Rudder by Normationhttp://www.normation.com/#produits
I OCS Inventory NGI Mandriva Pulse 2
... it’s also possible to perform local XML inventory (soon:switch to JSON).
In contact with developers of
I FusionDirectoryI OTRS ITSM (work already in progress)
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
Why GLPI for the server?
I We’re also members of the GLPI communityI Motivation: Don’t reinvent the wheel!I Avoid having a second database and
synchronizationI Focus on what’s important to us - let GLPI do the rest
GLPI: about (1/4)
I Powerfull web based asset management softwareI Project started in 2003I LAMPI Provides a complete plugin API
GLPI: inventory (2/4)
I Computers, screens, printers, etcI Network devices, phonesI Financial informationsI WarrantiesI Licenses
GLPI: Service Desk (3/4)
I ITIL compatible ServicedeskI Incident managementI Problem managementI Statistics
GLPI (4/4)
I Reports and statisticsI Powerful authorization system (LDAP, IMAP/POP, etc)I WebSSO (CAS, LemonLDAP, etc)
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
Agent: Installation
Many ways to do it
I Distribution packagesDebian, Fedora, EPEL, Ubuntu, Mageia, ...
I Windows installerGPO, psexec, ...
I Static prebuilt packages: untar and run62 differents system so far
I Tarball and CPAN
Agent: Installation
There’s also an Android agentavailable on Google Play.
Supported operating systems
I LinuxI WindowsI MacOSXI BSDI illumosI AIXI HP-UXI SolarisI Android
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
Network discovery
Quickly detect and collect all connected devices
I nmapI NetBIOSI SNMP queries
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
... INTERLUDE ...
SNMP
SNMP origin
I A standardFirst RFC in 1988
I Designed to monitor equipmentsI 3 versions 1, 2c, 3 (Cyphering)I OID: Information locationI MIB: A collection of OIDs
SNMP: what for in FusionInventory?
How do we use SNMP?
I Identify remote devices (network equipments,printers, ...)
I Perform a remote inventoryI Get the most important informations
SNMP: a nightmare
“Please support my hardware, here is the MIB!”
I Might be hard to findI Often no free or not redistributableI Important informations might be missingI But worth, they may be wrong !
SNMP: a nightmare
“Please support my hardware, here is the MIB!”
I Might be hard to findI Often no free or not redistributableI Important informations might be missingI But worth, they may be wrong !
SNMP: an example
Example: 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: outch
SNMP: how to be reliable ?
We prepared our own “MIB”
I Manual work for each equipmentI stored in an XML fileI Defines relations between an OID and an information
ex: serial number→ OID 1.2.4.34.53...I Supports dynamics OIDs
SNMP: how to be reliable ?
A centralized database
I We’re implementing a centralized databaseI In Beta stageI You create and account and upload snmpwalksI The tool helps you to make the modelI It’ll be available in the next release!
... END OF INTERLUDE ...
SNMP: network equipments (1/3)
Common informations
I Serial numberI SupplierI ModelI Firmware versionI MAC addressI CPU load / RAMI etc
SNMP: network equipments (2/3)
Advanced support
I Number of portsI SpeedI Internal statusI Errors countersI VLANI Trunk (tagged)I ...
SNMP: network equipments (3/3)
Port to port connections
I MAC addressone to many
I LLDP / CDP discoveryPOIP informations, etc
SNMP: a network equipment example
SNMP: Printers (1/2)
General information
I Serial numberI SupplierI ModelI FirmwareI MemoryI MAC AddressI etc
SNMP: Printers (2/2)
Advanced informations
I Cartridges stateI Pages counters
SNMP: a printer example
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
Wake On Lan
WoL
I Agent can be used as a proxy to send WoL packets.
Wake On Lan: Example
Example
I A remote networkI 50 computers
What FusionInventory can do
I Wake up all computers at 2 am for updates.
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
Software deployment (1/2)
What can be done
I Perform actions on the target computerI Send filesI Consume less bandwith thanks to peer to peer
Attention: FI is not a configuration management tool !
Software deployment (2/2)
Why a new software deployment solution ?
I Use existing GLPI UII Use GLPI habilitations (groups/profils/entities)I Multi-platform
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
vCenter / ESX / ESXi
The problem
Black boxes: no way to install an agent on the host...
vCenter / ESX / ESXi
The solutionThe agent can use SOAP API to:
I inventorize hardwareI list virtual machines per hostI inventorize each ESX box (in case of a vCenter)
vCenter / ESX / ESXi: the command line tool
fus ioninventory−esx −−host vcenter −−user foo \−−password bar −−directory /tmp
Send inventories to the server :
fus ioninventory−i n jecto r −v −− f i l e /tmp/∗ . ocs \−u https : / / server / plugins / fus ioninventory /
vCenter / ESX / ESXi: GLPI UI
An interface in GLPI
I Define credentialsI Define vCenter/ESX/ESXi
addressI Plan inventories
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
Informations gathered (1/3)
I BIOSI PCI modulesI memory slotsI CPUsI hard drivers, drives, etcI motherboardI operating systemI screensI portsI slotsI partitionsI software
Informations gathered (2/3)
I connected usersI video cardsI virtual machinesI soundcardsI modemsI environment variablesI USB devicesI network configurationsI batteriesI printersI processesI antivirusI LVM
Informations gathered (3/3)
Android: Simcard, IMEI , etc
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
Some statistics
Today
I 194 Perl modulesI 21851 lines of codeI 938 unit tests
Unit tests
What for?
I test parsing for OSes that we don’t haveI check Win32 code from another OS
from WMI to registryI check sensitive things
unicode, HTTPS, etc
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
What FusionInventory can bring to you
Several scenarios
I Use inventory in your own applicationI Extend inventory with your own modulesI Interface with GLPI or other
Uranos, soon OTRS, etcI Create new tasks
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
What else?
Our roadmap
Next steps:I FusionInventory Agent 2.3.xI Tool to edit SNMP XML modelsI NUT integration
Transition in progress:I OCS/XML→ REST/JSON planned for agent 3.0.0
already used by OTRS
Our roadmap
Next steps:I FusionInventory Agent 2.3.xI Tool to edit SNMP XML modelsI NUT integration
Transition in progress:I OCS/XML→ REST/JSON planned for agent 3.0.0
already used by OTRS
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
Questions
Real use experience
Why use FusionInventory and GLPI (1/2):I 2 schools were merged and had grown: 400 each→
1000 students todayI IT departments merged and quickly grownI 2008: Regular financial audit - including IT assets.
We had to get a an inventory without tons of man-hours:QUICKLY.
Real use experience
Why use FusionInventory and GLPI (2/2):I Proprietary solution highly cost intensive - while
restricted in featuresI Experience with superiors: If it’s OSS, it has to workI OCS was able to get all our computers’ dataI GLPI had the nice UI + held all other asset data
Real use experience
OCSinventory-ng side:I OCS lagged behind with Windows compatibility,
regular GLPI sync problemsWhy FusionInventory:
I Client: Agent easier to deploy 3 platformsI Server: PHP + Perl→ PHPI Deployment: 1 internal git tree of GLPI + pluginsI IT staff: 2 UIs→ 1 UI
Real use experience
OCS Agent: the dull duck - sorry guys...I OCS lagged behind with Windows compatibility,
regular sync problemsWhy FusionInventory:
I Client: Agent easier to deploy 3 platformsI Server: PHP + Perl→ PHPI Deployment: 1 internal git tree of GLPI + pluginsI IT staff: 2 UIs→ 1 UI
The good, the bad ...
There are also downsides - nothing is perfect:I Documentation mostly fr-FR focusedI l10n: de-DE had quite some ”frenchisms”I FI for GLPI lags behind major GLPI releasesI Ticket notifications require lots of local tuning (yet)
... no: There is no true ugly thing I found
Finally
I GLPI + FI automated lots of taks no sysadmin wants todo manually with +300 computers
I We still use a fraction of GLPI’s features, but growing(Cert management!)
I Auditability→ Made superiors happyI OSS proved to work: Swiss-german education -
normally not that easyI Got in touch with nice communityI Have to polish my french regularly ;-)
Outline
Project overview
GLPI and FusionInventory
Agent: installation and OS support
Task: Network discovery
Task: network inventory
Task: Wake On Lan
Task: software deployment
Task: vCenter / ESX / ESXi inventory
Task: inventory
QA
The developer point of view
Soon to come
Real use experience
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/