Búsqueda de sitios web

Cómo instalar WildFly (JBoss) en Debian 11/Debian 10


WildFly es un servidor de aplicaciones potente y liviano creado para ayudarlo a crear aplicaciones increíbles con facilidad. Con su diseño modular es fácil ampliar las funcionalidades. Los módulos JBoss se utilizan para proporcionar un verdadero aislamiento de aplicaciones y ocultar las clases de implementación del servidor de la aplicación mientras solo se vinculan con los JAR que su aplicación necesita. WildFly proporciona capacidades de administración que se exponen de manera unificada a través de muchas formas de acceso: CLI, una consola de administración basada en web, una API Java nativa, una API REST basada en HTTP/JSON y una puerta de enlace JMX.

En este artículo, analizaremos el proceso de instalación de WildFly (JBoss) en el sistema Debian 11/Debian 10. El proyecto WildFly ahora produce dos variantes de servidor de aplicaciones, WildFly estándar y WildFly Preview; depende de usted elegir la correcta para sus necesidades. En esta publicación, nos centraremos en la configuración de la variante estándar de WildFly. Usaremos la distribución WildFly que contiene una gran cantidad de configuraciones predeterminadas que le permiten seleccionar las características del servidor y los modos de funcionamiento.

Instale WildFly (JBoss) en Debian 11/Debian 10

Siga los pasos descritos en las siguientes secciones para instalar y configurar

1) Instale Java en su sistema Debian

Comenzaremos la configuración con la instalación de Java en nuestro sistema Debian. Ejecute los siguientes comandos para instalar la última versión de JDK distribuida en los repositorios de su sistema operativo:

sudo apt update
sudo apt install default-jdk

Después de la instalación, confirme la instalación comprobando la versión de Java:

$ java -version
openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb11u1, mixed mode, sharing)

Con Java instalado y funcionando en nuestro sistema, podemos pasar al siguiente paso.

2) Descargue la distribución comprimida WildFly

Usaremos la distribución comprimida para instalar un servidor WildFly completo con soporte para modos operativos de dominio independiente y administrado.

Descargue el archivo comprimido usando wget

sudo apt install wget curl
WILDFLY_RELEASE=$(curl -s https://api.github.com/repos/wildfly/wildfly/releases/latest|grep tag_name|cut -d '"' -f 4)
wget https://github.com/wildfly/wildfly/releases/download/${WILDFLY_RELEASE}/wildfly-${WILDFLY_RELEASE}.tar.gz

Extraiga el archivo descargado:

tar xvf wildfly-${WILDFLY_RELEASE}.tar.gz

Mueva el archivo descargado al directorio /opt:

sudo mv wildfly-${WILDFLY_RELEASE} /opt/wildfly

3) Configurar WildFly en el sistema Debian Linux

En esta sección, crearemos un usuario wildfly y una unidad de servicio systemd para

sudo groupadd --system wildfly
sudo useradd -s /sbin/nologin --system -d /opt/wildfly  -g wildfly wildfly

A continuación creamos un directorio que aloja los archivos de configuración para

sudo mkdir /etc/wildfly

Copie todos los archivos necesarios para administrar

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
sudo chmod +x /opt/wildfly/bin/launch.sh
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/

Configure los permisos del directorio correctamente:

sudo chown -R wildfly:wildfly /opt/wildfly

Recargar las unidades del sistema e iniciar el servicio:

sudo systemctl daemon-reload
sudo systemctl start wildfly
sudo systemctl enable wildfly

Comprobar si

$ systemctl status wildfly
● wildfly.service - The WildFly Application Server
     Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-24 09:42:22 UTC; 42s ago
   Main PID: 46946 (launch.sh)
      Tasks: 51 (limit: 2340)
     Memory: 291.8M
        CPU: 7.659s
     CGroup: /system.slice/wildfly.service
             ├─46946 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
             ├─46947 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
             └─47040 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djav>

Dec 24 09:42:22 debian-bullseye-01 systemd[1]: Started The WildFly Application Server.
Dec 24 09:42:27 debian-bullseye-01 systemd[1]: /etc/systemd/system/wildfly.service:11: PIDFile= references a path below legacy directory /var/run/, updating /var/run/wildfly/wildfly.pid → /run/wild>
lines 1-14/14 (END)

El servicio se vinculará al puerto 8080 del sistema. Asegúrese de que este puerto no esté siendo utilizado por ningún otro servicio

debian@debian-bullseye-01:~$ ss -tunelp | grep 8080
tcp   LISTEN 0      4096                            0.0.0.0:8080       0.0.0.0:*    uid:997 ino:208664 sk:9 cgroup:/system.slice/wildfly.service <->

4) Creación de usuarios de administración/aplicación en WildFly

WildFly se distribuye con la seguridad habilitada para las interfaces de administración. El primer usuario de administración se crea manualmente mediante un script distribuido por la aplicación.

Podemos ejecutar el siguiente comando para agregar el primer usuario:

sudo /opt/wildfly/bin/add-user.sh

Seleccione el tipo de usuario que se agregará al sistema. Elegiremos a para la creación del primer usuario administrador. Para la aplicación creada por el usuario, elija b:

What type of user do you wish to add? 
  a) Management User (mgmt-users.properties) 
  b) Application User (application-users.properties)
 (a): a

Ingrese el nombre de usuario del usuario que se agregará al sistema.

Enter the details of the new user to add.
 Using realm 'ManagementRealm' as discovered from the existing property files.
 Username : myadminuser

Ingrese y confirme la contraseña de usuario:

Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password : <Enter Password>
Re-enter Password :  <Confirm Password>

Continúe con la configuración como lo indica el script:

What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:
About to add user 'myadminuser' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'myadminuser' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'myadminuser' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'myadminuser' with groups  to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'myadminuser' with groups  to file '/opt/wildfly/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server Jakarta Enterprise Beans calls.
yes/no? yes
To represent the user add the following to the server-identities definition <secret value="UGFzc3dvcmRAMzIxIQ==" />

5) Acceder a la consola de administración de WildFly

Todos los archivos binarios y scripts de WildFly se encuentran en el directorio /opt/wildfly/bin/. Este directorio debe estar en nuestro PATH. Agreguémoslo en consecuencia:

cat >> ~/.bashrc <<EOF
export WildFly_BIN="/opt/wildfly/bin/"
export PATH=\$PATH:\$WildFly_BIN                                                                                                                    
EOF

Obtenga el archivo bashrc antes de usar el script.

source ~/.bashrc

Utilice el comando jboss-cli.sh para acceder a la consola CLI de WildFly:

$ jboss-cli.sh --connect
Authenticating against security realm: ManagementRealm
Username: myadminuser
Password: <INPUT-REQUIRED-PASSWORD>
[standalone@localhost:9990 /] version
JBoss Admin Command-line Interface
JBOSS_HOME: /opt/wildfly
Release: 26.0.1.Final
Product: WildFly Full 26.0.1.Final
JAVA_HOME: null
java.version: 11.0.13
java.vm.vendor: Debian
java.vm.version: 11.0.13+8-post-Debian-1deb11u1
os.name: Linux
os.version: 5.10.0-8-amd64

Escribe exit para salir de la consola.

[standalone@localhost:9990 /] exit

6) Acceder a la consola de administración de WildFly

De forma predeterminada, se puede acceder a la consola en la IP del host local en el puerto 9990.

$ ss -tunelp | grep 9990
tcp    LISTEN   0    50    127.0.0.1:9990  0.0.0.0:* users:(("java",pid=6769,fd=404)) uid:999 ino:30407 sk:3 <-> 

Podemos iniciarlo en una dirección IP diferente accesible desde fuera del servidor local. Edite /opt/wildfly/bin/launch.sh para que se vea así:

$ sudo vim /opt/wildfly/bin/launch.sh
#!/bin/bash

if [ "x$WILDFLY_HOME" = "x" ]; then
    WILDFLY_HOME="/opt/wildfly"
fi

if [[ "$1" == "domain" ]]; then
    $WILDFLY_HOME/bin/domain.sh -c $2 -b $3
else
    $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement=0.0.0.0
fi

Agregamos -bmanagement=0.0.0.0 para iniciar la línea de script. Esto vincula la interfaz de “administración” a todas las direcciones IP disponibles.

Reiniciar el servicio wildfly

sudo systemctl restart wildfly

Verifique el estado del servicio para confirmar que fue exitoso

$ systemctl status  wildfly
● wildfly.service - The WildFly Application Server
     Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-24 12:11:21 EAT; 6s ago
   Main PID: 8205 (launch.sh)
      Tasks: 70 (limit: 9482)
     Memory: 159.8M
        CPU: 12.265s
     CGroup: /system.slice/wildfly.service
             ├─8205 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
             ├─8206 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0 -bmanagement=0.0.0.0
             └─8305 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava>

Des 24 12:11:21 ubuntu22 systemd[1]: Started The WildFly Application Server.

Confirme que el puerto 9990 está escuchando:

$ ss -tunelp | grep 9990
tcp    LISTEN   0  50     0.0.0.0:9990  0.0.0.0:*  users:(("java",pid=9496,fd=320)) uid:999 ino:73367 sk:c <->

Abra su navegador y la URL http://serverip:9990 para acceder a la consola web WildFly.

Ingrese el nombre de usuario y la contraseña creados anteriormente para acceder a la consola de administración basada en web de WildFly:

Después de acceder exitosamente a la consola web. Explore varias secciones para familiarizarse con su apariencia y funcionamiento. Las principales secciones de la interfaz son:

  • Implementaciones: agregue y administre implementaciones
  • Configuración: configurar los ajustes del subsistema
  • Tiempo de ejecución: supervisar el estado del servidor
  • Control de acceso: administra permisos de usuarios y grupos para operaciones de administración
  • Parches: Administrar parches completos de WildFly

Ejemplo de captura de pantalla de la sección Runtime

Hasta este punto, hemos tenido una configuración exitosa de WildFly en el sistema Linux Debian 11/Debian 10. Visite la página de documentación de WildFly para leer más y comprender todos los conceptos, cómo funciona y cómo puede comenzar a alojar sus aplicaciones en el servidor de aplicaciones WildFly.

Tenemos más contenido interesante que puedes consultar:

  • Los mejores libros para aprender servidores web Tomcat|Jboss|Jetty
  • Cómo ejecutar Mattermost Server en contenedores Docker
  • Implementar OpenFaaS Serverless Framework en Kubernetes
  • Libros para aprender Rabbitmq/Activemq/Zeromq

Artículos relacionados: