lunes, 31 de marzo de 2014

Tomcat y Eclipse: compañeros de camino


En este post vamos a finalizar nuestro entorno de pruebas. Vamos a instalar Tomcat 7 para poder desplegar las aplicaciones que hagamos en nuestro entorno de desarrollo.

Arrancamos nuestra máquina virtual y accedemos a ella a través de nuestro cliente favorito: putty.


Si habéis hecho lo mismo que yo vemos que tenemos algunas actualizaciones pendientes, para estar seguros de que tenemos los paquetes de los repositorios actualizados ejecutamos el comando:

sudo apt-get update

La consola empezará a escribir como loca, en cuando metamos nuestro password. Tranquilos, sólo está actualizando lo que el sistema necesita.



Cuando llegue al final podremos leer:

Leyendo lista de paquetes... Hecho

Ahora vamos a instalar Tomcat 7 y el Administrador Web de Tomcat.

Ejecutamos el comando:

sudo apt-get install tomcat7 tomcat7-admin

A continuación nos aparece todo lo que va a instalar, y nos pregunta si estamos de acuerdo.


Le decimos que Sí y esperamos un rato (largo). Como veis es bastante fácil.

Él sólo se va a bajar Java y todas las dependencias que necesita:


Cuando termina en la consola aparece lo siguiente:

Procesando disparadores para libc-bin ...
ldconfig deferred processing now taking place

Para ver si todo ha ido bien podemos ver la versión de JAVA que tenemos instalada con:

java -version

A mí me aparece esto:

java version "1.6.0_30"
OpenJDK Runtime Environment (IcedTea6 1.13.1) (6b30-1.13.1-1ubuntu2~0.12.04.1)
OpenJDK Client VM (build 23.25-b01, mixed mode, sharing)

Cuando instalamos Tomcat así, se "reparte" por el sistema de ficheros de forma que todo cuadre con el sistema operativo. Las rutas que necesitamos saber son éstas:

Dentro de /var/lib/tomcat6 tenemos estos directorios:
  • common  
  • conf 
  • logs  
  • server  
  • shared  
  • webapps  
  • work
Para arrancarlo, pararlo y esas cosas, podemos usar el comando service:

Arrancar: sudo tomcat7 start
Parar: sudo tomcat7 stop
Reiniciar: sudo tomcat7 restart

Cualquier servicio que instalemos se puede gestionar desde este comando. Mola, ¿eh?

Ahora vamos a configurar los permisos del administrador web.

Por defecto viene deshabilitado, pero vamos a crearnos un usuario para poder gestionar las aplicaciones que contiene.

Editamos su fichero de configuración:

sudo vi /var/lib/tomcat7/conf/tomcat-users.xml

Yo soy de usar este editor, aunque podéis usar cualquier otro.

Éste es el contenido del fichero:



Cómo podéis ver esté todo comentado y muy bien documentado. Explica perfectamente lo que hay que hacer. Yo lo que voy a hacer es pegar este contenido dentro de <tomcat-users>:

<role rolename="manager-gui"/>
<user username="tecnificados" password="tecnificados" roles="manager-gui"/>

Esto otorgará al usuario "tecnificados" privilegios para poder entrar vía web al administrador de Tomcat.



Guardamos el fichero y reiniciamos Tomcat con sudo service tomcat7 restart.

Vamos a probarlo a través del navegador, el contexto es /manager y el puerto por defecto de Tomcat es el 8080.

Ahora hay que redirigir el puerto 8080 para que funcione (si no sabes qué es esto, mira el anterior post).

Yo lo que hago es redirigir el puerto 80 de mi máquina física al 8080 de la máquina virtual. Cuidado, si tenéis el 80 ocupado no os funcionará la redirección.

Ésta es mi configuración de puertos:



Con esto lo que hago es reservarme el puerto 8080 para el Tomcat que usaremos en desarrollo y usar el puerto 80 para el de pruebas.

En mi caso yo accedo al administrador de tomcat así: http://localhost/manager, si lo queréis dejar en el puerto 8080 accederíais con esta otra URL: http://localhost:8080/manager

Al escribir la URL en el navegador lo primero que nos pide es la autenticación:


Escribimos lo que hemos puesto en el fichero de usuarios y pulsamos aceptar.




Desde esta pantalla podremos subir nuestras aplicaciones, pararlas o borrarlas.

Y con esto ya tenemos nuestro entorno de pruebas listo.

Ahora sólo nos queda el entorno de desarrollo.

domingo, 16 de marzo de 2014

Redirección de puertos en Virtual Box


Continuando con mis anteriores "posts", vamos a terminar nuestro entorno de pruebas redirigiendo los puertos que nos interesan de la máquina virtual a nuestro PC.

Con Virtual Box podemos configurar la red de diversas formas, una de ellas es redireccionar los puertos de la máquina virtual a la nuestra.

Es bastante fácil y rápido de configurar, y lo que hace es que tengamos unos puertos destinados al entorno de desarrollo y otros para el entorno de pruebas.

Ejemplo de uso: 

- podemos usar el puerto 8080 para desarrollar en eclipse en nuestro entorno de desarrollo con Tomcat.
- usaremos el puerto 80 para el Tomcat del entorno de pruebas
Más adelante veremos cómo configurar las redes de virtual box para que sean máquinas independientes conectadas a nuestra red y más opciones.

Vamos a hacer la redirección del puerto 22 para poder acceder a nuestra máquina virtual a través de uno de los clientes ssh más extendidos (y con nombre controvertido): "putty".

Si recordáis, cuando instalamos Ubuntu 12 Server dejamos marcada la opción de "Open SSH Server", esto hace que nuestra máquina virtual escuche por el puerto 22 (por defecto) las peticiones ssh.

Antes de nada vamos a bajarnos el cliente de esta url: http://www.putty.org/



Pulsamos en el primer enlace ("here") y seleccionamos el fichero "putty.exe" que más se ajuste a nuestro sistema operativo y a nuestra arquitectura. En mi caso "For Windows on Intel x86".

Descargamos el fichero y lo ejecutamos.


Vamos a hacer una prueba que no debe funcionar: escribimos en "Host Name or (IP Address)" localhost y pulsamos el botón "Open". Nos aparecerá el siguiente error:


Esto ocurre porque nuestra máquina física no sabe que tiene que redirigir las peticiones del puerto 22 a la máquina virtual. Vamos a decírselo.

Sobre nuestra máquina virtual pulsamos botón derecho y en "configuración".


Seleccionamos "Red" en la parte de la izquierda y pulsamos el botón "Reenvío de puertos".


Se nos abre la siguiente ventana. Pulsamos sobre la cruz verde de la derecha.


Nos aparece una linea para añadir una regla. Escribimos en la columna "Puerto anfitrión" el puerto de la máquina física que queremos dirigir y en la columna "Puerto invitado" el puerto de la máquina virtual. Vamos a poner el 22 en las dos columnas.



Si por casualidad el puerto 22 de nuestra máquina física está ocupado, podemos poner otro como el 24. A la hora de lanzar la llamada desde "putty" hay que poner ese número de puerto en el texto "Port" en lugar del 22 que aparece por defecto.

Puede que en algún momento puede que nos aparezca el siguiente aviso:


Se pulsa en el botón "Permitir acceso" y ya no debería aparecernos más.

Volvemos al "putty" (suena un poco raro, ¿verdad?). Y repetimos la operación anterior.



Debería aparecer la siguiente advertencia:



Como es un entorno de pruebas no pasa nada y pulsamos el botón "Si".

A continuación ya deberíamos ver el terminal pidiéndonos nuestro usuario y password.


Trabajar con este terminal es mucho más rápido que directamente contra la máquina virtual. 

Truco: si queremos cortar algún texto solo tendremos que seleccionarlo con el ratón y para pegar pulsar con el botón derecho.

Una vez dentro ya podemos empezar a trabajar con la máquina virtual. Recordar que para apagarla basta con escribir "sudo shutdown -P now".

Con esto ya tenemos el entorno de pruebas listo para configurarlo a nuestro gusto.

Si queremos redirigir más puertos solo tenemos que repetir el proceso tantas veces como puertos queramos redirigir.