WildFly, sebelumnya dikenal sebagai JBoss adalah aplikasi runtime open source lintas platform yang ditulis dalam  bahasa pemrograman Java yang membantu Anda membangun aplikasi. WildFly merupakan aplikasi yang fleksibel, ringan, dan didasarkan pada subsistem pluggable yang dapat ditambahkan atau dihapus sesuai kebutuhan.

Tutorial ini akan menunjukkan kepada Anda bagaimana menginstal server aplikasi WildFly di CentOS 7.

Prasyarat

Agar dapat menginstal paket pada sistem CentOS, Anda harus masuk sebagai pengguna dengan hak istimewa sudo.

Langkah 1: Install Java OpenJDK

WildFly membutuhkan Java SE 8 atau yang lebih baru. Kita akan menginstal OpenJDK, yang merupakan pengembangan dan runtime Java default di CentOS 7.

sudo yum install java-1.8.0-openjdk-devel

Langkah 2: Buat User WildFly

Kita akan membuat user sistem baru dan grup bernama wildfly dengan direktori home /opt/wildfly yang akan menjalankan layanan WildFly:

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

Langkah 3: Instal WildFly

Pada saat penulisan, versi terbaru WildFly adalah 16.0.0. Sebelum melanjutkan dengan langkah selanjutnya Anda harus memeriksa halaman download untuk versi baru. Jika ada versi baru ganti variabel WILDFLY_VERSION dalam perintah di bawah ini.

Unduh arsip WildFly di direktori /tmp menggunakan perintah wget berikut:

WILDFLY_VERSION=16.0.0.Final
wget https://download.jboss.org/wildfly/$WILDFLY_VERSION/wildfly-$WILDFLY_VERSION.tar.gz -P /tmp

Setelah unduhan selesai, ekstrak file tar.gz dan pindahkan ke direktori /opt:

sudo tar xf /tmp/wildfly-$WILDFLY_VERSION.tar.gz -C /opt/

Buat symbolic link wildfly yang akan menunjuk ke direktori instalasi WildFly:

sudo ln -s /opt/wildfly-$WILDFLY_VERSION /opt/wildfly

WildFly akan berjalan di bawah userwildfly yang perlu memiliki akses ke direktori instalasi WildFly.

Perintah berikut akan mengubah kepemilikan direktori menjadi pengguna dan grup wildfly:

sudo chown -RH wildfly: /opt/wildfly

Langkah 4: Konfigurasikan Systemd

Paket WildFly termasuk file yang diperlukan untuk menjalankan WildFly sebagai layanan.

Mulailah dengan membuat direktori yang akan menyimpan file konfigurasi WildFly:

sudo mkdir -p /etc/wildfly

Salin file konfigurasi ke direktori /etc/wildfly:

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

File ini memungkinkan Anda untuk menentukan mode WildFly dan bind address. Secara default, WildFly akan berjalan dalam mode standalone dan akan listen pada semua interface. Anda dapat mengedit file sesuai dengan kebutuhan Anda.

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

Selanjutnya salin skrip WildFly launch.sh ke direktori /opt/wildfly/bin/:

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

Script di dalam direktori bin harus memiliki flag yang dapat dieksekusi:

sudo sh -c 'chmod +x /opt/wildfly/bin/*.sh'

Langkah terakhir adalah menyalin file unit systemd yang dinamai ke direktori /etc/systemd/system/:

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

Reload systemd agar dapat mengetahui konfigurasi yang baru:

sudo systemctl daemon-reload

Mulai layanan WildFly dengan menjalankan:

sudo systemctl start wildfly

Periksa status layanan dengan perintah berikut:

sudo systemctl status wildfly
* wildfly.service - The WildFly Application Server
   Loaded: loaded (/etc/systemd/system/wildfly.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 04:59:39 PST; 2s ago
 Main PID: 10005 (launch.sh)
    Tasks: 62 (limit: 2319)
   CGroup: /system.slice/wildfly.service

Aktifkan layanan untuk dimulai secara otomatis saat boot:

sudo systemctl enable wildfly

Langkah 5: Konfigurasi Firewall untuk Wildfly

Jika server Anda dilindungi oleh firewall dan Anda ingin mengakses antarmuka WildFly dari luar jaringan lokal, Anda perlu membuka port 8080.

Untuk mengizinkan lalu lintas di port 8080 ketik perintah berikut:

sudo ufw allow 8080/tcp

Saat menjalankan aplikasi WildFly di lingkungan produksi, Anda dapat menggunakan load balancer atau reverse proxy untuk membatasi akses ke port 8080 hanya ke jaringan internal Anda.

Langkah 6: Konfigurasikan Otentikasi WildFly

Sekarang WildFly telah terinstal dan langkah selanjutnya adalah membuat user yang akan dapat terhubung menggunakan konsol administrasi atau menggunakan CLI dari jarak jauh.

Untuk menambah pengguna baru gunakan skrip add-user.sh yang terletak di direktori bin WildFly:

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

Anda juga akan ditanya jenis user apa yang ingin Anda tambahkan:

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

Pilih a dan tekan Enter:

Selanjutnya, skrip akan meminta Anda memasukkan detail untuk user baru:

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : linuxid
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 'linuxid' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'linuxid' to file '/opt/wildfly-16.0.0.Final/standalone/configuration/mgmt-users.properties'
Added user 'linuxid' to file '/opt/wildfly-16.0.0.Final/domain/configuration/mgmt-users.properties'
Added user 'linuxid' with groups  to file '/opt/wildfly-16.0.0.Final/standalone/configuration/mgmt-groups.properties'
Added user 'linuxid' with groups  to file '/opt/wildfly-16.0.0.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="UGFuMjNkZWo3NyNA" />

Pengguna baru akan ditambahkan ke file properti yang akan digunakan untuk otentikasi.

Langkah 6: Uji Instalasi WildFly

Untuk mengakses halaman WildFly default, buka browser Anda dan ketik: http://<domain_atau_alamat_IP>:8080

Dengan asumsi instalasi berhasil, tampilan yang mirip dengan berikut ini akan muncul:

wildfly home

Langkah 7: Akses Konsol Administrasi WildFly

Command-Line Interface

Untuk mengakses Konsol Administrasi WildFly dari baris perintah, Anda dapat menggunakan skrip jboss-cli.sh.

Pindah ke direktori bin WildFly dan jalankan skrip dengan opsi --connect:

cd /opt/wildfly/bin/./jboss-cli.sh --connect

Anda akan diminta untuk memasukkan nama pengguna dan kata sandi administratif Anda (dibuat pada langkah 6):

Authenticating against security realm: ManagementRealm
Username: linuxid
Password:

Setelah Anda masuk, prompt konsol akan berubah menjadi [standalone@localhost:9990 /]. Ketik help untuk mendapatkan daftar perintah dan sintaksis perintah.

Dari sini Anda dapat deploy dan undeploy aplikasi, mengelola pengguna dan grup, serta mengonfigurasi dan memantau server WildFly.

Antarmuka Web

Jika Anda lebih suka mengelola server Anda dari GUI, WildFly juga menyediakan konsol berbasis web.

Secara default, konsol administrasi WildFly hanya tersedia dari localhost di http://localhost:9990/console. Masuk menggunakan user yang Anda buat di langkah 6.

wildfly console

Jika Anda ingin mengakses konsol dari lokasi mana saja, Anda harus melakukan sedikit modifikasi pada wildfly.service, wildfly.conf dan launch.sh file.

Buka wildfly.conf dan tambahkan WILDFLY_CONSOLE_BIND = 0.0.0.0 di akhir 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

Buka launch.sh dan edit baris yang disorot:

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
fi

Restart wildfly agar perubahan diterapkan:

sudo systemctl restart wildfly

Buka wildfly.service dan edit garis yang disorot:

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

Buat direktori /var/run/wildfly dan tetapkan izin yang benar:

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

Beri tahu systemd bahwa file unit telah diubah:

sudo systemctl daemon-reload

Restart layanan WildFly dengan menjalankan:

sudo systemctl restart wildfly

Dengan anggapan bahwa port 9990 tidak diblokir di firewall, Anda dapat mengakses konsol administrasi WildFly di  http://<domain_atau_alamat_IP>:9990/console.

Kesimpulan

Anda telah berhasil menginstal WildFly pada sistem CentOS 7. Anda sekarang dapat mengunjungi Dokumentasi resmi  WildFly dan mempelajari lebih lanjut tentang fitur WildFly.