Share via


チュートリアル: Azure Virtual Machines に Red Hat JBoss EAP を手動でインストールする

このチュートリアルでは、Red Hat JBoss EAP をインストールし、Red Hat Enterprise Linux (RHEL) 上の Azure Virtual Machines (VM) においてドメイン モードでクラスターを構成する手順について説明します。

このチュートリアルでは、次のタスクを実施する方法について説明します。

  • カスタム仮想ネットワークを作成し、ネットワーク内にVMを作成します。
  • コマンド ラインを手動で使って、目的の JDK と Red Hat JBoss EAP を VM にインストールします。
  • コマンド ライン インターフェイス (CLI) を使って、ドメイン モードで Red Hat JBoss EAP クラスターを構成します。
  • クラスターで PostgreSQL データソース接続を構成します。
  • クラスター内のサンプル Java Enterprise Edition アプリケーションをデプロイして実行します。
  • Azure Application Gateway 経由でアプリケーションをパブリック インターネットに公開します。
  • 成功した構成を検証します。

GNU/Linux VM でこれらの手順すべてを、ユーザーの代わりに Azure portal から直接に実行する完全に自動化されたソリューションが必要な場合、「クイックスタート: Azure portal を使って Azure 仮想マシンに JBoss EAP Server をデプロイする」をご覧ください。

Note

この記事には、Microsoft が使用しなくなった "スレーブ" という用語への言及が含まれています。 ソフトウェアからこの用語が削除された時点で、この記事から削除します。

前提条件

  • Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

  • Azure CLI version 2.51.0 以降のバージョンをインストールして、Azure CLI コマンドを実行します。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLI で拡張機能を使用する」を参照してください。
    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
  • 必要な Red Hat ライセンスがあることを確認してください。 Red Hat JBoss EAP の Red Hat Subscription Management (RHSM) エンタイトルメントがある Red Hat アカウントが必要です。 この資格により、上記 (Azure portal を使用して Azure 仮想マシンに JBoss EAP Server をデプロイする) の完全に自動化されたソリューションを使用して、Red Hat のテスト済みおよび認定済みの JBoss EAP バージョンをインストールできます。

    Note

    EAP エンタイトルメントをお持ちでない場合は、Red Hat Developer Subscription for Individuals を使用して無料の開発者サブスクリプションにサインアップできます。 次のセクションで RHSM ユーザー名および RHSM パスワードとして使用されるアカウントの詳細を書き留めます。

  • 既に登録している場合、または登録を完了した後は、次の手順を使用して必要な資格情報 (プールID) を見つけることができます。 また、これらのプール ID は、以降の手順で EAP 資格がある RHSM プール ID としても使用します。

    1. ご自分の Red Hat アカウントにサインインします。

    2. 初めてサインインすると、プロフィールに入力することが求められます。 使用状況に応じて、次のスクリーンショットに示すように、アカウントの種類で [個人] または [会社] を選択します。

      [個人] が選択された [アカウントの種類] オプションを示す Red Hat アカウント ウィンドウのスクリーンショット。

    3. 個人向けの Red Hat Developer サブスクリプションを開きます。 このリンクをクリックすると、適切な SKU のご自分のアカウント内のすべてのサブスクリプションに移動します。

    4. [すべての購入済みサブスクリプション] テーブルにあるコントロールの行で、[アクティブ] を選択します。 これにより、アクティブなサブスクリプションのみ表示されます。

    5. 最も遠い将来の値が最初の行として表示されるまで、[終了日] の並べ替え可能な列ヘッダーを選択します。

    6. 最初 の行を選択します。 続いて、プール ID からマスター プールに続く値をコピーして書き留めます。

  • Java JDK、バージョン 11。 このガイドでは、OpenJDK の Red Hat ビルドをお勧めします。 コマンドを実行するシェルで JAVA_HOME 環境変数が正しく設定されていることを確認します。

  • Gitgit が正常に機能するかどうかをテストするには、git --version を使用します。 このチュートリアルは、バージョン 2.25.1 でテストされました。

  • Mavenmvn が正常に機能するかどうかをテストするには、mvn -version を使用します。 このチュートリアルは、バージョン 3.6.3 でテストされました。

環境の準備

このセクションでは、JDK、Red Hat JBoss EAP、PostgreSQL JDBC ドライバーをインストールするインフラストラクチャをセットアップします。

前提条件

このチュートリアルでは、Red Hat JBoss EAP クラスターをドメイン モードで構成し、合計 3 台の VM で管理サーバーと 2 台の管理対象サーバーを構成します。 クラスターを構成するには、次の 3 つの Azure VM を作成する必要があります。

  • 管理者 VM (VM 名 adminVM) は、ドメイン コントローラーとして実行されます。
  • 2 つのマネージド VM (VM 名 mspVM1 および mspVM2) は、ホスト コントローラーとして実行されます。

Azure へのサインイン

まだ行っていない場合は、az login コマンドを使って、画面上の指示に従うことにより、Azure サブスクリプションにサインインします。

az login

Note

複数の Azure テナントがお使いの Azure 資格情報に関連付けられている場合は、サイン インするテナントを指定する必要があります。 そのためには、--tenant オプションを使用します。 たとえば、az login --tenant contoso.onmicrosoft.com のようにします。

リソース グループの作成

az group create を使用して、リソース グループを作成します。 リソース グループ名は、サブスクリプション内でグローバルに一意である必要があります。 この理由で、一意である必要がある名前を作成するには、一部の一意識別子を前に付けることを検討してください。 便利な方法は、自分のイニシャルの後に今日の日付を mmdd の形式で付加することです。 この例では、eastus の場所に abc1110rg という名前のリソース グループを作成します。

az group create \
    --name abc1110rg \
    --location eastus

仮想ネットワークの作成

Red Hat JBoss EAP クラスターを構成するリソースは、仮想ネットワークを使用して、相互通信し、パブリック インターネットとも通信する必要があります。 仮想ネットワークの計画に関する完全なガイドは、Cloud Adoption Framework for Azure ガイドの「仮想ネットワークの計画」を参照してください。 詳細については、「Azure Virtual Network のよくある質問 (FAQ)」を参照してください。

このセクションの例では、アドレス空間 192.168.0.0/16 で仮想ネットワークを作成して、VM で使用するサブネットを作成します。

まず az network vnet create を使って仮想ネットワークを作成します。 次の例では、myVNet という名前のネットワークを作成します。

az network vnet create \
    --resource-group abc1110rg \
    --name myVNet \
    --address-prefixes 192.168.0.0/24

az network vnet subnet create を使用して Red Hat JBoss EAP クラスターのサブネットを作成します。 次の例では、mySubnet という名前のサブネットを作成します。

az network vnet subnet create \
    --resource-group abc1110rg \
    --name mySubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.0.0/25

az network vnet subnet create を使用して Application Gateway のサブネットを作成します。 次の例では、jbossVMGatewaySubnet という名前のサブネットを作成します。

az network vnet subnet create \
    --resource-group abc1110rg \
    --name jbossVMGatewaySubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.0.128/25

ネットワーク セキュリティ グループを作成してサブネットを割り当てる

パブリック IP を使って VM を作成する前に、ネットワーク セキュリティ グループ (NSG) を作成して、前の手順で作成した仮想ネットワークとサブネットをセキュリティで保護します。

az network nsg create を使用して、ネットワーク セキュリティ グループを作成します。 次の例では、mynsg という名前のネットワーク セキュリティ グループを作成します。

az network nsg create \
    --resource-group abc1110rg \
    --name mynsg

az network nsg rule create を使用して、ネットワーク セキュリティ グループの規則を作成します。 次の例では、ALLOW_APPGW および ALLOW_HTTP_ACCESS という名前のネットワーク セキュリティ グループの規則を作成しています。 これらの規則により、App Gateway は Red Hat JBoss EAP で使用される HTTP ポートで受信トラフィックを受け入れることが許可されます。

az network nsg rule create \
    --resource-group abc1110rg \
    --nsg-name mynsg \
    --name ALLOW_APPGW \
    --protocol Tcp \
    --destination-port-ranges 65200-65535 \
    --source-address-prefix GatewayManager \
    --destination-address-prefix '*' \
    --access Allow \
    --priority 500 \
    --direction Inbound

az network nsg rule create \
    --resource-group abc1110rg \
    --nsg-name mynsg \
    --name ALLOW_HTTP_ACCESS \
    --protocol Tcp \
    --destination-port-ranges 22 80 443 9990 8080 \
    --source-address-prefix Internet \
    --destination-address-prefix '*' \
    --access Allow \
    --priority 510 \
    --direction Inbound

次の例に示すように、az network vnet subnet update を使って、前の手順で作成したサブネットをこのネットワーク セキュリティ グループに関連付けます。

az network vnet subnet update \
    --resource-group abc1110rg \
    --vnet-name myVNet \
    --name mySubnet \
    --network-security-group mynsg

az network vnet subnet update \
    --resource-group abc1110rg \
    --vnet-name myVNet \
    --name jbossVMGatewaySubnet \
    --network-security-group mynsg

管理者用の Red Hat Enterprise Linux マシンを作成

管理 VM を作成

VM の作成に使用する マーケットプレイスのイメージは、RedHat:rhel-raw:86-gen2:latest です。 その他のイメージについては、「Azure で利用可能な Red Hat Enterprise Linux (RHEL) イメージ」をご覧ください。

Note

次の例に示すように、az vm image list コマンドを使用して、Red Hat が提供するすべての利用可能な Red Hat Enterprise Linux イメージをクエリできます。たとえば、az vm image list --offer RHEL --publisher RedHat --output table --all です。 詳細については、「Red Hat Enterprise Linux イメージの概要」を参照してください。

別のイメージを使用する場合は、このガイドで使用するインフラストラクチャを有効にするために追加のライブラリをインストールする必要がある場合があります。

基本的な VM を作成し、必要なすべてのツールをインストールした後、そのスナップショットを取得し、スナップショットをベースにレプリカを作成します。

az vm create を使用して VM を作成します。 この VM で 管理サーバーを実行します。

次の例では、認証にユーザー名とパスワードのペアを使用して Red Hat Enterprise Linux VM を作成します。 必要に応じて、代わりに TLS/SSL 認証を使用できます。

az vm create \
    --resource-group abc1110rg \
    --name adminVM \
    --image RedHat:rhel-raw:86-gen2:latest \
    --size Standard_DS1_v2  \
    --admin-username azureuser \
    --admin-password Secret123456 \
    --public-ip-sku Standard \
    --nsg mynsg \
    --vnet-name myVnet \
    --subnet mySubnet

OpenJDK 11 と Red Hat JBoss EAP 7.4 のインストール

次の手順に従って、以下をインストールします。

  1. adminVM のパブリック IP を取得するには、次のコマンドを使用します。

    export ADMIN_VM_PUBLIC_IP=$(az vm show \
        --resource-group abc1110rg \
        --name adminVM \
        --show-details \
        --query publicIps | tr -d '"')
    
  2. ターミナルを開き、次のコマンドを使って adminVM に SSH 接続します。

    ssh azureuser@$ADMIN_VM_PUBLIC_IP
    
  3. パスワードとして Secret123456 を指定します。

  4. 次のコマンドを使ってポートのファイアウォールを構成します。

    sudo firewall-cmd --zone=public --add-port={9999/tcp,8443/tcp,8009/tcp,8080/tcp,9990/tcp,9993/tcp,45700/tcp,7600/tcp} --permanent
    sudo firewall-cmd --reload
    sudo iptables-save
    

    最初の 2 つのコマンドの後に、単語 success が表示されます。 3 つ目のコマンドの後、次の例ような出力が表示されます。

    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *filter
    :INPUT ACCEPT [20:3546]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [24:5446]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *security
    :INPUT ACCEPT [19:3506]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [5:492]
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m tcp --dport 53 -j ACCEPT
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m tcp --dport 53 -j ACCEPT
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m owner --uid-owner 0 -j ACCEPT
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m conntrack --ctstate INVALID,NEW -j DROP
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *raw
    :PREROUTING ACCEPT [20:3546]
    :OUTPUT ACCEPT [24:5446]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *mangle
    :PREROUTING ACCEPT [20:3546]
    :INPUT ACCEPT [20:3546]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [24:5446]
    :POSTROUTING ACCEPT [24:5446]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *nat
    :PREROUTING ACCEPT [1:40]
    :INPUT ACCEPT [0:0]
    :POSTROUTING ACCEPT [4:240]
    :OUTPUT ACCEPT [4:240]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    
  5. 以下のコマンドを使って、管理ホストを Red Hat Subscription Management (RHSM) アカウントに登録します。

    export RHSM_USER=<your-rhsm-username>
    export RHSM_PASSWORD="<your-rhsm-password>"
    export EAP_POOL=<your-rhsm-pool-ID>
    
    sudo subscription-manager register --username ${RHSM_USER} --password ${RHSM_PASSWORD} --force
    

    次の例のような出力が表示されます。

    Registering to: subscription.rhsm.redhat.com:443/subscription
    The system has been registered with ID: redacted
    The registered system name is: adminVM
    
  6. 以下のコマンドを使って、管理ホストを Red Hat JBoss EAP プールにアタッチします。

    sudo subscription-manager attach --pool=${EAP_POOL}
    

    Note

    シンプル コンテンツ アクセス モードを使用している場合、このコマンドは無視されます。

  7. 以下のコマンドを使って OpenJDK 11 をインストールします。

    sudo yum install java-11-openjdk -y
    

    多くの出力行が表示されます (末尾は Complete!)。

  8. Red Hat JBoss EAP 7.4 をインストールするには、以下のコマンドを使用します。

    sudo subscription-manager repos --enable=jb-eap-7.4-for-rhel-8-x86_64-rpms
    sudo yum update -y --disablerepo='*' --enablerepo='*microsoft*'
    sudo yum groupinstall -y jboss-eap7
    

    2 つ目と 3 つ目のコマンドでは、多くの出力行が表示されます (末尾は Complete!)。

  9. 以下のコマンドを使って、アクセス許可と TCP 構成を設定します。

    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
    echo 'AllowTcpForwarding no' | sudo tee -a /etc/ssh/sshd_config
    sudo systemctl restart sshd
    
  10. 以下のコマンドを使って、環境変数を構成します。

    echo 'export EAP_RPM_CONF_DOMAIN="/etc/opt/rh/eap7/wildfly/eap7-domain.conf"' >> ~/.bash_profile
    echo 'export EAP_HOME="/opt/rh/eap7/root/usr/share"' >> ~/.bash_profile
    source ~/.bash_profile
    sudo touch /etc/profile.d/eap_env.sh
    echo 'export EAP_HOME="/opt/rh/eap7/root/usr/share"' | sudo tee -a /etc/profile.d/eap_env.sh
    
  11. exit」と入力し、SSH 接続を終了します。

マネージド サーバー用マシンを作成する

OpenJDK 11 と Red Hat JBoss EAP 7.4 を adminVM にインストールしました。これは、ドメイン コントローラー サーバーとして実行されます。 引き続き、2 つのホスト コントローラー サーバーを実行するマシンを準備する必要があります。 次に、adminVM のスナップショットを作成し、2 つの管理対象サーバー mspVM1 および mspVM2 に合わせてマシンを準備します。

このセクションでは、adminVM のスナップショットを使用してマシンを準備する方法について説明します。 Azure CLI がサイン インしているターミナルに戻り、次の手順を実行します。

  1. 次のコマンドを使用して adminVM を停止します:

    az vm stop --resource-group abc1110rg --name adminVM
    
  2. 次の例に示すように、az snapshot create を使って adminVM OS ディスクのスナップショットを取得します。

    export ADMIN_OS_DISK_ID=$(az vm show \
        --resource-group abc1110rg \
        --name adminVM \
        --query storageProfile.osDisk.managedDisk.id \
        --output tsv)
    az snapshot create \
        --resource-group abc1110rg \
        --name myAdminOSDiskSnapshot \
        --source ${ADMIN_OS_DISK_ID}
    
  3. 次のコマンドを使用して adminVM を開始します:

    az vm start --resource-group abc1110rg --name adminVM
    
    
  4. 次の手順を実行して、mspVM1 を作成します:

    1. まず、az disk create を使用して mspVM1 用の管理対象ディスクを作成します。

      #Get the snapshot ID
      export SNAPSHOT_ID=$(az snapshot show \
          --name myAdminOSDiskSnapshot \
          --resource-group abc1110rg \
          --query '[id]' \
          --output tsv)
      
      #Create a new Managed Disks using the snapshot Id
      #Note that managed disk is created in the same location as the snapshot
      az disk create \
          --resource-group abc1110rg \
          --name mspVM1_OsDisk_1 \
          --source ${SNAPSHOT_ID}
      
    2. 次に、次のコマンドを使用して VM mspVM1 を作成し、OS ディスク mspVM1_OsDisk_1 をアタッチします。

      #Get the resource Id of the managed disk
      export MSPVM1_DISK_ID=$(az disk show \
          --name mspVM1_OsDisk_1 \
          --resource-group abc1110rg \
          --query '[id]' \
          --output tsv)
      
      #Create VM by attaching existing managed disks as OS
      az vm create \
          --resource-group abc1110rg \
          --name mspVM1 \
          --attach-os-disk ${MSPVM1_DISK_ID} \
          --os-type linux \
          --public-ip-sku Standard \
          --nsg mynsg \
          --vnet-name myVnet \
          --subnet mySubnet
      
    3. OpenJDK 11 と Red Hat JBoss EAP 7.4 がインストールされた状態で mspVM1 を作成しました。 VM が adminVM OS ディスクのスナップショットから作成されているので、2 つの VM は同じホスト名になります。 az vm run-command invoke を使用して、ホスト名を 値 mspVM1 に変更します:

      az vm run-command invoke \
          --resource-group abc1110rg \
          --name mspVM1 \
          --command-id RunShellScript \
          --scripts "sudo hostnamectl set-hostname mspVM1"
      

      コマンドが正常に実行された場合、次の例のような出力が表示されます。

      {
          "value": [
              {
              "code": "ProvisioningState/succeeded",
              "displayStatus": "Provisioning succeeded",
              "level": "Info",
              "message": "Enable succeeded: \n[stdout]\n\n[stderr]\n",
              "time": null
              }
          ]
      }
      
  5. 同じコマンドを使って、mspVM2 を作成します。

    #Create a new Managed Disks for mspVM2
    az disk create \
        --resource-group abc1110rg \
        --name mspVM2_OsDisk_1 \
        --source ${SNAPSHOT_ID}
    
    #Get the resource Id of the managed disk
    export MSPVM2_DISK_ID=$(az disk show \
        --name mspVM2_OsDisk_1 \
        --resource-group abc1110rg \
        --query '[id]' \
        --output tsv)
    
    #Create VM by attaching existing managed disks as OS
    az vm create \
        --resource-group abc1110rg \
        --name mspVM2 \
        --attach-os-disk ${MSPVM2_DISK_ID} \
        --os-type linux \
        --public-ip-sku Standard \
        --nsg mynsg \
        --vnet-name myVnet \
        --subnet mySubnet
    
    #Set hostname
    az vm run-command invoke \
        --resource-group abc1110rg \
        --name mspVM2 \
        --command-id RunShellScript \
        --scripts "sudo hostnamectl set-hostname mspVM2"
    

