README.md 5.41 KB
Newer Older
Guillaume Bougard's avatar
Guillaume Bougard committed
1
# <img src="https://raw.githubusercontent.com/glpi-project/glpi-agent/develop/share/html/logo.png" alt="GLPI Agent" width="32" height="32" /> GLPI Agent
Guillaume Bougard's avatar
Guillaume Bougard committed
2
3
4

[![GLPI Agent CI](https://github.com/glpi-project/glpi-agent/actions/workflows/glpi-agent-ci.yml/badge.svg)](https://github.com/glpi-project/glpi-agent/actions/workflows/glpi-agent-ci.yml)
[![GLPI Agent Packaging](https://github.com/glpi-project/glpi-agent/actions/workflows/glpi-agent-packaging.yml/badge.svg)](https://github.com/glpi-project/glpi-agent/actions/workflows/glpi-agent-packaging.yml)
Guillaume Bougard's avatar
Guillaume Bougard committed
5
6
[![Github All Releases](https://img.shields.io/github/downloads/glpi-project/glpi-agent/total.svg)](#download)
[![Twitter Follow](https://img.shields.io/twitter/follow/GLPI_PROJECT.svg?style=social&label=Follow)](https://twitter.com/GLPI_PROJECT)
7

8
## Summary
9

Guillaume Bougard's avatar
Guillaume Bougard committed
10
The GLPI Agent is a generic management agent. It can perform a
Guillaume Rousse's avatar
Guillaume Rousse committed
11
certain number of tasks, according to its own execution plan, or on behalf of a
12
GLPI server acting as a control point.
Guillaume Rousse's avatar
Guillaume Rousse committed
13

14
15
## Description

Guillaume Bougard's avatar
Guillaume Bougard committed
16
17
This agent is based on a fork of [FusionInventory agent](https://github.com/fusioninventory/fusioninventory-agent) and so works mainly like FusionInventory agent.
It introduces new features and a new protocol to communicate directly with a GLPI server and its native inventory feature. Anyway it also keeps the compatibility with [FusionInventory for GLPI plugin](https://github.com/fusioninventory/fusioninventory-for-glpi).
Guillaume Rousse's avatar
Guillaume Rousse committed
18

Guillaume Bougard's avatar
Guillaume Bougard committed
19
20
21
22
23
24
25
## Download

* Release: See [our github releases](https://github.com/glpi-project/glpi-agent/releases) for official win32, MacOSX & linux packages.
* Development builds:
    - nightly builds for last 'develop' branch commits: [GLPI-Agent nightly builds](http://nightly.glpi-project.org/glpi-agent)
    - with a github account, you can also access artifacts for any other branches supporting ["GLPI Agent Packaging" workflow](https://github.com/glpi-project/glpi-agent/actions/workflows/glpi-agent-packaging.yml?query=is%3Asuccess+event%3Apush+-branch%3Adevelop)

26
27
28
29
30
31
32
33
## Documentation

The GLPI Agent has its [dedicated documentation project](https://github.com/glpi-project/doc-agent) where any contribution will also be appreciated.

The documentation itself is [readable online](https://glpi-agent.readthedocs.io/).

[![Documentation Status](https://readthedocs.org/projects/glpi-agent/badge/?version=latest)](https://glpi-agent.readthedocs.io/en/latest/?badge=latest)

34
## Dependencies
35

Guillaume Rousse's avatar
Guillaume Rousse committed
36
37
### Core

38
39
Minimum perl version: 5.8

Guillaume Rousse's avatar
Guillaume Rousse committed
40
Mandatory Perl modules:
41

Gonéri Le Bouder's avatar
Gonéri Le Bouder committed
42
* File::Which
Guillaume Rousse's avatar
Guillaume Rousse committed
43
* LWP::UserAgent
Gonéri Le Bouder's avatar
Gonéri Le Bouder committed
44
45
46
47
* Net::IP
* Text::Template
* UNIVERSAL::require
* XML::TreePP
48

Guillaume Rousse's avatar
Guillaume Rousse committed
49
Optional Perl modules:
Gonéri Le Bouder's avatar
Gonéri Le Bouder committed
50

51
52
* Compress::Zlib, for message compression
* HTTP::Daemon, for web interface
Guillaume Rousse's avatar
Guillaume Rousse committed
53
54
* IO::Socket::SSL, for HTTPS support
* LWP::Protocol::https, for HTTPS support
55
56
* Proc::Daemon, for daemon mode (Unix only)
* Proc::PID::File, for daemon mode (Unix only)
57

Guillaume Rousse's avatar
Guillaume Rousse committed
58
59
60
61
62
63
### Inventory task

Optional Perl modules:

* Net::CUPS, for printers detection
* Parse::EDID, for EDID data parsing
64
* DateTime, for reliable timezone name extraction
Guillaume Rousse's avatar
Guillaume Rousse committed
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

Optional programs:

* dmidecode, for DMI data retrieval
* lspci, for PCI bus scanning
* hdparm, for additional disk drive info retrieval
* monitor-get-edid-using-vbe, monitor-get-edid or get-edid, for EDID data access
* ssh-keyscan, for host SSH public key retrieval

### Network discovery tasks

Mandatory Perl modules:

* Thread::Queue

Optional Perl modules:

* Net::NBName, for NetBios method support
* Net::SNMP, for SNMP method support

Optional programs:

87
* arp, for arp table lookup method support
Guillaume Rousse's avatar
Guillaume Rousse committed
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108

### Network inventory tasks

Mandatory Perl modules:

* Net::SNMP
* Thread::Queue

Optional Perl modules:

* Crypt::DES, for SNMPv3 support

### Wake on LAN task

Optional Perl modules:

* Net::Write::Layer2, for ethernet method support

### Deploy task

Mandatory Perl modules:
109

Guillaume Rousse's avatar
Guillaume Rousse committed
110
111
112
* Archive::Extract
* Digest::SHA
* File::Copy::Recursive
113
* JSON::PP
Guillaume Rousse's avatar
Guillaume Rousse committed
114
* URI::Escape
115

116
117
118
119
Mandatory Perl modules for P2P Support:
* Net::Ping
* Parallel::ForkManager

120
121
## Related contribs

122
See [CONTRIB](CONTRIB.md) to find references to GLPI Agent related scritps/files
123

124
## Contacts
125
126

Project websites:
127

128
129
* main site: <https://glpi-project.org/>
* forum: <https://forum.glpi-project.org/>
Guillaume Bougard's avatar
Guillaume Bougard committed
130
* github: <http://github.com/glpi-project/glpi-agent>
131

132
Project Telegram channel:
133

134
* https://t.me/glpien
135

136
Please report any issues on project [github issue tracker](https://github.com/glpi-project/glpi-agent/issues).
137

138
## Active authors
139

Guillaume Bougard's avatar
Guillaume Bougard committed
140
* Guillaume Bougard <gbougard@teclib.com>
141

142
143
Copyright 2006-2010 [OCS Inventory contributors](https://www.ocsinventory-ng.org/)

144
Copyright 2010-2019 [FusionInventory Team](https://fusioninventory.org)
145

146
Copyright 2011-2021 [Teclib Editions](https://www.teclib-edition.com/)
147

148
## License
149

Guillaume Bougard's avatar
Guillaume Bougard committed
150
151
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)

152
153
This software is licensed under the terms of GPLv2+, see LICENSE file for
details.
154

155
## Additional pieces of software
156

157
The glpi-injector script is based on fusioninventory-injector script:
Gonéri Le Bouder's avatar
Gonéri Le Bouder committed
158
159
160

* author: Pascal Danek
* copyright: 2005 Pascal Danek
161

162
GLPI::Agent::Task::Inventory::Vmsystem
163
contains code from imvirt:
Gonéri Le Bouder's avatar
Gonéri Le Bouder committed
164
165
166
167
168

* url: <http://micky.ibh.net/~liske/imvirt.html>
* author: Thomas Liske <liske@ibh.de>
* copyright: 2008 IBH IT-Service GmbH <http://www.ibh.de/>
* License: GPLv2+
169
170
171
172
173
174

ToolBox HTTP daemon plugin uses flatpickr lightweight and powerful datetime picker js library.
* author: Gregory Petrosyan
* url: <https://flatpickr.js.org/>
* copyright: 2017 Gregory Petrosyan
* License: License MIT