Pentaho BI server-ce con Postgres e LDAP in CENTOS 6 e 7

Installazione e configurazione di Pentaho BI Server | 9/6/2018

 Supponendo di aver già installato e configurato Postgresql e Java JDK potremmo proseguire con il nostro tutorial per installare BIServer-ce.6.1.0.1-916.

 

 

Installazione
-------------------------

1) Descompattare BISERVER

unzip biserver-ce-6.1.0.1-196.zip -d /srv/biserver-ce

2) Cambiare proprietario alla directory /srv/biserver-c

chown -R tomcat.tomcat /srv/biserver-ce

3) Cambiare utente per poter eseguire biserver-ce

su tomcat

4) Cambiare directory per poter eseguire biserver-ce

cd /srv/biserver-ce

5) eseguire biserver-ce

./start-pentaho.sh

6) aprire il browser e inserire l'indirizzo:

IP_Server:8080/pentaho/Login

7) fare il login con l'utente "Admin" e password "password"

 

## Postgresql e BISERVER-CE

1) Uscire dall'utente tomcat

exit

2) creare i database di BISERVER-CE in Postgresql

sudo -u postgres psql -f /srv/biserver-ce/data/postgresql/create_jcr_postgresql.sql
sudo -u postgres psql -f /srv/biserver-ce/data/postgresql/create_repository_postgresql.sql

N.B.: prima di creare il database quartz accedere a postgres

su postgres
psql

ed eseguire i comandi di basso, possono essere eseguiti tutti in una volta:

drop database if exists quartz;
drop user if exists pentaho_user;
CREATE USER pentaho_user PASSWORD 'password';
CREATE DATABASE quartz  WITH OWNER = pentaho_user  ENCODING = 'UTF8' TABLESPACE = pg_default;
GRANT ALL ON DATABASE quartz to pentaho_user;

4) per uscire da postgresql

\q 

5) uscire da utente postgres con

exit 

dopo di questo passo editare il file:

vim /srv/biserver-ce/data/postgresql/create_quartz_postgresql.sql

commentando il gruppo di linee che sono state eseguite sopra e anche la linea \connect.

e eseguire di nuovo il comando:

su postgres
psql -d quartz -U pentaho_user -h localhost -W -f /srv/biserver-ce/data/postgresql/create_quartz_postgresql.sql

oppure

psql -d quartz -f /srv/biserver-ce/data/postgresql/create_quartz_postgresql.sql

 

N.B. occorre creare anche la tabella QRTZ
dalla console di postgres, dopo essere entrati con l'utente pentaho_user

 

 psql -U pentaho_user -d quartz -W -h localhost
 

12) digitare la password che è: "password"
digitare la sequenza in basso:

CREATE TABLE "QRTZ"
(
NAME VARCHAR(200) NOT NULL,
PRIMARY KEY (NAME)
);
ALTER TABLE "QRTZ" OWNER TO pentaho_user;
 

13) per uscire da postgresql

\q

14) per uscire dall'utente postgres

exit

15) creare uno script con il nome di pentaho dentro la directory /etc/init.d/

sudo vim  /etc/init.d/pentaho

e inserire le righe in basso

#!/bin/bash
# chkconfig: 3 98 99
# description: Pentaho Service

#export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
#export JRE_HOME=$JAVA_HOME/jre
#export PATH=$JAVA_HOME/bin:$PATH

# Pentaho7
# PENTAHO_HOME=/srv/pentaho-server>

# Pentaho 6
PENTAHO_HOME=/srv/biserver-ce
PENTAHO_SOLUTION_HOME=$PENTAHO_HOME/pentaho-solutions

