Ricerca nel sito web

Installa il server WildFly (JBoss) su CentOS 8/CentOS 7


In questo post del blog discuteremo i passaggi utilizzati per installare il server WildFly (JBoss) su CentOS 8/CentOS 7.  WildFly precedentemente noto come JBoss è un server applicativo scritto in Java e sviluppato da Red Hat. Si tratta di un'implementazione eccezionalmente veloce, leggera e potente delle specifiche della piattaforma Java Enterprise Edition 8.

Prerequisiti di configurazione

  • Server CentOS/RHEL 8 o CentOS/RHEL 7
  • Ambiente runtime Java
  • Utente con accesso sudo o root
  • Connessione Internet sul tuo Server

Passaggio 1: installa Java JDK

Java è richiesto sul server che eseguirà WildFly Application Server. Utilizza le nostre guide di seguito per installare Java su CentOS/RHEL 7|8.

  • Installa Java 11 (OpenJDK 11) su RHEL/CentOS 8
  • Come installare Java 11 su CentOS 7

Se vuoi utilizzare Java 11, esegui semplicemente i comandi seguenti per installarlo.

sudo yum install java-11-openjdk-devel

Puoi verificare la versione Java predefinita nel tuo computer utilizzando:

$ java --version
openjdk 11.0.13 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

Passaggio 2: scarica l'archivio della versione WildFly

Controlla la pagina dei download di WildFly per le ultime versioni prima di scaricare il file.

sudo yum -y 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

Una volta scaricato il file, estrailo.

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

Sposta la cartella risultante in /opt/wildfly.

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

Passaggio 3: configura Systemd per WildFly

Creiamo ora un utente e un gruppo di sistema che eseguiranno il servizio WildFly.

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

Crea 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 le autorizzazioni /opt/wildfly.

sudo chown -R wildfly:wildfly /opt/wildfly

Ricarica il servizio systemd.

sudo systemctl daemon-reload

Configura SELinux:

sudo semanage fcontext  -a -t bin_t  "/opt/wildfly/bin(/.*)?"
sudo restorecon -Rv /opt/wildfly/bin/

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; vendor preset: disabled)
    Active: active (running) since Wed 2023-04-03 16:22:58 EAT; 6s ago
  Main PID: 31303 (launch.sh)
     Tasks: 119 (limit: 11510)
    Memory: 330.8M
    CGroup: /system.slice/wildfly.service
            ├─31303 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
            ├─31304 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
            └─31396 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djbos>
 Apr 03 16:22:58 rhel8.local systemd[1]: Started The WildFly Application Server.

Il servizio deve essere associato alla porta 8080.

$ sudo ss -tunelp | grep 8080
tcp    LISTEN   0   128    0.0.0.0:8080  0.0.0.0:*  users:(("java",pid=6854,fd=389)) uid:999 ino:30339 sk:3 <-> 

Passaggio 4: aggiungi gli utenti WildFly al sistema

WildFly è distribuito 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.

Eseguitelo eseguendo il comando:

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

Fornire il nome utente desiderato per l'utente.

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

Imposta la password per l'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>

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 dell'utente sono conservate su: /opt/wildfly/domain/configuration/mgmt-users.properties
Le informazioni sul gruppo vengono conservate su: /opt/wildfly/standalone/configuration/mgmt-groups.properties

Passaggio 5: accesso alla console di amministrazione WildFly

Per poter eseguire gli script WildFly dalla sessione corrente della shell, 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

Ora prova connettendoti alla WildFly Admin Console dalla CLI con il comando jboss-cli.sh.

$ jboss-cli.sh --connect
Authenticating against security realm: ManagementRealm
Username: <enter-created-username>
Password: <enter-assigned-password>
[standalone@localhost:9990 /] version
JBoss Admin Command-line Interface
JBOSS_HOME: /opt/wildfly
Release: 29.0.1.Final
Product: WildFly Full 29.0.1.Final
JAVA_HOME: null
java.version: 11.0.13
java.vm.vendor: Red Hat, Inc.
java.vm.version: 11.0.13+8-LTS
os.name: Linux
os.version: 4.18.0-305.7.1.el8_4.x86_64
[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.

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

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

Confermare

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

Porte aperte sul firewall

sudo firewall-cmd --permanent --add-port={8080,9990}/tcp
sudo firewall-cmd --reload

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.

Hai installato correttamente il server dell'applicazione WildFly su RHEL/CentOS 8/7. Visita la pagina della documentazione di WildFly per ulteriori letture.

Se sei un utente Ubuntu/Debian, controlla: Installa WildFly (JBoss) Application Server su Ubuntu


Articoli correlati: