assets management with fusioninventoryfusioninventory.org/news_docs/fusioninventory-open... ·...
TRANSCRIPT
About us: Goneri Le Bouder
Free software enthusiast
I FusionInventory project co-leaderI Debian DeveloperI Perl MongerI Former OCS Inventory developerI Work at TECLIB’, Paris, France
The origin
2006 Agent creation2008 Server project (Tracker, a GLPI plugin)2009 Agent/Server integration2010 FusionInventory project2010 Uranos integration2011 Normation Rudder integration2011 Mandriva Pulse2 integration (Android)
The project infrastructure
FusionInventory is a community-driven project.
I active mailing listsI IRC: #FusionInventory on FreeNodeI public Forge, Git repositories, etc
The FusionInventory contributors
I about 10 people directly involved in the projectI active community of contributorsI 2 companies involved
We are looking for people to JOIN US!
The FusionInventory contributors
I about 10 people directly involved in the projectI active community of contributorsI 2 companies involved
We are looking for people to JOIN US!
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
First, some vocabulary!
I Agent: a software running one a computerI Server: a software that can speak with the AgentI Task: an action done by the Agent for the server
pull / push
FusionInventory supports ”push” and ”pull”
I ”pull”: Agent =⇒ Serverthe agent creates the connection to the server.
I ”push”: Agent⇐= Serverthe server awake the agent by itself.
Tasks
Different Tasks are supported:I InventoryI Network discoveryI Remote SNMP inventoryI Software deploymentI vCenter/ESX/ESXi remote inventoryI Wake On Lan
Servers today
4 different servers (so far!)
I FusionInventory for GLPIhttp://www.FusionInventory.org
I Uranoshttp://uranos.sourceforge.net/
I Rudderhttp://www.normation.com/#produits
I OCS Inventory NG (patched to ignore the UserAgentfilter)http://forge.fusioninventory.org/projects/fusioninventory-agent/wiki/Patch_ocs_server
...local mode is also possible for Inventory
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
Server: Installation
FusionInventory for GLPI
A GLPI generic plugin.1. Extract2. Configure3. You’re done!
Agent: supported OS (1/2)
Runs everywhere!
A large collection of supported OS
I all the major system are supportedI portage is easy as soon as a Perl exist
Agent: supported OS (1/2)
Runs everywhere!
A large collection of supported OS
I all the major system are supportedI portage is easy as soon as a Perl exist
Agent: supported OS (2/2)
Supported Operating Systems:
I LinuxI Windows, all from 2000 to Seven 64bitI MacOSXI BSDI AIXI HP-UXI SolarisI Android
A complete list is avallable on the website
Agent: supported OS (2/2)
Supported Operating Systems:
I LinuxI Windows, all from 2000 to Seven 64bitI MacOSXI BSDI AIXI HP-UXI SolarisI Android
A complete list is avallable on the website
Agent: supported OS (2/2)
Supported Operating Systems:
I LinuxI Windows, all from 2000 to Seven 64bitI MacOSXI BSDI AIXI HP-UXI SolarisI Android
A complete list is avallable on the website
Agent: Tested systems
Linux
I Debian all since 3.1I Ubuntu all since 8.04I Mandriva 9.2, 10.2, 2007.1, 2010.0, 2010.1I RedHat EL (or CentOS) all since 3I Fedora all since the 2ndI SUSE Linux Enterprise Server 10, 11I Slackware 10 to 13I RedHat Linux 7.0, 8.0 and 9.0I SME Server 7.5I OpenSUSE 11.3I Gentoo 1.6.14, 2008I Montavista 4.0
Agent: Tested systems
Windows
I Windows 2000 ≥ SP4I Windows XP allI Windows 2003 allI Windows 2008 allI Windows Vista allI Windows Seven all
Agent: Tested systems
Solaris
I Solaris 8 to 10 for SPARC and 10to 11 for x86
I OpenSolaris 2009.06I OpenIndiana oi 148
Agent: Tested systems
BSD
I OpenBSD 4.5 to 4.8I FreeBSD all since 5.3
include DebianGNU/kFreeBSD
I NetBSD 5.0 and 5.1I DragonflyBSD 2.8
Agent: Installation
different options
I distribution packagesDebian, Fedora, EPEL, Ubuntu, Mageia, ...
I Windows installerGPO, psexec, ...
I static prebuilt packages, untar and run62 differents system so far
I tarball or CPAN installation
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
Network discovery
During this step, we identify
I Network informationI Windows domain informationI SNMP device name (sysdescr)
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
SNMP: History
History of SNMP
I Standard protocoleFirst RFC: 1988
I Created for monitoring devicesI Three different version 1, 2c, 3 (Encryption)I OID: an address per informationI MIB: definition of OID addresses
SNMP: For what?
How we use SNMP?
I Identify devices remotly (switch, router, printer...)I Inventory devices using SNMPI Get all important information
SNMP: The MIB nightmare?
All people say us: MIB exist use it!
Yes but...I Most of the time hard to findI Not always free (like in FreeSoftware)I Important information may be missingI Worst! They are sometime wrong depending on
device model/firmware
SNMP: The MIB nightmare?
All people say us: MIB exist use it!
Yes but...I Most of the time hard to findI Not always free (like in FreeSoftware)I Important information may be missingI Worst! They are sometime wrong depending on
device model/firmware
SNMP: The MIB nightmare?
All people say us: MIB exist use it!
Yes but...I Most of the time hard to findI Not always free (like in FreeSoftware)I Important information may be missingI Worst! They are sometime wrong depending on
device model/firmware
SNMP: The MIB nightmare?
All people say us: MIB exist use it!
Yes but...I Most of the time hard to findI Not always free (like in FreeSoftware)I Important information may be missingI Worst! They are sometime wrong depending on
device model/firmware
SNMP: The MIB nightmare?
All people say us: MIB exist use it!
Yes but...I Most of the time hard to findI Not always free (like in FreeSoftware)I Important information may be missingI Worst! They are sometime wrong depending on
device model/firmware
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: How do we unfuck this mess?
We create our own MIB like files
I XML filesI Relation between OID and information
e.g: serial number is oid .1.3...I Simple or dynamic OID
a serial number or name of each port
SNMP: Network switch (1/3)
Network switch
I Serial numberI ManufacturerI ModelI FirmwareI Mac addressI CPU/RAM loadI etc
SNMP: Network switch (2/3)
Switch port
I NameI Network speedI Port status (enabled / disabled)I Errors input & outputI VLANI Trunk (tagged)I Active connection
SNMP: Network switch (3/3)
Connections per port
I Mac addressesone or many on some case
I LLDP and CDP neighborhooddialog and information between switches
SNMP: Printer (1/2)
Get printer information
I Serial numberI ManufacturerI ModelI FirmwareI MemoryI Mac addressI etc
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
Wake On Lan
What?
I awake computer.
How?Send the Magic Packet with agent
I Raw ethernet packet (only from linux computer)I else, UDP packet
Benefit
I no firewall issueI nor special routage rule needed
Wake On Lan
What?
I awake computer.
How?Send the Magic Packet with agent
I Raw ethernet packet (only from linux computer)I else, UDP packet
Benefit
I no firewall issueI nor special routage rule needed
Wake On Lan
What?
I awake computer.
How?Send the Magic Packet with agent
I Raw ethernet packet (only from linux computer)I else, UDP packet
Benefit
I no firewall issueI nor special routage rule needed
Wake On Lan: Example (1/2)
What we have
I A remote siteI 50 computers all under windows
What we want
I start all at same time, at 2:00 am for maintenanceoperation
Wake On Lan: Example (2/2)
Into GLPI with task management
I Define computers to awakeI Schedule it at 2:00AMI That’s all
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
Software Deployment
What?FusionInventory deployment
Why a new software deployment?
I Same user interface: GLPII Rights based on GLPI group/profile/entityI Secure: HTTPS and sha512I Sexy interface using ExtJSI Network efficiency: use P2P
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
vCenter/ESX/ESXi
The solutionFusionInventory is able to connect to the machine usingVMware SOAP API to get:
I Hardware inventoryI VirtualMachine list
vCentervCenter are an interface in front of a group of ESX/ESXi.
I Hardware inventoryI ESX/ESXi inventories
vCenter/ESX/ESXi: command line
fus ioninventory−esx −−host vcenter −−user foo \−−password bar −−directory /tmp
Then you can push the generated files in the server:
fus ioninventory−i n jecto r −v −− f i l e /tmp/∗ . ocs \−u https : / / g lp i / plugins / fus ioninventory /
vCenter/ESX/ESXi: from GLPI
You can drive the ESXinventory directly from GLPI
I Create a credentialI Associate it to an
vCenter/ESX/ESXi serverI Schedule the discovery
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
Inventory
The agent collects and send information
I System: DNS, IP, AntiVirus, users, serials, etcI Hardware: CPUs, storage, etcI Phone configuration: SIM card, IMEI, serial Android onlyI And more
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
Perl: Why Perl?
A nice tool to do the job
I A lot of data processingI Some complexe data structure to deal withI Few low level access
Perl: Portability
A large collection of OSes supported
I Very few difference between UNIX like OSesI Win32 differences remain low
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
Some metric (2/2)
Today
I 196 Perl modules (+11%)I 24395 lines (+15%)I 889 tests (+100%) We enjoy boring stuff!
Test-Suite, aka, the boring stuff we love
How to test untestable stuff to improve quality
I SSL certificat check for client: fire up a web serverwith SSL and run test
I various client / server protocol checkI ensure Win32 Modules build fine from an UNIXI etc
What FusionInventory can bring to developers?
Different levels of integration
I Use directly the FusionInventory ModulesI Call and interact with the agentI Build your solution on top of GLPI using webservices
What FusionInventory can bring to me?
Improve the solution
I Create your own ”input modules” to extend inventoryI Reuse and improve the SNMP modelsI Add new task to the agentI ...
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
Our roadmap
What we are about to releaseI FusionInventory Agent 2.2.xI Software deployment
Work in progressI OCS/XML→ REST/JSON transition
Why JSON (1/2)
GET http : / / s r v /?action=getConfig&machineid=foobar{
”httpd” : {” ip ” : ” 0 . 0 . 0 . 0 ” ,” t r u s t ” : [
”127 .0 .0 .1”] ,” port ” : 62354
}}
Why JSON (2/2)
REST/JSON benefit!
I Way simplerI Already a standard in the IT management world
Puppet, OPSI, etcI Very small CPU/memory footprintI REST is easier to debugI REST is test-suite friendly using Test::HTTP::Server::Simple
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
Outline
Global Overview
Installation
Network Discovery
Remote SNMP Inventory
Wake On Lan
Software Deployment
vCenter/ESX/ESXi remote inventory
Inventory
Let’s speak about Perl
The agent distribution
What else?
Questions
Annexe
Inventory: Generic machine information (1/3)
USERID The current user list, ’/’ is the delimiter. This fieldis deprecated, you should use the USERSsection instead.
OSNAMEOSVERSIONOSCOMMENTS Service Pack on Windows, kernel build
date on LinuxNAMESWAP The swap space in MB.
Inventory: Generic machine information (2/3)
IPADDRWORKGROUPDESCRIPTION Computer description (Windows only so far)
MEMORY Total system memory in MBUUIDDNS
LASTLOGGEDUSER The login of the last logged user.USERDOMAIN This field is deprecated, you should use the
USERS section instead.DATELASTLOGGEDUSER
Inventory: Generic machine information (3/3)
DEFAULTGATEWAYVMSYSTEM The virtualization technologie used if the
machine is a virtual machine. Can by:Physical: (default) Xen VirtualBox VirtualMachine: Generic if it’s not possible tocorrectly identify the solution VMware: ESX,ESXi, server, etc QEMU SolarisZone VServerOpenVZ BSDJail Parallels Hyper-V
WINOWNERWINPRODIDWINPRODKEYWINCOMPANYWINLANG Language code of the Windows
CHASSIS TYPE The computer chassis format (e.g:Notebook, Laptop, Server, etc)
Inventory: BIOS
SMODEL System modelSMANUFACTURER System manufacturer
SSN System Serial numberBDATE BIOS release date
BVERSION The BIOS revisionBMANUFACTURER BIOS manufacturerMMANUFACTURER Motherboard ManufacturerMSN Motherboard Serial
MMODEL Motherboard modelASSETTAG
ENCLOSURESERIALBASEBOARDSERIALBIOSSERIAL The optional asset tag for this machine.
Inventory: PCI cards
DRIVERNAME The device name, the on from the PCIIDs DB
MANUFACTURER The manifacturer name, the on from thePCIIDs DB
PCICLASS The PCI class IDPCIID The PCI ID, e.g: 8086:2a40 (only for PCI device)
PCISUBSYSTEMID The PCI subsystem ID, e.g: 8086:2a40(only for PCI device)
PCISLOT The PCI slot, e.g: 00:02.1 (only for PCI device)TYPE The controller revision, e.g: rev 02. This field
may be renamed in the future.REV Revision of the device in the XX format (e.g:
04)
Inventory: Memories
DESCRIPTIONFORMFACTOR Only available on Windows, See
Win32 PhysicalMemory documentation onMSDN.
PURPOSE Only avalaible on Windows, SeeWin32 PhysicalMemory documentation onMSDN.
SPEED In Mhz, e.g: 800TYPE
NUMSLOTS Eg. 2, start at 1, not 0SERIALNUMBER
Inventory: CPUs
CACHESIZE The total CPU cache size in KB. e.g: 3072CORE Number of core.
DESCRIPTIONMANUFACTURER AMD/Intel/Transmeta/Cyrix/VIA
NAME The name of the CPU, e.g: Intel(R) Core(TM)2Duo CPU P8600 @ 2.40GHz
THREAD Number of thread per core.SERIAL Serial numberSPEED Frequency in MHz
ID The CPU ID:http://en.wikipedia.org/wiki/CPUID
Inventory: Filesystems
CREATEDATE Date of creation of the filesystem inDD/MM/YYYY format.
DESCRIPTIONFREE Free space (MB)
FILESYSTEM File system name. e.g: ext3LABEL Name of the partition given by the user.LETTER Windows driver letter. Windows onlySERIAL Partition serial number or UUID
SYSTEMDRIVE Boolean. Is this the system partition?TOTAL Total space available (MB)
TYPE The mount point on UNIX.VOLUMN System name of the partition (e.g: /dev/sda1
or server:/directory for NFS)
Inventory: Storage devices
DESCRIPTION The long name of the device displayed tothe user.
DISKSIZE The disk size in MB.INTERFACE INTERFACE can be
SCSI/HDC/IDE/USB/1394/Serial-ATA/SAS orempty if unknown
MANUFACTURERMODEL The commercial name of the device
NAME The name of the device as seen by thesystem.
TYPE The kind of device. There is no standard forthe format of the string in this field.
SERIAL The harddrive serial numberFIRMWARE Firmware version
SCSI COID, CHID, UNID and LUNWWN World Wide Name http://fr.wikipedia.
org/wiki/World_Wide_Name
Inventory: Softwares
NAMECOMMENTS
FILESIZEPUBLISHER
FOLDERFROM Where the information about the software
came from, can be: registry, rpm, deb, etcINSTALLDATE Installation day in DD/MM/YYYY format.
Windows only.NO REMOVE Can the software be removed.RELEASE TYPE Windows only for now, come from the
registryUNINSTALL STRING Windows only, come from the registryURL INFO ABOUT
VERSIONIS64BIT If the software is in 32 or 64bit, (1/0)
GUID Windows software GUID
Inventory: Virtual machines
MEMORY Memory size, in MB.NAME The name of the virtual machine.
UUIDSTATUS The VM status: running, idle, paused,
shutdown, crashed, dying, offSUBSYSTEM The virtualisation software. E.g: VmWare ESX
VMTYPE The name of the virtualisation system family.The same type found is HARDWARE/VMSYSTEM
VCPU Number of CPU affected to the virtualmachine
VMID The ID of virtual machine in the virtualmanagment system.
MAC The list of the MAC addresses of the virtual machine. The delimiteris ’/’. e.g: 00:23:18:91:db:8d/00:23:57:31:sb:8e
COMMENT a commentOWNER
Inventory: Network configuration (1/2)
A network configuration.DESCRIPTION The name of the interface as seen in the OS
settings, e.g: eth0 (Linux) or AMD PCNETFamily Ethernet Adapter (Windows)
DRIVER The name of the driver used by the networkinterface
IPADDRESSIPDHCP The IP address of the DHCP server (optional).
IPGATEWAYIPMASK
IPSUBNET
Inventory: Network configuration (2/2)
MACADDRMTU
PCISLOT The PCI slot name.STATUS Up or Down
TYPE Interface type: Ethernet, WifiVIRTUALDEV If the interface exist or not (1 or empty)
SLAVES Bonded interfaces list in the eth0/eth1/eth2format (/ is the separator).
MANAGEMENT Whether or not it is a HP iLO, Sun SC, HPMP or other kind of Remote ManagementInterface
SPEED Interface speed in Mb/sBSSID Wifi only, Access point MAC Address
SSID Wifi only, Access point name
Inventory: And also
I Logged usersI BatteryI Printer (with serial)I LVM configuration (Linux, AIX ≥ 2.1.10)I Screen and Video cardI USB devicesI Running processesI Environment variablesI PortI SlotI Sound cardI Modem
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/