次のコマンドを使用して、後のセクションで使用するプライベート IP アドレスを取得して表示します。

export ADMINVM_NIC_ID=$(az vm show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name adminVM \
    --query networkProfile.networkInterfaces'[0]'.id \
    --output tsv)
export ADMINVM_IP=$(az network nic show \
    --ids ${ADMINVM_NIC_ID} \
    --query ipConfigurations'[0]'.privateIPAddress \
    --output tsv)
export MSPVM1_NIC_ID=$(az vm show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name mspVM1 \
    --query networkProfile.networkInterfaces'[0]'.id \
    --output tsv)
export MSPVM1_IP=$(az network nic show \
    --ids ${MSPVM1_NIC_ID} \
    --query ipConfigurations'[0]'.privateIPAddress \
    --output tsv)
export MSPVM2_NIC_ID=$(az vm show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name mspVM2 \
    --query networkProfile.networkInterfaces'[0]'.id \
    --output tsv)
export MSPVM2_IP=$(az network nic show \
    --ids ${MSPVM2_NIC_ID} \
    --query ipConfigurations'[0]'.privateIPAddress \
    --output tsv)
echo "Private IP of adminVM: ${ADMINVM_IP}"
echo "Private IP of mspVM1: ${MSPVM1_IP}"
echo "Private IP of mspVM2: ${MSPVM2_IP}"

これで、3 台のマシンの準備が整いました。 次に、マネージド ドメイン モードで Red Hat JBoss EAP クラスターを構成します。

マネージド ドメインとクラスターの構成

セッション レプリケーションを有効にしてクラスターを構成します。 詳細については、セッション レプリケーションに関するページをご覧ください。

セッション レプリケーションを有効にするには、クラスターの Red Hat JBoss EAP 高可用性を使用します。 Microsoft Azure では、UDP マルチキャストに基づく JGroups 検出プロトコルがサポートされていません。 他の JGroups 検出プロトコル (静的構成 (TCPPING)、共有データベース (JDBC_PING)、共有ファイル システム ベースの ping (FILE_PING)、または TCPGOSSIP) を使用することもできますが、Azure 用に特別に開発された共有ファイル検出プロトコルを使用することを強くお勧めします (AZURE_PING)。 詳しくは、Microsoft Azure 内での JBoss EAP 高可用性の使用に関するページをご覧ください。

AZURE_PING 用の Azure Storage アカウントと BLOB コンテナーの作成

以下のコマンドを使って、ストレージ アカウントと BLOB コンテナーを作成します。

# Define your storage account name
export STORAGE_ACCOUNT_NAME=azurepingstgabc1110rg
# Define your Blob container name
export CONTAINER_NAME=azurepingcontainerabc1110rg

# Create storage account
az storage account create \
    --resource-group abc1110rg \
    --name ${STORAGE_ACCOUNT_NAME} \
    --location eastus \
    --sku Standard_LRS \
    --kind StorageV2 \
    --access-tier Hot

続いて、以下のコマンドを使って、後で使用するためにストレージ アカウント キーを取得します。 エラーが発生する場合は、数分待ってからもう一度やり直してください。 このエラーは、ストレージ アカウントを作成する以前のコマンドがまd完全に完了していないことが原因である可能性があります。

export STORAGE_ACCESS_KEY=$(az storage account keys list \
    --resource-group abc1110rg \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --query "[0].value" \
    --output tsv)

# Create blob container
az storage container create \
    --name ${CONTAINER_NAME} \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --account-key ${STORAGE_ACCESS_KEY}

次の出力が表示されます。

{
  "created": true
}

ドメイン コントローラーの構成 (管理ノード)

このチュートリアルでは、Red Hat JBoss EAP 管理 CLI コマンドを使ってドメイン コントローラーを構成します。 詳細については、管理 CLI ガイドに関するページをご覧ください。

次の手順では、adminVM でドメイン コントローラーの構成をセットアップします。 SSH を使って azureuser ユーザーとして adminVM に接続します。 以前の手順で、パブリック IP アドレス adminVMADMIN_VM_PUBLIC_IP 環境変数にキャプチャされていることを思い出してください。

ssh azureuser@$ADMIN_VM_PUBLIC_IP

まず、以下のコマンドを使い、AZURE_PING プロトコルを使って HA プロファイルと JGroup を構成します。

export HOST_VM_IP=$(hostname -I)
export STORAGE_ACCOUNT_NAME=azurepingstgabc1110rg
export CONTAINER_NAME=azurepingcontainerabc1110rg
export STORAGE_ACCESS_KEY=<the-value-from-before-you-connected-with-SSH>


#-Configure the HA profile and JGroups using AZURE_PING protocol
sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --echo-command \
'embed-host-controller --std-out=echo --domain-config=domain.xml --host-config=host-master.xml',\
':write-attribute(name=name,value=domain1)',\
'/profile=ha/subsystem=jgroups/stack=tcp:remove',\
'/profile=ha/subsystem=jgroups/stack=tcp:add()',\
'/profile=ha/subsystem=jgroups/stack=tcp/transport=TCP:add(socket-binding=jgroups-tcp,properties={ip_mcast=false})',\
"/profile=ha/subsystem=jgroups/stack=tcp/protocol=azure.AZURE_PING:add(properties={storage_account_name=\"${STORAGE_ACCOUNT_NAME}\", storage_access_key=\"${STORAGE_ACCESS_KEY}\", container=\"${CONTAINER_NAME}\"})",\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=MERGE3:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=FD_SOCK:add(socket-binding=jgroups-tcp-fd)',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=FD_ALL:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=VERIFY_SUSPECT:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=pbcast.NAKACK2:add(properties={use_mcast_xmit=false,use_mcast_xmit_req=false})',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=UNICAST3:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=pbcast.STABLE:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=pbcast.GMS:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=MFC:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=FRAG3:add',\
'/profile=ha/subsystem=jgroups/channel=ee:write-attribute(name="stack", value="tcp")',\
'/server-group=main-server-group:write-attribute(name="profile", value="ha")',\
'/server-group=main-server-group:write-attribute(name="socket-binding-group", value="ha-sockets")',\
"/host=master/subsystem=elytron/http-authentication-factory=management-http-authentication:write-attribute(name=mechanism-configurations,value=[{mechanism-name=DIGEST,mechanism-realm-configurations=[{realm-name=ManagementRealm}]}])",\
"/host=master/interface=unsecure:add(inet-address=${HOST_VM_IP})",\
"/host=master/interface=management:write-attribute(name=inet-address, value=${HOST_VM_IP})",\
"/host=master/interface=public:add(inet-address=${HOST_VM_IP})"

# Save a copy of the domain.xml, later you need to share it with all host controllers
cp $EAP_HOME/wildfly/domain/configuration/domain.xml /tmp/domain.xml

出力の最後のスタンザは、次の例のようになります。 そうでない場合、問題をトラブルシューティングして解決してから続行してください。

[domain@embedded /] /host=master/interface=public:add(inet-address=192.168.0.4 )
{
    "outcome" => "success",
    "result" => undefined,
    "server-groups" => undefined,
    "response-headers" => {"process-state" => "reload-required"}
}
02:05:55,019 INFO  [org.jboss.as] (MSC service thread 1-1) WFLYSRV0050: JBoss EAP 7.4.10.GA (WildFly Core 15.0.25.Final-redhat-00001) stopped in 28ms

次に、以下のコマンドを使って JBoss サーバーを構成し、EAP サービスをセットアップします。

# Configure the JBoss server and setup EAP service
echo 'WILDFLY_HOST_CONFIG=host-master.xml' | sudo tee -a $EAP_RPM_CONF_DOMAIN

# Configure JBoss EAP management user
export JBOSS_EAP_USER=jbossadmin
export JBOSS_EAP_PASSWORD=Secret123456
sudo $EAP_HOME/wildfly/bin/add-user.sh  -u $JBOSS_EAP_USER -p $JBOSS_EAP_PASSWORD -g 'guest,mgmtgroup'

出力は次の例のようになるはずです。

Added user 'jbossadmin' to file '/etc/opt/rh/eap7/wildfly/standalone/mgmt-users.properties'
Added user 'jbossadmin' to file '/etc/opt/rh/eap7/wildfly/domain/mgmt-users.properties'
Added user 'jbossadmin' with groups guest,mgmtgroup to file '/etc/opt/rh/eap7/wildfly/standalone/mgmt-groups.properties'
Added user 'jbossadmin' with groups guest,mgmtgroup to file '/etc/opt/rh/eap7/wildfly/domain/mgmt-groups.properties'

最後に、以下のコマンドを使って EAP サービスを開始します。

# Start the JBoss server and setup EAP service
sudo systemctl enable eap7-domain.service

# Edit eap7-domain.services
sudo sed -i 's/After=syslog.target network.target/After=syslog.target network.target NetworkManager-wait-online.service/' /usr/lib/systemd/system/eap7-domain.service
sudo sed -i 's/Before=httpd.service/Wants=NetworkManager-wait-online.service \nBefore=httpd.service/' /usr/lib/systemd/system/eap7-domain.service

# Reload and restart EAP service
sudo systemctl daemon-reload
sudo systemctl restart eap7-domain.service

# Check the status of EAP service
systemctl status eap7-domain.service

出力は次の例のようになるはずです。

● eap7-domain.service - JBoss EAP (domain mode)
   Loaded: loaded (/usr/lib/systemd/system/eap7-domain.service; enabled; vendor>
   Active: active (running) since Thu 2023-03-30 02:11:44 UTC; 5s ago
 Main PID: 3855 (scl)
    Tasks: 82 (limit: 20612)
   Memory: 232.4M
   CGroup: /system.slice/eap7-domain.service
           ├─3855 /usr/bin/scl enable eap7 -- /opt/rh/eap7/root/usr/share/wildf>
           ├─3856 /bin/bash /var/tmp/sclfYu7yW
           ├─3858 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/launch.sh /us>
           ├─3862 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/domain.sh --h>
           ├─3955 /usr/lib/jvm/jre/bin/java -D[Process Controller] -server -Xms>
           └─3967 /usr/lib/jvm/jre/bin/java -D[Host Controller] -Dorg.jboss.boo>

Mar 30 02:11:44 adminVM systemd[1]: Started JBoss EAP (domain mode).

q」と入力してページャーを終了します。 「exit」と入力し、SSH 接続を終了します。

Red Hat JBoss EAP サービスを開始すると、Web ブラウザーから http://$ADMIN_VM_PUBLIC_IP:9990 経由で管理コンソールにアクセスできます。 構成したユーザ名 jbossadmin とパスワード Secret123456 でサインインします。

Red Hat JBoss Enterprise Application Platform ドメイン コントローラー管理コンソールのスクリーンショット。

[ランタイム] タブを選択します。ナビゲーション ウィンドウで、[トポロジ] を選択します。 現時点では、クラスターに含まれるドメイン コントローラーは 1 つだけであることがわかります。

ドメイン コントロールのみの [ランタイム] タブと [トポロジ] ペインが表示されている Red Hat JBoss Enterprise Application Platform のスクリーンショット。

ホスト コントローラー (ワーカー ノード) の構成

SSH を使って azureuser ユーザーとして mspVM1 に接続します。 次のコマンドを使って、VM のパブリック IP アドレスを取得します。

MSPVM_PUBLIC_IP=$(az vm show \
    --resource-group abc1110rg \
    --name mspVM1 \
    --show-details \
    --query publicIps)

ssh azureuser@$MSPVM_PUBLIC_IP

パスワードは前と同じであることを覚えておいてください。mspVM1adminVM のクローンにすぎないからです。

以下のコマンドを使って、mspVM1 でホスト コントローラーをセットアップします。

# environment variables
export DOMAIN_CONTROLLER_PRIVATE_IP=<adminVM-private-IP>
export HOST_VM_NAME=$(hostname)
export HOST_VM_NAME_LOWERCASE=$(echo "${HOST_VM_NAME,,}")
export HOST_VM_IP=$(hostname -I)

export JBOSS_EAP_USER=jbossadmin
export JBOSS_EAP_PASSWORD=Secret123456

# Save default domain configuration as backup
sudo -u jboss mv $EAP_HOME/wildfly/domain/configuration/domain.xml $EAP_HOME/wildfly/domain/configuration/domain.xml.backup

# Fetch domain.xml from domain controller
sudo -u jboss scp azureuser@${DOMAIN_CONTROLLER_PRIVATE_IP}:/tmp/domain.xml $EAP_HOME/wildfly/domain/configuration/domain.xml

接続用のパスワードを求められます。 この例では、パスワードは Secret123456 です。

以下のコマンドを使って、ホスト コントローラーの変更を mspVM1 に適用します。

# Setup host controller
sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --echo-command \
"embed-host-controller --std-out=echo --domain-config=domain.xml --host-config=host-slave.xml",\
"/host=${HOST_VM_NAME_LOWERCASE}/server-config=server-one:remove",\
"/host=${HOST_VM_NAME_LOWERCASE}/server-config=server-two:remove",\
"/host=${HOST_VM_NAME_LOWERCASE}/server-config=${HOST_VM_NAME_LOWERCASE}-server0:add(group=main-server-group)",\
"/host=${HOST_VM_NAME_LOWERCASE}/subsystem=elytron/authentication-configuration=slave:add(authentication-name=${JBOSS_EAP_USER}, credential-reference={clear-text=${JBOSS_EAP_PASSWORD}})",\
"/host=${HOST_VM_NAME_LOWERCASE}/subsystem=elytron/authentication-context=slave-context:add(match-rules=[{authentication-configuration=slave}])",\
"/host=${HOST_VM_NAME_LOWERCASE}:write-attribute(name=domain-controller.remote.username, value=${JBOSS_EAP_USER})",\
"/host=${HOST_VM_NAME_LOWERCASE}:write-attribute(name=domain-controller.remote, value={host=${DOMAIN_CONTROLLER_PRIVATE_IP}, port=9990, protocol=remote+http, authentication-context=slave-context})",\
"/host=${HOST_VM_NAME_LOWERCASE}/core-service=discovery-options/static-discovery=primary:write-attribute(name=host, value=${DOMAIN_CONTROLLER_PRIVATE_IP})",\
"/host=${HOST_VM_NAME_LOWERCASE}/interface=unsecured:add(inet-address=${HOST_VM_IP})",\
"/host=${HOST_VM_NAME_LOWERCASE}/interface=management:write-attribute(name=inet-address, value=${HOST_VM_IP})",\
"/host=${HOST_VM_NAME_LOWERCASE}/interface=public:write-attribute(name=inet-address, value=${HOST_VM_IP})"

出力の最後のスタンザは、次の例のようになります。 そうでない場合、問題をトラブルシューティングして解決してから続行してください。

[domain@embedded /] /host=mspvm1/interface=public:write-attribute(name=inet-address, value=192.168.0.5 )
{
    "outcome" => "success",
    "result" => undefined,
    "server-groups" => undefined,
    "response-headers" => {"process-state" => "reload-required"}
}
02:58:59,388 INFO  [org.jboss.as] (MSC service thread 1-2) WFLYSRV0050: JBoss EAP 7.4.10.GA (WildFly Core 15.0.25.Final-redhat-00001) stopped in 58ms

次に、以下のコマンドを使って JBoss サーバーを構成し、EAP サービスをセットアップします。

echo 'WILDFLY_HOST_CONFIG=host-slave.xml' | sudo tee -a $EAP_RPM_CONF_DOMAIN

# Enable the JBoss server and setup EAP service
sudo systemctl enable eap7-domain.service

# Edit eap7-domain.services
sudo sed -i 's/After=syslog.target network.target/After=syslog.target network.target NetworkManager-wait-online.service/' /usr/lib/systemd/system/eap7-domain.service
sudo sed -i 's/Before=httpd.service/Wants=NetworkManager-wait-online.service \nBefore=httpd.service/' /usr/lib/systemd/system/eap7-domain.service

# Reload and restart EAP service
sudo systemctl daemon-reload
sudo systemctl restart eap7-domain.service

# Check the status of EAP service
systemctl status eap7-domain.service

出力は次の例のようになるはずです。

● eap7-domain.service - JBoss EAP (domain mode)
   Loaded: loaded (/usr/lib/systemd/system/eap7-domain.service; enabled; vendor>
   Active: active (running) since Thu 2023-03-30 03:02:15 UTC; 7s ago
 Main PID: 9699 (scl)
    Tasks: 51 (limit: 20612)
   Memory: 267.6M
   CGroup: /system.slice/eap7-domain.service
           ├─9699 /usr/bin/scl enable eap7 -- /opt/rh/eap7/root/usr/share/wildf>
           ├─9700 /bin/bash /var/tmp/sclgJ1hRD
           ├─9702 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/launch.sh /us>
           ├─9706 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/domain.sh --h>
           ├─9799 /usr/lib/jvm/jre/bin/java -D[Process Controller] -server -Xms>
           └─9811 /usr/lib/jvm/jre/bin/java -D[Host Controller] -Dorg.jboss.boo>

Mar 30 03:02:15 mspVM1 systemd[1]: Started JBoss EAP (domain mode).

q」と入力してページャーを終了します。 「exit」と入力し、SSH 接続を終了します。

SSH を使って azureuser ユーザーとして mspVM2 に接続します。 次のコマンドを使って、VM のパブリック IP アドレスを取得します。

az vm show \
    --resource-group abc1110rg \
    --name mspVM2 \
    --show-details \
    --query publicIps

mspVM2 で前の手順を繰り返し、「exit」と入力して SSH 接続を終了します。

2 つのホスト コントローラーが adminVM に接続されると、次のスクリーンショットに示すように、クラスター トポロジが表示されます。

すべてのホストの [ランタイム] タブと [トポロジ] ペインが表示されている Red Hat JBoss Enterprise Application Platform のスクリーンショット。

Azure Application Gateway を使った Red Hat JBoss EAP クラスターの公開

Azure Virtual Machines で Red Hat JBoss EAP クラスターを作成したので、このセクションでは、Azure Application Gateway を使って Red Hat JBoss EAP をインターネットに公開するプロセスについて説明します。

Azure Application Gateway を作成する

Red Hat JBoss EAP をインターネットに公開するには、パブリック IP アドレスが必要です。 パブリック IP アドレスを作成し、Azure Application Gateway を関連付けます。 次の例に示すように、az network public-ip create を使って作成します。

az network public-ip create \
    --resource-group abc1110rg \
    --name myAGPublicIPAddress \
    --allocation-method Static \
    --sku Standard

次に、バックエンド サーバーを Application Gateway バックエンド プールに追加します。 次のコマンドを使ってバックエンド IP アドレスのクエリを実行します。 バックエンド サーバーとして構成されるのはホスト コントローラー (ワーク ノード) だけです。

export MSPVM1_NIC_ID=$(az vm show \
    --resource-group abc1110rg \
    --name mspVM1 \
    --query networkProfile.networkInterfaces'[0]'.id \
    --output tsv)
export MSPVM1_IP=$(az network nic show \
    --ids ${MSPVM1_NIC_ID} \
    --query ipConfigurations'[0]'.privateIPAddress \
    --output tsv)
export MSPVM2_NIC_ID=$(az vm show \
    --resource-group abc1110rg \
    --name mspVM2 \
    --query networkProfile.networkInterfaces'[0]'.id \
    --output tsv)
export MSPVM2_IP=$(az network nic show \
    --ids ${MSPVM2_NIC_ID} \
    --query ipConfigurations'[0]'.privateIPAddress \
    --output tsv)

次に、Azure Application Gateway を作成します。 次の例では、ホスト コントローラーを含む Application Gateway を既定のバックエンド プールで作成します。

az network application-gateway create \
    --resource-group abc1110rg \
    --name myAppGateway \
    --public-ip-address myAGPublicIPAddress \
    --location eastus \
    --capacity 2 \
    --http-settings-port 8080 \
    --http-settings-protocol Http \
    --frontend-port 80 \
    --sku Standard_V2 \
    --subnet jbossVMGatewaySubnet \
    --vnet-name myVNet \
    --priority 1001 \
    --servers ${MSPVM1_IP} ${MSPVM2_IP}

Note

この例では、HTTP を使って Red Hat JBoss EAP サーバーへの簡単なアクセスをセットアップします。 セキュリティで保護されたアクセスが必要な場合は、「Application Gateway でのエンド ツー エンド TLS」の手順に 従って TLS/SSL ターミネーションを構成します。

この例では、ポート 8080 でホスト コントローラーを公開します。 この後の手順で、クラスターへのデータベース接続を使ってサンプル アプリケーションをデプロイします。

Azure Database for PostgreSQL に接続する

このセクションでは、Azure で PostgreSQL インスタンスを作成し、Red Hat JBoss EAP クラスター上の PostgreSQL への接続を構成する方法について説明します。

Azure Database for PostgreSQL インスタンスを作成する

以下の手順を使って、データベース インスタンスを作成します。

  1. 次の例に示すように、az postgres server create を使用して、Azure の PostgreSQL インスタンスをプロビジョニングします。

    export DATA_BASE_USER=jboss
    export DATA_BASE_PASSWORD=Secret123456
    
    DB_SERVER_NAME="jbossdb$(date +%s)"
    echo "DB_SERVER_NAME=${DB_SERVER_NAME}"
    az postgres server create \
        --resource-group abc1110rg \
        --name ${DB_SERVER_NAME}  \
        --location eastus \
        --admin-user ${DATA_BASE_USER} \
        --ssl-enforcement Enabled \
        --admin-password ${DATA_BASE_PASSWORD} \
        --sku-name GP_Gen5_2
    
  2. 以下のコマンドを使って、Azure サービスからのアクセスを許可します。

    # Write down the following names for later use
    export fullyQualifiedDomainName=$(az postgres server show \
        --resource-group abc1110rg \
        --name ${DB_SERVER_NAME} \
        --query "fullyQualifiedDomainName" \
        --output tsv)
    export name=$(az postgres server show \
        --resource-group abc1110rg \
        --name ${DB_SERVER_NAME} \
        --query "name" \
        --output tsv)
    
    az postgres server firewall-rule create \
        --resource-group abc1110rg \
        --server ${DB_SERVER_NAME} \
        --name "AllowAllAzureIps" \
        --start-ip-address 0.0.0.0 \
        --end-ip-address 0.0.0.0
    
  3. 次のコマンドを使ってデータベースを作成します。

    az postgres db create \
        --resource-group abc1110rg \
        --server ${DB_SERVER_NAME} \
        --name testdb
    

ドライバーのインストール

JBoss 管理 CLI を使って JDBC ドライバーをインストールするには、次の手順に従います。 Red Hat JBoss EAP の JDBC ドライバーについて詳しくは、JAR デプロイとしての JDBC ドライバーのインストールに関するページをご覧ください。

  1. 次のコマンドを使って adminVM に SSH 接続します。 既に接続を開いている場合は、この手順を省略できます。

    ssh azureuser@$ADMIN_VM_PUBLIC_IP
    
  2. 次のコマンドを使用して JDBC ドライバーをダウンロードします。 ここでは、postgresql-42.5.2.jar を使用します。 JDBC ドライバーのダウンロード場所について詳しくは、Red Hat により提供された JDBC ドライバーのダウンロード場所に関するページをご覧ください。

    jdbcDriverName=postgresql-42.5.2.jar
    sudo curl --retry 5 -Lo /tmp/${jdbcDriverName} https://jdbc.postgresql.org/download/${jdbcDriverName}
    
  3. 以下の JBoss CLI コマンドを使って JDBC ドライバーをデプロイします。

    sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --connect --controller=$(hostname -I) --echo-command \
    "deploy /tmp/${jdbcDriverName} --server-groups=main-server-group"
    

    サーバー ログは、/var/opt/rh/eap7/lib/wildfly/domain/servers/mspvm1-server0/log/server.logmspVM1 および mspVM2 にあります。 デプロイに失敗した場合、続ける前に、このログ ファイルを調べて問題を解決してください。

Red Hat JBoss EAP クラスターのデータベース接続の構成

データベース サーバーを起動して、必要なリソース ID を取得し、JDBC ドライバーをインストールしました。 次に、このセクションの手順では、JBoss CLI を使って、前の手順で作成した PostgreSQL インスタンスとのデータソース接続を構成する方法について説明します。

  1. ターミナルを開き、次のコマンドを使って adminVM に SSH 接続します。

    ssh azureuser@$ADMIN_VM_PUBLIC_IP
    
  2. 以下のコマンドを使って、データ ソースを作成します。

    # Replace the following values with your own
    export DATA_SOURCE_CONNECTION_STRING=jdbc:postgresql://<database-fully-qualified-domain-name>:5432/testdb
    export DATA_BASE_USER=jboss@<database-server-name>
    export JDBC_DATA_SOURCE_NAME=dataSource-postgresql
    export JDBC_JNDI_NAME=java:jboss/datasources/JavaEECafeDB
    export DATA_BASE_PASSWORD=Secret123456
    export JDBC_DRIVER_NAME=postgresql-42.5.2.jar
    
    sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --connect --controller=$(hostname -I) --echo-command \
    "data-source add --driver-name=${JDBC_DRIVER_NAME} --profile=ha --name=${JDBC_DATA_SOURCE_NAME} --jndi-name=${JDBC_JNDI_NAME} --connection-url=${DATA_SOURCE_CONNECTION_STRING} --user-name=${DATA_BASE_USER} --password=${DATA_BASE_PASSWORD}"
    

これらの手順の後、java:jboss/datasources/JavaEECafeDB という名前のデータ ソースが正常に構成されました。

Java Enterprise Edition Cafe サンプル アプリケーションのデプロイ

次の手順に従って、Java Enterprise Edition Cafe サンプル アプリケーションを Red Hat JBoss EAP クラスターにデプロイします。

  1. Java Enterprise Edition Cafe をビルドするには、以下の手順に従います。 これらの手順は、Git と Maven がインストールされたローカル環境があることを前提としています。

    1. 次のコマンドを使用して、GitHub からソース コードを複製します。

      git clone https://github.com/Azure/rhel-jboss-templates.git
      
    2. 次のコマンドを使用して、ソース コードをビルドします。

      mvn clean install --file rhel-jboss-templates/eap-coffee-app/pom.xml
      

      このコマンドは、eap-coffee-app/target/javaee-cafe.war ファイルを作成します。 次の手順でこのファイルをアップロードします。

  2. Web ブラウザーを開いて、http://<adminVM-public-IP>:9990 の管理コンソールに移動し、ユーザー名 jbossadmin とパスワード Secret123456 でサインインします。

  3. javaee-cafe.warコンテンツ リポジトリにアップロードするには、次の手順に従います。

    1. Red Hat JBoss EAP 管理コンソールの [デプロイ] タブにあるナビゲーション ウィンドウで [コンテンツ リポジトリ] を選択します。

    2. [追加] ボタンを選択し、[コンテンツのアップロード] を選択します。

      [コンテンツのアップロード] メニュー オプションが強調表示された [Red Hat JBoss Enterprise Application Platform Deployments] タブのスクリーンショット。

    3. ブラウザー ファイルの選択ツールを使って、javaee-cafe.war ファイルを選択します。

    4. [次へ] を選択します。

    5. 次の画面で既定値を受け入れ、[完了] を選択します。

    6. [コンテンツの表示] を選択します。

  4. 次の手順を使用して、アプリケーションを main-server-group にデプロイします。

    1. [コンテンツ リポジトリ] から、javaee-cafe.war を選択します。

    2. ドロップダウン メニューで、[デプロイ] を選択します。

    3. javaee-cafe.war をデプロイするためのサーバー グループとして main-server-group を選択します。

    4. [デプロイ] を選んで、デプロイを始めます。 以下のスクリーンショットのような通知が表示されます。

      デプロイの正常完了を示すスクリーンショット。

Red Hat JBoss EAP クラスター構成のテスト

これで、Red Hat JBoss EAP クラスターの構成と、それに対する Java Enterprise Edition アプリケーションのデプロイが完了しました。 次の手順を実行して、アプリケーションにアクセスし、すべての設定を検証します。

  1. 次のコマンドを使用して、前の Azure Application Gateway のパブリック IP アドレスを取得します。

    az network public-ip show \
        --resource-group abc1110rg \
        --name myAGPublicIPAddress \
        --query '[ipAddress]' \
        --output tsv
    
  2. Web ブラウザーを開きます。

  3. URL http://<gateway-public-ip-address>/javaee-cafe/ の アプリケーションに移動します。 末尾のスラッシュを忘れないでください。

  4. coffees の追加と削除を試みます。

リソースをクリーンアップする

Azure の課金を回避するには、不要なリソースをクリーンアップする必要があります。 Azure VM にデプロイされた Red Hat JBoss EAP クラスターが不要になったら、Red Hat JBoss EAP サーバーの登録を解除し、Azure リソースを削除します。

以下のコマンドを使用して、Red Hat サブスクリプション管理から Red Hat JBoss EAP サーバーと VM の登録を解除します。

# Unregister domain controller
az vm run-command invoke \
    --resource-group abc1110rg \
    --name adminVM \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

# Unregister host controllers
az vm run-command invoke \
    --resource-group abc1110rg \
    --name mspVM1 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"
az vm run-command invoke \
    --resource-group abc1110rg \
    --name mspVM2 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

次のコマンドを使用して、リソース グループ abc1110rg を削除します。

az group delete --name abc1110rg --yes --no-wait

次のステップ

Azure 上で Red Hat JBoss EAP を実行するためのオプションについて引き続き調べます。