Proceso de Migración de v5 a v6 de O3
En este wiki se pretende mostrar como migrar un servidor con instalación de O3 versión 5.x.x a la versión más reciente hasta el momento 6.3.2, de la manera más sencilla posible, utilizando el conocimiento acumulado para este tipo de situaciones.
Aclaraciones Iniciales
Antes de hacer nada, pensemos en la idea de tener las dos versiones corriendo simultaneamente en diferentes puertos, tanto o3web como eportal.
De esta manera nos aseguramos que la nueva version funciona correctamete y no hacemos ningun cambio en la version a sustituir.
Procedimiento de migración
Paso 1
- Instalar la versión de O3 en el servidor, utilizando el procedimiento estandard de instalación. Guía de Instalación de O3 BI v6
- Instalar la Licencia(utilizar la licencia ya instalada en la carpeta <licences> de la instalación a sustituir. Guía de Instalación de Licencias de O3BI v6
- Instalar los Servicios
- En Windows How To O3 BI v6 como Servicio en Windows
- En Linux How To O3 BI v6 como Servicio en Linux
- Cambiar los puertos de la nueva instalación. HowTo Cambiar puertos del Servidor O3 (JBoss y Liferay)
Asignarle un puerto nuevo al jboss y al liferay de manera de poder probar la nueva instalación sin complicaciones.
Existe en la actualidad un proceso batch que cambia los puertos y asigna el desplazamiento al puerto de forma automática, pero esta en versión de prueba. - Levantar los servicios y probar que todo funciona correctamente.
- Bajar los Servicios.
Paso 2
- Bajar los Servicios de la Instalación a Sustituir
- Respaldar las bases de datos (solo sí la configuración de o3 y eportal se encuentra en base de datos).
- Copiar de la instalación vieja el directorio <o3>/jboss/server/default/ideasoft-o3/server en la raíz de la instalación nueva.
Renombrar siempre las carpetas que se van a sustituir para mantener un respaldo. - Configuración de la base de datos
- Si se tiene en base de datos la información del admserver y los usuarios
- HowTo Configurar JBoss 7 con Diferentes Bases de Datos
- Definir usuario internal (usr: internal / pass: internal) en el admserver. El nuevo usuario deberá estar asociado al rol System y tener definido cómo atributo runAsEnabled de tipo Boolean.
- HowTo Configurar JBoss 7 con Diferentes Bases de Datos
- Si se tiene los usuarios en base de datos pero los datos del admserver en archivo
- Copiar de la instalación vieja el archivo <o3>/jboss/server/default/ideasoft-o3/O3Server.cfg en la raíz de la nueva instalación.
- HowTo Configurar JBoss 7 con Diferentes Bases de Datos
- Definir usuario internal (usr: internal / pass: internal) en el admserver. El nuevo usuario deberá estar asociado al rol System y tener definido cómo atributo runAsEnabled de tipo Boolean.
- Si no se tiene usuarios en base de datos y datos del admserver en archivo (version 4.x de O3 o anteriores)
- Realizar exportación desde admserver de o3v5 y la importación en el admserver de o3v6.
(Requiere seguir la siguiente secuencia: Levantar jboss v5 -> exportar en admserver v5 -> bajar v5 -> Levantar jboss v6 -> importar en admserver v6 -> bajar jboss v6.)
Los usuarios no serán exportados y deberán ser creados manualmente.
- Realizar exportación desde admserver de o3v5 y la importación en el admserver de o3v6.
- Si se tiene en base de datos la información del admserver y los usuarios
Si se utiliza Postgres en linux, fijarse los permisos del driver<opt/ideasoft/o3bi/classes/jdbc/drivers/postgresql-9.1-901.jdbc4.jar> esten asi: rw-r--r--
Si se utiliza LDAP para la validación de usuarios, hacer lo siguiente :
- Crear el archivo O3Server_custom.properties en la raiz de O3.
- Agregarle las siguientes propiedades:
#RBAC Repositories Configuration
rbac.roleRepository = com.ideasoft.rbac.repository.impl.jndi.JndiRoleRepository
rbac.userRepository = com.ideasoft.rbac.repository.impl.jndi.JndiUserRepository
rbac.raAssignmentRepository = com.ideasoft.rbac.repository.impl.jndi.JndiRAAssignmentRepository
rbac.loginService = com.ideasoft.rbac.repository.impl.jndi.JndiLoginService
<initParam>otp://localhost:4447/...</initParam>
Si se usa eportal
- Renombrar (puede no existir) <o3>/liferay/data/document_library como #document_library y copiar de la instalación vieja la carpeta <o3>/jboss/server/default/data/liferay/document_library
- Renombrar <o3>/liferay/data/jackrabbit como #jackrabbit y copiar de la instalación vieja la carpeta <o3>/jboss/server/default/data/liferay/jackrabbit
- Renombrar <o3>/liferay/data/lucene como #lucene y copiar de la instalación vieja la carpeta <o3>/jboss/server/default/data/liferay/lucene
Si además se usa eportal con hypersonic
- Renombrar el archivo <o3>/liferay/data/hsql/lportal.script como #lportal.script
- Copiar de la instalación vieja el archivo <o3>/jboss/server/default/data/hypersonic/lportal.script en <o3>/liferay/data/hsql
- En la nueva instalación versión 6, editar el archivo <o3>/liferay/tomcat/webapps/eportal/WEB-INF/classes/portal-ext.properties
- Cambiar el valor (6) de la property: permissions.user.check.algorithm por 2 (permissions.user.check.algorithm=2).
- Descomentar la property: #image.hook.impl=com.liferay.portal.image.DatabaseHook quitando el numeral (image.hook.impl=com.liferay.portal.image.DatabaseHook).
Si se usa eportal con base de datos
- Copiar de la instalación vieja los datos de conexión definidos en el archivo <o3>/jboss/server/default/deploy/liferay-xxxxxx-ds.xml (siendo xxxx la base de datos).
- En la nueva instalación versión 6, editar el archivo <o3>/liferay/tomcat/webapps/eportal/WEB-INF/classes/portal-ext.properties
- Cambiar el valor (6) de la property: permissions.user.check.algorithm por 2 (permissions.user.check.algorithm=2).
- Descomentar la property: #image.hook.impl=com.liferay.portal.image.DatabaseHook quitando el numeral (image.hook.impl=com.liferay.portal.image.DatabaseHook).
- HowTo Configurar Liferay con Diferentes Bases de Datos
Otras consideraciones
Las siguientes consideraciones podrán aplicarse o no dependiendo de cada instalación.
Si se usa portal
- Verificar que se este usando el tema adecuado, si no copiarlo de la instalación vieja en <o3>/jboss/server/default/deploy/gserver/0o3.ear/o3portal.war/themes/mi_tema en <o3>/jboss/standalone/deployments/o3-server.ear/o3web.war/themes
Si se usa Sistema de Información Geográfico (SIG- Geoserver)
- Copiar de la instalación vieja la carpeta <o3>/jboss/server/default/deploy/gserver/geoserver.war en <o3>/liferay/tomcat/webapps y renombrar la carpeta cómo geoserver (<o3>/liferay/tomcat/webapps/geoserver).
- Así mismo copiar los archivos *Mapping.xml y *.plugins, asociados.
Nombre de la máquina para accesos WEB
- Revisar el archivo de la instalación anterior
/jboss/server/default/deploy/gserver/0o3.ear/o3portal.war/WEB-INF/webapp.properties - En particular verificar el valor de la property
gclient.server.host - Si tuviera un valor diferente a localhost, dicho valor deberá ser asignado también en la nueva instalación (<o3>/jboss/standalone/deployments/o3-server.ear/o3web.war/WEB-INF/webapp.properties)
Uso de LDAP
O3 puede ser integrado con un servidor LDAP donde almacenar la configuración de usuarios y roles.
Si la versión anterior hubiera sido personalizada para conectarse con un servidor de estas características se deben ejecutar los siguientes pasos:
- Copiar archivo de properties correspondiente a la configuración de ldap desde la carpeta <o3>\jboss\server\default\ideasoft-o3\config\rbac de la instalación anterior a la nueva instalación (<o3>\config\rbac).
- Crear en la nueva instalación el archivo <o3>\O3Server_custom.properties y configurarlo según se indica en la guía de configuración de LDAP (HowTo Seguridad de O3 en LDAP y Active Directory). Se puede considerar la configuración definida en la versión actual (<o3>\jboss\server\default\ideasoft-o3\GServer.properties).
Uso de puertos personalizados en JBoss
- Revisar en la instalación anterior si hay cambio de puertos.
Para ello se debe verificar el archivo /jboss/server/default/conf/jboss-service.xml Si dijera otro valor diferente a ports-default significa que los puertos han sido modificados.
<mbean code="org.jboss.services.binding.ServiceBindingManager" name="jboss.system:service=ServiceBindingManager"> <attribute name="ServerName">ports-default</attribute> <attribute name="StoreURL">${jboss.server.home.url}/port-bindings.xml</attribute> <attribute name="StoreFactoryClassName">org.jboss.services.binding.XMLServicesStoreFactory</attribute> </mbean>
En tal caso deberá replicarse el cambio en la nueva versión:
HowTo Cambiar puertos del Servidor O3 (JBoss y Liferay)
Para el caso de liferay, debemos editar el archivo <o3>/liferay/tomcat/conf/server.xml y modificar los valores para los puertos 8305, 8380, 8309.
Revisar si se cambió el puerto del tomcat en la instalación vieja.
Revisar el archivo jboss/server/default/deploy/jbossweb-tomcat55.sar/server.xml
Buscar el código<Connector port="8080" address="${jboss.bind.address}">
El puerto por defecto es el 8080. Si hubiera otro definido se debe modificar también en la nueva instalación.
En la versión 6 editar el archivo <o3>/jboss/standalone/configuration/o3bi.xml y modificar la siguiente línea, cambiando el valor de port por el valor deseado.<socket-binding-group name="standard-sockets" default-interface="public"> <socket-binding name="http" port="8080"/> ... </socket-binding-group>
Uso de Drivers JDBC adicionales
- Revisar los drivers de conexión a bases de datos en /classes/jdbc y pasar a la nueva instalación los que sean necesarios.
- Para el uso de drivers adicionales en O3 Report, ir a la siguiente documentación
Configuración del Mailer
- Revisar configuración del mail en el archivo jboss\server\default\deploy\mail-service.xml y configurar en la nueva instalación de acuerdo al siguiente wiki: HowTo configurar el Servicio de Mail de JBoss
Verificando la nueva instalación
- Setear la property sync.data.scheduler.runAtStartup definida en <o3>/O3Server.properties con el valor true.
- Iniciar el Servidor de O3 (JBoss) y Liferay.
- Ingresar al O3 Server Administrator y loguarse con el usuario administrador.
- Verificar la publicación de cubos.
Esto implica que están presentes y disponibles, y que los perfiles asociados se leyeron sin problemas. - Verificar que los usuarios, roles, permisos son los correctos.
- Abrir el portal y loguearse, cargar cubos, tableros, escritorios, dashboards, etc. según corresponda.
- Levantar el browser y cargar algún cubo.
- Construir con el builder algún cubo para comprobar que el ambiente de construcción no se alteró
- Setear la property sync.data.scheduler.runAtStartup definida en <o3>/O3Server.properties con el valor false.