Instalación de Bonita Open Solution 5.10 en CentOS 6.3

...

En este artículo se describe el procedimiento para instalar y configurar los componentes necesarios para la ejecución de Bonita Open Solution en Tomcat sobre CentOS 6.3.

Dicho procedimiento contempla que el sistema operativo se encuentre instalado y la configuración de la interfaz de red realizada.

Los componentes a instalar / configurar son:

  • Java Virtual Machine 6 (JVM)
  • Apache Tomcat Server 6.0.25
  • MySQL 5.1
  • Bonita Open Solution 5.10

El procedimiento se realizará con el usuario 'root' o con un usuario que tenga permisos para realizar acciones en su nombre (sudoer).

Java Virtual Machine (JVM)

Instalación

Abrir una ventana de terminal y ejecutar el siguiente comando:

# yum -y install java

Apache Tomcat Server 6

Instalación

Abrir una ventana de terminal y ejecutar el siguiente comando:

# yum -y install tomcat6 tomcat6-webapps tomcat6-admin-webapps

A continuación iniciar el servidor con el comando:

# service tomcat6 start

Y luego ejecutar los comandos para verificar la instalación:

# service tomcat6 status
tomcat6 (pid xxxxx) is running... [ OK ]
# netstat -nlp|grep 800
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN xxxxx/java
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN xxxxx/java
# netstat -nlp|grep 8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN xxxxx/java

Nos será de utilidad conocer la ubicación de los siguientes directorios para tareas de configuración posteriores:

/etc/tomcat6 (this is where the main tomcat config files reside)
/usr/share/tomcat6/conf
/usr/share/tomcat6/lib
/usr/share/tomcat6/logs
/usr/share/tomcat6/webapps

Configuración

Inicio como servicio

Para configurar el inicio automático del servicio se debe ejecutar los siguientes comandos:

# /sbin/chkconfig tomcat6 on

Firewall

Se debe habilitar el acceso al servidor a través del puerto 8080. Para ello, será necesario modificar el archivo “/etc/sysconfig/iptables” y agregar la línea resaltada:

# Generated by iptables-save v1.4.7 on Wed Apr 17 13:09:46 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Wed Apr 17 13:09:46 2013

Nota: la línea agregada debe quedar por encima de la regla que tiene la acción “REJECT”.

Luego, ejecutar el siguiente comando para recargar la configuración:

# service iptables restart

En este punto se debe poder verificar el acceso al servidor Tomcat a través de la siguiente URL:

http://[HOSTNAME o IP_ADDRESS]:8080/

MySQL 5.1

Instalación

Abrir una ventana de terminal y ejecutar el siguiente comando:

# yum -y install mysql mysql-server

A continuación iniciar el servidor con el comando:

# service mysqld start

Y luego ejecutar el siguiente comando para verificar la instalación:

# service mysqld status
mysqld (pid xxxxx) is running... [ OK ]

Configuración

Inicio como servicio

Para configurar el inicio automático del servicio se debe ejecutar el siguiente comando:

# /sbin/chkconfig mysqld on

Seguridad

A continuación se realizará la configuración de seguridad del servidor de base de datos. Para ello, se debe ejecutar el siguiente comando:

# mysql_secure_installation

Luego se solicitará una serie de confirmaciones y la nueva contraseña:

Enter current password for root (enter for none): ENTER

Set root password? [Y/n] y
New password: nueva_contraseña
Re_enter new password: nueva_contraseña
Password updated sucessfully!
Reloading privilege tables..
... Success!

Remove anonymous users? [Y/n] y
... Success!

Disallow root login remotely? [Y/n] (dependerá de la forma en que se desee administrar)

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

Bonita Open Solution 5.10

Antes de comenzar el procedimiento de instalación y configuración de Bonita Open Solution se debe bajar el servidor Tomcat ejecutando el siguiente comando:

# service tomcat6 stop

Instalación

Descarga

Descargar el archivo “BOS-5.10-deploy.zip” del sitio de BonitaSoft, sección “Bundles”, opción “Bonita BPM Deployment” (http://www.bonitasoft.com/products/download-bpm-software-and-documentation).

Descomprimir el contenido en una carpeta temporal.

En las próximas secciones del documento esta nueva carpeta será referenciada como <BOS-5.10-deploy>.

Despliegue en servidor Tomcat

1.- Copiar las librerías del motor de ejecución de Bonita

Crear una carpeta llamada:

<TOMCAT_HOME>/lib/bonita

Copiar todos los archivos *.jar de las siguientes carpeta a la recién creada.

<BOS-5.10-deploy>/bonita_execution_engine/engine/libs

<BOS-5.10-deploy>/bonita_execution_engine/bonita_client/libs 

Nota: Sobre-escribir cualquier archivo duplicado.

Modificar el archivo 

<TOMCAT_HOME>/conf/catalina.properties 

para agregar: 

${catalina.home}/lib/bonita/*.jar 

a la propiedad

common.loader

Deberá quedar del siguiente modo:

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/lib/bonita/*.jar

2.- Desplegar la aplicación web User Experience (archivo .war)

Copiar

<BOS-5.10-DEPLOY>/bonita_user_experience/without_execution_engine_without_client/bonita.war

a

<TOMCAT_HOME>/webapps

Configuración

Configuración de base de datos

Se deberán crear las siguientes bases de datos:

  • bonita_journal
  • bonita_history

Para ello, se deberán ejecutar los siguientes comandos:

# mysql -u root -p (se solicitará la contraseña)

mysql> create database bonita_history;

mysql> create database bonita_journal;

mysql> GRANT ALL PRIVILEGES ON bonita_history.* TO 'root'@'localhost' WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON bonita_journal.* TO 'root'@'localhost' WITH GRANT OPTION;

Nota: En el procedimiento se realiza la configuración utilizando el usuario de base de datos 'root', es posible crear un nuevo usuario, sólo será necesario modificar los parámetros de conexión en los pasos posteriores.

Configuración de Bonita

1.- Copiar configuraciones al servidor Tomcat

Copiar las carpetas “bonita” y “external” de

<BOS-5.10-DEPLOY>/conf

a

<TOMCAT_HOME> (/etc/tomcat6) o /usr/share/tomcat6/conf/

Luego, modificar el grupo y los permisos sobre estas carpetas con los siguientes comandos:

# chgrp -R tomcat bonita/
# chgrp -R tomcat external/
# chmod -R 775 bonita/
# chmod -R 775 external/
2.- Configuración de bases de datos

Será necesario modificar los siguientes archivos de configuración:

<TOMCAT_HOME>/bonita/server/default/conf/bonita-journal.properties

<TOMCAT_HOME>/bonita/server/default/conf/bonita-history.properties

A continuación se detallan los cambios a realizar paso a paso.

En ambos archivos se debe desactivar la base de datos H2 configurada por defecto, para ello se debe comentar las siguientes propiedades:

hibernate.connection.driver_class ...
hibernate.connection.url ...
hibernate.connection.username ...
hibernate.connection.password ...
hibernate.dialect org.hibernate.dialect.H2Dialect
bonita.hibernate.interceptor 
org.ow2.bonita.env.interceptor.H2DescNullFirstInterceptor

En ambos archivos se debe activar y completar la configuración de la base de datos MySQL. Para ello, se deben realizar dos pasos. Primero se debe des-comentar y completar las siguientes líneas:

hibernate.connection.datasource java:/comp/env/bonita/default/...
##
# MYSQL

hibernate.dialect org.hibernate.dialect.MySQL5InnoDBDialect

bonita.hibernate.interceptor org.ow2.bonita.env.interceptor.MySQLDescNullFirstInterceptor

Nota: Durante la edición del los archivos de configuración, utilizar sólo espacios como separador.

Luego, se debe agregar las líneas resaltadas al archivo:

<TOMCAT_HOME>/conf/context.xml

<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
...


<Resource name='bonita/default/journal'
     auth='Container'
     type='javax.sql.DataSource'
     username='[USUARIO]'
     password='[CONTRASEÑA]'
     driverClassName='com.mysql.jdbc.Driver'
     url='jdbc:mysql://localhost:3306/bonita_journal?dontTrackOpenResources=true'
     initialSize='5'
     maxActive='30'
     maxIdle='10'
     maxWait='120000'
     removeAbandoned='true' removeAbandonedTimeout='60' logAbandoned='true'>
     <ResourceLink
          global="bonita/default/journal"
          name="bonita/default/journal"
          type="javax.sql.DataSource" />
</Resource>

<Resource name='bonita/default/history'

     auth='Container'
     type='javax.sql.DataSource'
     
username='[USUARIO]'
     
password='[CONTRASEÑA]'
     
driverClassName='com.mysql.jdbc.Driver'
     
url='jdbc:mysql://localhost:3306/bonita_history?dontTrackOpenResources=true'
     
initialSize="5"
     
maxActive='30'
     
maxIdle='10'

     maxWait='120000'
     
removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
     
<ResourceLink

          global="bonita/default/history"
          
name="bonita/default/history"
          
type="javax.sql.DataSource" /
</Resource>


</Context>

Se debe reemplazar los siguientes valores:

  • [USUARIO]: usuario de conexión a la base de datos.
  • [CONTRASEÑA]: contraseña del usuario de conexión a la base de datos.
3.- Copiar librerías de MySQL

Descargar el archivo “mysql-connector-java-5.1.24.zip” del sitio de MySQL (http://dev.mysql.com/downloads/connector/j/).

Descomprimir y copiar la librería “mysql-connector-java-5.1.24-bin.jar” a la carpeta:

<TOMCAT_HOME>/server/default/lib

4.- Configuración de variables de entorno

Modificar el archivo:

<TOMCAT_HOME>/conf/tomcat6.conf

Debajo de la definición de las variables “CATALINA_BASE”, “CATALINA_HOME”, “JASPER_HOME” y “CATALINA_TMPDIR”, se debe agregar las siguientes líneas:

BONITA_HOME="-DBONITA_HOME=$CATALINA_HOME/conf/bonita"

LOG_OPTS="-Djava.util.logging.config.file=$CATALINA_HOME/conf/external/logging/logging.properties"

SECURITY_OPTS="-Djava.security.auth.login.config=$CATALINA_HOME/conf/external/security/jaas-standard.cfg -Djava.security.auth.admins=$CATALINA_HOME/conf/external/security/security-auth-admins.properties"

Y modificar la otra, agregando la línea restaltada:

JAVA_OPTS="${JAVA_OPTS} -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory ${BONITA_HOME} ${LOG_OPTS} ${SECURITY_OPTS}"
5.- Iniciar el servidor y aplicar el schema a la base de datos

Al acceder por primera vez a la aplicación se producirá la generación de las tablas necesarias para el funcionamiento de la plataforma en forma automática. Para ello, se deberá iniciar el servidor Tomcat:

# service tomcat6 start

Y luego, se deberá iniciar sesión, accediendo a la siguiente URL:

http://[SERVER HOSTNAME OR IP]:8080/bonita

Utilizar como usuario y contraseña: admin / bpm.

La operación demorará unos minutos y al finalizar se podrá observar el inbox del usuario.

6.- Deshabilitar creación de tablas automática

Finalmente, para evitar inconvenientes se debe deshabilitar la opción de creación de tablas automática. Para ello, se debe comentar (“#”) la línea detallada a continuación en los siguientes archivos:

<TOMCAT_HOME>/bonita/server/default/conf/bonita-journal.properties

<TOMCAT_HOME>/bonita/server/default/conf/bonita-history.properties

# Table are automatically create in database
#hibernate.hbm2ddl.auto update

Notas Finales

En este artículo hemos detallado el procedimiento paso a paso para llevar a cabo la instalación Bonita BPM 5.10 utilizando Tomcat y MySQL. A excepción del sistema operativo, en el mismo, se cubre la instalación de todos los componentes necesarios para lograr un entorno de ejecución robusto que pueda cumplir las necesidades de un ambiente productivo. Como próximo paso en tal dirección se podría plantear la configuración de un mecanismo de autenticación de usuarios basado en un directorio LDAP.


Modificado por última vez en Martes, 10 Septiembre 2013 12:19

Acerca del autor

Andrés Sommariva

Andrés cuenta con más de diez años de experiencia liderando proyectos en diversas tecnologías, actualmente se desempeña como Gerente de Operaciones de MicroGestion Software.