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, 基盤技術

関連記事

疎通確認用pingツール

新人君たちと本番環境の構築作業でデータセンターに入り。 構築したサーバから、既存の重要なサーバへの疎通確認を行うために、pingを何度も入力する予定とのこと。 作業時間の短縮や間違いの低減のために、こ …

Azure AD B2Cの拡張属性とカスタム属性の違い

Azure AD B2Cのユーザアカウントを操作する際、拡張属性(ExtensionProperty)とカスタム属性(Custom Attribute)というキーワードがあり紛らわしい…と …

.NET Core(C#): Moqのnew Mock<T>()とMock.Of<T>()の違い

はじめに 次の環境を使用して動作確認しています。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2019(16.8.5) + C …

初心者のためのAzure AD B2Cカスタムポリシー概要

はじめに Azure AD B2Cは、ユーザ情報の管理を行うと共に、アプリに代わってサインイン、パスワードリセット、プロフィール編集等のユーザ認証・編集機能を実行できます。ここでは、このようなユーザ認 …

自己署名クライアント証明書の作成とIIS認証設定

概要 Windows(PowerShell)で自己署名クライアント証明書を作成し、IISで認証できるようにする手順を説明します。 使用する環境は次の通りです。 OS Windows 10(64ビット) …