wildfly

Installation de Wildfly sur CentOS 8

WildFly (anciennement connu sous le nom de JBoss) est un serveur d’applications écrit en Java et développé par Red Hat. Il s’agit d’un serveur d’application open source pour les application JEE, il est rapide et légère et particulièrement performant pour les applications web et d’entreprises.

Nous allons voir dans cet article comment installer Wildfly sur CentOS 8.

Installer JAVA :

Java est requis sur le serveur pour exécuter Wildfly. Suivez ce guide pour l’installer sur CentOS 8.

Une fois installé vous pouvez vérifier la version avec la commande ci-dessous :

[root@server ~]# java -version
openjdk version "11.0.12" 2021-07-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)

Installer Wildfly :

Vérifier cette page pour voir la dernière version de wildfly.

[root@server ~]# wget https://download.jboss.org/wildfly/24.0.0.Final/wildfly-preview-24.0.0.Final.tar.gz
--2021-09-02 13:02:03-- https://download.jboss.org/wildfly/24.0.0.Final/wildfly-preview-24.0.0.Final.tar.gz
Resolving download.jboss.org (download.jboss.org)… 95.101.123.51, 95.101.123.88, 2a02:26f0:1d00::5f65:7b58, …
Connecting to download.jboss.org (download.jboss.org)|95.101.123.51|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 207638148 (198M) [application/x-gzip]
Saving to: ‘wildfly-preview-24.0.0.Final.tar.gz’

Une fois téléchargé, extrayez le fichier :

[root@server ~]# tar xvf wildfly-preview-24.0.0.Final.tar.gz
[root@server ~]# ll
total 202776
drwxr-xr-x. 11 wildfly wildfly 239 Jun 16 18:09 wildfly-preview-24.0.0.Final
-rw-r--r--. 1 root root 207638148 Jun 16 21:17 wildfly-preview-24.0.0.Final.tar.gz

Déplacez le contenu du répertoire wildfly-preview-24.0.0.Final au /opt/wildfly :

Configurez systemd pour Wildfly

Nous allons maintenant créer un utilisateur et un group pour lancer le service wildfly

[root@server ~]# groupadd --system wildfly
[root@server ~]# useradd -s /sbin/nologin --system -d /opt/wildfly -g wildfly wildfly

Créer le répertoire de configuration de wildfly :

[root@server ~]# mkdir /etc/wildfly

Copiez le fichier systemd, configuration et scripte de Wildfly :

[root@server ~]# cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
[root@server ~]# cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
[root@server ~]# cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/

Changez le propriétaire de /etc/wildfly :

[root@server ~]# chown -R wildfly:wildfly /opt/wildfly

Redémarrez le service systemd :

[root@server ~]# systemctl daemon-reload

Configuration de SElinux :

[root@server ~]# semanage fcontext -a -t bin_t "/opt/wildfly/bin(/.*)?"
[root@server ~]# restorecon -Rv /opt/wildfly/bin/

Démarrez le service Wildfly et mettez le en enable :

[root@server ~]# systemctl start wildfly
[root@server ~]# systemctl enable wildfly
[root@server ~]# systemctl status wildfly
● wildfly.service - The WildFly Application Server
Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2021-09-02 13:51:17 EDT; 10min ago
Main PID: 2837 (launch.sh)
CGroup: /system.slice/wildfly.service
├─2837 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
├─2838 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
└─2921 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modu…
Sep 02 13:51:17 server.stng.com systemd[1]: Started The WildFly Application Server.

Vérifiez si le port 8080 est bien ouvert avec la commande netstat :

[root@server ~]# netstat -tunelp | grep 8080
tcp       0      0 0.0.0.0:8080      0.0.0.0:*       LISTEN    996    32767     2921/java

Ou bien avec la commande ss :

[root@server ~]# ss -tunelp | grep 8080
tcp        LISTEN       0       128       *:8080         *:*        users:(("java",pid=2921,fd=500)) uid:996 ino:32767 sk:ffff946834351740 <->

Ajouter un utilisateur Wildfly

Nous allons maintenant crée un utilisateur Wildfly qui peut accéder à la console d’administration ou bien à distance depuis le CLI. Pour cela exécuter le script ci-dessous :

[root@server ~]# /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):

Le script vous demande quel type d’utilisateur souhaitez-vous ajouter, choisissez « a » vu que c’est notre premier utilisateur :

Taper ensuite le nom d’utilisateur et le mot de passe et répondez par « yes » pour les question qui suivent

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : sysreseau
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 'sysreseau' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'sysreseau' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'sysreseau' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'sysreseau' with groups to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'sysreseau' 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 Jakarta Enterprise Beans calls.
yes/no? yes
To represent the user add the following to the server-identities definition 

Accédez à la console Wildfly d’aministration :

Pour que vous puissiez accéder au script Wildfly directement ajouter le chemin « /opt/wildfly/bin/ » à la valeur $PATH :

[root@server ~]# cat >> ~/.bashrc <<EOF
export WildFly_BIN="/opt/wildfly/bin/"
export PATH=\$PATH:\$WildFly_BIN
EOF

Connectez-vous avec la commande ci-dessous :

[root@server ~]# jboss-cli.sh --connect
[standalone@localhost:9990 /]

Accéder à la consol d’administration Wildfly par l’interface web :

Par défaut la console est accessible uniquement depuis le localhost sur le port 9990 :

[root@server ~]# ss -tunelp | grep 9990
tcp         LISTEN       0       50      127.0.0.1:9990        users:(("java",pid=2921,fd=493)) uid:996 ino:32770 sk:ffff946834353640 <

Editez le fichier /opt/wildfly/bin/launch.sh :

[root@server ~]# vim /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
else
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement=0.0.0.0
fi

Ajouter « -bmanagement=0.0.0.0 » comme mentionné ci-dessous.

Redémarrez ensuite le service wldfly :

[root@server ~]# systemctl restart wildfly
[root@server ~]# ss -tunelp | grep 9990
tcp       LISTEN       0       50        *:9990       *:*        users:(("java",pid=3382,fd=404)) uid:996 ino:46018 sk:ffff946834350f80 <->

Comme vous pouvez le constater, la console écoute maintenant sur tous les ports :

Ouvrez le port 9990 et 8080 sur le firewall :

[root@server ~]# firewall-cmd --permanent --add-port={8080,9990}/tcp
[root@server ~]# firewall-cmd --reload

Ouvrez votre navigateur et taper l’adresse IP su serveur et le port 9990, taper ensuite votre login et mot de passe créé précédemment:

wildfly

Et voila votre Wildfly est bien installé et notre belle console est bien accessible.