Cómo utilizar el nuevo modo offline de la CLI en Jboss EAP 7

por | septiembre 1, 2017

Una de las mejoras introducidas en Jboss EAP 7 es la posibilidad de conectar con la CLI de Jboss en modo offline, sin iniciar ningún subsistema adicional ni dar servicio alguno de aplicación. Resulta especialmente útil en caso de tener que realizar tareas de mantenimiento con corte de servicio.

Para iniciarlo vamos al directorio de binarios de Jboss, por ejemplo:

cd /opt/middleware/jboss-eap-7.0/bin

Ejecutamos la CLI, que en principio estará desconectada pero podremos invocar con el nuevo servidor embebido mínimo en modo offline:

./jboss-cli.sh
[disconnected /] embed-server --admin-only=true --server-config=standalone.xml
[standalone@embedded /]

La opción --server-config apunta al fichero de configuración que vamos a cargar, por lo que pondremos el que esté utilizando nuestro servidor. Una vez en el prompt podremos realizar diversas operaciones de administración: añadir o quitar propiedades de sistema, administración de subsistemas (datasources, logging, etc…) e incluso operaciones deploy/undeploy de aplicaciones:

[standalone@embedded /] /system-property=myproperty:add(value=jota)
{"outcome" => "success"}
[standalone@embedded /] deploy /opt/middleware/jboss/apps/wildfly-cookbook/example/target/example.war
[standalone@embedded /] deploy -l
NAME        RUNTIME-NAME ENABLED STATUS               
example.war example.war  true    no metrics available 

A nivel de proceso y recursos utilizados del sistema, el inicio de la CLI en modo offline con el servidor embebido carga el mínimo de clases y componentes sin abrir sockets de red. Gracias a esto, nuestro servidor no queda expuesto a peticiones externas mientras realizamos las actuaciones necesarias:

En comparación con una instancia de Jboss EAP 7 iniciada de forma normal en la que se cargan subsistemas del perfil y se abren los dos sockets principales 8080 y 9990 a través de los cuales se multiplexan servicios adicionales:

Con el nuevo modo offline de la CLI podríamos por ejemplo actuar sobre un nodo inactivo mientras que otro -activo- se encarga de continuar prestando servicio en un entorno de alta disponibilidad. Es por tanto muy útil para realizar configuraciones, mantenimientos o incluso el despliegue de nuevos componentes de una aplicación reduciendo el impacto en el servicio.

Como nota final, recordar que el modo offline también está disponible en Wildfly 9.0.1.Final, la distribución comunitaria de Jboss que recibe en primer momento todas estas novedades antes de que Red Hat empaquete la versión del producto EAP correspondiente.