Ricerca nel sito web

Come installare WildFly (JBoss) su Debian 12 (Bookworm)


WildFly, precedentemente denominato JBoss, è un server di applicazioni open source scritto da JBoss principalmente in Java. L'azienda dietro il suo sviluppo è Red Hat. WildFly implementa sia la piattaforma Java che le specifiche Enterprise Edition. Può essere eseguito su più piattaforme tra cui Linux, Windows e macOS.

Se hai bisogno di una build WildFly rafforzata di livello aziendale, prendi in considerazione JBoss Enterprise Application Platform. Con l'abbonamento JBoss EAP puoi usufruire del supporto di livello mondiale di Red Hat, di lunghi cicli di manutenzione pluriennali e di contenuti esclusivi. Puoi registrarti con Red Hat per scaricare una licenza di sviluppo gratuita di 1 anno.

In questo articolo ci concentreremo sull'installazione, configurazione e utilizzo di base di WildFly (JBoss) su Debian 12 (Bookworm). Al momento della stesura di questo articolo, l'ultima versione stabile di Debian è la versione 12, con nome in codice Bookworm.

Passaggio 1: installare Java Development Kit (JDK)

Il Java Development Kit implementa la specifica del linguaggio Java e la specifica della Java Virtual Machine e fornisce l'edizione standard dell'interfaccia di programmazione dell'applicazione Java. Questa è una delle principali dipendenze nell'esecuzione delle applicazioni WildFly.

Possiamo scegliere di installare;

  • Installa OpenJDK o
  • Installa il kit di sviluppo Java SE

Il modo più semplice per ottenere Java è installare OpenJDK sul tuo sistema Debian eseguendo i comandi seguenti.

sudo apt update
sudo apt -y install default-jdk

Attualmente WildFly supporta sia Java 17 che Java 11. Puoi confermare la versione installata sul tuo sistema.

$ java --version
openjdk 17.0.7 2023-04-18
OpenJDK Runtime Environment (build 17.0.7+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.7+7-Debian-1deb12u1, mixed mode, sharing)

Passaggio 2: scarica il file tar di WildFly

Successivamente scarichiamo la distribuzione archiviata di WildFly per l'installazione sul tuo sistema Debian. se wget non è presente sul tuo sistema, può essere installato eseguendo i seguenti comandi nel tuo terminale.

sudo apt install curl wget

Le ultime versioni del software sono disponibili nella pagina Download di WildFly. I comandi forniti consentono di estrarre la versione più recente.

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

Dopo il download, estrai il file di archivio.

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

Dovremmo spostare la cartella creata di WildFly nella directory /opt.

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

Passaggio 3: configurare l'unità WildFly Systemd

Per facilitare la gestione del servizio stiamo creando un file di unità di sistema. Inizia aggiungendo l'utente di sistema wildfly:

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

Creiamo la directory delle configurazioni di WildFly.

sudo mkdir /etc/wildfly

Copia il servizio systemd WildFly, il file di configurazione e i modelli di script di avvio dalla directory /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

Imposta i permessi /opt/wildfly con i seguenti comandi.

sudo chown -R wildfly:wildfly /opt/wildfly

Ricarica i servizi systemd prima di avviare Wildfly.

sudo systemctl daemon-reload

Avvia e abilita il servizio WildFly:

sudo systemctl start wildfly
sudo systemctl enable wildfly

Conferma lo stato del server delle applicazioni WildFly.

$ systemctl status wildfly
 wildfly.service - The WildFly Application Server
     Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; preset: enabled)
     Active: active (running) since Fri 2023-06-30 21:26:57 UTC; 18s ago
   Main PID: 3124 (launch.sh)
      Tasks: 126 (limit: 4532)
     Memory: 267.6M
        CPU: 14.457s
     CGroup: /system.slice/wildfly.service
             ├─3124 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
             ├─3126 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
             └─3252 java "-D[Standalone]" -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.h>

Jun 30 21:26:57 deb12 systemd[1]: Started wildfly.service - The WildFly Application Server.

Il servizio WildFly è in ascolto sulla porta 8080.

$ ss -tunelp | grep 8080
tcp   LISTEN 0      4096         0.0.0.0:8080      0.0.0.0:*    users:(("java",pid=3252,fd=488)) uid:999 ino:20878 sk:2 cgroup:/system.slice/wildfly.service <->

Passaggio 4: creazione di utenti WildFly

WildFly viene fornito con la sicurezza abilitata per le interfacce di gestione. Dobbiamo creare un utente che possa accedere alla console di amministrazione di WildFly o utilizzare in remoto la CLI. Viene fornito uno script per la gestione degli utenti. Per creare il primo utente eseguire i seguenti comandi:

sudo /opt/wildfly/bin/add-user.sh

Ti verrà chiesto di scegliere il tipo di utente da aggiungere. Poiché questo è il primo utente, vogliamo renderlo amministratore. Quindi scegli a.

What type of user do you wish to add? 
  a) Management User (mgmt-users.properties) 
  b) Application User (application-users.properties)
 (a):  a

Immettere il nome dell'utente da creare.

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

Fornire una password sicura per questo utente. Consulta le indicazioni fornite sulla politica della password.

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>

Premi Invio e accetta le richieste successive per completare la creazione dell'utente.

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 

Notare che:

Le informazioni sull'utente sono conservate su: /opt/wildfly/domain/configuration/mgmt-users.properties
Le informazioni sul gruppo sono conservate su: /opt/wildfly/standalone/configuration/mgmt- gruppi.proprietà

Passaggio 5: accesso alla console di amministrazione di WildFly

Per poter eseguire gli script WildFly dalla sessione di shell corrente, aggiungi /opt/wildfly/bin/ al tuo ` PATH.

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

Origina il file bashrc.

source ~/.bashrc

Convalida la tua connessione alla console di amministrazione WildFly dalla CLI con il comando jboss-cli.sh.

$ jboss-cli.sh --connect
Authenticating against security realm: ManagementRealm
Username: computingforgeeks
Password:
[standalone@localhost:9990 /] version
JBoss Admin Command-line Interface
JBOSS_HOME: /opt/wildfly
Release: 20.0.2.Final
Product: WildFly Full 28.0.1.Final
JAVA_HOME: null
java.version: 17.0.7
java.vm.vendor: Debian
java.vm.version: 17.0.7+7-Debian-1deb12u1
os.name: Linux
os.version: 6.1.0-9-amd64
[standalone@localhost:9990 /] exit

Accesso alla console di amministrazione WildFly dall'interfaccia Web

Per impostazione predefinita, la console è accessibile sull'IP localhost sulla porta 9990.

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

Possiamo avviarlo su un indirizzo IP diverso accessibile dall'esterno del server locale. Modifica /opt/wildfly/bin/launch.sh in questo modo:

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

Abbiamo aggiunto -bmanagement=0.0.0.0 per avviare la riga dello script. Ciò vincola l'interfaccia di “gestione” a tutti gli indirizzi IP disponibili.

Riavviare il servizio Wildfly

sudo systemctl restart wildfly

Controlla lo stato del servizio per confermare che ha avuto successo

systemctl status  wildfly

Conferma che la porta 9990 è in ascolto:

$ ss -tunelp | grep 9990
tcp    LISTEN   0  50     0.0.0.0:9990  0.0.0.0:*  users:(("java",pid=3252,fd=482)) uid:999 ino:20877 sk:5 cgroup:/system.slice/wildfly.service <->

Apri il browser e l'URL http://serverip:9990 per accedere alla console Web WildFly.

Utilizza il nome utente creato in precedenza e la password per autenticarti. La console WildFly sarà la finestra successiva da mostrare.

Libri di apprendimento:

  • I migliori libri per imparare i server web Tomcat|Jboss|Jetty

Conclusione

La distribuzione WildFly per impostazione predefinita viene fornita con un gran numero di configurazioni predefinite che consentono di selezionare le funzionalità del server e le modalità operative. Ci auguriamo che questo articolo ti abbia aiutato con l'installazione dell'offerta di server di applicazioni open source JBoss (WildFly) sul sistema Debian 12 Linux. Controlla più contenuti disponibili nel nostro sito web.

Articoli correlati: