Introducción
WildFly, anteriormente conocido como JBoss, es un tiempo de ejecución de aplicaciones de código abierto multiplataforma escrito en Java que le ayuda a crear aplicaciones asombrosas. WildFly es flexible, liviano y se basa en subsistemas conectables que se pueden agregar o eliminar según sea necesario.
En este tutorial, lo guiaremos a través de los pasos necesarios para instalar el servidor de aplicaciones WildFly en Debian 10.
Prerrequisitos
El usuario que ha iniciado sesión debe tener privilegios de sudo para poder instalar paquetes.
Si desea instalar WildFly en un servidor remoto, continúe leyendo, de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer 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 del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese 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
Instalar Java OpenJDK
WildFly requiere que Java esté instalado. Instalemos OpenJDK en Debian 19:
sudo apt update
sudo apt install default-jdk
Crear un usuario
Cree un nuevo usuario y grupo de sistema wildfly
con el directorio de inicio /opt/wildfly
que ejecutará el servicio WildFly:
sudo groupadd -r wildfly
sudo useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly
Instalar WildFly
18.0.1
, la última versión de WildFly es la 18.0.1. Antes de continuar con el siguiente paso, debe consultar la página de descarga para obtener una nueva versión. Si hay una nueva versión disponible, reemplace la WILDFLY_VERSION
en el siguiente comando.
Descargue el archivo WildFly en el /tmp
usando el siguiente comando wget
WILDFLY_VERSION=18.0.1.Final
wget https://download.jboss.org/wildfly/$WILDFLY_VERSION/wildfly-$WILDFLY_VERSION.tar.gz -P /tmp
Una vez que se complete la descarga, extraiga el archivo tar.gz y muévalo al directorio /opt
sudo tar xf /tmp/wildfly-$WILDFLY_VERSION.tar.gz -C /opt/
Cree un enlace simbólico de wildfly
que apunte al directorio de instalación de WildFly:
sudo ln -s /opt/wildfly-$WILDFLY_VERSION /opt/wildfly
WildFly se ejecuta como un wildfly
que debe tener acceso al directorio de instalación de WildFly. Cambie la propiedad del directorio wildfly
usuario y grupo wildfly:
sudo chown -RH wildfly: /opt/wildfly
Configurar Systemd
El paquete WildFly incluye los archivos necesarios para ejecutar WildFly como servicio.
Empiece creando un directorio que contendrá el archivo de configuración de WildFly:
sudo mkdir -p /etc/wildfly
Copie el archivo de configuración en el /etc/wildfly
:
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
Este archivo le permite especificar el modo WildFly y enlazar la dirección. De forma predeterminada, WildFly se ejecutará en modo independiente y escuchará todas las interfaces. Para una configuración estándar no es necesario modificar el archivo de configuración, de lo contrario abra el siguiente archivo y modifíquelo según sus necesidades:
sudo nano /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
Luego, copie el script de launch.sh
/opt/wildfly/bin/
:
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
Los scripts dentro del director bin
y deben tener indicadores ejecutables:
sudo sh -c 'chmod +x /opt/wildfly/bin/*.sh'
El último paso es copiar el archivo de la unidad systemd nombrado en el /etc/systemd/system/
:
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
Vuelva a cargar la configuración del administrador del sistema:
sudo systemctl daemon-reload
Inicie y habilite el servicio WildFly para que se inicie automáticamente al iniciarse:
sudo systemctl start wildfly
sudo systemctl enable wildfly
Verifique el estado del servicio con el siguiente comando:
sudo systemctl status wildfly
● wildfly.service - The WildFly Application Server
Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-01-11 16:13:02 CET; 6s ago
Main PID: 3652 (launch.sh)
Tasks: 54 (limit: 2301)
Memory: 144.7M
CGroup: /system.slice/wildfly.service
├─3652 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
├─3653 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
└─3733 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.prefer
Configurar el firewall
Si su servidor está protegido por un firewall y desea acceder a la interfaz WildFly desde fuera de su red local, debe abrir el puerto 8080
.
Para permitir el tráfico en el puerto 8080
escriba el siguiente comando:
sudo ufw allow 8080/tcp
Al ejecutar una aplicación WildFly en un entorno de producción, lo más probable es que tenga equilibrio de carga o proxy inverso y se recomienda que el acceso al puerto 8080 esté restringido solo a su red interna.
Configurar la autenticación WildFly
Ahora que WildFly está instalado y en ejecución, el siguiente paso es crear un usuario que podrá conectarse mediante la consola de administración o de forma remota a través de la interfaz de línea de comandos.
Para agregar un nuevo usuario, use el add-user.sh
ubicado en el directorio bin de WildFly:
sudo /opt/wildfly/bin/add-user.sh
Se le preguntará qué tipo de usuario desea agregar:
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a):
Seleccione a
y presione Enter
:
A continuación, el script le pedirá que ingrese los detalles del nuevo usuario:
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' to file '/opt/wildfly-18.0.1.Final/standalone/configuration/mgmt-users.properties'
Added user 'Noviello' to file '/opt/wildfly-18.0.1.Final/domain/configuration/mgmt-users.properties'
Added user 'Noviello' with groups to file '/opt/wildfly-18.0.1.Final/standalone/configuration/mgmt-groups.properties'
Added user 'Noviello' with groups to file '/opt/wildfly-18.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?
eg 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 <secret value="UGllcm8xMmVfIQ==" />
El nuevo usuario se agregará a los archivos de propiedades utilizados para la autenticación.
Pruebe la instalación de WildFly
Para acceder a la página predeterminada de WildFly, abra su navegador y escriba su dirección IP o nombre de dominio especificando el puerto 8080
: http://TUO_DOMINIO_O_IP>:8080
Suponiendo que la instalación sea exitosa, verá la página de bienvenida de WildFly.
Inicie sesión en la consola de administración de WildFly
Interfaz de línea de comandos
Para acceder a la consola de administración de WildFly desde la línea de comandos, puede usar el script jboss-cli.sh
Cambie al directorio bin de WildFly y ejecute el script con la opción --connect
cd /opt/wildfly/bin/
./jboss-cli.sh --connect
Se le pedirá que ingrese el nombre de usuario administrativo y la contraseña creados previamente, o el primer inicio de sesión se realizará automáticamente:
Authenticating against security realm: ManagementRealm
Username: Noviello
Password:
Una vez que haya iniciado sesión, el indicador de la consola cambiará a [standalone@localhost:9990 /]
. Escriba help
para obtener una lista de comandos y su sintaxis.
Desde aquí puede implementar y anular la implementación de aplicaciones, administrar usuarios y grupos, y configurar y monitorear el servidor WildFly.
interfaz web
Si prefiere administrar su servidor desde la GUI, WildFly también proporciona una consola basada en web.
De forma predeterminada, la consola de administración de WildFly solo está disponible desde localhost en http://localhost:9990/console
. Inicie sesión con el usuario que creó anteriormente.
Si desea acceder a la consola desde ubicaciones remotas, debe realizar pequeños cambios en los wildfly.service
, wildfly.conf
y launch.sh
.
Abra wildfly.conf
y agregue WILDFLY_CONSOLE_BIND=0.0.0.0
al final del archivo:
sudo nano /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
# The address console to bind to
WILDFLY_CONSOLE_BIND=0.0.0.0
Abra launch.sh
y edite las siguientes líneas $WILDFLY_HOME/bin/domain.sh
y $WILDFLY_HOME/bin/standalone.sh
, el resultado debería ser como el siguiente:
sudo nano /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
f
Reinicie el servicio para que los cambios surtan efecto:
sudo systemctl restart wildfly
Abra wildfly.service
y edite la ExecStart
así:
sudo nano /etc/systemd/system/wildfly.service
[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
Cree el directorio /var/run/wildfly
y establezca los permisos correctos:
sudo mkdir /var/run/wildfly/
sudo chown wildfly: /var/run/wildfly/
Vuelva a cargar la configuración del administrador del sistema:
sudo systemctl daemon-reload
Reinicie el servicio WildFly ejecutando:
sudo systemctl restart wildfly
Suponiendo que su firewall no esté bloqueando el puerto 9990
, debería poder acceder a la consola de administración de WildFly en http://TUO_DOMINIO_O_IP:9990/console
.
Conclusión
Ha instalado WildFly con éxito en su servidor Debian 10. Debería visitar la documentación oficial de WildFly y obtener más información sobre las características de WildFly.