Je vous ai déjà parlé d'OCS Inventory sur ce blog et de mon expérience avec cet outil. Aujourd'hui, il est temps de vous présenter comment installer cet outil open source, qui vous aidera à gérer votre parc informatique de manière automatique.

Pour cette installation, je vais utiliser une VM sous Debian 13. Ce tutoriel fonctionnera pour les distributions Linux dérivées de Debian. Si vous utilisez une distribution comme CentOS, RedHat ou Fedora. Ce tutoriel sera à adapter notamment, car le gestionnaire de paquet sur ces distributions n'est pas apt et les paquets ont aussi des noms différents. Je vous ferai plus tard un tutoriel pour ces distributions.

Installation des prérequis

Avant de se lancer dans l'installation de OCS Inventory, il faut installer un certain nombre de prérequis. Pour bien comprendre le fonctionnement de OCS, voici sa structure technique.

Schéma architecture OCS inventory

Comme on peut le voir, OCS se décompose en 4 composants :

  • Serveur de base de données : Permet de stocker les données des autres composants OCS
  • Serveur de communication : Permet de récupérer les données collectées par les agents OCS.
  • Serveur de déploiement : Assure la diffusion aux agents des paquets pour installer des applications.
  • Console d'administration : Permet de consulter les données du parc via une interface Web.

Ces 4 composants ont besoin de plusieurs modules et librairies pour fonctionner, les voici.

  • Apache 2 pour le serveur Web
  • MariaDB pour la base de données
  • Perl et ses modules pour le serveur de communication
  • PHP pour la console Web

Passons maintenant à l'installation, on va commencer par installer apache 2.

sudo apt install apache2

Nous allons ensuite installer MariaDB client et serveur.

sudo apt install mariadb-server mariadb-client

Une fois l'installation de MariaDB terminé, on va initialiser notre serveur de base de données. Pour cela, on va utiliser la commande suivante.

sudo mariadb-secure-installation

Cette commande va lancer le script de configuration de MariaDB. Je vais rapidement passer en revue ces différentes étapes avec vous. Pour les deux premières étapes, nous n'allons pas suivre la recommandation du script d'installation et ne pas utiliser l'authentification unix. Ainsi que conserver le mot de passe root.

MariaDB Secure Installation Etape 1

MariaDB Secure Installation Etape 2

On va ensuite supprimer les utilisateurs anonymes.

MariaDB Secure Installation Etape 3

Il est recommandé de toujours désactiver l'accès root à distance.

MariaDB Secure Installation Etape 4

On va supprimer les bases de données de test.

MariaDB Secure Installation Etape 5

Pour finir, on va reload les privilèges afin de mettre à jour les droits sur les tables par défaut.

MariaDB Secure Installation Etape 6

Notre serveur de base de données et maintenant prêt, nous reviendrons sur MariaDB lors de la création de la base de données pour OCS.

Passons maintenant à l'installation de perl et ses modules pour OCS, voici la commande pour installer les différents modules. Pour plus d'informations, je vous invite à lire la page prérequis de la documentation OCS.

sudo apt install libxml-simple-perl libdbi-perl libdbd-mysql-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl libarchive-zip-perl make build-essential libmojolicious-perl libswitch-perl libplack-perl

Il nous reste le module perl xml à installer. Nous allons utiliser CPAN (Comprehensive Perl Archive Network). Il s'agit d'une base qui référence les modules perl.

sudo cpan install XML::Entities

De même que pour perl, nous allons installer php et ses différents modules.

sudo apt install php php-curl php-mbstring php-xml php-soap php-gd php-zip php-mysql

Nous avons désormais installé tous les prérequis pour OCS Inventory. Dans la prochaine partie de l'article, nous allons créer notre base de données, ainsi que le compte qui sera utilisé par OCS pour interroger la base.

Création de la base de données

Pour travailler sur notre serveur de base de données, nous allons utiliser la commande suivante qui permet de se connecter à notre serveur MariaDB.

sudo mariadb -u root

Si vous n'utilisez pas sudo, il est possible que vous ayez défini un mot de passe root pour MariaDB. Vous devrez donc utiliser cette commande pour vous connecter mariadb -u root -p il vous faudra alors saisir votre mot de passe.

