Installation Instructions ************************* ------------------------------------------- | MANUAL DE INSTALACIÓN DEL GONG-CM v1.0 | ------------------------------------------- La instalación descrita fue efectuada sobre Debian 6.0 (Squeed). Es posible realizar los mismos pasos en cualquier otro sistema operativo, aunque algunos pasos es posible que sean distintos. Aunque el proceso es similar utilizando una BBDD sqlite o postgress, este documento se refiere a la instalación sobre un motor de BBDD MySQL. Se asume que MySQL está correctamente instalado y configurado, así como el cliente local de MySQL desde línea de comandos. En la siguiente URL se describe el proceso de instalación: http://www.debianadmin.com/mysql-database-server-installation-and-configuration-in-debian-2.html Convenciones Una linea que empieza por "$" indica el prompt bash en consola. Una linea que empieza por "mysql>" indica el prompt en la consola de mysql ********************************************************************************************* Indice 1.- Instalación 2.- Configuración 3.- Actualización 4.- Instalación multisitio 5.- Prueba 6.- Notas de Seguridad ********************************************************************************************* 1.- Instalacion 1.1.- Instalar la BD de Cuadro de Mando. En primer lugar apuntaremos el nombre de la BBDD de GONG-GOR desde el que se sincronizarán los datos del cuadro de mando (supongamos que es 'gong_gor') Crearemos la BBDD 'gong_cm' y el usuario 'gong_cm_user' con password 'gong_cm_user_pass' (estos valores se pueden cambiar por los que elijamos para nuestra instalación): mysql> create DATABASE gong_cm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; mysql> grant ALL ON gong_cm.* TO gong_cm_user@'localhost' IDENTIFIED BY 'gong_cm_user_pass'; mysql> grant CREATE ROUTINE ON gong_cm.* to gong_cm_user@'localhost'; Además, es neceario permitir expresamente que el usuario 'gong_cm_user' pueda leer de la BBDD utilizada por GONG-GOR . Para ello, suponiendo que esta última se llame 'gong_gor' se deberá ejecutar la siguiente sentencia SQL: mysql> GRANT SELECT ON gong_gor.* to gong_cm_user@'localhost'; Ejecutar el script "instala_gor_cm.sql" para hacer la carga inicial de BBDD $ mysql -u gong_cm_user -p gong_cm < instala_gor_cm.sql 1.2.- Instalación de TOMCAT En primer lugar debemos instalar la máquina virtual Java de Sun para ello es necesario habilitar los repositorios "non-free" en el sistema de forma que el fichero /etc/apt/sources.list contenga una línea similar a la siguiente: deb http://ftp.debian.org/debian squeeze main contrib non-free Una vez que esté dicho repositorio habilitado instalamos SUN-JAVA 6: $ apt-get update && apt-get install sun-java6-jre sun-java6-jdk Si estamos instalando sobre Debian Wheezy o posteriores, en lugar del paso anterior deberemos seguir el método siguiente: https://wiki.debian.org/Java/Sun Después, instalaremos el conector mysql para java: $ apt-get install libmysql-java ejecutamos los comandos: $ update-alternatives --config java $ update-alternatives --config javac y seleccionamos en cada uno de ellos la versión 1.6 de Sun recién instalada. A continuación añadimos las siguientes líneas al fichero /etc/profile para que Tomcat consiga encontrar los paths de SUN-JAVA: # Setup Jave environment 6 export PATH=$PATH:/usr/lib/jvm/java-6-sun/bin export JAVA_HOME=/usr/lib/jvm/java-6-sun export JRE_HOME=/usr/lib/jvm/java-6-sun/jre y por fín, instalamos Tomcat: $ apt-get install tomcat6 incluimos las siguientes líneas al fichero /etc/default/tomcat6 : JAVA_HOME=/usr/lib/jvm/java-6-sun TOMCAT6_SECURITY=no añadimos al classpath la ubicación de las librerías mysql. Para ello, en la línea 'shared.loader' del fichero /etc/tomcat6/catalina.properties incluimos el path '/usr/share/java/*.jar'. Por ejemplo: shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar,/usr/share/java/*.jar y reiniciamos tomcat para que tengan efecto los cambios: $ /etc/init.d/tomcat6 restart 1.3.- Instalación de MONDRIAN Descargamos la versión 3.2.1 de Mondrian desde: http://sourceforge.net/projects/mondrian/ y extraemos el contenido del archivo lib/mondrian.war sobre el directorio ${TOMCAT_HOME}/webapps/mondrian ( ${TOMCAT_HOME} es el directorio de aplicaciones de tomcat6: en debian/ubuntu corresponde a la ruta /var/lib/tomcat6/webapps ): $ mkdir /var/lib/tomcat6/webapps/mondrian $ unzip lib/mondrian.war -d /var/lib/tomcat6/webapps/mondrian ********************************************************************************************** 2.- Configuración 2.1.- Copiar el fichero gor_cm.xml en la dirección ${TOMCAT_HOME}/mondrian/WEB-INF/queries/ : $ cp gor_cm.xml /var/lib/tomcat6/webapps/mondrian/WEB-INF/queries/ 2.2.- Sobreescribir los JSP de la dirección ${TOMCAT_HOME}/mondrian/WEB-INF/queries/ con el existente en este paquete: $ cp cm_economico.jsp /var/lib/tomcat6/webapps/mondrian/WEB-INF/queries/ $ cp cm_tecnico.jsp /var/lib/tomcat6/webapps/mondrian/WEB-INF/queries/ NOTA: Si está instalando sobre una versión anterior de GONG, es posible que en el directorio de destino se encuentre el fichero "cm.jsp". Este fichero no es necesario a partir de la versión 2.44 de GONG Cuadro de mando y puede ser borrado en caso de existir. 2.3.- Sobreescribir el fichero testpage.jsp de la dirección ${TOMCAT_HOME}/mondrian/ con el existente en este paquete: $ cp testpage.jsp /var/lib/tomcat6/webapps/mondrian/ 2.3. Copiar el fichero conexion.properties en la dirección ${TOMCAT_HOME}/mondrian/WEB-INF/classes/ : $ cp conexion.properties /var/lib/tomcat6/webapps/mondrian/WEB-INF/classes/ 2.4. Sustituir en el fichero anterior los valores asignados a gor_cm.jdbcUrl, gor_cm.jdbcUser y gor_cm.jdbcPassword por los adecuados al usuario y password de la BBDD del cuadro de mando definidos en el punto 1.1 de este manual y con el nombre de la BBDD de GONG-GOR: gor_cm.jdbcUrl=jdbc:mysql://localhost/gong_cm gor_cm.jdbcUser=gong_cm_user gor_cm.jdbcPassword=gong_cm_user_pass gor_cm.jdbcDBName=gong_gor 2.5. Tras reiniciar Tomcat ya estará lista la aplicación a través de la URL http://localhost:8180/mondrian/testpage.jsp?query=cm $ /etc/init.d/tomcat6 restart 2.6. Configurar el acceso a las imágenes y css de mondrian: $ cp apache.conf /etc/apache2/conf.d/cuadrodemando.conf $ /etc/init.d/apache2 restart ********************************************************************************************* 3. Actualización Actualmente (versión1.0.3) la BD de Cuadro de Mando se actualiza desencadenando un procedimiento almacenado que posee la BD del cuadro de mando. Este proceso lo realiza el script actualiza_cm.py por lo que habrá que copiarlo al directorio de ejecución: $ cp actualizar_cm.py /usr/bin/actualizar_cm.py Instalaremos las librerías de acceso a BBDD para que el script anterior pueda conectar con la BBDD: $ apt-get install python-mysqldb Para permitir la ejecución diaria, habilite el cron del fichero gong-panelcontrol.cron.d para el usuario de tomcat (tomcat6), o copie dicho fichero a la ruta /etc/cron.d modificando en él, si fuera necesario, la ruta del fichero .properties donde se definen los parámetros de conexión y cambiándole el nombre al adecuado para debian: $ cp gong-cuadrodemando.cron.d /etc/cron.d/gong-cuadrodemando Para comprobar que la instalación ha sido correcta, ejecute este script de modo excepcional ahora para que los datos aparezcan en la BD de Cuadro de Mando: $ python /usr/bin/actualizar_cm.py /var/lib/tomcat6/webapps/mondrian/WEB-INF/classes/conexion.properties ********************************************************************************************* 4.- Instalación multisitio. Si existe más de una instancia de GONG corriendo en la máquina será necesario realizar una instalación multisitio. 4.1.- En primer lugar, crearemos una BBDD de cuadro de mando para cada una de las instancias tal y como se describe en el punto 1.1 de este manual. Los valores de nombre de bbdd, usuario y password los utilizaremos en el siguiente punto. Por cada instancia de GONG-GOR corriendo habrá una variable de entorno GOR_SITEID definida en la configuración del host virtual de apache (por ejemplo): SetEnv GOR_SITEID "ong2" Usaremos esa variable para diferenciar las consultas al cuadro de mando y las conexiones de BBDD 4.2.- Usando el valor de esa la variable GOR_SITEID crearemos una copia del fichero conexion.properties $ cp conexion.properties /var/lib/tomcat6/webapps/mondrian/WEB-INF/classes/cm-ong2.properties y lo configuraremos con la BBDD específica de esa instancia que hemos creado unas líneas más arriba y con la correspondiente para la BBDD de GONG-GOR. 4.3.- Después crearemos copia de cm_economico.jsp y de cm_tecnico.jsp de la siguiente forma: $ cp cm_economico.jsp /var/lib/tomcat6/webapps/mondrian/WEB-INF/queries/cm_economico-ong2.jsp $ cp cm_tecnico.jsp /var/lib/tomcat6/webapps/mondrian/WEB-INF/queries/cm_tecnico-ong2.jsp modificando estos dos ficheros (cm_economico-ong2.jsp y cm_tecnico-ong2.jsp) para que busquen el fichero properties modificado sustituyendo la línea java.io.InputStream is = cl.getResourceAsStream("conexion.properties"); por java.io.InputStream is = cl.getResourceAsStream("cm2-ong.properties"); 4.4.- Por último crearemos una copia de cada fichero de cron según el apartado 3 de este manual, modificando la ruta del fichero properties : /var/lib/tomcat6/webapps/mondrian/WEB-INF/classes/conexion.properties por /var/lib/tomcat6/webapps/mondrian/WEB-INF/classes/cm-ong2.properties ********************************************************************************************* 5.- Probar la instalación. Entre en la aplicación y pruebe el resultado de la instalación accediendo al Cuadro de Mando a través de GONG-GOR. ********************************************************************************************* 6.- Nota de seguridad. Debido a que tomcat no está autentificado, todas las páginas de mondrian están disponibles a través del puerto 8180. El usuario final accede a la información de GONG-CM a través de un proxy existente en GONG-GOR. Por lo tanto, es necesario que se securice la máquina impidiendo las conexiones a dicho puerto que no provengan de localhost. (Revisar algo mejor la configuración de tomcat para impedir conexiones desde fuera de localhost) ********************************************************************************************* Fin del Archivo INSTALL.TXT *********************************************************************************************