Come installare WildFly su Rocky Linux 8

14 apr 2022 7 min di lettura
Come installare WildFly su Rocky Linux 8
Indice dei contenuti

Introduzione

WildFly, inizialmente noto come JBoss Application Server, è un'implementazione open source eccezionalmente veloce e leggera del container JEE (Java Enterprise Edition). WildFly è scritto in Java ed è stato sviluppato da RedHat per aiutare a gestire il runtime delle applicazioni e creare app. Questo strumento è stato sviluppato nel 2006 da JBoss Inc e successivamente acquisito da RedHat per diventare WildFly. Il nome è stato cambiato a causa della confusione portata nel portafoglio dai nomi dei prodotti. WildFly può essere eseguito su diversi sistemi operativi con supporto sia a 32 che a 64 bit.

L'ultima versione di WildFly 26 include molte funzionalità e miglioramenti. Le straordinarie funzionalità associate a WildFly sono:

  • Leggero: WildFly adotta un approccio aggressivo alla gestione della memoria. I servizi di runtime di base sono stati sviluppati per ridurre al minimo l'allocazione dell'heap utilizzando metadati indicizzati nella cache comuni su analisi complete duplicate, che riducono l'heap e l'abbandono degli oggetti.
  • Basato su standard: WildFly implementa gli ultimi standard Java aziendali di Jakarta EE ed Eclipse MicroProfile. Questi migliorano la produttività degli sviluppatori fornendo funzionalità aziendali avanzate in framework facili da utilizzare che eliminano la piastra standard e riducono il carico tecnico.
  • Modulare: WildFly esegue correttamente il caricamento delle classi. Utilizza i moduli JBoss per fornire un vero isolamento dell'applicazione, nascondendo le classi di implementazione del server dall'applicazione e collegandosi solo con i JAR necessari all'applicazione.
  • Potente: la configurazione in WildFly è centralizzata, semplice e incentrata sull'utente. Il file di configurazione è organizzato per sottosistemi facilmente comprensibili e nessun cablaggio interno del server è esposto.

Questa guida ha lo scopo di dimostrare come installare l'ultima versione di WildFly su Rocky Linux 8.

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

Prerequisiti

Per questa guida, è necessario quanto segue:

  • Linux Rocky 8.
  • Memoria superiore a 2 GB di RAM

Inoltre, assicurati che i pacchetti sul tuo sistema siano aggiornati alle ultime versioni disponibili:

sudo yum update

Ora usa i passaggi seguenti per installare WildFly su Rocky Linux 8.

Installare Java su Rocky Linux 8

Poiché WildFly è basato su Java, è necessario che Java sia installato prima di procedere. Per questa guida, installeremo Java OpenJDK 11:

sudo yum install java-11-openjdk-devel

Una volta installato, verificare la versione Java:

java -version
openjdk version "11.0.14.1" 2022-02-08 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.14.1+1-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.14.1+1-LTS, mixed mode, sharing)

Installare WildFly su Rocky Linux 8

Prima di scaricare e installare WildFly, è necessario creare un utente di sistema e un gruppo per WildFly. Crea l'utente con una home directory personalizzata come di seguito:

sudo useradd -r -d /opt/wildfly -s /sbin/nologin wildfly

Ora procedi e scarica l'ultima versione di rilascio di WildFly dal sito Web ufficiale di WildFly con il comando wget. Per questa guida, scaricheremo il file TGZ Jarkata EE Full & Web Distribution (26.0.1) utilizzando Wget come di seguito:

wget https://github.com/wildfly/wildfly/releases/download/26.0.1.Final/wildfly-26.0.1.Final.tar.gz

Una volta scaricato, estrai il file nella directory /opt con il comando tar:

sudo tar xf wildfly-*.Final.tar.gz -C /opt/

Ora creeremo un collegamento simbolico per WildFly con il comando ln, questo è essenziale quando si aggiorna o si installa una versione diversa su WildFly:

sudo ln -s /opt/wildfly-26.0.1.Final/ /opt/wildfly

Imposta la proprietà del file sull'utente Wildfly creato con il comando chown:

sudo chown -RH wildfly:wildfly /opt/wildfly

Creare il servizio Systemd per WildFly

Inizieremo creando le configurazioni WildFly nella directory /etc come di seguito:

sudo mkdir /etc/wildfly
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/

Visualizza il contenuto della configurazione:

cat /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

Dall'output sopra, possiamo concordare sul fatto che WildFly funziona in modalità Standalone per impostazione predefinita, ma puoi comunque personalizzare secondo le tue preferenze.

Quindi copia lo script launch.sh necessario per avviare WildFly come servizio:

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/

Ora copia il file di servizio per WildFly:

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /usr/lib/systemd/system/

È inoltre necessaria una directory per contenere il file PID:

sudo mkdir /var/run/wildfly/
sudo chown -R wildfly:wildfly /var/run/wildfly/

Ora avvia e abilita WildFly su Rocky Linux 8.

sudo systemctl enable wildfly.service
sudo systemctl start wildfly.service

Verifica lo stato del servizio.

sudo systemctl status wildfly.service
● wildfly.service - The WildFly Application Server
   Loaded: loaded (/usr/lib/systemd/system/wildfly.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-03-17 06:39:27 EDT; 20s ago
 Main PID: 37572 (launch.sh)
    Tasks: 125 (limit: 36438)
   Memory: 273.6M
   CGroup: /system.slice/wildfly.service
           ├─37572 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
           ├─37573 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
           └─37666 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djbo>

Mar 17 06:39:27 localhost.localdomain systemd[1]: Started The WildFly Application Server.

Configura il firewall per consentire il passaggio della porta WildFly:

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

A questo punto, WildFly dovrebbe essere accessibile sulla porta 8080.

Configurare la console di amministrazione WildFly per l'accesso remoto

Per impostazione predefinita, la console di amministrazione di WildFly viene eseguita su localhost. Nel caso in cui desideriamo accedervi tramite un host remoto, dobbiamo effettuare alcune configurazioni.

Prima di tutto, dobbiamo creare un utente amministratore per consentirci di accedere alla WildFly Admin Console:

sudo /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): a

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' with groups  to file '/opt/wildfly-26.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 Jakarta Enterprise Beans calls.
yes/no? yes
To represent the user add the following to the server-identities definition <secret value="UGFzc3cwcmQh" />

Successivamente, creeremo una variabile di ambiente per WildFly:

sudo vi /etc/wildfly/wildfly.conf
# The address to bind console to
WILDFLY_CONSOLE_BIND=0.0.0.0

Inoltre, modifica lo script launch.sh:

sudo vi /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
fi

Modifica anche il file del servizio WildFly:

sudo vi /usr/lib/systemd/system/wildfly.service

Modifica il file come di seguito:

[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

Ricarica il demone di sistema e riavvia il servizio WildFly:

sudo systemctl daemon-reload
sudo systemctl restart wildfly.service

Ora consenti la porta della console di amministrazione WildFly attraverso il firewall:

sudo firewall-cmd --permanent --add-port=9990/tcp
sudo firewall-cmd --reload

Disabilita SELinux:

sudo setenforce 0

Accedere alla Console di amministrazione WildFly

Ora procedi e accedi alla WildFly Admin Console utilizzando l'URL http://indirizzo_IP:9990/console.

Fornisci le credenziali utente amministratore create.

Ora distribuiremo un'applicazione Java di esempio sul server WildFly. Innanzitutto, scarica l'applicazione Java Helloworld da GitHub come di seguito:

cd /opt/wildfly/standalone/deployments/
sudo curl -O https://raw.githubusercontent.com/aeimer/java-example-helloworld-war/master/dist/helloworld.war

Visualizza i file disponibili:

ls
helloworld.war  helloworld.war.deployed  README.txt

Dall'output sopra, il file denominato *.deployed mostra che l'applicazione è stata distribuita correttamente, altrimenti il ​​file sarà denominato *.failed . Puoi visualizzare i registri di WildFly come di seguito:

tail /opt/wildfly/standalone/log/server.log  | grep helloworld
2022-03-17 07:07:07,674 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment of "helloworld.war" (runtime-name: "helloworld.war")
2022-03-17 07:07:08,818 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 81) WFLYUT0021: Registered web context: '/helloworld' for server 'default-server'
2022-03-17 07:07:08,886 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) WFLYSRV0010: Deployed "helloworld.war" (runtime-name : "helloworld.war")

La distribuzione può essere visualizzata sul browser utilizzando l'URL http://indirizzo_IP:8080/helloworld/

Conclusione

Questo segna la fine di questa guida. Abbiamo configurato con successo il server WildFly su Rocky Linux 8 e abbiamo anche distribuito un'applicazione di esempio. Ora procedi e usa WildFly per creare e gestire applicazioni.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.