Búsqueda de sitios web

Cómo instalar WildFly en Rocky Linux 8|AlmaLinux 8 |


WildFly, inicialmente conocido como JBoss Application Server, es una implementación de código abierto excepcionalmente rápida y liviana del contenedor JEE (Java Enterprise Edition). WildFly está escrito en Java y fue desarrollado por RedHat para ayudar a administrar el tiempo de ejecución de las aplicaciones y crearlas. Esta herramienta fue desarrollada en 2006 por JBoss Inc y posteriormente adquirida por RedHat para convertirse en WildFly. El nombre se cambió debido a la confusión que trajeron al portafolio los nombres de los productos. WildFly se puede ejecutar en varios sistemas operativos compatibles con 32 y 64 bits.

La última versión de WildFly 26 viene con muchas funciones y mejoras. Las sorprendentes características asociadas con WildFly son:

  • Ligero: WildFly adopta un enfoque agresivo para la gestión de la memoria. Los servicios de tiempo de ejecución base se desarrollaron para minimizar la asignación de montón mediante el uso de metadatos indexados en caché comunes sobre análisis completos duplicados, lo que reduce la rotación de objetos y montón.
  • Basado en estándares: WildFly implementa lo último en estándares Java empresariales de Jakarta EE y Eclipse MicroProfile. Estos mejoran la productividad de los desarrolladores al proporcionar capacidades empresariales ricas en marcos fáciles de consumir que eliminan los textos estándar y reducen la carga técnica.
  • Modular: WildFly realiza correctamente la carga de clases. Utiliza módulos JBoss para proporcionar un verdadero aislamiento de aplicaciones, ocultando las clases de implementación del servidor de la aplicación y vinculándose solo con los JAR que su aplicación necesita.
  • Potente: la configuración en WildFly es centralizada, simple y centrada en el usuario. El archivo de configuración está organizado por subsistemas que puede comprender fácilmente y no se expone ningún cableado interno del servidor.

Esta guía tiene como objetivo demostrar cómo instalar la última versión de WildFly en Rocky Linux 8 | AlmaLinux 8.

Primeros pasos.

Para esta guía, necesita lo siguiente:

  • Linux rocoso 8 | Sistema AlmaLinux 8.
  • Memoria superior a 2 GB de RAM

Además, asegúrese de que los paquetes de su sistema estén actualizados a sus últimas versiones disponibles.

sudo yum update

Ahora siga los pasos a continuación para instalar WildFly en Rocky Linux 8 | AlmaLinux 8

Paso 1: instale Java en Rocky Linux 8 | AlmaLinux 8

Dado que WildFly se basa en Java, necesitamos tener Java instalado antes de continuar. Para esta guía, instalaremos Java OpenJDK 11.

sudo yum install java-11-openjdk-devel

Una vez instalado, verifique la versión de Java.

$ java -version
openjdk version "11.0.14.1" 2022-02-08 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.14.1+1-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.14.1+1-LTS, mixed mode, sharing)

Paso 2: instale WildFly en Rocky Linux 8 | AlmaLinux 8

Antes de descargar e instalar WildFly, debemos crear un usuario y un grupo del sistema para WildFly. Cree el usuario con un directorio de inicio personalizado como se muestra a continuación.

sudo useradd -r -d /opt/wildfly -s /sbin/nologin wildfly

Ahora continúe y descargue la última versión de WildFly desde el sitio web oficial de WildFly. Para esta guía, descargaremos el archivo Jarkata EE Full & Web Distribution TGZ usando Wget como se muestra a continuación.

sudo yum -y 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

Una vez descargado, extraiga el archivo.

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

Mueva la carpeta creada al directorio /opt.

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

Establezca la propiedad del archivo para el usuario Wildfly creado.

sudo chown -RH wildfly:wildfly /opt/wildfly

Paso 3: cree el servicio Systemd para WildFly

Comenzaremos creando las configuraciones de WildFly en el directorio /etc como se muestra a continuación.

sudo mkdir /etc/wildfly
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/

Ver el contenido de la configuración.

$ cat /etc/wildfly/wildfly.conf
# The configuration you want to run
WILDFLY_CONFIG=standalone.xml

# The mode you want to run
WILDFLY_MODE=standalone

# The address to bind to
WILDFLY_BIND=0.0.0.0

Según el resultado anterior, podemos aceptar que WildFly se ejecuta en modo independiente de forma predeterminada, pero aún puede personalizarlo según sus preferencias.

A continuación, copie el script launch.sh que se requiere para iniciar WildFly como servicio.

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/

Ahora copie el archivo de servicio de WildFly.

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /usr/lib/systemd/system/

También necesita un directorio para contener el archivo PID.