Une fois connecté, vous aurez un prompt de ce type MariaDB [(none)]> On va commencer par créer notre base de données pour OCS, dans la documentation d'OCS, on nous recommande de l'appeler ocsweb. Personnellement, je vous recommande de nommer la base et le compte différemment que dans la doc. Cela permettra de renforcer la sécurité, car le nom d'utilisateur et le nom de la base ne seront pas trouvable sur le Web.

Création de la base de données :

CREATE DATABASE ocsdb;

Création d'un utilisateur pour interagir avec cette base de données :

CREATE USER 'ocsdbuser'@'localhost' IDENTIFIED BY 'password_ocsdb_user';

On va maintenant ajouter les droits à notre compte ocsdbuser pour qu'il puisse interagir avec notre base de données ocsdb.

GRANT ALL PRIVILEGES ON ocsdb.* TO 'ocsdbuser'@'localhost' WITH GRANT OPTION;

Dans ce tutoriel, notre serveur de base de données se trouve sur la même machine qu'OCS Inventory, mais on pourrait très bien le mettre sur un autre serveur. Il faudrait donc adapter notre commande pour autoriser le compte depuis un serveur distant.

Notre base de données est prête, nous pouvons sortir du serveur MariaDB en tapant exit ou avec le raccourcis clavier Ctrl+A+D.

Installation OCS Inventory

Maintenant, que nous avons installé les prérequis sur notre serveur. On va pouvoir installer OCS Inventory. Pour ce faire, on va commencer par télécharger les sources depuis le dépôt Github de OCS. Pour télécharger les sources sur notre serveur, on va utiliser la commande suivante.

wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.12.3/OCSNG_UNIX_SERVER-2.12.3.tar.gz

Une fois télécharger, on va décompresser les sources.

tar -xvzf OCSNG_UNIX_SERVER-2.12.3.tar.gz

Une fois décompresser, on va pouvoir se positionner dans le répertoire OCSNG_UNIX_SERVER-2.12.3 avec la commande cd OCSNG_UNIX_SERVER-2.12.3. Dans ce dossier, on va retrouver un fichier setup.sh qui va permettre d'installer et de configurer OCS. Pour lancer le setup.sh assuré vous d'être connecté en tant que root ou d'utiliser sudo, commençons l'installation.

sudo sh setup.sh

Tout au long de l'installation, l'option sélectionnée par défaut se trouvera entre crochets. Dans cet article, je vais conserver les options par défaut. Je vous invite à lire la documentation d'installation pour plus d'informations.

Lancement installation OCS

Je ne vais pas détailler chaque étape d'installation, car globalement, le script explique à chaque étape ce qu'il va faire. Pour résumer le script va vous demander où est hébergé votre base de données, sur quel port, où se situe votre serveur apache et ces config. Il fera de même pour perl et le chemin d'installation de OCS Inventory.

Dans mon cas, le seul paramètre de configuration que je vais modifier est le chemin du répertoire de config apache, car par défaut OCS écrit les config apache dans /etc/apache2/conf-available. Cependant, Apache2 lit par défaut les fichiers de config dans /etc/apache2/conf-enabled. Afin d'éviter d'avoir à modifier le fichier apache2.conf. J'ai donc indiqué le répertoire /etc/apache2/conf-enabled à l'étape ci-dessous.

Modification emplacement config apache2 OCS

A la fin de l'installation, on devra redémarrer apache2 afin que la configuration apache pour OCS soit prise en compte. Pour cela, vous pouvez utiliser la commande suivante.

sudo systemctl restart apache2

Pour que notre OCS Inventory soit totalement fonctionnel, on va modifier deux fichiers de configuration, car par défaut, ils n'ont pas les informations de connexion à notre base de données. Il s'agit de /etc/apache2/conf-enabled/z-ocsinventory-server.conf et /etc/apache2/conf-enabled/zz-ocsinventory-restapi.conf.

On va donc éditer ces deux fichiers. Commençons par le fichier z-ocsinventory-server.conf, on modifie ici les informations par celle de notre base de données.

  # Replace localhost by hostname or ip of MySQL server for WRITE
  PerlSetEnv OCS_DB_HOST localhost
  # Replace 3306 by port where running MySQL server, generally 3306
  PerlSetEnv OCS_DB_PORT 3306
  # Name of database
  PerlSetEnv OCS_DB_NAME ocsdb
  PerlSetEnv OCS_DB_LOCAL ocsdb
  # User allowed to connect to database
  PerlSetEnv OCS_DB_USER ocsdbuser
  # Password for user
  PerlSetVar OCS_DB_PWD password_ocsdb_user

