Búsqueda de sitios web

Instale el servidor WildFly (JBoss) en CentOS 8/CentOS 7


En esta publicación de blog, analizaremos los pasos utilizados para instalar el servidor WildFly (JBoss) en CentOS 8/CentOS 7. WildFly, anteriormente conocido como JBoss, es un servidor de aplicaciones escrito en Java y desarrollado por Red Hat. Es una implementación excepcionalmente rápida, liviana y potente de las especificaciones de la plataforma Java Enterprise Edition 8.

Requisitos previos de configuración

  • Servidor CentOS/RHEL 8 o CentOS/RHEL 7
  • Entorno de ejecución de Java
  • Usuario con acceso sudo o root
  • Conexión a Internet en su servidor

Paso 1: Instale Java JDK

Se requiere Java en el servidor que ejecutará WildFly Application Server. Utilice nuestras guías a continuación para instalar Java en CentOS/RHEL 7|8.

  • Instale Java 11 (OpenJDK 11) en RHEL/CentOS 8
  • Cómo instalar Java 11 en CentOS 7

Si desea utilizar Java 11, simplemente ejecute los siguientes comandos para instalarlo.

sudo yum install java-11-openjdk-devel

Puede verificar la versión predeterminada de Java en su máquina usando:

$ java --version
openjdk 11.0.13 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

Paso 2: descargue el archivo de lanzamiento de WildFly

Consulte la página de Descargas de WildFly para conocer las últimas versiones antes de descargar el archivo.

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 el archivo, extráigalo.

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

Mueva la carpeta resultante a /opt/wildfly.

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

Paso 3: configurar Systemd para WildFly

Ahora creemos un usuario y grupo del sistema que ejecutará el servicio WildFly.

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

Cree 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 del 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 permisos /opt/wildfly .

sudo chown -R wildfly:wildfly /opt/wildfly

Recargar el servicio systemd.

sudo systemctl daemon-reload

Configurar SELinux:

sudo semanage fcontext  -a -t bin_t  "/opt/wildfly/bin(/.*)?"
sudo restorecon -Rv /opt/wildfly/bin/

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; vendor preset: disabled)
    Active: active (running) since Wed 2023-04-03 16:22:58 EAT; 6s ago
  Main PID: 31303 (launch.sh)
     Tasks: 119 (limit: 11510)
    Memory: 330.8M
    CGroup: /system.slice/wildfly.service
            ├─31303 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
            ├─31304 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
            └─31396 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djbos>
 Apr 03 16:22:58 rhel8.local systemd[1]: Started The WildFly Application Server.

El servicio debe vincularse al puerto 8080.

$ sudo ss -tunelp | grep 8080
tcp    LISTEN   0   128    0.0.0.0:8080  0.0.0.0:*  users:(("java",pid=6854,fd=389)) uid:999 ino:30339 sk:3 <-> 

Paso 4: agregue usuarios de WildFly al sistema

WildFly se distribuye con la 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.

Ejecútelo ejecutando el comando:

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

Proporcione el nombre de usuario deseado para el usuario.

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

Establecer contraseña para el 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>

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: /opt/wildfly/standalone/configuration/mgmt-groups.properties

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

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

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

Obtenga el archivo bashrc.

source ~/.bashrc

Ahora pruebe conectándose a la consola de administración de WildFly desde CLI con el comando jboss-cli.sh.

$ jboss-cli.sh --connect
Authenticating against security realm: ManagementRealm
Username: <enter-created-username>
Password: <enter-assigned-password>
[standalone@localhost:9990 /] version
JBoss Admin Command-line Interface
JBOSS_HOME: /opt/wildfly
Release: 29.0.1.Final
Product: WildFly Full 29.0.1.Final
JAVA_HOME: null
java.version: 11.0.13
java.vm.vendor: Red Hat, Inc.
java.vm.version: 11.0.13+8-LTS
os.name: Linux
os.version: 4.18.0-305.7.1.el8_4.x86_64
[standalone@localhost:9990 /] exit

Accediendo 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.

$ sudo 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 tenga este aspecto:

.....
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 secuencia de comandos. Esto vincula la interfaz de “administración” a todas las direcciones IP disponibles.

Reiniciar el servicio Wildfly

sudo systemctl restart wildfly

Confirmar

$ 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 <->

Abrir puertos en el firewall

sudo firewall-cmd --permanent --add-port={8080,9990}/tcp
sudo firewall-cmd --reload

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á.

Ha instalado correctamente el servidor de aplicaciones WildFly en RHEL/CentOS 8/7. Visite la página de documentación de WildFly para obtener más información.

Si es usuario de Ubuntu/Debian, consulte: Instalar el servidor de aplicaciones WildFly (JBoss) en Ubuntu


Artículos relacionados: