快速入門:在 Azure 虛擬機器 (VM) 上部署 JBoss EAP 叢集

本文說明如何使用 Azure 入口網站,在 Azure 虛擬機器 (VM) 上快速部署 JBoss 企業應用程式平台 (EAP) 叢集。

本文使用 Azure Marketplace 供應項目取得 JBoss EAP 叢集,以加速您的 ARO 旅程。 供應項目會自動佈建數個資源,包含 Azure Red Hat Enterprise Linux (RHEL) VM、每個虛擬機器上的 JBoss EAP 執行個體、每個虛擬機器上的 OpenJDK Red Hat 組建、JBoss EAP 管理主控台,也可以選擇性佈建 Azure 應用程式閘道執行個體。 若要查看供應項目,請使用 Azure 入口網站造訪 RHEL VM 上的 JBoss EAP 叢集

如果您想要在未利用 Azure Marketplace 供應項目所啟用自動化的 Azure 虛擬機器上安裝 Red Hat JBoss EAP 叢集的手動逐步指引,請參閱教學課程:手動在 Azure 虛擬機器上安裝 Red Hat JBoss EAP

若您有興趣與開發 Azure 上 JBoss EAP 解決方案的工程團隊緊密合作以進行移轉,請填寫這份簡短的 JBoss EAP 移轉問卷,並附上您的連絡資訊。 由專案經理、結構設計師和工程師組成的小組會立即連絡您,以展開緊密合作。

必要條件

  • Azure 訂用帳戶。 如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶
  • 請確定您用來登入的 Azure 身分識別具有 參與者 角色,或目前訂用帳戶中 擁有者 角色。 如需 Azure 角色的概觀,請參閱 什麼是 Azure 角色型存取控制 (Azure RBAC)?
  • Java 開發套件 (JDK) 第 17 版。 在本指南中,我們建議 OpenJDK 的 Red Hat 組建。 請確定您已在命令執行所在的殼層中正確設定 JAVA_HOME 環境變數。
  • Git。 使用 git --version 來測試 git 是否運作。 本教學課程已使用 2.34.1 版進行測試。
  • Maven. 使用 mvn -version 來測試 mvn 是否運作。 本教學課程已使用 3.8.6 版進行測試。

注意

您將在本文中使用的 Azure Marketplace 供應專案包含 Red Hat Satellite 的授權管理支援。 使用 Red Hat Satellite 已超出本快速入門的範圍。 如需 Red Hat Satellite 的概觀,請參閱 Red Hat Satellite。 若要深入了解如何將 Red Hat JBoss EAP 和 Red Hat Enterprise Linux 訂用帳戶移至 Azure,請參閱 Red Hat Cloud Access 計劃

設定適用於 PostgreSQL 的 Azure 資料庫彈性伺服器

本節中的步驟將引導您部署適用於 PostgreSQL 的 Azure 資料庫彈性伺服器,以在下一節設定 JBoss EAP 叢集時用於設定資料庫連線。

首先,使用下列命令來設定一些環境變數。

export RG_NAME=<db-resource-group-name>
export SERVER_NAME=<database-server-name>
export ADMIN_PASSWORD=<postgresql-admin-password>

將預留位置取代為下列值,本文通篇都將使用這些值:

  • <db-resource-group-name>:資源群組的名稱,用於適用於 PostgreSQL 的 Azure 資料庫彈性伺服器,例如 ejb040323postgresrg
  • <database-server-name>:您的 PostgreSQL 伺服器名稱,這在整個 Azure 中應該是唯一,例如 ejb040323postgresqlserver
  • <postgresql-admin-password>:您的 PostgreSQL 伺服器密碼。 該密碼長度必須至少為八個字元,最多 128 個字元。 這些字元應屬於下列三種類別:英文大寫字母、英文小寫字母、數字 (0-9) 及非英數字元 (!、$、#、% 等等)。

接下來,使用下列步驟以建立適用於 PostgreSQL 的 Azure 資料庫彈性伺服器:

  1. 使用下列命令建立適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器:

    az postgres flexible-server create \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --database-name testdb \
        --public-access 0.0.0.0  \
        --admin-user testuser \
        --admin-password ${ADMIN_PASSWORD} \
        --yes
    
  2. 使用下列命令以取得 PostgreSQL 伺服器的主機:

    export DB_HOST=$(az postgres flexible-server show \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --query "fullyQualifiedDomainName" \
        --output tsv)
    
  3. 使用下列命令以取得 PostgreSQL 伺服器的 Java 資料庫連線 (JDBC) 連線 URL:

    echo jdbc:postgresql://${DB_HOST}:5432/testdb
    

    記下輸出,您將在本文稍後部分使用作為 PostgreSQL 伺服器的資料來源連線字串。

在 Azure VM 上部署 JBoss EAP 叢集

本節中的步驟將引導您在 Azure 虛擬機器上部署 JBoss EAP 叢集。

使用下列步驟以尋找 Azure 虛擬機器上的 JBoss EAP 叢集:

  1. 造訪 https://aka.ms/publicportal 以登入 Azure 入口網站。

  2. 在 [Azure 入口網站] 頂端的搜尋列中,輸入 [JBoss EAP]。 在搜尋結果中,在 [Marketplace] 區段中,選取 [VM 上的 JBoss EAP 叢集]

    螢幕擷取畫面顯示 Azure 入口網站,其中正在顯示搜尋結果中 Azure VM 上的 JBoss EAP Server。

  3. 在下拉功能表中,確定已選取 [PAYG]

或者,您也可以直接前往 Azure VM 上的 JBoss EAP 叢集供應項目。 在此情況下,已為您選取正確的方案。

在任一情況下,此供應項目會在部署時提供 Red Hat 訂閱以在 Azure VM 上部署 JBoss EAP 叢集。 供應項目會使用基本 VM 的隨用隨付付款設定,在 Red Hat Enterprise Linux 上執行叢集。

以下步驟將示範如何填寫下列螢幕擷取畫面所示的 [基本] 窗格。

Azure 入口網站顯示 [VM 基本] 窗格上 [JBoss EAP 叢集] 的螢幕擷取畫面。

  1. 在供應項目頁面上,選取 [建立]
  2. 在 [基本] 窗格中,確保 [訂用帳戶] 欄位中顯示的值與先決條件區段中所列的角色相同。
  3. 您必須在空的資源群組中部署供應項目。 在 [資源群組] 欄位中,選取 [建立新群組],然後填入資源群組的值。 因為資源群組在訂用帳戶內必須是唯一的,所以請挑選唯一的名稱。 擁有唯一名稱的簡單方式是使用您的姓名縮寫、今天日期與一些識別碼的組合。 例如 ejb040323jbosseapcluster
  4. [執行個體詳細資料] 下,選取部署的區域。
  5. 保留 虛擬機器大小 的預設 VM 大小。
  6. 保留 JDK 版本 的預設選項 OpenJDK 17
  7. 保留 Username 的預設值 jbossuser
  8. 保留 驗證類型 的預設選項 密碼
  9. 針對 [密碼],提供密碼。 針對 確認密碼 使用相同的值。
  10. 針對 [要建立的虛擬機器數目],使用 3
  11. [選用基本設定] 下,保留 [接受選擇性設定的選用設定] 的預設選項 [是]
  12. 捲動至 [基本] 窗格底部,便可找到 報告問題、取得說明,以及共用意見反應 的實用連結。
  13. 選取 [下一步: JBoss EAP 設定]

以下步驟將示範如何填寫下列螢幕擷取畫面所示的 [JBoss EAP 設定] 窗格。

Azure 入口網站顯示 [VM JBoss EAP 設定] 窗格上 [JBoss EAP 叢集] 的螢幕擷取畫面。

  1. 針對 [使用受控網域或獨立主機來形成叢集],保留預設選項 [受控網域]
  2. 保留 JBoss EAP 系統管理員使用者名稱 的預設值 jbossadmin
  3. 針對 [JBoss EAP 密碼],提供 JBoss EAP 密碼。 針對 確認密碼 使用相同的值。 另外儲存值以供稍後使用。
  4. 保留 聯機至現有的 Red Hat Satellite 伺服器? 的預設選項 [否]
  5. 選取 [下一步:Azure 應用程式閘道]

以下步驟將示範如何填寫下列螢幕擷取畫面所示的 [Azure 應用程式閘道] 窗格。

Azure 入口網站顯示 [VM Azure 應用程式閘道] 窗格上 [JBoss EAP 叢集] 的螢幕擷取畫面。

  1. 針對 [連線到 Azure 應用程式閘道?],選取 [是]

  2. 選取 [下一步:網路]

    此窗格可讓您自訂 JBoss EAP 叢集部署所在的虛擬網路和子網路。 如需虛擬網路的詳細資訊,請參閱建立、變更或刪除虛擬網路。 接受此窗格上的預設值。

  3. 選取 [下一步: 資料庫]

以下步驟將示範如何填寫下列螢幕擷取畫面所示的 [資料庫] 窗格,然後開始部署。

Azure 入口網站顯示 [VM 資料庫] 窗格上 [JBoss EAP 叢集] 的螢幕擷取畫面。

  1. 針對 [連線到資料庫?],選取 [是]
  2. 針對 [選擇資料庫類型],選取 [PostgreSQL]
  3. 針對 [JNDI 名稱],填入 java:jboss/datasources/JavaEECafeDB
  4. 針對 [資料來源連接字串 (jdbc:postgresql://<host>:<port>/<database>)],提供先前儲存的 PostgreSQL 伺服器 JDBC 連線 URL。
  5. 針對 [資料庫使用者名稱],填入 testuser
  6. 針對 [資料庫密碼],提供先前所指定預留位置 <postgresql-admin-password> 的值。 針對 確認密碼 使用相同的值。
  7. 選取 [檢閱 + 建立]。 確保頂端顯示綠色的 [通過驗證] 訊息。 如果訊息未出現,請修正任何驗證問題,然後再次選取 [檢閱 + 建立]
  8. 選取 建立
  9. 在 [正在進行部署] 頁面上,追蹤部署的進度。

視所選區域中的網路狀況和其他活動而定,部署最多可能需要 35 分鐘才能完成。 之後,您應該會在部署頁面上看到 [您的部署已完成] 文字顯示。

驗證部署的功能

使用下列步驟以從 Red Hat JBoss 企業應用程式平台管理主控台,驗證 Azure 虛擬機器上 JBoss EAP 叢集的部署功能:

  1. 在部署頁面上,選取 [輸出]

  2. 選取 [adminConsole] 旁的複製圖示。

    Azure 入口網站顯示部署輸出的螢幕擷取畫面,其中已醒目提示 adminConsole URL。

  3. 將 URL 貼到已連上網際網路的網頁瀏覽器中,並按下 Enter 鍵。 您應該會看到熟悉的 Red Hat JBoss 企業應用程式平台 管理控制台登入畫面,如下列螢幕擷取畫面所示。

    JBoss EAP 管理主控台登入畫面的螢幕擷取畫面。

  4. 針對 [JBoss EAP 系統管理員使用者名稱],填入 jbossadmin,針對 [JBoss EAP 密碼],提供您先前針對 [密碼] 指定的值,然後選取 [登入]

  5. 您應該會看到熟悉的 Red Hat JBoss 企業應用程式平台 管理控制台歡迎頁面,如下列螢幕擷取畫面所示。

    JBoss EAP 管理主控台歡迎頁面的螢幕擷取畫面。

  6. 選取 [執行階段] 索引標籤。在瀏覽窗格中,選取 [拓撲]。 您應該會看到叢集包含一個網域控制站「主要」和兩個背景工作角色節點,如下列螢幕擷取畫面所示:

    JBoss EAP 管理主控台執行階段拓樸的螢幕擷取畫面。

  7. 選取 [組態] 索引標籤。在瀏覽窗格中,依序選取 [Profiles]>[ha]>[Datasources & Drivers]>[Datasources]。 您應會看到列出資料來源 dataSource-postgresql,如下列螢幕擷取畫面所示:

    [JBoss EAP 管理主控台設定] 索引標籤的螢幕擷取畫面,其中已選取 [Datasources]。

請保持管理主控台開啟。 您可以加以使用以在下一節中將範例應用程式部署至 JBoss EAP 叢集。

將應用程式部署至 JBoss EAP Server

使用下列步驟以將 Java EE Cafe 範例應用程式部署至 Red Hat JBoss EAP 叢集:

  1. 使用下列步驟以建置 Java EE Cafe 範例。 這些步驟假設您已有安裝 Git 和 Maven 的本機環境:

    1. 使用下列命令從 GitHub 複製原始程式碼,並簽出對應至此本文版本的標籤:

      git clone https://github.com/Azure/rhel-jboss-templates.git --branch 20240904 --single-branch
      

      如果年看到文字為 You are in 'detached HEAD' state 的錯誤訊息,您可以放心忽略。

    2. 使用下列命令建置原始程式碼:

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

      此命令會建立檔案 rhel-jboss-templates/eap-coffee-app/target/javaee-cafe.war。 您會在下一個步驟中使用此檔案。

  2. Red Hat JBoss 企業應用程式平台管理主控台中使用下列步驟以將 javaee-cafe.war 上傳至內容存放庫

    1. 從 Red Hat JBoss EAP 管理主控台的 [部署] 索引標籤,選取瀏覽窗格中的 [內容存放庫]

    2. 選取 [新增],然後選取 [儲存內容]

      JBoss EAP 管理主控台 [部署] 索引標籤的螢幕擷取畫面,其中已醒目提示 [上傳內容] 功能表項目。

    3. 使用瀏覽器檔案選擇器以選取 javaee-cafe.war 檔案。

    4. 選取 [下一步]。

    5. 接收下一個畫面的預設值,然後選取 [完成]

    6. 選取 [檢視內容]

  3. 使用下列步驟以將應用程式部署至 main-server-group

    1. 從 [內容存放庫] 中,選取 [javaee-cafe.war]

    2. 開啟下拉式功能表並選取 [部署]

    3. 選取 [main-server-group] 作為部署 javaee-cafe.war 的伺服器群組。

    4. 選取 [部署] 以開始部署。 您應該會看到類似下列螢幕擷取畫面的通知:

      成功部署通知的螢幕擷取畫面。

您現在已完成部署 Java EE 應用程式。 使用下列步驟來存取應用程式和驗證所有設定:

  1. 使用下列命令以取得 Azure 應用程式閘道的公用 IP 位址。 將預留位置 <resource-group-name> 取代為部署 JBoss EAP 叢集所在資源群組的名稱。

    az network public-ip show \
        --resource-group <resource-group-name> \
        --name gwip \
        --query '[ipAddress]' \
        --output tsv
    
  2. 複製輸出,這是部署 Azure 應用程式閘道的公用 IP 位址。

  3. 開啟網際網路連線的網頁瀏覽器。

  4. 使用 URL http://<gateway-public-ip-address>/javaee-cafe 瀏覽至應用程式。 將預留位置 <gateway-public-ip-address> 取代為先前複製 Azure 應用程式閘道的公用 IP 位址。

  5. 嘗試新增和移除 coffee。

清除資源

若要避免 Azure 費用,您應該清除不必要的資源。 當您不再需要部署在 Azure VM 上的 JBoss EAP 叢集時,請取消註冊 JBoss EAP 伺服器並移除 Azure 資源。

執行下列命令,從 Red Hat 訂用帳戶管理取消註冊 JBoss EAP 伺服器和 VM。 將預留位置 <resource-group-name> 取代為部署 JBoss EAP 叢集所在資源群組的名稱。

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

# Unregister host controllers
az vm run-command invoke \
    --resource-group <resource-group-name> \
    --name jbosseapVm1 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"
az vm run-command invoke \
    --resource-group <resource-group-name> \
    --name jbosseapVm1 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

執行下列命令以移除部署 JBoss EAP 叢集和適用於 PostgreSQL 的 Azure 資料庫彈性伺服器所在的兩個資源群組。 將預留位置 <resource-group-name> 取代為部署 JBoss EAP 叢集所在資源群組的名稱。 請確定使用部署 PostgreSQL 彈性伺服器所在資源群組的名稱設定環境變數 $RG_NAME

az group delete --name <resource-group-name> --yes --no-wait
az group delete --name $RG_NAME --yes --no-wait

下一步

深入了解在 Azure 上部署 JBoss EAP 的選項: