JBoss EAP: Instalación y configuración básica

En esta primera entrega, de la serie de artículos relacionados a JBoss Enterprise Application Platform (EAP), vamos a considerar la instalación y configuración inicial del producto, de tal manera que podamos contar con los servicios suficientes para un despliegue en un ambiente de pruebas o que sea el primer paso para tener una instancia candidata a producción.

JBoss EAP es una plataforma de código abierto que ofrece seguridad, escalabilidad y rendimiento a nivel empresarial para aplicaciones Java. Incluyen todo lo que se necesita para crear, ejecutar, implementar y administrar aplicaciones Java empresariales en cualquier entorno.

Si bien JBoss EAP está disponible como imagen de contenedor o como un operador de Kubernetes u Openshift, en este caso vamos a utilizar los binarios tradicionales para hacer una instalación desde cero, lo que nos permitirá tener un mayor entendimiento de los requisitos para su operación.

Requisitos

Antes de iniciar, se espera que podamos contar con lo siguiente:

  1. Servidor Linux: Los comandos que se presentan son compatibles con CentOS 8 o Red Hat Enterprise Linux 8
  2. Disponer del utilitario unzip para descomprimir el binario de JBoss EAP
  3. Tener instalado y configurado Java 1.8 u 11. El detalle de las configuraciones soportadas se pueden encontrar en la siguiente enlace: https://access.redhat.com/articles/2026253#EAP_74
  4. Archivo empaquetado de JBoss EAP 7.4: Se puede descargar el Zip File desde la siguiente dirección: https://developers.redhat.com/products/eap/download

Configuración por defecto

JBoss EAP mantiene la siguiente configuración inicial:

  • No existen usuarios de administración de JBoss EAP, es necesario crear al menos uno para administrar el servicio remotamente. Este usuario será creado más adelante.
  • Solamente se escucha en la interfaz 127.0.0.1 (localhost), es decir que solamente están disponibles los servicios desde el mismo servidor.
  • Los puertos de los servicios principales son:
    • Aplicaciones HTTP: 8080
    • Aplicaciones HTTPS: 8443
    • Administración (Web y por línea de comandos): 9990

Alcance de la instalación y configuración

Esta guía cubre los siguientes puntos:

  • Instalación de los binarios
  • Creación del usuario administrador de JBoss EAP
  • Apertura de las interfaces de red para el acceso remoto

Procedimiento de instalación y configuración

Instalación de los binarios

  1. Se va a necesitar un usuario de sistema operativo (En este caso eap), diferente al usuario root, para levantar los servicios. Como el usuario root ejecutamos este y los siguientes comandos:

    # useradd eap

    NOTA: Este usuario es diferente al usuario administrador de JBoss EAP (eapadmin) que se creará en el punto 4 de esta sección.

  2. Creación del directorio Home de JBoss EAP, descompresión del archivo empaquetado y asignación de permisos al usuario eap:

    # mkdir /opt/jboss/
    # cd /opt/jboss/
    # unzip /tmp/jboss-eap-7.4.0.zip
    # chown -R eap:eap /opt/jboss/

  3. Configuración de variables de ambiente para que el usuario eap disponga de los ejecutables de JBoss EAP en el PATH de su sesión:

    # echo 'export EAP_HOME=/opt/jboss/jboss-eap-7.4' >> ~eap/.bash_profile
    # echo 'export PATH=$PATH:$EAP_HOME/bin' >> ~eap/.bash_profile

  4. Crear el usuario administrador de JBoss EAP (eapadmin) con su respectiva contraseña. Hacemos el cambio al usuario eap del sistema operativo para luego ejecutar la creación del usuario:

    # su - eap
    $ add-user.sh -u 'eapadmin' -p '********'

Inicio del servicio y validación de la configuración de red

  1. Utilizando la misma sesión del usuario eap, ejecutamos el script de inicio para subir el servicio en modo Standalone:

    $ standalone.sh

    NOTA: La terminal quedará ocupada, la dejaremos abierta para no terminar el proceso.

  2. Abrimos una nueva sesión con el usuario eap para confirmar los puertos que fueron abiertos por el servicio:

    $ ss -ltn | grep -e 8080 -e 8443 -e 9990

    Como lo muestra el comando ss, por defecto JBoss EAP escucha solamente en 127.0.0.1 (localhost).

Actualización de la dirección enlazada a las interfaces de red

  1. Mediante la administración por línea de comandos (JBoss CLI) vamos a consultar la dirección enlazada a la interfaz pública (public: donde estarán disponibles las aplicaciones, puerto 8080 y 8443) para luego cambiarla por el nombre del servidor (server.example.com en este caso) o por su dirección IP:


    $ jboss-cli.sh --connect
    [standalone@localhost:9990 /] /interface=public:read-attribute(name=inet-address)


    [standalone@localhost:9990 /] /interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:server.example.com}")

  2. Realizamos algo similar pero con la interfaz de administración (management: servicio de administración, puerto 9990):


    [standalone@localhost:9990 /] /interface=management:read-attribute(name=inet-address)


    [standalone@localhost:9990 /] /interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:server.example.com}")

  3. Procedemos a recargar la configuración del servidor ya que los cambios anteriores requieren de un reinicio del servicio de JBoss EAP. Luego de esto, la sesión de JBoss CLI terminará debido a que ya no es válida por el cambio de la interfaz de administración:


    [standalone@localhost:9990 /] reload
    [disconnected /] exit

  4. Verificamos el cambio en la configuración de red utilizando nuevamente JBoss CLI, la conexión ahora debe indicar el nombre del controller de JBoss EAP (servidor y puerto) donde está el servicio de administración:


    $ jboss-cli.sh --connect --controller=server.example.com:9990

    [standalone@server.example.com:9990 /] /interface=public:read-attribute(name=inet-address)


    [standalone@server.example.com:9990 /] /interface=management:read-attribute(name=inet-address)

  5. Si el servidor Linux tiene levantado el servicio de Firewall será necesario abrir los puertos que utiliza JBoss, para el caso de CentOS 8 o Red Hat Enterprise Linux 8, como usuario root, se puede utilizar lo siguiente:


    # firewall-cmd --list-ports
    # firewall-cmd --add-port 8080/tcp
    # firewall-cmd --add-port 8443/tcp
    # firewall-cmd --add-port 9990/tcp
    # firewall-cmd --runtime-to-permanent
    # firewall-cmd --list-ports

  6. Finalmente probamos el acceso a los servicios desde un navegador Web:

    • http://server.example.com:8080/
    • https://server.example.com:8443/
    • http://server.example.com:9990/

Conclusiones

JBoss Enterprise Application Platform trae por defecto una configuración que es suficiente para un ambiente de desarrollo pero va a ser necesario aplicar ajustes como los que hemos visto en este artículo para poder hacer uso de sus servicios en escenarios más demandantes.

Les hacemos la invitación a estar atentos ya que en próximas entregas cubriremos otras áreas de la administración y configuración del producto. Hasta entonces.

leave a comment