On va modifier les informations de notre base de données aussi pour le fichier zz-ocsinventory-restapi.conf.

  $ENV{OCS_DB_HOST} = 'localhost';
  $ENV{OCS_DB_PORT} = '3306';
  $ENV{OCS_DB_LOCAL} = 'ocsdb';
  $ENV{OCS_DB_NAME} = 'ocsdb';
  $ENV{OCS_DB_USER} = 'ocs';
  $ENV{OCS_DB_PWD} = 'OCS_serverDB!';

C'est deux fichiers servent respectivement au serveur de communication et à l'API d'OCS. On pourra ensuite redémarrer apache2 avec la commande suivante.

sudo systemctl restart apache2

Maintenant, on va pouvoir se connecter à l'interface Web d'OCS avec http://IP_serveur/ocsreports lorsque l'on va charger notre page, on va devoir renseigner les informations de notre base de données. Ces informations seront utilisées pour la console Web.

Config base de données Web console

Après cette étape, il est possible qu'OCS Inventory vous propose de mettre à jour votre base. Pour cela, vous aurez juste à cliquer sur "Perform The Update". Par la suite, on va pouvoir se connecter à notre interface OCS. Par défaut, vous pourrez vous connecter avec le couple login/mot de passe admin/admin.

Login page OCS

On arrivera alors sur l'interface suivante, qui nous indique que notre OCS doit être sécurisé. Nous allons voir ça dans la partie suivante.

OCS WebConsole Home page

Configuration OCS Inventory

Dans cet article, je ne vais pas rentrer dans les détails de la configuration d'OCS Inventory. La configuration avancée de l'outil sera le sujet de plusieurs futurs articles. Ici, je vais juste suivre les recommandations post installation qui sont les suivantes :

  • Supprimer le fichier install.php
  • Changer le mot de passe par défaut

Ces actions ont pour objectif de ne pas laisser notre OCS vulnérable, car actuellement, il est facile de se connecter et on peut relancer l'installation d'OCS depuis l'interface Web.

Pour supprimer le fichier install.php, on va se positionner dans le répertoire /usr/share/ocsinventory-reports/ocsreports qui contient notre console OCS Inventory. Puis on exécutera la commande suivante.

sudo rm -f install.php

Pour modifier le mot de passe du compte admin, il suffit de se rendre dans le menu Configuration puis dans Users. On pourra alors cliquer sur le compte admin et modifier le mot de passe.

Installation agent OCS

Pour terminer cet article, je vais réaliser l'installation de l'agent OCS sur une machine Windows, ce qui va permettre de faire remonter les premières informations de notre ordinateur.

Commençons par télécharger l'agent OCS Inventory pour Windows sur le dépôt Github. L'agent existe en version 32 et 64 bits et peux aussi être déployé en version portable. Pour ma part, je vais ici installer l'agent classique sur Windows. L'installation est tout à fait classique, on exécute le .exe et on suit les étapes d'installation. La partie la plus importante se situe à l'étape 4 de l'installation. On va ici indiquer à l'agent l'url de notre serveur OCS, comme indiqué ci-dessous.

Config agent OCS avec le serveur

N'ayant pas configuré de certificat SSL sur le serveur, je vais décocher l'option validate certificate. En production, je vous recommande d'utiliser HTTPS pour votre serveur. On peut ensuite continuer l'installation en laissant les options par défaut. Une fois notre agent installé, ce dernier va collecter les informations de l'ordinateur, puis les envoyer au serveur. Si tout fonctionne correctement, vous retrouverez votre ordinateur dans la console Web.

Ordinateur console OCS

Conclusion

Dans cet article, je n'ai parlé que de l'installation de notre serveur OCS Inventory et d'un agent Windows. Dans de prochains articles, je rentrerai plus en détaille sur la configuration de la solution, ainsi que sur sa sécurisation et l'automatisation de ce dernier. Afin de vous monter comment OCS Inventory peut devenir un vrai allié pour gérer son parc informatique de manière dynamique.