Introducción
WildFly, inicialmente conocido como JBoss Application Server , es una implementación de código abierto excepcionalmente rápida y liviana del contenedor Java Enterprise Edition (JEE). WildFly está escrito en Java y fue desarrollado por RedHat para ayudar a administrar el tiempo de ejecución de la aplicación y crear aplicaciones. Esta herramienta fue desarrollada en 2006 por JBoss Inc y luego adquirida por RedHat para convertirse en WildFly. El nombre se cambió debido a la confusión traída a la cartera por los nombres de los productos. WildFly puede ejecutarse en varios sistemas operativos con soporte de 32 y 64 bits.
La última versión de WildFly 26 incluye muchas características 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 principales de tiempo de ejecución se han desarrollado para minimizar la asignación de montones mediante el uso de metadatos indexados almacenados en caché comunes en escaneos completos duplicados, lo que reduce el abandono de montones y objetos.
- Basado en estándares : WildFly implementa los últimos estándares comerciales de Java de Jakarta EE y Eclipse MicroProfile. Estos mejoran la productividad de los desarrolladores al proporcionar capacidades comerciales avanzadas en marcos fáciles de usar que eliminan la placa estándar y reducen la carga técnica.
- Modular : WildFly carga correctamente las clases. Utiliza módulos JBoss para proporcionar un verdadero aislamiento de la aplicación, ocultando las clases de implementación del servidor de la aplicación y conectándose solo con los JAR que necesita la aplicación.
- Potente : la configuración en WildFly es centralizada, simple y centrada en el usuario. El archivo de configuración está organizado en subsistemas fácilmente comprensibles y no se expone ningún cableado interno del servidor.
Esta guía pretende demostrar cómo instalar la última versión de WildFly en Rocky Linux 8.
Si desea instalar WildFly en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita saber la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña de usuario raíz.
Si no está usando el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz a su nombre de usuario :
ssh nome_utente@IP_DEL_SERVER
A continuación, se le pedirá que introduzca su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22 , si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p , luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Requisitos previos
Para esta guía, necesita lo siguiente:
- Linux Rocky 8.
- Memoria superior a 2GB de RAM
Además, asegúrese de que los paquetes en su sistema estén actualizados a las últimas versiones disponibles:
sudo yum update
Ahora siga los pasos a continuación para instalar WildFly en Rocky Linux 8.
Instalar Java en Rocky Linux 8
Dado que WildFly se basa en Java, se debe instalar Java antes de continuar. Para esta guía, instalaremos Java OpenJDK 11:
sudo yum install java-11-openjdk-devel
Una vez instalado, compruebe 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)
Instale WildFly en Rocky Linux 8
Antes de descargar e instalar WildFly, debe 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 del sitio web oficial de WildFly con el comando wget. Para esta guía, descargaremos el archivo TGZ Jarkata EE Full & Web Distribution (26.0.1) usando Wget como se muestra a continuación:
wget https://github.com/wildfly/wildfly/releases/download/26.0.1.Final/wildfly-26.0.1.Final.tar.gz
Una vez descargado, extraiga el archivo al directorio /opt con el comando tar:
sudo tar xf wildfly-*.Final.tar.gz -C /opt/
Ahora crearemos un enlace simbólico para WildFly con el comando ln, esto es esencial al actualizar o instalar una versión diferente en WildFly:
sudo ln -s /opt/wildfly-26.0.1.Final/ /opt/wildfly
Establezca la propiedad del archivo en el usuario Wildfly creado con el comando chown:
sudo chown -RH wildfly:wildfly /opt/wildfly
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 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
Del resultado anterior, podemos aceptar que WildFly funciona en modo independiente de forma predeterminada, pero aún puede personalizarlo según sus preferencias.
Luego copie el script launch.sh necesario para iniciar WildFly como un servicio:
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
Ahora copie el archivo de servicio para WildFly:
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /usr/lib/systemd/system/
También se 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.
sudo systemctl enable wildfly.service
sudo systemctl start wildfly.service
Consultar el estado del servicio.
sudo 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 2022-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 el paso del puerto WildFly:
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
En este punto, se debe poder acceder a WildFly en el puerto 8080 .
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.
En primer lugar, debemos crear un usuario administrador que nos permita acceder a 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 : noviello
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 'noviello' for realm 'ManagementRealm'
Is this correct yes/no? yes
....
Added user 'noviello' 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 de servicio de WildFly:
sudo vi /usr/lib/systemd/system/wildfly.service
Edite el archivo de la siguiente manera:
[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 el puerto de la consola de administración de WildFly a través del firewall:
sudo firewall-cmd --permanent --add-port=9990/tcp
sudo firewall-cmd --reload
Deshabilitar SELinux:
sudo setenforce 0
Inicie sesión en la consola de administración de WildFly
Ahora continúe e inicie sesión en la Consola de administración de WildFly utilizando la URL http://IP_address:9990/console.
Proporcione las credenciales de usuario administrador que creó.
Ahora implementaremos una aplicación Java de muestra en el servidor WildFly. Primero, descargue la aplicación Helloworld Java de 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 archivos disponibles:
ls
helloworld.war helloworld.war.deployed README.txt
Del resultado anterior, el archivo llamado * .deployed muestra que la aplicación se implementó correctamente; de lo contrario, el archivo se llamará * .failed . Puede ver los registros de WildFly de la siguiente manera:
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 distribución se puede ver en el navegador usando la URL http://IP_address: 8080/helloworld/
Conclusión
Esto marca el final de esta guía. Hemos configurado con éxito el servidor WildFly en Rocky Linux 8 y también hemos distribuido una aplicación de muestra. Ahora continúe y use WildFly para crear y administrar aplicaciones.