Ricerca nel sito web

Come installare WildFly (JBoss) su Debian 11/Debian 10


WildFly è un server di applicazioni potente e leggero creato per aiutarti a creare facilmente applicazioni straordinarie. Grazie al suo design modulare è facile estendere le funzionalità. I moduli JBoss vengono utilizzati per fornire un vero isolamento dell'applicazione e nascondere le classi di implementazione del server dall'applicazione collegandosi solo ai JAR necessari all'applicazione. WildFly fornisce funzionalità di gestione esposte in modo unificato attraverso molte forme di accesso: CLI, una console di amministrazione basata sul Web, un'API Java nativa, un'API REST basata su HTTP/JSON e un gateway JMX.

In questo articolo, discuteremo il processo di installazione di WildFly (JBoss) sul sistema Debian 11/Debian 10. Il progetto WildFly ora produce due varianti dell'appserver, WildFly standard e WildFly Preview, sta a te scegliere quella corretta per le tue esigenze. In questo post, ci concentreremo sulla configurazione della variante WildFly standard. Utilizzeremo la distribuzione WildFly che contiene un gran numero di configurazioni predefinite che consentono di selezionare le funzionalità del server e le modalità operative.

Installa WildFly (JBoss) su Debian 11/Debian 10

Seguire i passaggi descritti nelle sezioni successive per installare e configurare

1) Installa Java nel tuo sistema Debian

Inizieremo la configurazione con l'installazione di Java sul nostro sistema Debian. Esegui i comandi seguenti per installare l'ultima versione JDK distribuita nei repository del tuo sistema operativo:

sudo apt update
sudo apt install default-jdk

Dopo l'installazione, conferma l'installazione controllando la versione Java:

$ java -version
openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb11u1, mixed mode, sharing)

Con Java installato e funzionante sul nostro sistema, possiamo procedere al passaggio successivo.

2) Scarica la distribuzione zippata di WildFly

Utilizzeremo la distribuzione zippata per installare un server WildFly completo con supporto sia per le modalità operative di dominio autonomo che gestito.

Scarica il file di archivio utilizzando wget

sudo apt install wget curl
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

Estrai il file scaricato:

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

Sposta il file scaricato nella directory /opt:

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

3) Configura WildFly sul sistema Debian Linux

In questa sezione creeremo l'utente wildfly e l'unità di servizio systemd per

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

Successivamente abbiamo creato la directory che ospita i file di configurazione per

sudo mkdir /etc/wildfly

Copia tutti i file necessari per la gestione

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
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/

Imposta correttamente i permessi della directory:

sudo chown -R wildfly:wildfly /opt/wildfly

Ricaricare le unità di sistema e avviare il servizio:

sudo systemctl daemon-reload
sudo systemctl start wildfly
sudo systemctl enable wildfly

Controlla se

$ systemctl status wildfly
● wildfly.service - The WildFly Application Server
     Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-24 09:42:22 UTC; 42s ago
   Main PID: 46946 (launch.sh)
      Tasks: 51 (limit: 2340)
     Memory: 291.8M
        CPU: 7.659s
     CGroup: /system.slice/wildfly.service
             ├─46946 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
             ├─46947 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
             └─47040 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djav>

Dec 24 09:42:22 debian-bullseye-01 systemd[1]: Started The WildFly Application Server.
Dec 24 09:42:27 debian-bullseye-01 systemd[1]: /etc/systemd/system/wildfly.service:11: PIDFile= references a path below legacy directory /var/run/, updating /var/run/wildfly/wildfly.pid → /run/wild>
lines 1-14/14 (END)

Il servizio si collegherà alla porta 8080 nel sistema. Assicurati che questa porta non sia utilizzata da nessun altro servizio

debian@debian-bullseye-01:~$ ss -tunelp | grep 8080
tcp   LISTEN 0      4096                            0.0.0.0:8080       0.0.0.0:*    uid:997 ino:208664 sk:9 cgroup:/system.slice/wildfly.service <->

4) Creazione di utenti di gestione/applicazione in WildFly

WildFly è distribuito con la sicurezza abilitata per le interfacce di gestione. Il primo utente di gestione viene creato manualmente utilizzando uno script distribuito dall'applicazione.

Possiamo eseguire il comando seguente per aggiungere il primo utente:

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

Seleziona la tipologia di utente da aggiungere al sistema. Sceglieremo a per la creazione del primo utente amministratore. Per l'applicazione creata dall'utente, scegli b:

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 utente per l'utente da aggiungere al sistema.

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

Inserisci e conferma la password utente:

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>

Procedere con la configurazione come richiesto dallo script:

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 'myadminuser' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'myadminuser' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'myadminuser' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'myadminuser' with groups  to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'myadminuser' 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 <secret value="UGFzc3dvcmRAMzIxIQ==" />

5) Accesso alla console di amministrazione di WildFly

Tutti i file binari e gli script di WildFly si trovano nella directory /opt/wildfly/bin/. Questa directory dovrebbe trovarsi nel nostro PATH. Aggiungiamolo di conseguenza:

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

Origina il file bashrc prima di utilizzare lo script.

source ~/.bashrc

Utilizza il comando jboss-cli.sh per accedere alla console CLI di WildFly:

$ jboss-cli.sh --connect
Authenticating against security realm: ManagementRealm
Username: myadminuser
Password: <INPUT-REQUIRED-PASSWORD>
[standalone@localhost:9990 /] version
JBoss Admin Command-line Interface
JBOSS_HOME: /opt/wildfly
Release: 26.0.1.Final
Product: WildFly Full 26.0.1.Final
JAVA_HOME: null
java.version: 11.0.13
java.vm.vendor: Debian
java.vm.version: 11.0.13+8-post-Debian-1deb11u1
os.name: Linux
os.version: 5.10.0-8-amd64

Digita exit per uscire dalla console

[standalone@localhost:9990 /] exit

6) Accesso alla console di amministrazione di WildFly

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
● wildfly.service - The WildFly Application Server
     Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-24 12:11:21 EAT; 6s ago
   Main PID: 8205 (launch.sh)
      Tasks: 70 (limit: 9482)
     Memory: 159.8M
        CPU: 12.265s
     CGroup: /system.slice/wildfly.service
             ├─8205 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
             ├─8206 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0 -bmanagement=0.0.0.0
             └─8305 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava>

Des 24 12:11:21 ubuntu22 systemd[1]: Started The WildFly Application Server.

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=9496,fd=320)) uid:999 ino:73367 sk:c <->

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

Inserisci il nome utente e la password creati in precedenza per accedere alla console di amministrazione basata sul web di WildFly:

Dopo aver effettuato con successo l'accesso alla console web. Esplora le varie sezioni per familiarizzare con il suo aspetto e il suo funzionamento. Le sezioni principali dell'interfaccia sono:

  • Distribuzioni: aggiungi e gestisci distribuzioni
  • Configurazione: configura le impostazioni del sottosistema
  • Runtime: monitora lo stato del server
  • Controllo degli accessi: gestisci le autorizzazioni di utenti e gruppi per le operazioni di gestione
  • Patch: gestisci le patch complete di WildFly

Esempio di schermata della sezione Runtime

A questo punto, abbiamo configurato con successo WildFly sul sistema Linux Debian 11/Debian 10. Visita la pagina della documentazione di WildFly per ulteriori letture per comprendere tutti i concetti, come funziona e come puoi iniziare a ospitare le tue applicazioni sul server delle applicazioni WildFly.

Abbiamo contenuti più interessanti a cui puoi dare un'occhiata:

  • I migliori libri per imparare i server web Tomcat|Jboss|Jetty
  • Come eseguire il server Mattermost nei contenitori Docker
  • Distribuisci OpenFaaS Serverless Framework su Kubernetes
  • Libri per imparare Rabbitmq/Activemq/Zeromq

Articoli correlati: