WildFly, anteriormente conocido como JBoss AS, es un servidor de aplicaciones Java multiplataforma y de código abierto. Con una arquitectura orientada a servicios, ofrece una plataforma de alto rendimiento escalable y ligera. También se caracteriza por su configuración rápida y sencilla.

A continuación, te explicaremos paso a paso cómo instalar Wildfly en la versión 15.0.1 en un Ubuntu 18.04.

Instalación

Lo primero que debemos hacer es instalar el cliente JDK y actualizar todo el servidor:

apt-get install default-jdk -y
apt-get install software-properties-common
apt update -y && sudo apt upgrade -y
add-apt-repository ppa:linuxuprising/java
apt-get update
java -version

Luego ubicamos el directorio /opt y nos descargamos Wildfly desde la propia web de JBOSS.

cd /opt/
wget https://download.jboss.org/wildfly/15.0.1.Final/wildfly-15.0.1.Final.tar.gz
tar -xvzf wildfly-15.0.1.Final.tar.gz

Editamos el fichero para cambiar los datos de conexión, ya que por defecto los datos de conexión apuntan a la IP 127.0.0.1.

vim /opt/wildfly-15.0.1.Final/standalone/configuration/standalone.xml

Cambiamos la IP 127.0.0.1 por la IP que toque para nuestro servidor.

Creación de un usuario

Ahora creamos un usuario lanzando un script propio de WildFly

./opt/wildfly-15.0.1.Final/bin/add-user.sh

Nos hará una serie de cuestiones que hemos de responder para crear un usuario ADMINISTRADOR del sitio WEB. Te destacamos las respuestas:

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 : wildflyadmin
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)[ ]: wildfly
About to add user ‘wildflyadmin’ for realm ‘ManagementRealm’
Is this correct yes/no? yes
Added user ‘wildflyadmin’ to file ‘/opt/wildfly/standalone/configuration/mgmt-users.properties’
Added user ‘wildflyadmin’ to file ‘/opt/wildfly/domain/configuration/mgmt-users.properties’
Added user ‘wildflyadmin’ with groups wildfly to file ‘/opt/wildfly/standalone/configuration/mgmt-groups.properties’
Added user ‘wildflyadmin’ with groups wildfly 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 <secret value=”xxxxx” />

Ahora ya podemos arrancar el servicio del WildFly con el siguiente script:

./wildfly-15.0.1.Final/bin/standalone.sh

Prueba Wildfly en el navegador

Ya podemos navegar hasta la página del Wildfly.

Como URL podemos utilizar el nombre de host o la dirección IP del servidor seguido por el puerto 9990.

Crear un servicio

Para crear un servicio de arranque, parada o reinicio en el propio Ubuntu del WildFly, lo podemos hacer copiando los propios ficheros que trae WildFly

Copiamos, dependiendo si la distribución es DEBIAN o REDHAT, el fichero wildfly-init en la ruta /etc/init.d

Copiamos el fichero que nos interese en /etc/init.d

root@ubuntu:/# ll /opt/wildfly-15.0.1.Final/docs/contrib/scripts/init.d/
total 28
drwxr-xr-x 2 wildfly wildfly 4096 Feb 12 11:44 ./
drwxr-xr-x 5 wildfly wildfly 4096 Feb 12 11:44 ../
-rw-r–r– 1 wildfly wildfly 975 Jan 5 19:10 wildfly.conf
-rwxr-xr-x 1 wildfly wildfly 7425 Jan 5 19:10 wildfly-init-debian.sh*
-rwxr-xr-x 1 wildfly wildfly 6172 Jan 5 19:10 wildfly-init-redhat.sh*
root@ubuntu:/#

cp /opt/wildfly-15.0.1.Final/docs/contrib/scripts/init.d/wildfly-init-debian.sh /etc/init.d/wildfly

Actualizamos el inicio update-rc.d

update-rc.d wildfly defaults

Copiamos el fichero de configuración del servicio de WildFly

cp /opt/wildfly-

15.0.1.Final/docs/contrib/scripts/init.d/wildfly.conf  /etc/default/wildfly

Actualizamos el fichero de configuración del servicio para descomentar las siguientes líneas:

nano /etc/default/wildfly

JBOSS_HOME=”/opt/wildfly”
JBOSS_USER=wildfly
JBOSS_MODE=standalone
JBOSS_CONFIG=standalone.xml
STARTUP_WAIT=60
SHUTDOWN_WAIT=60
JBOSS_CONSOLE_LOG=”/var/log/wildfly/console.log”

Al final, el fichero quedará así:

#################################################
# General configuration for the init.d scripts,                                                 #
# not necessarily for WildFly itself.                                                             #
# default location: /etc/default/wildfly                                                         #
#################################################

## Location of JDK
# JAVA_HOME=”/usr/lib/jvm/default-java”

## Location of WildFly
JBOSS_HOME=”/opt/wildfly”

## The username who should own the process.
JBOSS_USER=wildfly

## The mode WildFly should start, standalone or domain
JBOSS_MODE=standalone

## Configuration for standalone mode
JBOSS_CONFIG=standalone.xml

## Configuration for domain mode
# JBOSS_DOMAIN_CONFIG=domain.xml
# JBOSS_HOST_CONFIG=host-master.xml

## The amount of time to wait for startup
STARTUP_WAIT=60

## The amount of time to wait for shutdown
SHUTDOWN_WAIT=60

## Location to keep the console log
JBOSS_CONSOLE_LOG=”/var/log/wildfly/console.log”

## Additionals args to include in startup
# JBOSS_OPTS=”–admin-only -b 127.0.0.1″

Como hemos indicado una ruta que no es válida (/opt/wildfly), hemos de crear un link simbólico y crear un usuario para añadir a esa nueva ruta

cd /opt
ln -s wildfly-15.0.1.Final wildfly

Creamos la carpeta para los Logs

mkdir -p /var/log/wildfly

Creamos el usuario wildfly y lo añadimos al grupo

root@ubuntu:/opt# adduser –system –no-create-home –group wildfly
Adding system user `wildfly’ (UID 111) …
Adding new group `wildfly’ (GID 114) …
Adding new user `wildfly’ (UID 111) with group `wildfly’ …
Not creating home directory `/home/wildfly’.
root@ubuntu:/opt#

Cambiamos los permisos de las carpetas para que pueda ejecutar el servicio el usuario wildfly

chown -R wildfly:wildfly /opt/wildfly*
chown -R wildfly:wildfly /var/log/wildfly

root@ubuntu:~# ll /opt/
total 175260
drwxr-xr-x 3 root root 4096 Feb 12 14:05 ./
drwxr-xr-x 23 root root 4096 Feb 2 06:37 ../
lrwxrwxrwx 1 wildfly wildfly 20 Feb 12 14:05 wildfly -> wildfly-15.0.1.Final/
drwxr-xr-x 12 wildfly wildfly 4096 Jan 5 19:10 wildfly-15.0.1.Final/
-rw-r–r– 1 wildfly wildfly 179449615 Jan 7 00:51 wildfly-15.0.1.Final.tar.gz
root@ubuntu:~#

Ahora podemos arrancar y parar el servicio desde la shell con un service wildfly start/stop/status

Y podemos consultar los LOGs en la carpeta /var/log/wildfly/console.log

root@ubuntu:~# tail -f /var/log/wildfly/console.log

14:10:26,084 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) WFLYJCA0001: Bound data source [java:jboss/datasources/ExampleDS]
14:10:26,255 INFO [org.jboss.as.patching] (MSC service thread 1-1) WFLYPAT0050: WildFly Full cumulative patch ID is: base, one-off patches include: none
14:10:26,324 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-7) WFLYDS0013: Started FileSystemDeploymentService for directory /opt/wildfly-15.0.1.Final/standalone/deployments
14:10:26,564 INFO [org.wildfly.extension.undertow] (MSC service thread 1-3) WFLYUT0006: Undertow HTTPS listener https listening on 172.16.131.29:8443
14:10:26,747 INFO [org.jboss.ws.common.management] (MSC service thread 1-6) JBWS022052: Starting JBossWS 5.2.4.Final (Apache CXF 3.2.5.jbossorg-1)
14:10:26,824 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
14:10:26,826 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://172.16.131.29:9990/management
14:10:26,827 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://172.16.131.29:9990
14:10:26,827 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 15.0.1.Final (WildFly Core 7.0.0.Final) started in 7909ms – Started 309 of 530 services (321 services are lazy, passive or on-demand)

Configuración Certificado WildCard

Para configurar un certificado WILDCARD a este sitio WEB y usar SSL con el protocolo HTTPS, podemos configurarlo en el propio JBOSS. Para ello necesitamos un certificado en formato JKS (clave privada y publica) y e indicarle la ruta en el propio JBOSS.

Copiamos el certificado certificado.jks en la raiz de configuración del propio wildFly que es la /opt/wildfly/standalone/configuration/ y editamos el fichero standalone.xml para indicarle la ruta y contraseña:

cp /tmp/certificado.jks /opt/wildfly/standalone/configuration/certificado.jks

vim /opt/wildfly-15.0.1.Final/standalone/configuration/standalone.xml

En el mismo fichero, en la parte final, vemos las definiciones para los puertos HTTPS.

Una vez configurado el certificado ya podemos validarlo por la web.