The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

fusioninventory-agent - FusionInventory agent For Linux/UNIX, Windows and MacOSX

SYNOPSIS

fusioninventory-agent [ ... ] [ --server server | --local /tmp ]...

EXAMPLES

    % fusioninventory-agent --server localhost
    # send an inventory to the OCS server

    % fusioninventory-agent --server http://localhost/ocsinventory2
    # send an inventory over http to a server with a non standard
    # virtual directory

    % fusioninventory-agent --server https://localhost/ocsinventory
    # send an inventory over https to the OCS server

    % fusioninventory-agent --local /tmp
    # write an inventory in the /tmp directory

    % fusioninventory-agent --local /tmp --html
    # Use the --html parameter to generate a HTML file

    % fusioninventory-agent --server localhost --user=toto --password=pw --realm="Restricted Area"
    # send a report to a server protected by a basic authentication
    % fusioninventory-agent --lazy
    # send an inventory only if the a random delay between 0 and PROLOG_FREQ had been run over.

    % fusioninventory-agent --delaytime 60 -d
    # If NO PROLOG_FREQ has been preset, pick a time between execution and --delaytime for the agent to contact the server [default is 3600 seconds]

DESCRIPTION

fusioninventory-agent is an agent for OCS Inventory server and FusionInventory for GLPI servers. It creates local inventory of the machines (hardware and software) and send it to the server. It can also write it in a local XML file. This agent is the successor of the former linux_agent which was released with OCS 1.01 and prior. It also replaces the Solaris/AIX/BSD unofficial agents.

Supported systems:

Windows (since Windows 2000)
GNU/Linux
MacOSX
Solaris
FreeBSD
NetBSD
OpenBSD
AIX
HP-UX
GNU/kFreeBSD

INSTALLATION

PREREQUISITES

Minimum perl version: 5.8

Additional mandatory perl modules:

Digest::MD5
XML::Simple
LWP
Net::IP
UNIVERSAL::require
Mac::SysProfile (MacOs only)

Additional optional perl modules:

Compress::Zlib, for message compression
HTTP::Daemon, for web interface
Net::CUPS (v0.60 minimum), for printers detection
File::ShareDir, for automatic data directory determination
Proc::Daemon, for daemon mode (Unix only)
Proc::PID::File, for daemon mode (Unix only)

Additional optional programs:

nmap or ipdiscover, for network discovery
dmidecode (linux or bsd) for hardware inventory
lspci (linux or bsd) for hardware inventory

PROCEDURE

Once the archive is unpacked, use these commands:

    perl Makefile.PL
    make
    make install

You can also run the agent from the tarball directory. In this case, use the --devlib flag to load the library from the local directory.

SYSTEM-SPECIFIC INFORMATIONS

Solaris

Sun Studio seems to be needed to build the dependency. The generated Makefile needs gmake to be executed. The default installation will install the binary in /usr/perl5/5.XXXXX/bin, set you $PATH variable according to that.

On Solaris/SPARC, you must install sneep and record the Serial Number with it. Download it from http://www.sun.com/download/products.xml?id=4304155a

Windows

If you don't want to use the installer for Windows you can follow the installation process avalaible there: http://forge.fusioninventory.org/projects/fusioninventory-agent/wiki/RunAgentWin32

POST-INSTALLATION

Run ./fusioninventory-agent-config for automatic configuration.

OCS INVENTORY PROTOCOLE

FusionInventory Agent uses OCS Inventory protocle and is compatible with OCS Inventory server. The agent uses the same protocle with the FusionInventory For GLPI plugin.

The OCS protocole is basicly an exchange of XML file done over HTTP(S).

First, The PROLOG

The agent send a first message to give it's ID (DEVICEID). The server send by a the agent a XML file with a list of parameter. It's the PROLOG RESP. You can see it if you're in Debug mode. In this PROLOG, the server send the PROLOG_FREQ. The agent will use it to know when it need to contact the server for the next time.

Module execution

The agent will launch each modules and pass the list of options found in the PROLOG RESP as parameter. The module can send information directly to the server (inventory, SNMP scan result, etc)

Windows service or Deamon mode

In deamon mode, the agent wait during a period between the last PROLOG and PROLOG_FREQ. If PROLOG_FREQ is not set, it will use --delaytime value. The default value is 3600.

OPTIONS

Most of the options are available in a short form and a long form. For example, the two lines below are all equivalent:

    % fusioninventory-agent -s localhost
    % fusioninventory-agent --server localhost
--backend-collect-timeout=SECONDS_BEFORE_KILL

Time before the agent kills modules processing which don't end before the timeout.

--basevardir=DIR

Indicate the place where the agent should store its files.

--color

Display color on the terminal. This feature is disabled on Windows.

-d, --daemon

Launch fusioninventory-agent as daemon in background. Proc::Daemon is needed.

-D, --daemon-no-fork

Launch fusioninventory-agent in daemon but do fork in background.

--ca-cert-dir=PATH

The directory where public SSL certificat are stored. In general it /etc/ssl/certs;

--ca-cert-file=FILE

The path to the public certificat (e.g: /etc/ssl/certs/cacert.pem). If --ca-cert-file is used, --ca-cert-dir is ignored.

--conf-file=FILE

Load the configuration file from the given location. Ignored on Windows.

--debug

Turn the debug mode on.

--devlib

This option is designed for the developer. With it enabled, fusioninventory-agent won't try to load the Backend module installed on the system. Instead it will scan the ./lib directory. It may also be useful if you don't want to install the agent on your system.

This option can only be used as command line argument. It will be ignored if you set it in a config file or in Windows registry.

--delaytime=SECONDS_TO_WAIT

This option defaults to waiting a random() time between 0 and 3600 before initially contacting the server assuming NO PROLOG_FREQ has been set. Once PROLOG_FREQ has been set, it uses that number at the top end of it's random setting. Useful for pre-setting a deployed agent's initial start time (so you don't jam the server all at once, but don't have to wait an hour to make sure the deployment worked).

--disable-perllib-envvar

Do not use PERL5LIB and PERLLIB environment variable to find Perl library path.

This option can only be used as command line argument. It will be ignored if you set it in a config file or in Windows registry.

-f, --force

The agent ask first the server if it should send an inventoroy of the machine. If the server doesn't know the machine or has outdated informations, it will request it. With this option, the agent ignore the server anwser and send an inventory.

--html

Save the local inventory requested by --local in HTML.

-i, --info

Turn the verbose mode on. The flag is ignored if --debug is enable.

--lazy

Do not contact the server more than one time during the PROLOG_FREQ and do an exit if there is nothing to do. Useful if you want to start the agent script regulary from the crontab but don't want to overload the server.

-l, --local=DIR

Write an inventory in the DIR directory. A new file will be created if needed.

--logfile=FILE

Log message in FILE and turn off STDERR

--logfile-maxsize=FILE

Max logfile size in MB, default is unlimited. When the max size is reached, the file is truncated. This is only useful if there is no log rotation mechanism on the system.

--logger=LOGGER:

The logger you want to use. It can be:

  • Stderr: print the messages directly in the console. Messages are lost in daemon mode (--daemon). You can use --color to turn color mode on.

  • File: log the error in a log file. Please use --logfile to set the location of your log file. --logfile turns this option on automatically

  • Syslog: use the local syslog server to log the messages.

You can use more than one parameter if you use ',' as delimiter. E.g:

 % fusioinventory-agent --logger=Syslog,Stderr --local=/tmp
--no-ocsdeploy

Disable the software deployment.

--no-inventory

Do not generate inventory.

--no-wakeonlan

Do not use the wakeonlan.

--no-printer

Do not inventory the printer.

--no-software

Do not inventory the software installed on the machine.

-p, --password=PASSWORD

Use PASSWORD for an HTTP identification with the server.

-P, --proxy=PROXY

Use PROXY to specify a proxy HTTP server. By default, the agent uses HTTP_PROXY environment variable.

