martes, 15 de marzo de 2011

(3) Instalando Servidor Debian: Desplegando OpenReports

Luego de tener nuestro contenedor de servlets, desplegar el OpenReports es muy fácil lo único que necesitamos es descargar desde aquí, la versión con la que se hizo esta guía es la 3.2 y utilizaremos postgreSQL como servidor de base de datos.

Descomprimamos el paquete en la ubicación que veamos por conveniente, y encontraremos estas carpetas:
  • database
  • deploy
  • docs
  • libs 
  • reports
  • src
  • WebRoot
  • varios archivos txt para leer y no dejar de lado
  • build.xml el cual nos permitira ejecutar la tarea con ant que creará nuestro archivo .war que podremos desplegar en nuestro contenedor de servlets.

Lo primero que tenemos que hacer es crear una base de datos en el postgreSQL en la cual se almacenará toda la información requerida por openreports para que pueda funcionar.

Luego de esto en la carpeta database/schema tenemos los archivos .sql que tendremos que ejecutar según la base de datos que escojamos, en nuestro caso será or_ddl_postgre.sql

Luego habrá que ejecutar el script sql tables_postgres.sql que se encuentra en database/schema/quartz, que creará las tablas que utiliza quartz.

Luego tendremos que ejecutar esto en nuestra base de datos:
INSERT INTO REPORT_USER (REPORTUSER_ID,NAME,PASSWORD,PDF_EXPORT_TYPE) VALUES
(nextval('hibernate_sequence'),'admin','password',0);

El usuario y la contraseña podemos cambiarla antes de ejecutar esta sentencia, solo no se olviden que fue lo que colocaron, y luego tendremos que ejecutar esto en nuestra base de datos:
INSERT INTO USER_SECURITY (USER_ID, ROLE_NAME) VALUES (XXXX, 'ROOT_ADMIN_ROLE');

Esta última sentencia es la que da los permisos de adminitrador al usuario que hemos creado, y donde estan las XXXX, tenemos que colocar el valor que generó la secuencia en la base de datos.

Después de todo esto lo que tenemos que hacer es configurar nuestro archivo de propiedades del openreport, openreports.properties, que se encuentra en /src de la siguiente manera:

hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.jdbc.driver=org.postgresql.Driver
hibernate.jdbc.url=jdbc:postgresql://host:puerto/base_de_datos_creada
hibernate.jdbc.username=usuario_de_la_base_de_datos
hibernate.jdbc.password=password_de_la_base_de_datos
hibernate.jdbc.maxIdle=2
hibernate.jdbc.maxActive=5
quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
quartz.jobStore.selectWithLockSQL = SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE
quartz.jdbc.driver = org.postgresql.Driver
quartz.jdbc.url = jdbc:postgresql://host:puerto/base_de_datos_creada
quartz.jdbc.username = usuario_de_la_base_de_datos
quartz.jdbc.password = password_de_la_base_de_datos
quartz.jdbc.maxIdle=2
quartz.jdbc.maxActive=5
org.quartz.threadPool.threadCount = 5

Ahora todo lo demas que haya habrá que comentarlo o borrarlo, luego tenemos que editar el archivo build.xml que se encuentra en la raiz de openreports, ubiquemos el parámetro property name="deploy" value="../tomcat/webapps"

Donde value lo reemplazaremos por la ubicación donde se creará nuestro archivo .war, reemplazamos desde tomcat/webapps ya que ../ significa la ruta raiz donde esta la carpeta openreports.

Ahora no se olviden de colocar en la carpeta openreports/WebRoot/WEB-INF/lib las librerias de la base de datos con la que trabajará openreports y las librerias de la versión de jasperreports con la que vayan a trabajar.

Una vez hecho esto, no queda mas que ubicarnos en la ruta donde se encuentra nuestro archivo build.xml y ejecutar la tarea con ant.
# ant war

En caso de no tener instalado ant, hacerlo con aptitude install ant. Luego nos generará un archivo llamado openreports.war, si es que todo funcionó correctamente.

Este archivo es nuestra aplicación, lista para moverla o copiarla en nuestra carpeta webapps de tomcat para desplegarla, ahora podemos renombrar este archivo al nombre que nos parezca y según el nombre que coloquemos, será la ruta de nuestra aplicación en nuestro contenedor de servlets.

En el arhivo server.xml de nuestro tomcat, ubicamos la etiqueta que dice Host y ahi ubicamos estas variables: unpackWARs y autoDeploy, los cuales son los encargados de llevar acabo el despliegue y desempaquetamiento de los archivos .war

Los valores que pueden tomar estas variables son true y false, tendremos que dejarlas en true ambas para que tomcat al iniciar despliegue el openreports, pero luego de iniciado podemos cambiar sus valores a false para que cada vez que inicie y se cierre tomcat, no este haciendo ese trabajo, bueno eso ya es de cada quien.

Bueno no queda nada mas que ingresar a http://ip_de_su_servidor:puerto_de_su_servidor/nombre_que_colocaron_al_archivo_war e ingresar con el usuario y contraseña que colocamos al comienzo de la instalación.

Bueno con esto ya tenemos instalada nuestra aplicación, la configuración es otro tema, pero es muy intuitiva, dentro del archivo de descarga tenemos toda la documentación necesaria para poder utilizar esta gran herramienta open source.

Hasta la próxima y cualquier consulta trataré de responderla lo antes posible.

viernes, 11 de marzo de 2011

(2) Instalando Servidor Debian: Instalando Tomcat

Instalar este contenedor de servlets es lo más fácil que he podido haber hecho, trabajaremos con Tomcat en su version 6, empiecen bajandose la ultima version aquí. La distribución core nos bastará.

Prerequisito fundamental es tener el java instalado:
# aptitude install sun-java6-jdk sun-java6-jre

Tenemos que descomprimirlo, y moverlo a la ubicación donde residirá,  en nuestro caso lo colocamos en:
# /usr/local/tomcat6

Luego le damos permisos a la carpeta webapps para poder colgar nuestras aplicaciones
# chmod 777 /usr/local/tomcat6/webapps

Ahora tendremos que crear un archivo con el cual podamos administrar su estado como cualquier otro servicio:
# nano /etc/init.d/tomcat

Ahora colquemos este contenido en el archivo:
    # Tomcat auto-start
    # description: Auto-starts tomcat

    # processname: tomcat
    # Tomcat auto-start
    #
    # description: Auto-starts tomcat
    # processname: tomcat
    # pidfile: /var/run/tomcat.pid

    export JAVA_HOME=/usr/lib/jvm/java-6-sun    # si instalaron desde los repositorios, esta deberia ser la ruta del java

    case $1 in
    start)
            sh /usr/local/tomcat6/bin/startup.sh

    ;;
    stop)
            sh /usr/local/tomcat6/bin/shutdown.sh
    ;;
    restart)
            sh /usr/local/tomcat6/bin/shutdown.sh
            sh /usr/local/tomcat6/bin/startup.sh
    ;;
    esac
    exit 0


# si siguieron las rutas que estoy usando, deberia ser esta la ubicación del ejecutable que arrancan y detienen el servicio, sino reemplacen la ruta por la que esten usando

Ahora lo que nos queda es modificar los permisos del archivo creado y actualizar las tareas que se ejecutaran al iniciar el servidor:
# cd /etc/init.d
# chmod 775 tomcat
# update-rc.d tomcat defaults99

Lo único que nos queda ahora es probar nuestra instalación, ingresen en cualquier browser y coloquen:
http://la_direccion_de_su_servidor:8080

Con esto nos aperturar la pagina de inicio del tomcat, ahora ponemos elpuerto 8080 ya que por defecto viene configurado así, pero hay varios parámetros que podemos cambiar y uno de ellos es el puerto, todo esto esta en este archivo:
# /usr/local/tomcat6/conf/server.xml

Recuerden que cada modificación que le hagan a este archivo, tendra que reiniciarsel tomcat para que surjan los efectos.

Esto es lo que quise compartir con uds. ahora, y de paso dejar mi plagio ya que a cada rato tengo que hacerlo por todo lado que voy y nunca lo recuerdo jejejeje. Hasta pronto y la siguiente sera como instalar el OpenReport.

miércoles, 12 de enero de 2011

(1) Instalando Servidor Debian: Instalacion del Sistema Base y PostgreSQL

Antes que nada conseguir la imagen de la utlima version en este link, segun la plataforma de su servidor. La version actual cuando se hizo esta corta guia era Debian GNU/Linux 5.0.6 Lenny.

Seguir la guia basica de este tutorial que es muy bueno, con tu permiso romario, resumire lo que mas nos interesa para levantar un servidor basico:
  1. Instalar y configurar todo segun sus preferencias.
  2. Al final elegir Sistema Estandar
  3. Instalar editor Vim (Guía rápida) o el editor de su preferencia y  el sincronizador de hora Ntpdate:
    # aptitude install vim ntpdate
  4. Añadir las secciones contrib y non-free de los repositorios y comentar (añadir al principio de línea el símbolo #) la primera línea si queremos que no nos vuelva a pedir el CD de instalación para instalar paquetes.
    # vi /etc/apt/sources.list

    # deb cdrom:[Debian GNU/Linux 5.0.6 _Lenny_ - Official i386 CD Binary-1 20090628-14:43]/ lenny main

    deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free
    deb-src http://ftp.fr.debian.org/debian/ lenny main contrib non-free

    deb http://security.debian.org/ lenny/updates main contrib non-free
    deb-src http://security.debian.org/ lenny/updates main contrib non-free

    deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
    deb-src http://volatile.debian.org/debian-volatile lenny/volatile main  
  5. Actualizar los repositorios y buscamos nuevas actualizaciones.
    # aptitude update
    # aptitude safe-upgrade
  6. Instalación del firewall Arno-Iptables-Firewall (mas detalles en este enlace):
    # aptitude install arno-iptables-firewall
Para instalar nuestros gestores de bases de datos, tenemos varios pero nosotros lo haremos con PostgreSQL y MySql:

PostgreSQL:
  1. Instalar el servidor:
    # aptitude install postgresql-"version a instalar"
    1. Editar los archivos:
      1. /etc/postgresql/version_instalada/main/postgresql.conf
        Cambiar la linea: #listen_addresses = 'localhost' por listen_addresses = '*' y esto es opcional, cambiar el puerto por el que nos conectaremos port = 5432 por el puerto que mas nos convenga, no creo que sea necesario mencionar que tengan cuidado con este dato.
      2. /etc/postgresql/version_instalada/main/pg_hba.conf
        Cambiar en la linea: host all all 127.0.0.1/32 md5 por el rango de ips que se conectaran al servidor host all all "w.x.y.z/a" md5
    2. Reiniciar el servidor para que los cambios tengan efecto:
      # /etc/init.d/postgresql-"version_instalada" restart
    3. Luego descender al usuario Postgres:
      # su postgres
    4. Ahora a conectarse y crear nuestro primer usuario para poder administrar nuestra base de datos:
      # su postgres
      $ psql template1
      template1=# create user algun_usuario_aca with password 'algun_password_aca' createdb;
      template1=# \q;
    5. El parametro createdb es para que el usuario creado pueda crear bases de datos, hay muchos parametros mas que pueden consultarlo en esta pagina, toda linea que finalice cuando estemos en la consola del psql tiene que acabar con ";" sino no se considera fin de la instruccion sino como un salto de linea, y el password tendra que ir entre comillas simples.
MySQL:
  1. Instalar el servidor:
    # aptitude install mysql-server
    1. Editar los archivos:
      1. /etc/mysql/my.cnf
        Cambiar la linea: #bind-address = 127.0.0.1 por bind-address = 0.0.0.0 y esto es opcional, cambiar el puerto por el que nos conectaremos port = 3306 por el puerto que mas nos convenga, no creo que sea necesario mencionar que tengan cuidado con este dato.
    2. Reiniciar el servidor para que los cambios tengan efecto:
      # /etc/init.d/mysql restart
    3. Luego conectarnos, ingresando el password que colocamos en la instalacion
      # mysql -u root -p
    4. Verificando el acceso desde cualquier host del usuario root:
      mysql> use mysql;
      mysql> select host, user, password from user;
    5. Nos fijamos que exista la tupla:
      +------------------+-----------+
       | user          | host   |
      +------------------+-----------+
       | root           | %         |

      ------------------------------------
    6.  En caso no existiese hacemos un simple insert en dicha tabla.
    7.  Y luego por si acaso reiniciamos el servidor
      # /etc/init.d/mysql restart
Y con esto tendremos nuestros servicios arriba, no se olviden de abrir los respectivos puertos en el firewall, sino hagan lo que hagan no se podran conectar.

Ire preparando las guias para instalar un contenedor de servlets, creo que es el mas popular(Apache Tomcat) y un servidor samba.

Cualquier duda, comentario o sugerencia sera bien recibida. Hasta luego.

viernes, 31 de diciembre de 2010