NDW

アプリ開発やトラブルシューティング等のノウハウ、キャンプや登山の紹介や体験談など。

1. システムエンジニアリング eap/wildfly Linux 基盤技術

LinuxにWildfly18のインストール

投稿日:

Linux(REHL8.3)にWildfly18をインストールする手順を説明します。

概要

RHEL8.3環境を使ったWildfly18+JDK11のインストール手順を説明します。

  • Red Hat JBoss Enterprise Application Platform(EAP)を使用する機会が多いのですが費用の問題で、無償のWildflyを使用します。
  • 2021年5月現在で最新版であるEAP7.3で使用されているWildfly18を使用します。各EAPのバージョンで使用しているWildflyのバージョンは下記をご覧ください。
    Which version of JBoss EAP corresponds to which community JBoss AS / Wildlfly
  • Wildfly18では、サポート期限が比較的長いLTS版JDKを推奨しているので、ここではJDK11を使用します。なお、JDKのライフサイクルは次をご覧ください。
  • wildfly/JDK11で使用するフォルダは次の通りです。
    パス 説明
    /opt/java/
    JDKの配置場所として新規作成
    /opt/wildfly/
    Wildflyの配置場所として新規作成
    /etc/wildfly/
    サービス用の設定ファイルの配置場所として新規作成
    /etc/systemd/system/
    systemdユニットファイルの配置場所
  • wildflyのサービス化は、”docs/contrib/scripts/systemd/”に含まれるREADMEやスクリプトに基づいて行います。ここで前提とするファイルの関係性は次の通りです。
    1. systemdにwildflyを登録するためにユニットファイル(wildfly.service)を使用します。
    2. systemdは、wildfly.serviceに基づいて、wildfly.confを読み込んでlaunch.shを実行します。
    3. launch.shは、standalone.shを実行します。この際にstandalone.confを読み込みます。
      (単体で起動するだけならstandalone.sh/confのみ必要)

JDK11のインストール

  1. JDK11のダウンロード
    OracleのサイトからJDKをダウンロードします。
    ここでは、Linux x64 Compressed Archive(jdk-11.0.11_linux-x64_bin.tar.gz)を使用します。
    (なお、同意ボタンがある関係で、curl/wget等で直接ダウンロードできません。)
  2. ダウンロードしたファイルの展開
    ダウンロードしたファイルを展開します。
    # mkdir /opt/java
    # tar xvfz jdk-11.0.11_linux-x64_bin.tar.gz -C /opt/java/
    # ln -s /opt/java/jdk-11.0.11 /opt/java/jdk
    

Wildfly18のインストール

  1. Wildflyのダウンロード
    公式サイトからWildfly18を任意の場所にダウンロードします。
    ダウンロードリンク先をコピーし、次のように直接ダウンロードすることもできます。
    wget https://download.jboss.org/wildfly/18.0.1.Final/wildfly-18.0.1.Final.tar.gz 
    
  2. ダウンロードしたファイルの展開
    mkdir /opt/wildfly
    tar xvfz wildfly-18.0.1.Final.tar.gz -C /opt/wildfly/
    chown -R wildfly:wildfly /opt/wildfly/wildfly-18.0.1.Final
    ln -s /opt/wildfly/wildfly-18.0.1.Final /opt/wildfly/wildfly
    
  3. Wildfly実行ユーザの追加
    wildflyが乗っ取られた場合の被害を最小限にするために、root以外の実行ユーザを追加します。
    groupadd -r wildfly
    useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly
    
  4. 設定の編集
    各設定ファイルの内容を要件や環境に合わせて修正します。
    vi /opt/wildfly/wildfly/bin/standalone.conf
        ...
        JAVA_HOME="/opt/java/jdk"
        JAVA_OPTS=...
        ...
    
  5. 動作確認
    実際にwildflyユーザで起動できることを確認します。
    (なお、rootで実行するとroot権限のデータやログファイルが作成され、後でwildflyユーザで実行できなくります。)
    # sudo -u wildfly /opt/wildfly/wildfly/bin/standalone.sh
    # tail -f /opt/wildfly/wildfly/standalone/log/server.log
    ...
    ... WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
    ... WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
    ... WFLYSRV0025: WildFly Full 18.0.1.Final (WildFly Core 10.0.3.Final) started in ...
    

Wildfly18のサービス化

  1. 設定系ファイルの準備
    cd /opt/wildfly/wildfly/docs/contrib/scripts/systemd/
    mkdir /etc/wildfly
    cp wildfly.conf /etc/wildfly/
    cp wildfly.service /etc/systemd/system/
    cp launch.sh /opt/wildfly/wildfly/bin/
    chmod +x /opt/wildfly/wildfly/bin/launch.sh
    
  2. 設定の編集
    各設定ファイルの内容を要件や環境に合わせて修正します。
    (なお、ここではリバースプロキシとしてローカルにApacheを配置する想定であるため、ローカルからのみアクセスできるよう、WILDFLY_BINDに”127.0.0.1″を指定しています。外部からアクセスできるようにするためには、”0.0.0.0″等に変更する必要がありますす。)
    vi /etc/wildfly/wildfly.conf
        WILDFLY_CONFIG=standalone.xml
        WILDFLY_MODE=standalone
        WILDFLY_BIND=127.0.0.1
    vi /etc/systemd/system/wildfly.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/wildfly/bin/launch.sh $WILDFLY_MODE ...
        StandardOutput=null
        ...
    vi /opt/wildfly/wildfly/bin/launch.sh
        ...
        if [ "x$WILDFLY_HOME" = "x" ]; then
            WILDFLY_HOME="/opt/wildfly/wildfly"
        fi
        ...
    
  3. systemctl経由での起動確認
    # systemctl start wildfly.service
    # systemctl status wildfly.service
       ...
        ● wildfly.service - The WildFly Application Server
           Loaded: loaded (/etc/systemd/system/wildfly.service; ...
           Active: active (running) since Fri 2021-04-30 ...
       ...
    
  4. サービスの有効化
    # systemctl enable wildfly.service
        Created symlink /etc/systemd/system/...
    
  5. OS再起動後のサービス起動確認
    # reboot
    
    ...再起動後...
    
    # systemctl status wildfly.service
       ...
        ● wildfly.service - The WildFly Application Server
           Loaded: loaded (/etc/systemd/system/wildfly.service; ...
           Active: active (running) since Fri 2021-04-30 ...
       ...
    






-1. システムエンジニアリング, eap/wildfly, Linux, 基盤技術

関連記事

JSFラジオボタン・チェックボックスとbootstrap

boostrapでラジオボタンやチェックボックスを使用する場合、div, input, label要素にbootstrapのCSSクラスを指定する必要がある。 JSFでラジオボタンを使用する場合、se …

.NET Core(C#): JsonSerializer実践オプションとコンバータ

業務アプリの開発を想定したJsonSerializerの使い方とサンプルです。 概要 .NET Core 3.1の標準パッケージSystem.Text.Jsonに含まれるJsonSerializerを …

開発環境のJBoss EAP7にリモートアクセス

開発中のものを他者に見せたり、問題が発生している開発者の開発物を参照するために、eclipse上で起動しているEAP7のWebアプリに別のPCからアクセスしたい場合があります。 このための手順を記載し …

JavaScript, jQueryでチェックボックス状態の取得と設定

チェックボックスの状態取得や設定の方法の備忘録です。 ダイジェスト チェックボックスのチェック状態を取得・設定する主要な方法は次の通り。 javascriptの場合、HTMLInputElement. …

VULTR: SSH鍵の作成とVPSの構築

VULTRでVPSを作成し、Tera Term(SSH)で管理する方法について説明します。 概要 VULTRにおいて、次の前提でVPSを構築する手順を説明します。 “New York(NJ …