100
Assets management with FusionInventory David Durieux <[email protected]> Gon ´ eri Le Bouder <[email protected]> July 2011

David Durieux Goneri Le Bouder´2011.rmll.info/IMG/pdf/fusioninventory-rmll-2011.pdf · Assets management with FusionInventory David Durieux

Embed Size (px)

Citation preview

Assets management with FusionInventory

David Durieux <[email protected]>Goneri Le Bouder <[email protected]>

July 2011

About us: David Durieux

IT management consultant

I GLPI core-developerI FusionInventory project co-leaderI Work at siprossii, Lyon area, France

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

The origin

2006 Agent creation2008 Server project (Tracker, a GLPI plugin)2009 Agent/Server integration2010 FusionInventory project2010 Uranos integration2011 Rudder integration

The project infrastructure

FusionInventory is a community-driven project.

I active mailing listsI IRC: #FusionInventory on FreeNodeI public Forge, Git repositories, etc

Outline

Global Overview

Installation

Network Discovery

Remote SNMP Inventory

Wake On Lan

Software Deployment

vCenter/ESX/ESXi remote inventory

Inventory

What else?

Questions

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

Discution opened with

I FusionDirectoryI Mandriva’s Pulse2I OTRS ITSM

Outline

Global Overview

Installation

Network Discovery

Remote SNMP Inventory

Wake On Lan

Software Deployment

vCenter/ESX/ESXi remote inventory

Inventory

What else?

Questions

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 BSDI AIXI HP-UXI SolarisI Windows, all from 2000 to Seven 64bit

A complete list is avallable on the website

Agent: supported OS (2/2)

Supported Operating Systems:

I LinuxI BSDI AIXI HP-UXI SolarisI Windows, all from 2000 to Seven 64bit

A complete list is avallable on the website

Agent: supported OS (2/2)

Supported Operating Systems:

I LinuxI BSDI AIXI HP-UXI SolarisI Windows, all from 2000 to Seven 64bit

A complete list is avallable on the website

Agent: supported OS (2/2)

Supported Operating Systems:

I LinuxI BSDI AIXI HP-UXI SolarisI Windows, all from 2000 to Seven 64bit

A complete list is avallable on the website

Agent: supported OS (2/2)

Supported Operating Systems:

I LinuxI BSDI AIXI HP-UXI SolarisI Windows, all from 2000 to Seven 64bit

A complete list is avallable on the website

Agent: supported OS (2/2)

Supported Operating Systems:

I LinuxI BSDI AIXI HP-UXI SolarisI Windows, all from 2000 to Seven 64bit

A complete list is avallable on the website

Agent: supported OS (2/2)

Supported Operating Systems:

I LinuxI BSDI AIXI HP-UXI SolarisI Windows, all from 2000 to Seven 64bit

A complete list is avallable on the website

Agent: supported OS (2/2)

Supported Operating Systems:

I LinuxI BSDI AIXI HP-UXI SolarisI Windows, all from 2000 to Seven 64bit

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

MacOSX

I Panther 10.3.9 PowerPCI Tiger allI Leopard allI Snow Leopard 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: Tested systems

HPUX

I 11.11 PA-RISCI 11.23 ItaniumI 11.31 Itanium

Agent: Tested systems

AIX

I 5.1I 5.2I 6.1

Agent: Tested systems

Android

I All the revision since1.6

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

What else?

Questions

Network discovery

FusionInventory can do fast network inventory using

I NMAPI NetBiosI SNMP query

Network discovery

During this step, we identify

I Network informationI Windows domain informationI SNMP device name (sysdesc)

Outline

Global Overview

Installation

Network Discovery

Remote SNMP Inventory

Wake On Lan

Software Deployment

vCenter/ESX/ESXi remote inventory

Inventory

What else?

Questions

SNMP: History

History of SNMP

I Standard protocoleFirst RFC: 1988

I Created for monitoring devicesI Tree 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⇐=WTF?!

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: What results for switch?

SNMP: Printer (1/2)

Get printer information

I Serial numberI ManufacturerI ModelI FirmwareI MemoryI Mac addressI etc

SNMP: Printer (2/2)

Additional important information

I Get cartridges ink levelI Page counter

SNMP: What result for printer?

Outline

Global Overview

Installation

Network Discovery

Remote SNMP Inventory

Wake On Lan

Software Deployment

vCenter/ESX/ESXi remote inventory

Inventory

What else?

Questions

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

What else?

Questions

Software Deployment: OCS Inventory

What?OCS software deployment featuring peer to peer support

Benefit

I no proxy nor mirrorI bandwidth-friendlyI OS independent

Software Deployment: FusionInventory

What?FusionInventory deployment

Why a new software deployment?

I Same user interfaceI rights based on GLPI group/profile/entityI Secure: HTTPS and sha512I Sexy interface using ExtJS

FusionInventory Deploy: package creation

FusionInventory Deploy: group creation

FusionInventory Deploy: task creation

Outline

Global Overview

Installation

Network Discovery

Remote SNMP Inventory

Wake On Lan

Software Deployment

vCenter/ESX/ESXi remote inventory

Inventory

What else?

Questions

vCenter/ESX/ESXi

The issueYou can NOT run an agent on these machines.

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

ESX 1/2

ESX 2/2

Outline

Global Overview

Installation

Network Discovery

Remote SNMP Inventory

Wake On Lan

Software Deployment

vCenter/ESX/ESXi remote inventory

Inventory

What else?

Questions

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

The inventory content

This section presents information collected inFusionInventory inventory.

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

Outline

Global Overview

Installation

Network Discovery

Remote SNMP Inventory

Wake On Lan

Software Deployment

vCenter/ESX/ESXi remote inventory

Inventory

What else?

Questions

What else? (1/2)

agent developement is very active

I code clean uplarger test-suite, modern perl

I architecture changesevent-driven programming, various executable

I smaller memory footprint

What else? (1/2)

agent developement is very active

I code clean uplarger test-suite, modern perl

I architecture changesevent-driven programming, various executable

I smaller memory footprint

What else? (2/2)

In test-suite we trust!

I strong effort done during the last year≥40 000 tests on the GLPI plugin and up to 2 000 on theagent

I with even stronger benefit so far

Our roadmap

What we are about to releaseI Android Agent, inventory done, finishing the GUII FusionInventory for GLPI 0.80

featuring the configuration Wizard!I Debian package for fusioninventory-esx

Work in progressI Software deploymentI OCS/XML→ REST/JSON transitionI FusionInventory Agent 2.2.x

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

What else?

Questions

Questions?

Question?