Introduzione
WildFly, precedentemente noto come JBoss, è un runtime di applicazioni open source multipiattaforma scritto in Java che ti aiuta a creare incredibili applicazioni. WildFly è flessibile, leggero e si basa su sottosistemi collegabili che possono essere aggiunti o rimossi secondo necessità.
In questo tutorial ti guideremo attraverso i passaggi necessari per installare il server delle applicazioni WildFly su Debian 10.
Prerequisiti
L'utente che ha effettuato l'accesso deve disporre dei privilegi di sudo per poter installare i pacchetti.
Se desideri installare WildFly su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:
ssh root@IP_DEL_SERVER
Successivamente sarà necessario inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:
ssh nome_utente@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Installare Java OpenJDK
WildFly richiede l'installazione di Java. Installiamo OpenJDK su Debian 19:
sudo apt update
sudo apt install default-jdk
Creare un utente
Crea un nuovo utente e gruppo di sistema denominato wildfly
con home directory /opt/wildfly
che eseguirà il servizio WildFly:
sudo groupadd -r wildfly
sudo useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly
Installare WildFly
Nel momento in cui scrivo, l'ultima versione di WildFly è la 18.0.1
. Prima di continuare con il passaggio successivo, è necessario controllare la pagina di download per una nuova versione. Se è disponibile una nuova versione, sostituire la variabile WILDFLY_VERSION
nel comando seguente.
Scarica l'archivio WildFly nella directory /tmp
usando il seguente comando wget
:
WILDFLY_VERSION=18.0.1.Final
wget https://download.jboss.org/wildfly/$WILDFLY_VERSION/wildfly-$WILDFLY_VERSION.tar.gz -P /tmp
Una volta completato il download, estrarre il file tar.gz e spostarlo nella directory /opt
:
sudo tar xf /tmp/wildfly-$WILDFLY_VERSION.tar.gz -C /opt/
Crea un collegamento simbolico wildfly
che punterà alla directory di installazione di WildFly:
sudo ln -s /opt/wildfly-$WILDFLY_VERSION /opt/wildfly
WildFly viene eseguito come utente wildfly
che deve avere accesso alla directory di installazione di WildFly. Cambia la proprietà della directory in utente e gruppo wildfly
:
sudo chown -RH wildfly: /opt/wildfly
Configurare Systemd
Il pacchetto WildFly include i file necessari per eseguire WildFly come servizio.
Inizia creando una directory che conterrà il file di configurazione WildFly:
sudo mkdir -p /etc/wildfly
Copia il file di configurazione nella directory /etc/wildfly
:
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
Questo file consente di specificare la modalità WildFly e l'indirizzo di bind. Per impostazione predefinita, WildFly verrà eseguito in modalità autonoma e ascolterà tutte le interfacce. Per una configurazione standard non è necessario modificare il file di configurazione, in caso contrario aprire il seguente file e modificalo in base alle tue esigenze:
sudo nano /etc/wildfly/wildfly.conf
# The configuration you want to run
WILDFLY_CONFIG=standalone.xml
# The mode you want to run
WILDFLY_MODE=standalone
# The address to bind to
WILDFLY_BIND=0.0.0.0
Quindi, copia lo script WildFly launch.sh
nella directory /opt/wildfly/bin/
:
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
Gli script all'interno della director bin
y devono avere flag eseguibili:
sudo sh -c 'chmod +x /opt/wildfly/bin/*.sh'
L'ultimo passaggio consiste nel copiare il file di unità systemd denominato nella directory /etc/systemd/system/
:
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
Ricarica la configurazione del gestore di sistema:
sudo systemctl daemon-reload
Avvia e abilita il servizio WildFly per l'avvio automatico all'avvio:
sudo systemctl start wildfly
sudo systemctl enable wildfly
Controlla lo stato del servizio con il seguente comando:
sudo systemctl status wildfly
● wildfly.service - The WildFly Application Server
Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-01-11 16:13:02 CET; 6s ago
Main PID: 3652 (launch.sh)
Tasks: 54 (limit: 2301)
Memory: 144.7M
CGroup: /system.slice/wildfly.service
├─3652 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
├─3653 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
└─3733 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.prefer
Configurare il firewall
Se il tuo server è protetto da un firewall e desideri accedere all'interfaccia WildFly dall'esterno della tua rete locale, devi aprire la porta 8080
.
Per consentire il traffico sulla porta 8080
digitare il comando seguente:
sudo ufw allow 8080/tcp
Quando si esegue un'applicazione WildFly in un ambiente di produzione, molto probabilmente si avrà un bilanciamento del carico o un proxy inverso ed è consigliabile limitare l'accesso alla porta 8080 solo alla propria rete interna.
Configurare l'autenticazione WildFly
Ora che WildFly è installato e in esecuzione, il passaggio successivo è creare un utente che sarà in grado di connettersi utilizzando la console di amministrazione o in remoto tramite l'interfaccia della riga di comando.
Per aggiungere un nuovo utente usa lo script add-user.sh
che si trova nella directory bin di WildFly:
sudo /opt/wildfly/bin/add-user.sh
Ti verrà chiesto quale tipo di utente desideri aggiungere:
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a):
Seleziona a
e premi Enter
:
Successivamente, lo script ti chiederà di inserire i dettagli del nuovo utente:
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : Noviello
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 'Noviello' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'Noviello' to file '/opt/wildfly-18.0.1.Final/standalone/configuration/mgmt-users.properties'
Added user 'Noviello' to file '/opt/wildfly-18.0.1.Final/domain/configuration/mgmt-users.properties'
Added user 'Noviello' with groups to file '/opt/wildfly-18.0.1.Final/standalone/configuration/mgmt-groups.properties'
Added user 'Noviello' with groups to file '/opt/wildfly-18.0.1.Final/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="UGllcm8xMmVfIQ==" />
Il nuovo utente verrà aggiunto ai file delle proprietà utilizzati per l'autenticazione.
Test dell'installazione di WildFly
Per accedere alla pagina WildFly predefinita, apri il browser e digita l'indirizzo IP o il tuo nome dominio specificando la porta 8080
:http://TUO_DOMINIO_O_IP>:8080
Supponendo che l'installazione abbia esito positivo, visualizzerai la pagina di benvenuto di WildFly.
Accedere alla console di amministrazione WildFly
Interfaccia a riga di comando
Per accedere alla console di amministrazione WildFly dalla riga di comando è possibile utilizzare lo script jboss-cli.sh
.
Passare alla directory bin di WildFly ed eseguire lo script con l'opzione --connect
:
cd /opt/wildfly/bin/
./jboss-cli.sh --connect
Ti verrà chiesto di inserire il nome utente e la password amministrativi creati precedentemente, o verrà effettuato il primo login in modo automatico:
Authenticating against security realm: ManagementRealm
Username: Noviello
Password:
Una volta effettuato l'accesso, il prompt della console cambierà in [standalone@localhost:9990 /]
. Digitare help
per ottenere un elenco di comandi e sintassi dei comandi.
Da qui è possibile distribuire e annullare la distribuzione delle applicazioni, gestire utenti e gruppi e configurare e monitorare il server WildFly.
Interfaccia web
Se si preferisce gestire il proprio server dalla GUI, WildFly fornisce anche una console basata sul Web.
Per impostazione predefinita, la console di amministrazione WildFly è disponibile solo da localhost su http://localhost:9990/console
. Accedi utilizzando l'utente che hai creato precedentemente.
Se si desidera accedere alla console da postazioni remote è necessario apportare piccole modifiche ai file wildfly.service
, wildfly.conf
e launch.sh
.
Apri wildfly.conf
e aggiungi WILDFLY_CONSOLE_BIND=0.0.0.0
alla fine del file:
sudo nano /etc/wildfly/wildfly.conf
# The configuration you want to run
WILDFLY_CONFIG=standalone.xml
# The mode you want to run
WILDFLY_MODE=standalone
# The address to bind to
WILDFLY_BIND=0.0.0.0
# The address console to bind to
WILDFLY_CONSOLE_BIND=0.0.0.0
Apri launch.sh
e modifica le seguenti righe $WILDFLY_HOME/bin/domain.sh
e $WILDFLY_HOME/bin/standalone.sh
, il risultato dovrebbe essere come il seguente:
sudo nano /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 -bmanagement $4
else
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement $4
f
Riavvia il servizio per rendere effettive le modifiche:
sudo systemctl restart wildfly
Apri wildfly.service
e modifica la riga ExecStart
in questo modo:
sudo nano /etc/systemd/system/wildfly.service
[Unit]
Description=The WildFly Application Server
After=syslog.target network.target
Before=httpd.service
[Service]
Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
EnvironmentFile=-/etc/wildfly/wildfly.conf
User=wildfly
LimitNOFILE=102642
PIDFile=/var/run/wildfly/wildfly.pid
ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND
StandardOutput=null
[Install]
WantedBy=multi-user.target
Creare la directory /var/run/wildfly
e impostare le autorizzazioni corrette:
sudo mkdir /var/run/wildfly/
sudo chown wildfly: /var/run/wildfly/
Ricarica la configurazione del gestore di sistema:
sudo systemctl daemon-reload
Riavvia il servizio WildFly eseguendo:
sudo systemctl restart wildfly
Supponendo che il firewall non stia bloccando la porta 9990
, si dovrebbe essere in grado di accedere alla console di amministrazione WildFly su http://TUO_DOMINIO_O_IP:9990/console
.
Conclusione
Hai installato WildFly correttamente sul tuo server Debian 10. Dovresti visitare la documentazione WildFly ufficiale e saperne di più sulle funzionalità di WildFly.