BI – Installation de JasperReports sur CentOS 6
Je vous avais présenté (j’ai surtout survolé) précédemment la solution open source SpagoBI. Le monde de l’aide à la décision est massivement constitué d’outils propriétaires, mais il existe d’autres alternatives opensource. C’est le cas de la solution JasperReports qui fourni un portail web qui permettra d’héberger et de mettre à la disposition des utilisateurs de très beau rapports.
La force pour moi de JasperReports, c’est que la création des rapports y est assez simple et permet de faire le rendu que l’on désire au pixel près. Les créatifs pourront donc faire de très joli rendus.
JasperReports est produit pas une société : JasperSoft, qui propose un produit « entrée de gamme » open source qui est libre et une version plus évoluée qui elle n’est pas fournie sous licence open source.
Les versions payantes en fonction de l’option choisie permettent en autre de réaliser des requêtes ad-hoc, de gérer les accès aux rapports, de créer des dashboards, etc …
Je vous détaille ici la mise en place de la version open source disponible sur jasperforge.
Pré-requis
Tout d’abord, nous allons commencer par télécharger l’archive JasperReports-server.
J’ai choisi de prendre le war pour la simple et bonne raison, que les autres versions embarquent un serveur d’appplication ainsi que la base de données. Et je préfère utiliser les fonctionnalités de mon système d’exploitation, l’intégration n’en sera que plus propre.
Afin de pouvoir installer jasperreports, il est nécessaire d’avoir un serveur d’application ainsi qu’une base de données pour le moteur.
Nous utiliserons tomcat pour le serveur d’application et postgresql pour la base de données (tel que recommandé par jaspersoft)
Installation et configuration de PostgreSQL
Remarque : Pour plus de détail sur l’installation de PostgreSQL, vous pouvez jeter un œil à la documentation fedora-fr sur le sujet.
Nous commençons par installer la base de données et le connecteur jdbc associé:
# yum install postgresql-server postgresql-jdbc
Une fois postgresql installé, il est nécessaire d’initialiser une base de données :
# service postgresql initdb
Si tout se passe bien vous avez pour réponse :
# Initialisation de la base de données : [ ok ]
Ensuite il est nécessaire de démarrer le service :
# service postgresql start
Si vous souhaitez que son lancement soit automatique lors du démarrage de la machine :
# chkconfig postgresql on
Nous définissions ensuite le mot de passe de l’utilisateur postgres :
# su - postgres $ psql postgres=# ALTER USER postgres WITH PASSWORD 'mon_password';
Et afin d’être propre nous allons créer un utilisateur spécifique pour JasperReports :
$ psql # CREATE USER jruser; # ALTER ROLE jruser WITH CREATEDB; # ALTER USER jruser WITH ENCRYPTED PASSWORD 'jrpassword';
Afin de permettre la connexion à un utilisateur qui n’est pas défini sous unix, nous allons modifier la configuration de postgres en éditant le fichier /var/lib/pgsql/data/pg_hba.conf :
Modifier le fichier en remplaçant ident par md5 afin d’obtenir les lignes suivantes :
# "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
Pour que les modifications prennent effet il faut redémarrer le serveur :
# service postgresql restart
Installation et configuration de Tomcat
L’installation est toujours aussi simple, il nous suffira de faire appel à yum :
# yum install tomcat6*
Il est ensuite nécessaire de définir un utilisateur qui pourra administrer tomcat, pour se faire éditer le fichier /etc/tomcat6/tomcat-users.xml et ajouter les lignes suivantes dans la section tomcat-users :
<role rolename="manager"/> <user username="tomcat" password="tomcat" roles="manager"/>
Il est nécessaire d’ajouter le driver de connexion dans les libraires de tomcat :
# ln -s /usr/share/java/postgresql-jdbc.jar /usr/share/tomcat6/lib/
A noter : cette action sera aussi nécessaire en fonction des bases de données qui devront être accédées par vos rapports.
Nous pouvons ensuite démarrer le service tomcat6 et se connecter à l’interface d’administration. Attention pour que tomcat fonctionne il est nécessaire d’avoir un service apache fonctionnel :
# service httpd start # service tomcat6 start # chkconfig httpd on # chkconfig tomcat6 on
Installation de JasperReports
Il est nécessaire dans un premier temps de décompresser l’archive téléchargée précédemment.
Puis nous allons créer un fichier default_master.properties dans le répertoire buildomatic qui contiendra :
# application server type (default is tomcat6) appServerType = tomcat6 # Tomcat app server root dir appServerDir = /var/lib/tomcat6 # database type dbType=postgresql # database location and connection settings dbHost=localhost dbUsername=jruser dbPassword=jrpassword # additional database parameters # (uncomment these if you want non-default settings) # dbPort=5432 # JasperServer db name, sample db names # js.dbName=jasperserver # sugarcrm.dbName=sugarcrm # foodmart.dbName=foodmart
Une fois le fichier de configuration mis à jour nous pouvons tester si tout est ok pour l’installation :
# cd buildomatic # ./js-install-ce.sh test
Si tout va bien, nous pouvons procéder à l’installation :
# ./js-install-ce.sh minimal ... install-minimal-ce: [echo] Installation successfully completed! BUILD SUCCESSFUL Total time: 2 minutes 4 seconds Checking Ant return code: OK
Note : Si on ne passe pas l’argument minimal, les databases de test foodmart et sugarcrm seront installées.
Afin que jaspersoft puisse fonctionner correctement, il est nécessaire qu’il puisse écrire (ses logs par exemple) dans la webapps. Nous allons spécifier que tomcat est le propriétaire de jasperserver :
# cd /usr/share/tomcat6/webapps # chown -R tomcat:tomcat jasperserver
Bien vérifier que la connexion définie dans /usr/share/tomcat6/conf/Catalina/localhost/jasperserver.xml est correcte
Par défaut l’application est configurée avec deux comptes utilisateurs :
- Un compte administrateur : jasperadmin avec le mot de passe jasperadmin
- Un compte utilisateur : joeuser avec le mot de passe joeuser
Voici un aperçu de l’interface de l’administrateur :
Nous voila avec un portail JasperReports fonctionnel, il est maintenant nécessaire de créer les rapports avec le Studio de développement iReport.