function stop_pentaho {
         su tomcat -c "$PENTAHO_HOME/stop-pentaho.sh"
        #rm -fr $PENTAHO_HOME/tomcat/work/* $PENTAHO_HOME/tomcat/temp/* $PENTAHO_SOLUTION_HOME/system/jackrabbit/repository/workspaces/default $PENTAHO_SOLUTION_HOME/system/karaf/caches/* $HOME/.pentaho;
        rm -fr $PENTAHO_HOME/tomcat/work/* $PENTAHO_HOME/tomcat/temp/* $PENTAHO_SOLUTION_HOME/system/jackrabbit/repository/* $PENTAHO_SOLUTION_HOME/system/karaf/caches/* $HOME/.pentaho $PENTAHO_SOLUTION_HOME/system/tmp/*;
        sleep 10;
    }

function start_pentaho {
         su tomcat -c "$PENTAHO_HOME/start-pentaho.sh"
         sleep 10;
    }

    case "$1" in

      start)
        start_pentaho
      ;;

      stop)
         stop_pentaho
      ;;

      restart)
        stop_pentaho
        sleep 10;
        start_pentaho
      ;;

      *)
         echo "Usage: /etc/init.d/pentaho {start|stop|restart}"
         exit 1
    esac

    exit 0

alla fine rendere il file exeguibile con il comando

sudo chmod +x /etc/init.d/pentaho

questo servirà a avviare il pentaho-server ogni volta che la macchina verrà fatta ripartire.

16) cambiare utente con

su tomcat

17) modificare il file

vim /srv/biserver-ce/pentaho-solutions/system/applicationContext-spring-security-hibernate.properties

sostituendo tutto il contenuto con le linee in basso:

      jdbc.driver=org.postgresql.Driver
      jdbc.url=jdbc:postgresql://localhost:5432/hibernate
      jdbc.username=hibuser
      jdbc.password=password
      hibernate.dialect=org.hibernate.dialect.HSQLDialect

18) modificare il file

vim /srv/biserver-ce/pentaho-solutions/system/jackrabbit/repository.xml

##Filesystem
--Decommentare--

    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
    <param name="driver" value="org.postgresql.Driver"/>
    <param name="url" value="jdbc:postgresql://localhost:5432/jackrabbit"/>
    <param name="user" value="jcr_user"/>
    <param name="password" value="password"/>
    <param name="schema" value="postgresql"/>
    <param name="schemaObjectPrefix" value="fs_repos_"/>
    </FileSystem>
--Commentare--
<!--  <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
     <param name="path" value="${rep.home}/repository"/>
  </FileSystem>-->

##Datastore
--Decommentare--

  <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
    <param name="url" value="jdbc:postgresql://localhost:5432/jackrabbit"/>
    <param name="driver" value="org.postgresql.Driver"/>
    <param name="user" value="jcr_user"/>
    <param name="password" value="password"/>
    <param name="databaseType" value="postgresql"/>
    <param name="minRecordLength" value="1024"/>
    <param name="maxConnections" value="3"/>
    <param name="copyWhenReading" value="true"/>
    <param name="tablePrefix" value=""/>
    <param name="schemaObjectPrefix" value="ds_repos_"/>
  </DataStore>

--Commentare--

<!--
  <DataStore class="org.apache.jackrabbit.core.data.FileDataStore"/>
-->

##FileSystem WorkSpace:

--Decommentare--

<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
      <param name="driver" value="org.postgresql.Driver"/>
      <param name="url" value="jdbc:postgresql://localhost:5432/jackrabbit"/>
      <param name="user" value="jcr_user"/>
      <param name="password" value="password"/>
      <param name="schema" value="postgresql"/>
      <param name="schemaObjectPrefix" value="fs_ws_"/>
    </FileSystem>

--Commentare--

<!--
    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
      <param name="path" value="${wsp.home}"/>
    </FileSystem>
-->

## PersistenceManager:

--Decommentare--

<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
      <param name="url" value="jdbc:postgresql://localhost:5432/jackrabbit"/>
      <param name="driver" value="org.postgresql.Driver"/>
      <param name="user" value="jcr_user"/>
      <param name="password" value="password"/>
      <param name="schema" value="postgresql"/>
      <param name="schemaObjectPrefix" value="${wsp.name}_pm_ws_"/>
    </PersistenceManager>

--Commentare--

<!--
    <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
      <param name="url" value="jdbc:h2:${wsp.home}/db"/>
      <param name="schemaObjectPrefix" value="${wsp.name}_"/>
    </PersistenceManager>
-->

##FileSystem Version:
--Decommentare--

<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
      <param name="driver" value="org.postgresql.Driver"/>
      <param name="url" value="jdbc:postgresql://localhost:5432/jackrabbit"/>
      <param name="user" value="jcr_user"/>
      <param name="password" value="password"/>
      <param name="schema" value="postgresql"/>
      <param name="schemaObjectPrefix" value="fs_ver_"/>
    </FileSystem>

--Commentare--

<!--
    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
      <param name="path" value="${rep.home}/version" />
    </FileSystem>
-->

##PersistenceManager Version:
--Decommentare--

<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
      <param name="url" value="jdbc:postgresql://localhost:5432/jackrabbit"/>
      <param name="driver" value="org.postgresql.Driver"/>
      <param name="user" value="jcr_user"/>
      <param name="password" value="password"/>
      <param name="schema" value="postgresql"/>
      <param name="schemaObjectPrefix" value="pm_ver_"/>
    </PersistenceManager>

--Commentare--

<!--
    <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
      <param name="url" value="jdbc:h2:${rep.home}/version/db"/>
      <param name="schemaObjectPrefix" value="version_"/>
    </PersistenceManager>
-->

19) modificare il file

vim /srv/biserver-ce/pentaho-solutions/system/hibernate/hibernate-settings.xml

      e verificare che il file di configurazione appunti al file corretto come nella linea in basso

<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>

20) modificare il file

vim /srv/biserver-ce/pentaho-solutions/system/hibernate/postgresql.hibernate.cfg.xml

     verificando che sia presente il seguente blocco inerente a Postgresql

<!--  Postgres 8 Configuration -->
    <property name="connection.driver_class">org.postgresql.Driver</property>
    <property name="connection.url">jdbc:postgresql://localhost:5432/hibernate</property>
    <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
    <property name="connection.username">hibuser</property>
    <property name="connection.password">password</property>
    <property name="connection.pool_size">10</property>
    <property name="show_sql">false</property>
    <property name="hibernate.jdbc.use_streams_for_binary">true</property>

21) modificare il file

vim /srv/biserver-ce/pentaho-solutions/system/simple-jndi/jdbc.properties

     sostituendo il contenuto con le righe sotto:

Hibernate/type=javax.sql.DataSource
Hibernate/driver=org.postgresql.Driver
Hibernate/url=jdbc:postgresql://localhost:5432/hibernate
Hibernate/user=hibuser
Hibernate/password=password
Quartz/type=javax.sql.DataSource
Quartz/driver=org.postgresql.Driver
Quartz/url=jdbc:postgresql://localhost:5432/quartz
Quartz/user=pentaho_user
Quartz/password=password

22) modificare il file

vim /srv/biserver-ce/tomcat/webapps/pentaho/META-INF/context.xml
  <Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
   factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
   maxWaitMillis="10000" username="hibuser" password="password"
   driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/hibernate"
   validationQuery="select 1" />
  <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
    maxWaitMillis="10000" username="pentaho_user" password="password"
    driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/quartz"
    validationQuery="select 1"/>

23) modificare il file commentando le sezioni in basso

vim /srv/biserver-ce/tomcat/webapps/pentaho/WEB-INF/web.xml
<!-- [BEGIN HSQLDB DATABASES]
 <context-param>
 <param-name>hsqldb-databases</param-name>
 <param-value>sampledata@../../data/hsqldb/sampledata,hibernate@../../data/hsqldb/hibernate,quartz@../../data/hsqldb/quartz</param-value>
 </context-param>
[END HSQLDB DATABASES] -->
<!-- <filter>
 <filter-name>SystemStatusFilter</filter-name>
 <filter-class>org.pentaho.platform.web.http.filters.SystemStatusFilter</filter-class>
 <init-param>
 <param-name>initFailurePage</param-name>
 <param-value>InitFailure</param-value>
 <description>This page is displayed if the PentahoSystem fails to properly initialize.</description>
 </init-param>
</filter> -->
<!-- <filter-mapping>
 <filter-name>SystemStatusFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping> -->
<!-- [BEGIN HSQLDB STARTER]
 <listener>
 <listener-class>org.pentaho.platform.web.http.context.HsqldbStartupListener</listener-class>
 </listener>
[END HSQLDB STARTER] -->

24) Avviare Biserver-ce

/etc/init.d/pentaho start

25) fare il login con l'utente Admin e la password: password

26) cliccare sul menu "Administration" -> "Users and Roles"

27) creare un utente con il nome "anonymousUser" e la password "password"

28) dopo andare nella scheda "System Roles"

29) selezionare nella finestra Roles il gruppo Anonymous

30) attribuire i permessi di esecuzione e lettura

31) "Browser Files" cliccare sulla directory anonymousUser e vedere le proprietà

32) con il bottone "Add" aggiungere il gruppo "Anonymous"

33) e dare tutti i permessi al gruppo "Anonymous" "anonymousUser"

 

##Inserire il BIserver-ce nell'LDAP

34) Fermare Biserver-ce

/etc/init.d/pentaho stop

35) passiamo alla configurazione di accesso al sistema di autenticazione LDAP
      editiamo il file "applicationContext-security-ldap.properties"

vim /srv/biserver-ce/pentaho-solutions/system/applicationContext-security-ldap.properties

       Questo è il contenuto originale che verrà modificato in accordo con le esigenze proprie.

contextSource.providerUrl=ldap\://localhost\:10389/ou\=system
contextSource.userDn=uid\=admin,ou\=system
contextSource.password=secret
userSearch.searchBase=ou\=users
userSearch.searchFilter=(cn\={0})
populator.convertToUpperCase=false
populator.groupRoleAttribute=cn
populator.groupSearchBase=ou\=roles
populator.groupSearchFilter=(roleOccupant\={0})
populator.rolePrefix=
populator.searchSubtree=false
allAuthoritiesSearch.roleAttribute=cn
allAuthoritiesSearch.searchBase=ou\=roles
allAuthoritiesSearch.searchFilter=(objectClass\=organizationalRole)
allUsernamesSearch.usernameAttribute=uid
allUsernamesSearch.searchBase=ou\=users
allUsernamesSearch.searchFilter=objectClass\=Person
adminRole=cn\=Administrator,ou\=roles
adminUser=uid\=admin,ou\=users

36) adesso andiamo a cambiare l'accesso per il server LDAP editando il file "security.properties"

vim /srv/pbiserver-ce/pentaho-solutions/system/security.properties

      e sostituiamo il valore di provider che, come default, ha "jackrabbit" con "ldap"

      Esempio:

#provider=jackrabbit
provider=ldap
requestParameterAuthenticationEnabled=true

# This flag indicates whether or not UserDetailsService is called during creation of user's principal.
# If the service is external (e.g. LDAP or JDBC-based auth is used) then such calls can be expensive.
# On the other hand, if user has been removed within external service, then it becomes impossible to
# prevent principal creation when the verification is muted

skipUserVerificationOnPrincipalCreation=true

37) verificare il file

vim /srv/biserver-ce/pentaho-solutions/system/repository.spring.properties

      se il nome dell'amministratore è corretto

#nelle due linee in basso sarà inserito l'utente che deve essere l'amministratore di BIServer-ce e che sarà definito nell'LDAP

singleTenantAdminDefaultUserName=admin   #<--Modificare l'utente 
singleTenantAdminUserName=admin          #<--Modificare l'utente
singleTenantAdminDefaultAuthorityName=Administrator
singleTenantAdminAuthorityName=Administrator
repositoryAdminUsername=pentahoRepoAdmin
singleTenantAuthenticatedAuthorityName=Authenticated
singleTenantAnonymousAuthorityName=Anonymous
superAdminAuthorityName=SysAdmin
superAdminUserName=super
systemTenantAdminUserName=system
systemTenantAdminPassword=cGFzc3dvcmQ=
cache-size=100
cache-ttl=300
versioningEnabled=false
versionCommentsEnabled=false
# This is the property to enable/disable multi byte encoding in the repository
# This property can only be changed to "true" if you are installing it fresh. For upgrades,
# this must be set to false.
useMultiByteEncoding=false

38) Rieseguire di nuovo il Biserver-ce

/etc/init.d/pentaho start

39) verificare se già è stato possibile fare il login con l'utente di rete presente nell'LDAP.

Buon Lavoro a tutti.wink
 


Categorie
Cookie Law