Publié le mardi 30 mai 2006, mis a jour le samedi 28 juillet 2007, par Stephane MALINET
Premièrement je dois préciser que cette documentation a été établie par Gael Durando.
L’inventaire, qu’il soit matériel ou logiciel, est une des préocupations les plus importantes de tout gestionnaire de parc informatique.
Pour ce faire, le monde du libre possède ses outils : OCS Inventory Next Generation et GLPI. Ce ne sont, certes, pas les seuls mais a priori les plus complets.
Dans ce qui suit, les installations se feront sur une seule machine, mais, dans un parc atteignant les 5000 clients, il est fortement conseillé d’utiliser au moins 2 serveurs afin de réduire la charge.
Commençons par installer dev-db/mysql dans sa version 4.1 ou supérieure :
# USE="berkdb perl ssl latin1" emerge -av dev-db/mysql
Initialisez le système de gestion de base de données :
# /usr/bin/mysql_install_db
Lancez le démon et mettez le au runlevel default :
# /etc/init.d/mysql start
# rc-update -a mysql default
Définissez le mot de passe root mysql :
# /usr/bin/mysqladmin –u root password <motdepasse>
Le serveur d’administration va vous permettre d’intérroger la base de données d’OCS Inventory NG. Installons donc net-www/apache :
# USE="apache2 ssl" emerge –av net-www/apache \
www-apache/mod_perl
Installez dev-lang/php :
# USE="apache2 berkdb bzip2 \
cli expat gd memlimit mysql nls \
pcre session ssl xml xsl zip zlib" \
emerge -av =dev-lang/php-4.* dev-lang/php
Assurez-vous d’utiliser la version 4 de php :
# php-select php php4
Modifiez le fichier /etc/conf.d/apache2 afin qu’apache prenne en compte le language perl et php :
[/etc/conf.d/apache2]
APACHE2_OPTS=”-D DEFAULT_VHOST –D SSL –D PHP4 –D SSL_DEFAULT_VHOST
–D PERL"
lancez apache et mettez-le au runlevel default :
# /etc/init.d/apache2 start
# rc-update -a apache2 default
Pour le bon fonctionement du serveur de communication installez les modules perl suivants :
# emerge –av dev-perl/libwww-perl dev-perl/XML-Simple \
dev-perl/Compress-Zlib dev-perl/DBI \
dev-perl/DBD-mysql dev-perl/Apache-DBI
Pour l’utilisation de l’option ipdiscover depuis l’interface d’administration :
# emerge -av dev-perl/Net-IP
Si dans votre parc vous avez des win-win ( ;-) ), vous aurez besoin de nmblookup :
#emerge –av net-fs/samba
Mais aussi nmap :
# emerge -av net-analyzer/nmap
Téléchargeons les archives sur le site http://ocsinventory.sourceforge.net , décompressez-les et patchez-les :
# tar -xvzf OCSNG_LINUX_SERVER_1.0-RC2-FINAL.tar.gz
# tar OCSNG_PATCH_SERVER_RC2-1.tar.gz
# cp OCSNG_PATCH_SERVER_RC2-1/ocsreports/preferences.php \
OCSNG_LINUX_SERVER_1.0-RC2/ocsreports/
# cp OCSNG_PATCH_SERVER_RC2-1/Ocsinventory.pm_4_mp_since_1.999_22/Ocsinventory.pm \
OCSNG_LINUX_SERVER_1.0-RC2/ocsinventory-NG/
# cp OCSNG_LINUX_SERVER_1.0-RC2/ipdiscover-util/ipdiscover-util.pl \
OCSNG_LINUX_SERVER_1.0-RC2/ocsreports/
Installez les scripts php et modifiez les droits comme suit :
# cp -r OCSNG_LINUX_SERVER_1.0-RC2/ocsreports \
/var/www/localhost/htdocs
# chown –R root:apache /var/www/localhost/htdocs/ocsreports
# chmod gu+w /var/www/localhost/htdocs/ocsreports
# chmod gou+rx /var/www/localhost/htdocs/ocsreports/css
# chmod gou+rx /var/www/localhost/htdocs/ocsreports/files
# chmod gou+rx /var/www/localhost/htdocs/ocsreports/image
# chmod gou+rx /var/www/localhost/htdocs/ocsreports/languages
Installons les scripts propre au serveur de communication :
# cp -r OCSNG_LINUX_SERVER_1.0-RC2/ocsinventory-NG /usr/local
Modifiez-y le fichier Ocsinventory_startup.pl :
use lib "/usr/local/ocsinventory-NG";
use XML::Simple;
use Compress::Zlib;
use Apache::DBI;
use DBI;
use Net::IP;
1;
Maintenant, configurez et chargez OCS Inventory NG comme un module d’apache :
# cp /usr/local/ocsinventory-NG/apache_config \
/etc/apache2/modules.d/99_ocsinventory-NG.conf
Modifiez le fichier /etc/apache2/modules.d/99_ocsinventory-NG.conf en y modifiant ce qui suit :
[/etc/apache2/modules.d/99_ocsinventory-NG.conf]
<IfDefine OCSNG>
PerlRequire /usr/local/ocsinventory-NG/Ocsinventory_startup.pl
[...]
</IfDefine>
Puis/etc/conf.d/apache2 :
[/etc/conf.d/apache2]
APACHE2_OPTS=”[...]-D OCSNG [...]"
Créez le repertoire des logs d’OCS Inventory NG :
# mkdir /var/log/ocsinventory-NG
# chown apache:apache /var/log/ocsinventory-NG
Ensuite redémarrez apache :
# /etc/init.d/apache2 restart
Avec votre navigateur web, connectez-vous à http://ip_serveur/ocsreports, et renseignez les différents champs. Pour la première connexion les login et mot de passe sont admin : pensez à les modifier.
Téléchargez depuis le site http://glpi-project.org/ l’archive correspondant à la dernière version stable et décompressez-là sur votre serveur web :
# tar zxvf glpi-<version>.tar.gz -C /var/www/localhost/htdocs/
Augmentez la mémoire allouée à l’exécution des scripts php en modifiant le fichier /etc/php/apache2-php4/php.ini comme suit :
memory_limit = 16M
modifiez les propriétaires et droits de certains repertoire pour le bon fonctionement de GLPI :
# chown apache:apache /var/www/localhost/htdocs/glpi/backups/dump
# chmod 700 /var/www/localhost/htdocs/glpi/backups/dump
# chown apache:apache /var/www/localhost/htdocs/glpi/docs
# chmod 700 /var/www/localhost/htdocs/glpi/docs
# chown apache:apache /var/www/localhost/htdocs/glpi/glpi/config
# chmod 700 /var/www/localhost/htdocs/glpi/glpi/config
Toujours avec votre navigateur web, allez sur http://ip_serveur/glpi et procédez à la création de la base de données. Pour une première connexion, les login et mot de passe sont glpi... Une fois connecté, allez dans Administration, Configuration, et activez le mode OCSNG.
Tout d’abord installons les modules perl nécéssaires au client :
# emerge -av dev-perl/libwww-perl dev-perl/XML-Simple \
dev-perl/Compress-Zlib dev-perl/Net-IP
Puis télécharger sur le site http://ocsinventory.sourceforge.net le client Linux, décompressez l’archive et éxecutez le script ocsinventory-installer.pl. Choisissez l’option http, entrez l’adresse IP du serveur, activez ou non l’auto-update, vous pouvez ensuite laisser l’option tag qui est facultative.
Allez vérifier, via l’interface d’administration d’OCS Inventory NG, que la machine est bien rentrée dans la base, si c’est le cas, il ne vous reste plus qu’à l’importer via l’interface de GLPI.
Je remercie en particulier Gael Durando qui est l’auteur originel de cette documentation.