jueves, 15 de noviembre de 2007

Actualización de aplicaciones en Tomcat

Para un equipo de desarrollo lo más conveniente es generar versiones estables de las aplicaciones y publicarlas en un servidor de desarrollo antes de pasarlas a producción, cuando se generan mantenciones en las aplicaciones web, y es necesario pasarlas a un servidor de desarrollo, en este caso Tomcat, se deben seguir los siguientes pasos.

1.- Generar el archivo .war en el ide local, sea eclipse o netbeans.

2.- Ingresar a la maquina de desarrollo, abrir un terminal unix(consola) o el cliente ssh en windows e ingresar la siguiente linea de comando para tener acceso a la maquina de desarrollo como usuario tomcat (previamente creado), en este caso se ocupa linux y su terminal.

slackware:/home/slack# ssh tomcat@desarrollo.gruposiglo.cl

Esta instrucción solicita acceso a la maquina de desarrollo por ssh, el cual nos pedira contraseña del usuario tomcat, en caso de modificación de la contraseña del usuario tomcat, esta debera ser notificada al grupo que efectúa estas tareas.

tomcat@desarrollo.gruposiglo.cl's password: xxxxxxxx

3.- Si el acceso es correcto el login nos dejara en la siguiente ruta del servidor, debemos posicionarnos en la ruta en la cual se encuentra el servidor Tomcat con la siguiente linea de comando:

Last login: Thu Nov 15 10:07:58 2007 from slackware.groupsiglo.local
[tomcat@desarrollo ~]$ cd /home/tomcat/tomcat55/

4.- Con la precaución de que nadie este efectuando alguna tarea importante en el servicio de tomcat en desarrollo y aviso a los demás desarrolladores del grupo, debemos proceder a bajar el servicio Tomcat con la siguiente linea de comando:

[tomcat@desarrollo tomcat55]$ ./bin/shutdown.sh
Using CATALINA_BASE: /home/tomcat/tomcat55
Using CATALINA_HOME: /home/tomcat/tomcat55
Using CATALINA_TMPDIR: /home/tomcat/tomcat55/temp
Using JRE_HOME: /usr/java/jdk1.5.0_12
CompilerOracle: exclude org/apache/lucene/index/IndexReaderstop doBody


5.- Posteriormente debemos eliminar los archivos de la aplicación que queremos actualizar, por ejemplo cdding, para los cual debemos seguir los siguientes pasos, comenzamos por ingresar al directorio donde se encuentra esta aplicación (webapps) con la siguiente linea de comando:

[tomcat@desarrollo tomcat55]$ cd webapps/

Lo cual nos dejara en el directorio donde se encuentran las aplicaciones de desarrollo.

Si hacemos un ls -l, nos listara las aplicaciones del directorio, sus usuarios y grupos:

[tomcat@desarrollo webapps]$ ls -l
total 141712
drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 14:10 cdding
-rw-r--r-- 1 tomcat tomcat 15367817 nov 14 14:10 cdding.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera
-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng
-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2
-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war
drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old
drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm
drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira
drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples
drwxr-xr-x 5 tomcat tomcat 4096 oct 26 18:05 MProcesos_SGDING
drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore
-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT
drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab
-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples
drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs
drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio
-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war
drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo
-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng
-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war


Para esta tarea recordemos que el servicio de tomcat debe estar abajo.

Posteriormente eliminamos el archivo y directorio de la aplicación que queremos actualizar (cdding de ejemplo), con los siguientes comandos:

[tomcat@desarrollo webapps]$ rm -rf cdding.war

En la linea anterior hemos eliminado el .war de la aplicación, seguidamente eliminamos el directorio con el siguiente comando:

[tomcat@desarrollo webapps]$ rm -rf cdding

Y al hacer un ls -l vemos que este archivo y directorio ya no existen:

[tomcat@desarrollo webapps]$ ls -l
total 111712
drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer
drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera
-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng
-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2
-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war
drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old
drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm
drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira
drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples
drwxr-xr-x 5 tomcat tomcat 4096 oct 26 18:05 MProcesos_SGDING
drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore
-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT
drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab
-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples
drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs
drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio
-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war
drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo
-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng
-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war


6.- Siempre con el servicio de tomcat abajo debemos copiar a este directorio la nueva o actualización de la aplicación (archivo .war) que queremos desplegar, para esto podemos ocupar algún navegador de archivos, como ssh client para windows o el comando scp en la consola de linux o algún navegador con soporte para sftp como konqueror en linux.

Una vez que copiamos nuevamente la aplicación (.war) a este directorio podemos hacer un ls -l para confirmar su existencia en el webapps de tomcat:

[tomcat@desarrollo webapps]$ ls -l
total 141712
drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer
-rw-r--r-- 1 tomcat tomcat 15367817 nov 14 14:10 cdding.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera
-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng
-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2
-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war
drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old
drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm
drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira
drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples
drwxr-xr-x 5 tomcat tomcat 4096 oct 26 18:05 MProcesos_SGDING
drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore
-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT
drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab
-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples
drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs
drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio
-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war
drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo
-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng
-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war


Ya confirmada la existencia del .war en el directorio webapps de tomcat, nos debemos pocisionar el la raiz del tomcat con el siguiente comando:

[tomcat@desarrollo webapps]$ cd ..


7.- Seguidamente arrancamos nuevamente el servicio con la siguiente linea de comando:

[tomcat@desarrollo tomcat55]$ ./bin/startup.sh
Using CATALINA_BASE: /home/tomcat/tomcat55
Using CATALINA_HOME: /home/tomcat/tomcat55
Using CATALINA_TMPDIR: /home/tomcat/tomcat55/temp
Using JRE_HOME: /usr/java/jdk1.5.0_12


Si todo va bien esta acción desempaquetara el archivo .war de la aplicación generando un directorio con su nombre.

[tomcat@desarrollo webapps]$ ls -l
total 141712
drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 14:10 cdding
-rw-r--r-- 1 tomcat tomcat 15367817 nov 14 14:10 cdding.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera
-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng
-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2
-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war
drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old
drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm
drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira
drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples
drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore
-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT
drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab
-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples
drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs
drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio
-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war
drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo
-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng
-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war

8.- Si queremos verificar que el servicio esta arriba, ingresamos la siguiente linea de comandos, la cual nos confirma el uso del servicio y el puerto que esta ocupando:

[tomcat@desarrollo tomcat55]$ netstat -tan | grep 8080
tcp 0 0 :::8080 :::* LISTEN

En caso contrario no mostrara nada.

Si queremos ver el log del servicio tomcat, podemos ingresar la siguiente linea de comando:

[tomcat@desarrollo tomcat55]$ tail -f logs/catalina.out

los cual nos despliega la traza del servicio y sus aplicaciones.

Toda esta tarea de mantención no debiera demorar más de 5 minutos, con la practica podemos hacer esto en unos 3 minutos, recordemos que se debe efectuar en el menor tiempo posible para no interrumpir otras acciones del grupo de desarrollo.


Saludos y Suerte !!

No hay comentarios: