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