Vamos a ver en esta entrada cómo instalar GlassFish en CentOS 7 paso a paso, de modo que al final de esta guía podrás servir tus propias aplicaciones Java siguiendo el estándar Jakarta EE 9.1 en tu servidor o VPS CentOS.
Contenido
Antes de instalar GlassFish en CentOS 7
Para poder seguir esta guía de instalación de GlassFish en CentOS 7 no necesitas cumplir grandes requisitos, como puedes ver:
- Un sistema CentOS 7 actualizado y conectado a Internet.
- Java JDK 11 instalado (versión requerida por Jakarta EE 9.1).
- Acceso a consola como root o un usuario con permisos de sudo.
Si aún no tienes el entorno preparado, puedes consultar la guía de instalación de Java OpenJDK en CentOS 7 publicada en este mismo sitio.
También necesitamos algunas herramientas del sistema que obtendremos desde los repositorios de CentOS 7, para lo que abrimos una terminal y actualizamos las listas de paquetes:
~$ sudo yum update
E instalamos los paquetes necesarios:
~$ sudo yum install -y unzip wget
Cómo descargar GlassFish para CentOS 7
Vamos a descargar GlassFish para CentOS 7 desde la web oficial del proyecto, ya que los repositorios de la distribución no disponen de paquetes:
Encontraremos el enlace a un paquete en formato .zip que podemos descargar directamente desde el navegador o desde consola mediante alguna herramienta como wget:
~$ wget https://github.com/eclipse-ee4j/glassfish/releases/download/6.2.5/glassfish-6.2.5.zip
Cómo instalar GlassFish en CentOS 7
Para instalar GlassFish en CentOS 7 descomprimiremos el archivo que acabamos de descargar. Puedes elegir la ubicación que quieras, pero al tratarse de un paquete obtenido fuera del sistema de repositorios, en este tutorial usaremos /opt/glassfish:
~$ sudo unzip -q glassfish-6.2.5.zip -d /opt/glassfish
Cómo probar GlassFish en CentOS 7
Podríamos ejecutar ya GlassFish como aplicación de consola mediante el comando asadmin:
~$ sudo /opt/glassfish/glassfish6/bin/asadmin start-domain
La plataforma iniciará, quedando a la escucha en varios puertos.
Cómo configurar el firewall
Para acceder a la página por defecto de GlassFish en CentOS 7 habrá que permitir la conexión al puerto 8080:
~$ sudo firewall-cmd --permanent --add-port=8080/tcp
Las versiones seguras de las páginas de GlassFish se sirven desde el puerto 8181, por lo que también tendremos que abrirlo:
~$ sudo firewall-cmd --permanent --add-port=8181/tcp
Para acceder a la consola de administrador se utilizará el puerto 4848:
~$ sudo firewall-cmd --permanent --add-port=4848/tcp
Finalmente habrá que recargar la configuración del firewall para aplicar los cambios:
~$ sudo firewall-cmd --reload
Accediendo a GlassFish en CentOS 7
Para acceder a GlassFish en CentOS 7 desde un navegador indicaremos la dirección del servidor (IP, dominio, nombre DNS) y el puerto 8080 para conexiones HTTP o el 8181 para conexiones HTTPS seguras.
Por ejemplo, la máquina CentOS 7 sobre la que hemos preparado este tutorial es accesible en el subdominio centos7.local.lan, así que utilizaremos http://centos7.local.lan:8080 como URL:
Podemos optar también por la versión segura mediante protocolo HTTPS, por lo que siguiendo el ejemplo, utilizaríamos la URL https://centos7.local.lan:8181 para ello. Como GlassFish utiliza certificados autofirmados para cifrar la conexión, normalmente el navegador mostrará un aviso:
Ttodos los navegadores permiten de alguna forma continuar con la conexión, de modo que podremos acceder a la página de prueba de GlassFish sin problemas:
También podemos probar el acceso a la consola de administración usando el puerto 4848 mediante protocolo HTTP.
En nuestro ejemplo, http://centos7.local.lan:4848 sería la URL:
Necesitamos un usuario administrador para poder acceder a la consola de administración. Además, si accedemos desde red tendremos que habilitar «Secure Admin«. Todo esto lo vemos a continuación.
Cómo configurar GlassFish en CentOS 7
Para trabajar con la administración de GlassFish en CentOS 7 debemos asignar una contraseña al usuario administrador por defecto, el usuario admin, lo que haremos fácilmente desde consola:
~$ sudo /opt/glassfish/glassfish6/bin/asadmin change-admin-password Enter admin user name [default: admin]> Enter the admin password> Enter the new admin password> Enter the new admin password again> Command change-admin-password executed successfully.
Introducimos como nombre de usuario admin, como contraseña actual nada y seguidamente creamos y confirmamos la nueva contraseña.
Ahora permitiremos el acceso remoto a la consola de GlassFish, también con el comando asadmin:
~$ sudo /opt/glassfish/glassfish6/bin/asadmin enable-secure-admin Enter admin user name> admin Enter admin password for user "admin"> You must restart all running servers for the change in secure admin to take effect. Command enable-secure-admin executed successfully.
Tendremos que indicar usuario y contraseña para realizar este ajuste, así como reiniciar el servidor GlassFish:
~$ sudo /opt/glassfish/glassfish6/bin/asadmin restart-domain
Ahora para acceder a la consola tendremos que usar el protocolo HTTPS y el mismo puerto 4848 TCP.
En la máquina del ejemplo ahora sería https://centos7.local.lan:4848 esta nueva URL:
Ya podemos acceder con el usuario admin y su nueva contraseña, de modo que entraremos en la página principal de la consola de administración, donde podremos ver todas las opciones disponibles organizadas en el menú:
Para detener la plataforma usaremos de nuevo asadmin:
~$ sudo /opt/glassfish/glassfish6/bin/asadmin stop-domain
Cómo configurar GlassFish como servicio
En muchas ocasiones es necesario trabajar con GlassFish como un servicio más de CentOS 7, para lo que necesitaremos crear el archivo de configuración de este nuevo servicio:
~$ sudo nano /etc/systemd/system/glassfish.service
El contenido básico de este archivo podría ser el siguiente:
[Unit] Description = GlassFish Server 6.2.5 para CentOS 7 After = syslog.target network.target [Service] ExecStart=/opt/glassfish/glassfish6/bin/asadmin start-domain ExecReload=/opt/glassfish/glassfish6/bin/asadmin restart-domain ExecStop=/opt/glassfish/glassfish6/bin/asadmin stop-domain Type = forking [Install] WantedBy = multi-user.target
Ahora ya podemos iniciar el servicio con la opción start del comando systemctl:
~$ sudo systemctl start glassfish
Podemos comprobar en cualquier momento el estado de este servicio con el comando systemctl status glassfish
:
Si queremos que GlassFish inicie automáticamente con cada arranque de CentOS 7, debemos habilitar el servicio:
~$ sudo systemctl enable glassfish
Las opciones start, stop y restart de systemctl funcionan prácticamente sin problemas, aunque alguna vez puede que haya que reiniciar 2 veces seguidas la plataforma para que reinicie correctamente.
Cómo desplegar una aplicación en GlassFish sobre CentOS 7
Una vez iniciada sesión en la consola de administración, podemos desplegar una aplicación desde la página principal «Common Tasks«, mediante el enlace «Deploy an Application«, o visitando la sección «Applications» y usando el botón «Deploy«.
Cualquiera de los métodos anteriores nos conduce a una página que mediante un control nos permitirá seleccionar el archivo WAR de la aplicación que queremos desplegar:
Seleccionado el archivo .war podremos realizar ciertos ajustes dependiendo del tipo de aplicación, su nombre, ruta en el servidor, etc. Terminados estos ajustes (si es que se hace alguno) cargaremos el archivo en la plataforma mediante el botón «OK» en la parte superior de la página.
Tras ser cargada y desplegada la aplicación, automáticamente se abre la página «Applications«, donde ahora aparecerá en la lista la nueva aplicación:
Para lanzar la aplicación usaremos su correspondiente enlace «Launch» en la columna «Action» de la lista de aplicaciones, que abrirá una nueva página que nos ofrecerá enlaces mediante protocolos HTTP y HTTPS a la aplicación:
Si utilizas nombre DNS para acceder a la plataforma observarás que GlassFish por defecto crea enlaces que usan como dirección solamente el nombre de máquina, sin incluir el dominio. Habrá que configurar el servicio para que construya las URLs completas, aunque en redes locales deberían funcionar tal como están (siempre podemos reconstruir la URL completa en la barra de dirección del navegador).
Abriendo cualquiera de los enlaces mostrados accedemos finalmente la aplicación:
¡Así de sencillo!
Conclusión
Ahora que ya sabes cómo instalar GlassFish en CentOS 7 estás en condiciones de desplegar aplicaciones de servidor desarrolladas de acuerdo con las especificaciones de Yakarta EE 9.1, tanto aplicaciones de terceros como tus propios desarrollos, sobre tu servidor o VPS.
Si tienes dudas, preguntas o suegerencias sobre este tutorial, puedes dejar un comentario. Los comentarios están moderados, pero se revisan prácticamente a diario.
¡Apoya comoinstalar.me!
¿Ya funciona esta plataforma sobre tu propia máquina gracias a nuestra guía? Si es así y quieres agaradecérmelo puedes hacerlo dejando una propina desde tan sólo 1 $ a través de PayPal:
O, si te sientes especialmente agradecido, invitándome a un cappuccino:
¡Gracias!
Actualizado a la versión 6.2.5.
Actualizado a la versión 6.2.2.