Any type of business is bound to have innumerable amounts of items that need to be inventoried, tracked, and managed. Doing so by means of pen and paper not only takes excessive amounts of time but is often prone to multiple user errors. Moving to a digital system such as Excel/Libre Calc worksheets is a little bit more productive and easier to back up but does present some other interesting issues such as access to the spreadsheet, inability to easily query data, or the simple fact that multiple spreadsheets easily becomes a logistical nightmare!
GLPI is a fantastic piece of information-resource management software that can be installed to track company resources. GLPI is comparable in functionality to several commercial pieces of software such as LanSweeper, EasyVista,and ManageEngine. GLPI boasts several very useful features:
- Hardware/Software inventory
- Network and printing hardware inventory
- Support for Fusion Inventory and OCS Inventory
- Computer peripherals inventory such as monitors, scanners, telephones, etc
- Help-desk Ticketing System
- SLA Management
- Change Management
- Project Management
- Reporting to PDF, CSV, PNG, SVG, etc
When GLPI is paired with Fusion Inventory:
- Software deployment abilities
- Automated inventory through client agents
- Ability to do handle Android, Windows, Linux, BSD, HP-UX, and many other operating systems
All in all with GLPI and Fusion Inventory installed, the combination can be used to create an all encompassing help-desk/document management/inventory system for businesses of all sizes.
This tutorial will walk through the steps necessary to quickly setup, configure, and begin importing inventory into GLPI with the help of Fusion Inventory on Debian 8 Jessie, but the same instructions also works on Debian based systems like Ubuntu and Mint.
- Debian 8 Jessie already installed ( TecMint has an article on installing Debian 8 here:
- Working network connection (necessary for the automatic inventory).
- A secondary machine to install the inventory agent (also with a network connection to the Debian server)
- Root/Administrator access to both machines
Installation of GLPI/Fusion Inventory Server
Step 1: Dependency Installation
1. The first step in the process is to boot up and prepare the Debian server. GLPI will require Apache2, MySQL, and some PHP additions in order to function properly. The easiest way to get these packages is with the Apt meta-packager.
# apt-get install apache2 mysql-server-5.5 php5 php5-mysql php5-gd
This command will download and install the necessary packages and start the basic server services. While MySQL is installing, it will likely ask to have the MySQL root password set. Set this password but DO NOT forget it as it will be needed soon.
2. After all of the packages finish installing, it is always a good idea to make sure that the server services are running. This is easily accomplished by evaluating the system to see what services are listening on what ports with the ‘lsof‘ utility.
# lsof -i :80 [will confirm apache2 is listening to port 80] # lsof -i :3306 [will confirm MySQL is listening to port 3306]
Another way to confirm apache2 is working and delivering a web-page is to open a web browser and type the Debian server’s IP address in the URL bar. If Apache2 is working, the web browser should return the “default” Apache2 page.
Now that Apache2 is at least serving up a web-page, lets first prepare the MySQL database and then configure Apache2 to server GLPI.
Step 2: MySQL Configuration
3. From the Debian server, log into the MySQL command line interface using the ‘
# mysql -u root -p
This command will attempt to log into MySQL as the MySQL root user (NOT the system root user). The ‘
-p‘ argument will prompt the user for the MySQL root user password that was configured when MySQL was installed in the prior paragraph. At this point, a new database ‘
glpi‘ needs to be created for GLPI. The SQL command to do accomplish this task:
mysql> create database glpi;
To confirm that this new database was indeed created, the ‘
show databases;‘ command can be issued. The result should look similar to the below screen-shot.
mysql> show databases;
4. From here, a new user with privileges to this database should be created. It is never a good idea to use the root user! To create a new MySQL user and assign them permissions to the ‘
- create user ‘glpi’@’localhost’; → creates a MySQL user called ‘glpi‘.
- grant all privileges on glpi.* to ‘glpi’@’localhost’ identified by ‘some_password’; → this grants all database privileges on the database called ‘glpi‘ to the newly created user ‘glpi‘ and then assigns a password required for that user to access the SQL database.
- flush privileges; → run this for the new privileges to be read by the MySQL server.
mysql> create user 'glpi'@'localhost'; mysql> grant all privileges on glpi.* to 'glpi'@'localhost' identified by 'some_password'; mysql> flush privileges;
At this point, MySQL is ready and it is time to obtain the GLPI software.
Step 3: Obtain and Prepare GLPI for Installation
5. Obtaining GLPI is very simple and can be accomplished one of two ways. The first method is to visit the project’s home page and Download GLPI Software or via the command line utility known as ‘wget‘.
This will download and install version 9.4.2 which is the current version as of this article.
# wget -c https://github.com/glpi-project/glpi/releases/download/9.4.2/glpi-9.4.2.tgz
6. Once the software is downloaded, the contents of the tarball need to be extracted. Using the tar utility, the contents can be decompressed, extracted, and placed in the proper location on the Debian server for the GLPI webpage to be accessible.
This will extract the tarball contents to a folder called ‘
glpi‘ in the
/var/www directory. By default, this is the directory that Apache2 serves files on Debian.
# tar xzf glpi-9.4.2.tgz -C /var/www
7. The above tar command will extract all the contents into the ‘
/var/www/glpi‘ directory but it will all be owned by the root user. This will need to be changed for Apache2 and other security reasons using the chown command.
This will change the owner and primary group ownership for all of the files in
/var/www/glpi to www-data which is the user and group that Apache2 will be using.
# chown -R www-data:www-data /var/www/glpi
At this point, Apache2 will need to be reconfigured in order to serve the newly extracted GLPI contents and the following section will detail the steps.