-r, --realm=REALM

Use REALM for an HTTP identification with the server. For example, the value can be 'Restricted Area'. You can find it in the login popup of your Internet browser.

if no realm is passed and the auth fails, the agent will retry an authentification with the realm returned by the server.

--rpc-ip=IP

The IP address of the interface to use for the P2P exchange. The default is 'all' the IP addresses with a 255.255.255.0 mask except 127.0.0.1.

--rpc-trust-localhost

Allow local users to access to http://127.0.0.1:62354/now to force an inventory immediately.

--scan-homedirs

Should the agent scan the user directories to inventory their virtual machine?

-s, --server=URI

The uri of the server. If URI doesn't start with http:// or https://, the assume the parameter is a hostname and rewrite it like that:

    % --server=http://servername/ocsinventory

If you want to use https or another virtual directory (e.g: /ocsinventory2) you need to enter the full path.

You can declare more than one server if you use the ',' delimiter.

    % --server=http://servername/ocsinventory,server2

--server is ignored if --local is in use.

--share-dir

The directory where a stored the shared files. You probably don't need this option unless you don't want to use the Makefile.PL installation procedure or if File::ShareDir is not avalaible.

--stdout

Print the inventory on stdout.

    % fusioninventory-agent --stdout > /tmp/report.xml
    # prepare an inventory and write it in the /tmp/report.xml file.
    # A file will be created.
--scan-homedirs

Authorized the agent to scan home directories to increase the Virtual Machine inventory.

--tag=TAG

Mark the machine with the TAG tag. Once the initial inventory is accepted by the server this value is ignored and you've to change the information directly on the server. The server do so in order to centralize the administration of the machine.

--no-ssl-check

Do now validate HTTPS certificat with the servers. Please never use this option in production. This is just a very bad idea.

Hint: you can declare HTTPS_DEBUG to get SSL error messages in the console.

-u USER, --user=USER

Use USER for the server authentication.

--version

Print the version and exit.

-w DURATION, --wait=DURATION

Wait during a random period between 0 and DURATION second before initializing the connexion with the server.

    % fusioninventory-agent --wait 5 --server localhost

CONFIG FILE

The agent try to initialize the settings from the agent.cfg config file.

It looks for the file in these location:

  • /etc/fusioninventory/agent.cfg

  • /usr/local/etc/fusioninventory/agent.cfg

You can use the --conf-file=XXX parameter to load you own configuration file from a specific location. On Windows the settings are loaded from the Registry. The configuration file is ignored.

SECURITY

Some modules like SNMPQuery needs to sent credential from the agent to the agent. We recommend to enable HTTPS support on the OCS or FusionInventory For GLPI server.

AUTHORS

The FusionInventory project fusioninventory-devel@lists.alioth.debian.org

The maintainer is Goneri LE BOUDER <goneri@rulezlan.org>

Please read the AUTHORS, Changes and THANKS files to see who is behind FusionInventory.

SEE ALSO

BUGS

Please, use the mailing lists as much as possible. You can open your own bug tickets. Patches are welcome. You can also use the bugtracker on http://Forge.FusionInventory.org

COPYRIGHT

Copyright (C) 2006-2010 OCS Inventory contributors Copyright (C) 2010 FusionInventory Team

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

The memconf script is maintained by Tom Schmidt http://myweb.cableone.net/4schmidts/memconf.html Copyright © 1996-2009 Tom Schmidt

memconf is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

FusionInventory::Agent::Backend::Virtualization::Vmsystem uses code from imvirt:

   Authors:
     Thomas Liske <liske@ibh.de>

   Copyright Holder:
     2008 (C) IBH IT-Service GmbH [http://www.ibh.de/]

   License:
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     the Free Software Foundation; either version 2 of the License, or
     (at your option) any later version.

     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.

     You should have received a copy of the GNU General Public License
     along with this package; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
     USA

1 POD Error

The following errors were encountered while parsing the POD:

Around line 603:

Non-ASCII character seen before =encoding in '©'. Assuming UTF-8