sudo mkdir /var/run/wildfly/
sudo chown -R wildfly:wildfly /var/run/wildfly/

Ahora inicie y habilite WildFly en Rocky Linux 8 | AlmaLinux 8.

sudo systemctl enable wildfly.service
sudo systemctl start wildfly.service

Consultar el estado del servicio.

$ systemctl status wildfly.service
● wildfly.service - The WildFly Application Server
   Loaded: loaded (/usr/lib/systemd/system/wildfly.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2023-03-17 06:39:27 EDT; 20s ago
 Main PID: 37572 (launch.sh)
    Tasks: 125 (limit: 36438)
   Memory: 273.6M
   CGroup: /system.slice/wildfly.service
           ├─37572 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
           ├─37573 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
           └─37666 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djbo>

Mar 17 06:39:27 localhost.localdomain systemd[1]: Started The WildFly Application Server.

Configure el firewall para permitir que el puerto WildFly lo atraviese.

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

En este punto, debería poder accederse a WildFly en el puerto 8080.

Paso 4: configurar la consola de administración de WildFly para acceso remoto

De forma predeterminada, la consola de administración de WildFly se ejecuta en localhost. En caso de que queramos acceder a él a través de un host remoto, debemos realizar algunas configuraciones.

Fists, necesitamos crear un usuario administrador que nos permita iniciar sesión en la Consola de administración de WildFly.

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

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

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : klinsmann
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 : 
Re-enter Password : 

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 'klinsmann' for realm 'ManagementRealm'
Is this correct yes/no? yes
....
Added user 'klinsmann' with groups  to file '/opt/wildfly-26.0.1.Final/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="UGFzc3cwcmQh" />

A continuación, crearemos una variable de entorno para WildFly.

$ sudo vi /etc/wildfly/wildfly.conf

# The address to bind console to
WILDFLY_CONSOLE_BIND=0.0.0.0

Además, edite el script launch.sh.

$ sudo vi /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 -bmanagement $4
else
    $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement $4
fi

Edite también el archivo del servicio WildFly.

sudo vi /usr/lib/systemd/system/wildfly.service

Edite el archivo como se muestra a continuación:

[Unit]
Description=The WildFly Application Server
After=syslog.target network.target
Before=httpd.service

[Service]
Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
EnvironmentFile=-/etc/wildfly/wildfly.conf
User=wildfly
LimitNOFILE=102642
PIDFile=/var/run/wildfly/wildfly.pid
ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND
StandardOutput=null

[Install]
WantedBy=multi-user.target

Vuelva a cargar el demonio del sistema y reinicie el servicio WildFly.

sudo systemctl daemon-reload
sudo systemctl restart wildfly.service

Ahora permita que el puerto de la Consola de administración WildFly atraviese el firewall.

sudo firewall-cmd --permanent --add-port=9990/tcp
sudo firewall-cmd --reload

Deshabilite SELinux.

sudo setenforce 0

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

Ahora continúe y acceda a la Consola de administración de WildFly utilizando la URL http://IP_address:9990/console.

Proporcione las credenciales del usuario administrador creado.

Ahora implementaremos una aplicación Java de muestra en el servidor WildFly. Primero, descargue la aplicación Java Helloworld desde GitHub como se muestra a continuación.

cd /opt/wildfly/standalone/deployments/
sudo curl -O https://raw.githubusercontent.com/aeimer/java-example-helloworld-war/master/dist/helloworld.war

Ver los archivos disponibles.

$ ls
helloworld.war  helloworld.war.deployed  README.txt

Del resultado anterior, el archivo denominado *.deployed muestra que la aplicación se ha implementado correctamente; de lo contrario, el archivo se denominará *.failed. . Puede ver los registros de WildFly como se muestra a continuación.

$ tail /opt/wildfly/standalone/log/server.log  | grep helloworld
2022-03-17 07:07:07,674 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment of "helloworld.war" (runtime-name: "helloworld.war")
2022-03-17 07:07:08,818 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 81) WFLYUT0021: Registered web context: '/helloworld' for server 'default-server'
2022-03-17 07:07:08,886 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) WFLYSRV0010: Deployed "helloworld.war" (runtime-name : "helloworld.war")

La implementación se puede ver en el navegador usando la URL http://IP_address:8080/helloworld/

¡Voilá!

Eso marca el final de esta guía. Hemos configurado con éxito el servidor WildFly en Rocky Linux 8 | AlmaLinux 8 y también implementó una aplicación de muestra. Ahora continúe y utilice WildFly para crear y administrar aplicaciones.

Artículos Relacionados:

  • Instale el servidor WildFly (JBoss) en CentOS
  • Cómo instalar WildFly (JBoss) en Ubuntu
  • Cómo instalar WildFly (JBoss) en Debian

Artículos relacionados: