Búsqueda de sitios web

Cómo instalar WildFly (JBoss) en Debian 12 (Bookworm)


WildFly, anteriormente conocido como JBoss, es un servidor de aplicaciones de código abierto escrito por JBoss principalmente en Java. La empresa detrás de su desarrollo es Red Hat. WildFly implementa la especificación Java Platform y Enterprise Edition. Puede ejecutarse en múltiples plataformas, incluidas Linux, Windows y macOS.

Si necesita una compilación WildFly reforzada de nivel empresarial, considere JBoss Enterprise Application Platform. Con la suscripción a JBoss EAP, puede disfrutar del soporte de primer nivel de Red Hat, largos ciclos de mantenimiento de varios años y contenido exclusivo. Puede registrarse en Red Hat para descargar una licencia de desarrollo de 1 año sin costo.

En este artículo nos centraremos en la instalación, configuración y uso básico de WildFly (JBoss) en Debian 12 (Bookworm). Al momento de escribir este artículo, la última versión estable de Debian es la versión 12, con el nombre en clave Bookworm.

Paso 1: Instale el kit de desarrollo de Java (JDK)

El kit de desarrollo de Java implementa la especificación del lenguaje Java y la especificación de la máquina virtual Java y proporciona la edición estándar de la interfaz de programación de aplicaciones Java. Esta es una dependencia importante en la ejecución de aplicaciones WildFly.

Podemos optar por instalar;

  • Instalar OpenJDK, o
  • Instalar el kit de desarrollo Java SE

La forma más sencilla de obtener Java es instalar OpenJDK en su sistema Debian ejecutando los siguientes comandos.

sudo apt update
sudo apt -y install default-jdk

Actualmente, WildFly es compatible con Java 17 y Java 11. Puede confirmar la versión instalada en su sistema.

$ java --version
openjdk 17.0.7 2023-04-18
OpenJDK Runtime Environment (build 17.0.7+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.7+7-Debian-1deb12u1, mixed mode, sharing)

Paso 2: descargue el tarball de WildFly

A continuación descargamos la distribución archivada de WildFly para instalarla en su sistema Debian. Si wget no está presente en su sistema, puede instalarlo ejecutando los siguientes comandos en su terminal.

sudo apt install curl wget

Las últimas versiones del software están disponibles en la página de descargas de WildFly. Los comandos proporcionados le permiten obtener la última versión.

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

Después de la descarga, extraiga el archivo comprimido.

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

Deberíamos mover la carpeta creada de WildFly al directorio /opt.

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

Paso 3: Configurar la unidad WildFly Systemd

Para facilitar la gestión del servicio, estamos creando un archivo de unidad del sistema. Comience agregando el usuario del sistema wildfly:

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

Luego creamos el directorio de configuraciones de WildFly.

sudo mkdir /etc/wildfly

Copie el servicio WildFly systemd, el archivo de configuración y las plantillas de scripts de inicio desde el directorio /opt/wildfly/docs/contrib/scripts/systemd/.

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
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

Establezca los permisos /opt/wildfly con los siguientes comandos.

sudo chown -R wildfly:wildfly /opt/wildfly

Vuelva a cargar los servicios de systemd antes de iniciar wildfly.

sudo systemctl daemon-reload

Inicie y habilite el servicio WildFly:

sudo systemctl start wildfly
sudo systemctl enable wildfly

Confirme el estado del servidor de aplicaciones WildFly.

$ systemctl status wildfly
 wildfly.service - The WildFly Application Server
     Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; preset: enabled)
     Active: active (running) since Fri 2023-06-30 21:26:57 UTC; 18s ago
   Main PID: 3124 (launch.sh)
      Tasks: 126 (limit: 4532)
     Memory: 267.6M
        CPU: 14.457s
     CGroup: /system.slice/wildfly.service
             ├─3124 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
             ├─3126 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
             └─3252 java "-D[Standalone]" -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.h>

Jun 30 21:26:57 deb12 systemd[1]: Started wildfly.service - The WildFly Application Server.

El servicio WildFly está escuchando en el puerto 8080.

$ ss -tunelp | grep 8080
tcp   LISTEN 0      4096         0.0.0.0:8080      0.0.0.0:*    users:(("java",pid=3252,fd=488)) uid:999 ino:20878 sk:2 cgroup:/system.slice/wildfly.service <->

Paso 4: creación de usuarios de WildFly

WildFly se entrega con seguridad habilitada para las interfaces de administración. Necesitamos crear un usuario que pueda acceder a la consola de administración de WildFly o usar la CLI de forma remota. Se proporciona un script para administrar usuarios. Para crear el primer usuario, ejecute los siguientes comandos:

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

Se le pedirá que elija el tipo de usuario que desea agregar. Dado que este es el primer usuario, queremos convertirlo en administrador. Así que elige a.

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 del usuario que se creará.

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

Proporcione una contraseña segura para este usuario. Consulte la guía proporcionada sobre la política de contraseñas.

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>

Presione Intro y acepte las indicaciones posteriores para finalizar la creación del usuario.

What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]: <Enter>
 About to add user 'computingforgeeks' for realm 'ManagementRealm'
 Is this correct yes/no? yes
 Added user 'computingforgeeks' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
 Added user 'computingforgeeks' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
 Added user 'computingforgeeks' with groups  to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
 Added user 'computingforgeeks' 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 EJB calls.
 yes/no? yes
 To represent the user add the following to the server-identities definition 

Darse cuenta de:

La información del usuario se mantiene en: /opt/wildfly/domain/configuration/mgmt-users.properties
La información del grupo se mantiene en: /opt/wildfly/standalone/configuration/mgmt- grupos.properties

Paso 5: acceder a la consola de administración de WildFly

Para poder ejecutar scripts WildFly desde su sesión de shell actual, agregue /opt/wildfly/bin/ a su ` PATH.

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

Obtenga el archivo bashrc.

source ~/.bashrc

Valide su conexión a la consola de administración WildFly desde CLI con el comando jboss-cli.sh.

$ jboss-cli.sh --connect
Authenticating against security realm: ManagementRealm
Username: computingforgeeks
Password:
[standalone@localhost:9990 /] version
JBoss Admin Command-line Interface
JBOSS_HOME: /opt/wildfly
Release: 20.0.2.Final
Product: WildFly Full 28.0.1.Final
JAVA_HOME: null
java.version: 17.0.7
java.vm.vendor: Debian
java.vm.version: 17.0.7+7-Debian-1deb12u1
os.name: Linux
os.version: 6.1.0-9-amd64
[standalone@localhost:9990 /] exit

Acceso a la consola de administración de WildFly desde la interfaz web

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

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=3252,fd=482)) uid:999 ino:20877 sk:5 cgroup:/system.slice/wildfly.service <->

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

Utilice el nombre de usuario creado anteriormente y la contraseña para autenticarse. La consola WildFly será la siguiente ventana que se mostrará.

Libros de aprendizaje:

  • Los mejores libros para aprender servidores web Tomcat|Jboss|Jetty

Conclusión

La distribución WildFly de forma predeterminada viene con una gran cantidad de configuraciones predeterminadas que le permiten seleccionar las características del servidor y los modos de funcionamiento. Esperamos que este artículo le haya ayudado con la instalación de la oferta del servidor de aplicaciones de código abierto JBoss (WildFly) en el sistema Debian 12 Linux. Consulta más contenidos disponibles en nuestra web.

Artículos relacionados: