WildFly (JBoss) Debian 12’ye Nasıl Kurulur

Eskiden JBoss olarak anılan WildFly, JBoss tarafından büyük ölçüde Java’da yazılan açık kaynaklı bir uygulama sunucusudur. Geliştirmenin arkasındaki şirket Red Hat’tir. WildFly, hem Java Platformunu hem de Enterprise Edition spesifikasyonunu uygular. Linux, Windows ve macOS dahil olmak üzere birden fazla platformda çalışabilir.

Sağlamlaştırılmış kurumsal düzeyde bir WildFly yapısına ihtiyacınız varsa JBoss Kurumsal Uygulama Platformunu düşünün. JBoss EAP aboneliğiyle Red Hat’in birinci sınıf desteğinin, uzun bakım döngülerinin ve özel içeriğin keyfini çıkarabilirsiniz. Ücretsiz 1 yıllık geliştirme lisansını indirmek için Red Hat’e kaydolabilirsiniz.

Bu yazımızda WildFly’ın (JBoss) Debian 12 (Bookworm) üzerinde kurulumu, konfigürasyonu ve temel kullanımına odaklanacağız. Bu makalenin yazıldığı an itibariyle Debian’ın en son kararlı sürümü Bookworm kod adıyla 12. sürümdür.

Adım 1: Java Development Kit’i (JDK) yükleyin

Java Geliştirme Kiti, Java Dil Belirtimi ve Java Sanal Makine Belirtimi’ni uygular ve Java Uygulama Programlama Arayüzünün Standart Sürümünü sağlar. Bu, WildFly uygulamalarını çalıştırmada önemli bir bağımlılıktır.

Yüklemeyi seçebiliriz;

  • Install OpenJDK,veya
  • Install Java SE Development Kit

Java’yı edinmenin en basit yolu, aşağıdaki komutları çalıştırarak OpenJDK’yi Debian sisteminize kurmaktır.

sudo apt update
sudo apt -y install default-jdk

Şu anda WildFly hem Java 17’yi hem de Java 11’i desteklemektedir. Sisteminizde yüklü olan sürümü doğrulayabilirsiniz.

$ java --version
openjdk 17.0.7 2023-04-18
OpenJDK Runtime Environment (build 17.0.7+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.7+7-Debian-1deb12u1, mixed mode, sharing)

Adım 2: WildFly tarball’ını indirin

Daha sonra Debian sisteminize kurulum için WildFly’ın arşivlenmiş dağıtımını indiriyoruz. Eğer wget sisteminizde yoksa terminalinizde aşağıdaki komutları çalıştırarak kurulabilir.

sudo apt install curl wget

Yazılımın en son sürümleri WildFly indirme sayfasında mevcuttur. Sağlanan komutlar en son sürümü çekmenizi sağlar.

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

İndirdikten sonra arşiv dosyasını çıkartın.

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

WildFly’ın oluşturduğu klasörü /opt dizinine taşımalıyız.

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

3. Adım: WildFly Systemd Ünitesini Yapılandırın

Servis yönetimini kolaylaştırmak için sistem birimi dosyası oluşturuyoruz. Wildfly sistem kullanıcısını ekleyerek başlayın:

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

WildFly yapılandırma dizinini oluşturuyoruz.

sudo mkdir /etc/wildfly

WildFly sistemd hizmetini, yapılandırma dosyasını kopyalayın ve /opt/wildfly/docs/contrib/scripts/systemd/ dizininden komut dosyası şablonlarını başlatın.

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

Aşağıdaki komutlarla /opt/wildfly izinlerini ayarlayın.

sudo chown -R wildfly:wildfly /opt/wildfly

Wildfly’a başlamadan önce systemd hizmetlerini yeniden yükleyin.

sudo systemctl daemon-reload

WildFly hizmetini başlatın ve etkinleştirin:

sudo systemctl start wildfly
sudo systemctl enable wildfly

WildFly Uygulama Sunucusu durumunu doğrulayın.

$ systemctl status wildfly
 wildfly.service - The WildFly Application Server
     Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; preset: enabled)
     Active: active (running) since Fri 2023-06-30 21:26:57 UTC; 18s ago
   Main PID: 3124 (launch.sh)
      Tasks: 126 (limit: 4532)
     Memory: 267.6M
        CPU: 14.457s
     CGroup: /system.slice/wildfly.service
             ├─3124 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
             ├─3126 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
             └─3252 java "-D[Standalone]" -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.h>

Jun 30 21:26:57 deb12 systemd[1]: Started wildfly.service - The WildFly Application Server.

WildFly hizmeti 8080 numaralı bağlantı noktasını dinliyor.

$ ss -tunelp | grep 8080
tcp   LISTEN 0      4096         0.0.0.0:8080      0.0.0.0:*    users:(("java",pid=3252,fd=488)) uid:999 ino:20878 sk:2 cgroup:/system.slice/wildfly.service <->

4. Adım: WildFly Kullanıcıları Oluşturma

WildFly, yönetim arayüzleri için güvenlik etkinleştirilmiş olarak gönderilir. WildFly yönetim konsoluna erişebilecek veya CLI’yi uzaktan kullanabilecek bir kullanıcı oluşturmamız gerekiyor. Kullanıcıları yönetmek için bir komut dosyası sağlanmıştır. İlk kullanıcıyı oluşturmak için aşağıdaki komutları çalıştırın:

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

Eklenecek kullanıcı türünü seçmeniz istenecektir. Bu ilk kullanıcı olduğundan onu yönetici yapmak istiyoruz. Öyleyse a’yı seçin.

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

Oluşturulacak kullanıcının adını girin.

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

Bu kullanıcı için güvenli parola oluşturun. Parola politikasıyla ilgili sağlanan rehberliğe bakın.

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>

Enter tuşuna basın ve kullanıcı oluşturma işlemini tamamlamak için sonraki istemleri kabul edin.

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 

Şuna dikkat edin:

Kullanıcı bilgileri şu konumda tutulur: /opt/wildfly/domain/configuration/mgmt-users.propertiesGrup bilgileri şu konumda tutulur: /opt/wildfly/standalone/configuration/mgmt-groups.properties

5. Adım: WildFly yönetim konsoluna erişme

WildFly komut dosyalarını mevcut kabuk oturumunuzda çalıştırabilmek için $PATH’inize /opt/wildfly/bin/ ekleyin.

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

Bashrc dosyasını kaynaklayın.

source ~/.bashrc

jboss-cli.sh komutuyla CLI’den WildFly Yönetici Konsolu bağlantınızı doğrulayın.

$ jboss-cli.sh --connect
Authenticating against security realm: ManagementRealm
Username: computingforgeeks
Password:
[standalone@localhost:9990 /] version
JBoss Admin Command-line Interface
JBOSS_HOME: /opt/wildfly
Release: 20.0.2.Final
Product: WildFly Full 28.0.1.Final
JAVA_HOME: null
java.version: 17.0.7
java.vm.vendor: Debian
java.vm.version: 17.0.7+7-Debian-1deb12u1
os.name: Linux
os.version: 6.1.0-9-amd64
[standalone@localhost:9990 /] exit

WildFly Yönetici Konsoluna Web Arayüzünden Erişim

Varsayılan olarak konsola 9990 numaralı bağlantı noktasındaki localhost IP’sinden erişilebilir.

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

Yerel sunucunun dışından erişilebilen farklı bir IP adresi üzerinden başlatabiliriz. /opt/wildfly/bin/launch.sh dosyasını şu şekilde görünecek şekilde düzenleyin:

$ 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

Betik satırını başlatmak için -bmanagement=0.0.0.0 ekledik. Bu, “yönetim” arayüzünü mevcut tüm IP adreslerine bağlar.

Wildfly hizmetini yeniden başlat

sudo systemctl restart wildfly

Başarılı olduğunu doğrulamak için hizmet durumunu kontrol edin

systemctl status  wildfly

9990 numaralı bağlantı noktasının dinlediğini doğrulayın:

$ ss -tunelp | grep 9990
tcp    LISTEN   0  50     0.0.0.0:9990  0.0.0.0:*  users:(("java",pid=3252,fd=482)) uid:999 ino:20877 sk:5 cgroup:/system.slice/wildfly.service <->

WildFly Web konsoluna erişmek için tarayıcınızı ve http://serverip:9990 URL’sini açın.

Kimlik doğrulamak için daha önce oluşturulan kullanıcı adını ve parolayı kullanın. WildFly konsolu gösterilecek bir sonraki pencere olacaktır.

Yazının orijinalini buradan okuyabilirsiniz.