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.