教學課程:在 Azure 虛擬機器 上手動安裝 Oracle WebLogic Server

本教學課程示範在 Windows 或 GNU/Linux 上安裝 Oracle WebLogic Server (WLS) 並在 Azure 虛擬機器 (VM) 上設定 WebLogic 叢集的步驟。

在本教學課程中,您會了解如何:

  • 建立自定義虛擬網路,並在網路中建立 VM。
  • 布建已安裝所需 JDK 和 WLS 的 VM。
  • 使用 Oracle 設定精靈設定 WLS 網域和 WLS 叢集。
  • 在叢集中部署和執行 Java EE 應用程式。
  • 透過 Azure 應用程式閘道 將應用程式公開至公用因特網。
  • 驗證成功的設定。

如果您想要代表 GNU/Linux VM 執行上述所有這些步驟的完整自動化解決方案,請直接從 Azure 入口網站,請參閱快速入門:使用 Azure 入口網站 在 Azure 虛擬機上部署 WebLogic Server。 您可以在 Azure Marketplace 中尋找這些供應專案,並查詢 「WebLogic 基底映射」

必要條件

  • 如果您沒有 Azure 訂用帳戶,請在開始之前建立 免費帳戶
  • 安裝 Azure CLI 2.46.0 版 或更高版本以執行 Azure CLI 命令。
    • 出現提示時,請在第一次使用時安裝 Azure CLI 擴充功能。 如需延伸模組詳細資訊,請參閱使用 Azure CLI 延伸模組
    • 執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade
  • 您必須擁有 Oracle 帳戶。 若要建立 Oracle 帳戶並接受 WebLogic Server 映射的許可協定,請遵循 Oracle Container Registry 中的步驟。 記下您的 Oracle 帳戶密碼和電子郵件。

準備環境

在本節中,您會設定安裝 JDK 和 WLS 的基礎結構。

假設

在本教學課程中,您會在總共三部 VM 上,使用系統管理伺服器和兩部受控伺服器來設定 WLS 叢集。 若要設定叢集,您必須在相同的可用性設定組中建立下列三個 Azure VM:

  • 系統管理 VM (VM 名稱 adminVM) 具有執行的系統管理伺服器。
  • 受控 VM (VM 名稱和 mspVM1mspVM2) 有兩部受控伺服器正在執行。

登入 Azure

如果您尚未這麼做,請使用 az login 命令登入您的 Azure 訂用帳戶,並遵循螢幕上的指示。

az login

注意

如果多個 Azure 租使用者與您的 Azure 認證相關聯,您必須指定您要登入的租使用者。 您可以使用 選項來執行此動作 --tenant 。 例如: az login --tenant contoso.onmicrosoft.com

建立資源群組

使用 az group create 建立資源群組。 資源組名在訂用帳戶內必須是全域唯一的。 基於這個理由,請考慮將一些唯一標識符前面加上您建立的任何名稱,該名稱必須是唯一的。 一個有用的技巧是使用您的縮寫,後面接著今天的日期 mmdd 格式。 此範例會在位置中eastus建立名為 abc1110rg 的資源群組:

export RESOURCE_GROUP_NAME=abc1110rg

az group create \
    --name ${RESOURCE_GROUP_NAME} \
    --location eastus

建立虛擬網路

組成 WebLogic Server 叢集的資源必須彼此通訊,以及使用虛擬網路的公用因特網。 如需規劃虛擬網路的完整指南,請參閱 Azure 指南規劃虛擬網路的 雲端採用架構。 如需詳細資訊,請參閱 Azure 虛擬網絡 常見問題

本節中的範例會建立具有位址空間 192.168.0.0/16 的虛擬網路,並建立用於 VM 的子網。

首先,使用 az network vnet create 建立虛擬網路。 下列範例會建立名為 myVNet的網路:

az network vnet create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myVNet \
    --address-prefixes 192.168.0.0/24

使用 az network vnet subnet create 建立 WLS 叢集的子網。 下列範例會建立名為 mySubnet的子網:

az network vnet subnet create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name mySubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.0.0/25

使用 az network vnet subnet create 建立 應用程式閘道 的子網。 下列範例會建立名為 wlsVMGateway的子網:

az network vnet subnet create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name wlsVMGateway \
    --vnet-name myVNet \
    --address-prefixes 192.168.0.128/25

建立可用性設定組

使用 az vm availability-set create 建立可用性設定組,如下列範例所示。 建立可用性設定組是選擇性的,但建議使用。 如需詳細資訊,請參閱 Windows VM 的範例 Azure 基礎結構逐步解說。

az vm availability-set create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myAvailabilitySet \
    --platform-fault-domain-count 2 \
    --platform-update-domain-count 2

下列各節說明在 GNU/Linux 或 Windows Server 上安裝 WLS 的步驟。 您可以根據您的需求選擇作業系統、JDK 版本和 WLS 版本,但您應該確認它們可在 Oracle Fusion 中間件支援的系統設定中使用。 此外,請先仔細考慮系統和平臺特定需求,再繼續進行。 如需詳細資訊,請參閱 系統需求和規格。 選取所選作業系統的索引標籤。

本文將使用 Oracle 和 Microsoft 所維護的 Azure VM 映射,其中包含最新支援的軟體版本。 如需 Oracle 和 Microsoft 維護的 WLS 基底映射完整清單,請參閱 Azure Marketplace。 如果您想要使用 Windows OS,指示會從基本 Windows VM 開始,並逐步引導您完成安裝所有必要相依性的步驟。

您在本文中用來建立 VM 的 Marketplace 映像是 Oracle:weblogic-141100-jdk11-ol91:owls-141100-jdk11-ol91:latest

注意

您可以使用 az vm image listaz vm image list --publisher oracle --output table --all | grep "weblogic" 查詢 Oracle 所提供的所有可用 Oracle WebLogic 映像。 如需詳細資訊,請參閱 Oracle VM 映像及其在 Microsoft Azure 上的部署。

建立適用於管理伺服器的 Oracle Linux 機器

在本節中,您會為系統管理員伺服器和受管理伺服器建立已安裝 JDK 11 和 WebLogic 14.1.1.0 的 Oracle Linux 機器。

使用 az vm create 建立 VM。 您可以在此 VM 上執行 管理員 伺服器。

下列範例會使用使用者名稱和密碼組來建立 Oracle Linux VM 來進行驗證。 如有需要,您可以改用 SSL/TLS 驗證。

export VM_URN=Oracle:weblogic-141100-jdk11-ol91:owls-141100-jdk11-ol91:latest

az vm create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name adminVM \
    --availability-set myAvailabilitySet \
    --image ${VM_URN} \
    --size Standard_DS1_v2  \
    --admin-username azureuser \
    --admin-password Secret123456 \
    --public-ip-address "" \
    --nsg ""

建立 Windows VM 並設定 X-server

本教學課程使用 WebLogic Server 的圖形化介面來完成安裝和設定。 您可以使用 Windows VM 作為「跳躍方塊」,並執行 X Windows 系統伺服器 來檢視 WLS 叢集三部 VM 上的圖形安裝程式。

請遵循下列步驟來布建 Windows 10 計算機並安裝 X-server。 如果您已經在與 Oracle Linux 機器相同的網路內有 Windows 計算機,就不需要從 Azure 布建新的電腦。 您可以跳到安裝 X-server 的 區段。

  1. 使用下列步驟,從 Azure 入口網站 建立 Windows 10 VM:

    1. 從 Azure 入口網站 開啟資源群組abc1110rg
    2. 選取 [建立] 以建立資源。
    3. 選取 [計算],搜尋 Windows 10,然後選取 [Microsoft Windows 10]。
    4. 選取您想要的方案,然後選取 [ 建立]。
    5. 使用下列值來設定 VM:
      • 虛擬機名稱myWindowsVM
      • 影像Windows 10 專業版
      • 用戶名稱azureuser
      • 密碼Secret123456
    6. 選取 [授權] 底下的複選框。
    7. 選取 [檢閱 + 建立],然後選取 [建立]。

    建立虛擬機器和支援資源需要幾分鐘的時間。

    部署完成之後,請安裝 X 伺服器,並使用它透過圖形化介面在 Oracle Linux 機器上設定 WebLogic Server。

  2. 使用下列步驟來安裝和啟動 X 伺服器:

    1. 使用遠端桌面連線到 myWindowsVM。 如需詳細指南,請參閱 如何使用遠端桌面連線並登入執行 Windows 的 Azure 虛擬機。 您必須在 上的 myWindowsVM本節中執行其餘步驟。
    2. 下載並安裝 VcXsrv Windows X Server
    3. 停用防火牆。 若要允許來自Linux VM的通訊,請使用下列步驟來關閉Windows Defender 防火牆:
      1. 搜尋並開啟 Windows Defender 防火牆
      2. 尋找 [開啟或關閉 Windows Defender 防火牆],然後選取 [在專用網設定關閉]。 您可以單獨保留 公用網路設定
      3. 選取 [確定]。
      4. 關閉 [ Windows Defender 防火牆設定] 面板。
    4. 從桌面選取 [X-launch ]。
    5. 針對顯示設定,將顯示編號設定為 -1 以使用多個視窗,然後選取 [ 下一步]。
    6. 針對 [ 選取如何啟動用戶端],選取 [啟動無用戶端],然後選取 [ 下一步]。
    7. 如需額外的設定,請選取 [剪貼簿] 和 [ 主要選取專案]、 [原生 opengl] 和 [ 停用訪問控制]。
    8. 選取下一步以完成。

    Windows 安全性 警示對話方塊可能會出現下列訊息:「允許 VcXsrv windows X-server 在這些網路上通訊」。選取 [允許存取]。

建立受控伺服器的 Oracle Linux 機器

使用 az vm create 建立兩個 VM。 您會在此 VM 上執行受控伺服器。

下列範例會使用使用者名稱和密碼組來建立 Oracle Linux VM 來進行驗證。 如有需要,您可以改用 SSL/TLS 驗證。

export VM_URN=Oracle:weblogic-141100-jdk11-ol91:owls-141100-jdk11-ol91:latest

az vm create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name mspVM1 \
    --availability-set myAvailabilitySet \
    --image ${VM_URN} \
    --size Standard_DS1_v2  \
    --admin-username azureuser \
    --admin-password Secret123456 \
    --public-ip-address "" \
    --nsg ""

az vm create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name mspVM2 \
    --availability-set myAvailabilitySet \
    --image ${VM_URN} \
    --size Standard_DS1_v2  \
    --admin-username azureuser \
    --admin-password Secret123456 \
    --public-ip-address "" \
    --nsg ""

使用下列命令來取得並顯示您在後續章節中使用的私人 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}"

現在,您已準備好連線到 Oracle Linux 機器,以設定具有圖形化介面的 WebLogic 叢集。

設定 WebLogic Server 網域和叢集

WebLogic Server 網域是 WebLogic Server 實例的邏輯相關群組,以及執行並與其連線的資源,可做為單一管理單位進行管理。 如需詳細資訊,請參閱 WebLogic Server網域

WebLogic Server 中高可用性的基礎是叢集。 WebLogic Server 叢集是一組同時執行的 WebLogic Server 實例,並一起運作以提供更高的延展性和可靠性。 如需詳細資訊,請參閱 Oracle WebLogic 叢集

叢集有兩種,如下列清單所述。 如需詳細資訊,請參閱 關於動態叢集

  • 動態叢集:包含一或多個以單一共享伺服器範本為基礎的已產生(動態)伺服器實例的叢集。 當您建立動態叢集時,系統會預先設定動態伺服器並自動為您產生,讓您在需要另一部伺服器容量時,輕鬆地相應增加動態叢集中的伺服器實例數目。 您可以啟動動態伺服器,而不需要先手動設定並將它們新增至叢集。
  • 已設定的叢集:您手動設定並新增每個伺服器實例的叢集。 您必須設定並新增伺服器實例,以增加伺服器容量。

為了示範如何形成 WebLogic 叢集,本教學課程會引導您完成建立已設定叢集的程式。

使用設定精靈建立網域

您繼續使用 X 伺服器和 Oracle 設定精靈來建立 WLS 網域。

下一節說明如何在 上 adminVM建立新的 WLS 網域。 請確定您仍在 Windows 電腦上,如果不是,請從遠端連線到 myWindowsVM

  1. 從命令提示字元 連線 至 adminVM

    在您的 Windows 電腦上 myWindowsVM執行下列命令:

    set ADMINVM_IP="192.168.0.4"
    ssh azureuser@%ADMINVM_IP%
    
  2. 使用下列命令來初始化網域組態的資料夾:

    sudo su
    
    export DOMAIN_PATH="/u01/domains"
    mkdir -p ${DOMAIN_PATH}
    chown oracle:oracle -R ${DOMAIN_PATH}
    
  3. 使用下列命令安裝 X-server 的相依性:

    # install dependencies for X-server
    sudo yum install -y libXtst libSM libXrender
    # install dependencies to run a Java GUI client
    sudo yum install -y fontconfig urw-base35-fonts
    
  4. 使用下列命令來成為 oracle 使用者並設定 DISPLAY 變數:

    sudo su - oracle
    
    export DISPLAY=<my-windows-vm-private-ip>:0.0
    #export DISPLAY=192.168.0.5:0.0
    
  5. 執行下列命令以啟動 Oracle 設定精靈:

    bash /u01/app/wls/install/oracle/middleware/oracle_home/oracle_common/common/bin/config.sh
    

Oracle 設定精靈會啟動並指示您設定網域。 下列頁面會要求網域類型和位置。 選取 [建立新的網域 ],並將網域位置設定為 /u01/domains/wlsd。 網域組態會儲存至此資料夾。

Screenshot of Oracle Configuration Wizard - Create Domain.

選取 [下一步],然後選取 [ 使用產品範本建立網域]。 保留預設選取的範本,如下列螢幕快照所示:

Screenshot of Oracle Configuration Wizard - Templates.

選取 [下一步],然後輸入 管理員 istration 帳戶。 將 [ 名稱] 設定為 [Weblogic ],並將 [密碼 ] 設定為 Secret123456

Screenshot of Oracle Configuration Wizard - Administration Account.

選取 [下一步]。 針對網域模式,選取 [ 生產]。 若為 JDK,請保留預設選項。

Screenshot of Oracle Configuration Wizard - Domain Mode and JDK.

選取 [下一步]。 針對進階組態,請選取 [管理員 istration 伺服器節點管理員拓撲]。

Screenshot of Oracle Configuration Wizard - Advanced Configurations.

選取 [下一步],並使用系統管理員填入 管理員 伺服器名稱。以的私人IP填入接聽IPadminVM位址。 這個範例中的值為 192.168.0.4

Screenshot of Oracle Configuration Wizard - Administration Server.

選取 [下一步]。 針對 [節點管理員類型],選取 [每個網域自定義位置],並使用 /u01/domains/wlsd/nodemanager 填入位置。 針對 節點管理員認證,使用者名稱為 Weblogic ,密碼為 Secret123456

Screenshot of Oracle Configuration Wizard - Node Manager.

選取 [下一步]。 針對受管理的伺服器,新增下列專案。 使用您稍早探索到的 IP 位址:

伺服器名稱 接聽位址 接聽埠
msp1 的私人IP位址 mspVM1 8001
msp2 的私人IP位址 mspVM2 8001

Screenshot of Oracle Configuration Wizard - Managed Servers.

選取 [下一步],然後建立名稱為 cluster1的叢集。

Screenshot of Oracle Configuration Wizard - Cluster.

選取 [下一步]。 請勿變更伺服器範本動態伺服器的值。 動態叢集可以接受預設值。

針對伺服器指派給叢集,請將 和 msp2 指派msp1cluster1

Screenshot of Oracle Configuration Wizard - Assign Servers to Clusters.

選取 [下一步]。 新增機器 adminVMmspVM1mspVM2。 使用您稍早探索到的IP位址。

名稱 節點管理員接聽位址 節點管理員接聽埠
mspVM1 的私人IP位址 mspVM1 5556
mspVM2 的私人IP位址 mspVM2 5556
adminVM 的私人IP位址 adminVM 5556

Screenshot of Oracle Configuration Wizard - Machines.

選取 [下一步]。 針對 [將伺服器指派給計算機],將伺服器admin指派給 adminVMmsp1mspVM1msp2mspVM2

Screenshot of Oracle Configuration Wizard - Assign Servers to Machines.

選取 [下一步]。 您會看到 [設定摘要],其看起來應該像下列螢幕快照:

Screenshot of Oracle Configuration Wizard - Configuration Summary.

選取 建立。 [設定 進度 ] 頁面會顯示進度。 所有列出的項目都應該順利設定。

Screenshot of Oracle Configuration Wizard - Configuration Progress.

最後,[組態結束] 頁面會顯示 管理員 istration 伺服器的 URL。

Screenshot of Oracle Configuration Wizard - End.

管理員 伺服器未執行,因此 URL 不會解析。 選取 [下一步],然後選取 [完成]。 您現在已完成使用叢集cluster1設定網域,wlsd包括兩部受控伺服器。

接下來,將網域組態套用至 mspVM1mspVM2

您可以使用 pack 和 unpack 命令來擴充網域。

使用 pack 和 unpack 命令建立複本

本教學課程使用 WLS 套件和解壓縮命令來擴充網域。 如需詳細資訊,請參閱 套件和解除封裝命令的概觀

  1. 使用下列步驟將網域設定封裝在 上 adminVM ,假設您仍在登入 adminVM 並登入 oracle 使用者:

    cd /u01/app/wls/install/oracle/middleware/oracle_home/oracle_common/common/bin
    bash pack.sh -domain=/u01/domains/wlsd -managed=true -template=/tmp/cluster.jar -template_name="wlsd"
    

    如果命令順利完成,您會看到類似下列範例的輸出:

    [oracle@adminVM bin]$ bash pack.sh -domain=/u01/domains/wlsd -managed=true -template=/tmp/cluster.jar -template_name="wlsd"
    << read domain from "/u01/domains/wlsd"
    >>  succeed: read domain from "/u01/domains/wlsd"
    << set config option Managed to "true"
    >>  succeed: set config option Managed to "true"
    << write template to "/tmp/cluster.jar"
    ..............................
    >>  succeed: write template to "/tmp/cluster.jar"
    << close template
    >>  succeed: close template
    

    使用下列命令,將 /tmp/cluster.jar 複製到 mspVM1 和使用 mspVM2scp。 如果系統提示您輸入金鑰指紋, 請輸入 yes。 出現提示時,請輸入密碼 Secret123456

    scp /tmp/cluster.jar azureuser@<mspvm1-private-ip>:/tmp/cluster.jar
    scp /tmp/cluster.jar azureuser@<mspvm2-private-ip>:/tmp/cluster.jar
    #scp /tmp/cluster.jar azureuser@192.168.0.6:/tmp/cluster.jar
    #scp /tmp/cluster.jar azureuser@192.168.0.7:/tmp/cluster.jar
    
  2. 使用下列指示將網域群組態套用至 mspVM1

    開啟新的指令提示字元,並使用下列命令連線至 mspVM1192.168.0.6取代為您的mspVM1私人 IP 位址:

    set MSPVM1_IP="192.168.0.6"
    ssh azureuser@%MSPVM1_IP%
    

    系統會要求您輸入連線的密碼。 在此範例中,密碼為 Secret123456

    您現在已使用使用者 azureuser登入mspVM1。 接下來,使用下列命令來成為根使用者,並更新 /tmp/cluster.jar檔案擁有權,以由 oracle擁有:

    sudo su
    
    chown oracle:oracle /tmp/cluster.jar
    
    export DOMAIN_PATH="/u01/domains"
    mkdir -p ${DOMAIN_PATH}
    chown oracle:oracle -R ${DOMAIN_PATH}
    

    以使用者身 oracle 分使用下列命令來套用網域組態:

    sudo su - oracle
    
    cd /u01/app/wls/install/oracle/middleware/oracle_home/oracle_common/common/bin
    bash unpack.sh -domain=/u01/domains/wlsd -template=/tmp/cluster.jar
    

    如果命令順利完成,您會看到類似下列範例的輸出:

    [oracle@mspVM1 bin]$ bash unpack.sh -domain=/u01/domains/wlsd -template=/tmp/cluster.jar
    << read template from "/tmp/cluster.jar"
    >>  succeed: read template from "/tmp/cluster.jar"
    << set config option DomainName to "wlsd"
    >>  succeed: set config option DomainName to "wlsd"
    >>  validateConfig "KeyStorePasswords"
    >>  succeed: validateConfig "KeyStorePasswords"
    << write Domain to "/u01/domains/wlsd"
    ..................................................
    >>  succeed: write Domain to "/u01/domains/wlsd"
    << close template
    >>  succeed: close template
    
  3. 使用下列指示將網域群組態套用至 mspVM2

    mspVM2在新的命令提示字元中 連線。 192.168.0.7取代為您的mspVM2私人 IP 位址:

    set MSPVM2_IP="192.168.0.7"
    ssh azureuser@%MSPVM2_IP%
    

    系統會要求您提供連線的密碼。 在此範例中,密碼為 Secret123456

    您現在已使用使用者 azureuser登入mspVM2。 使用下列命令來變更為根使用者,並更新 /tmp/cluster.jar檔案擁有權,並初始化網域組態的資料夾:

    sudo su
    
    chown oracle:oracle /tmp/cluster.jar
    
    export DOMAIN_PATH="/u01/domains"
    mkdir -p ${DOMAIN_PATH}
    chown oracle:oracle -R ${DOMAIN_PATH}
    
    sudo su - oracle
    
    cd /u01/app/wls/install/oracle/middleware/oracle_home/oracle_common/common/bin
    bash unpack.sh -domain=/u01/domains/wlsd -template=/tmp/cluster.jar
    

您現在已在和mspVM2mspVM1複寫網域設定,並準備好啟動伺服器。

啟動伺服器

本節中的步驟會引導您執行下列兩項工作:

  1. 讓它讓系統管理員和受管理的伺服器在伺服器重新啟動後自動啟動。
  2. 啟動伺服器以供立即使用。

這兩個工作不容易分隔,因此這兩個工作的步驟會混合在一起。

啟動系統管理員

返回連接到 adminVM的命令提示字元。 如果您遺失它,請執行下列命令以連線到它:

set ADMINVM_IP="192.168.0.4"
ssh azureuser@%ADMINVM_IP%

如果您未使用 oracle 使用者,請使用 oracle登入 :

sudo su - oracle

下列命令會將 admin 帳戶保存至 /u01/domains/wlsd/servers/admin/security/boot.properties ,以便在不要求認證的情況下自動啟動 admin 伺服器:

將使用者名稱與密碼取代為您 。

mkdir -p /u01/domains/wlsd/servers/admin/security

cat <<EOF >/u01/domains/wlsd/servers/admin/security/boot.properties
username=weblogic
password=Secret123456
EOF

使用下列命令來檢查檔案。 請確定它有正確的擁有權、許可權和內容。

ls -la /u01/domains/wlsd/servers/admin/security/boot.properties
cat /u01/domains/wlsd/servers/admin/security/boot.properties

輸出看起來應該與下列範例幾乎完全相同:

[oracle@adminVM bin]$ ls -la /u01/domains/wlsd/servers/admin/security/boot.properties
-rw-rw-r--. 1 oracle oracle 40 Nov 28 17:00 /u01/domains/wlsd/servers/admin/security/boot.properties
[oracle@adminVM bin]$ cat /u01/domains/wlsd/servers/admin/security/boot.properties
username=weblogic
password=Secret123456

讓系統管理員伺服器和節點管理員在 VM 重新啟動後自動啟動

為 WLS 系統管理伺服器和節點管理員建立 Linux 服務,以在重新啟動後自動啟動程式。 如需詳細資訊,請參閱 在 Oracle Linux 上使用 systemd。

oracle結束使用者,並使用root使用者登入。

exit

sudo su

建立節點管理員的 Linux 服務:

cat <<EOF >/etc/systemd/system/wls_nodemanager.service
[Unit]
Description=WebLogic nodemanager service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
# Note that the following three parameters should be changed to the correct paths
# on your own system
WorkingDirectory=/u01/domains/wlsd
ExecStart="/u01/domains/wlsd/bin/startNodeManager.sh"
ExecStop="/u01/domains/wlsd/bin/stopNodeManager.sh"
User=oracle
Group=oracle
KillMode=process
LimitNOFILE=65535
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
EOF

建立系統管理伺服器的 Linux 服務:

cat <<EOF >/etc/systemd/system/wls_admin.service
[Unit]
Description=WebLogic Adminserver service
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
WorkingDirectory=/u01/domains/wlsd
ExecStart="/u01/domains/wlsd/startWebLogic.sh"
ExecStop="/u01/domains/wlsd/bin/stopWebLogic.sh"
User=oracle
Group=oracle
KillMode=process
LimitNOFILE=65535
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
EOF

您現在已準備好使用下列命令,在 上 adminVM 啟動節點管理員和系統管理伺服器:

sudo systemctl enable wls_nodemanager
sudo systemctl enable wls_admin
sudo systemctl daemon-reload
sudo systemctl start wls_nodemanager
sudo systemctl start wls_admin

使用 sudo systemctl status wls_admin -l檢查系統管理伺服器狀態。 當您找到類似的記錄時,管理員 伺服器應該已就緒:

[root@adminVM wlsd]# sudo systemctl status wls_admin -l
● wls_admin.service - WebLogic Adminserver service
Loaded: loaded (/etc/systemd/system/wls_admin.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2022-09-26 07:47:34 UTC; 54s ago
Main PID: 26738 (startWebLogic.s)
    Tasks: 61 (limit: 20654)
Memory: 649.2M

... ...

Sep 26 07:48:15 adminVM startWebLogic.sh[26802]: <Sep 26, 2022, 7:48:15,411 AM Coordinated Universal Time> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.>

Q 以結束記錄監視模式。

在開啟埠 70015556之前,您無法存取管理伺服器。 執行下列命令以開啟埠:

sudo firewall-cmd --zone=public --add-port=7001/tcp
sudo firewall-cmd --zone=public --add-port=5556/tcp
sudo firewall-cmd --runtime-to-permanent
sudo systemctl restart firewalld

此時,您可以使用 URL http://<adminvm-private-ip>:7001/console存取 瀏覽器myWindowsVM上的系統管理員伺服器。 確認您可以檢視系統管理伺服器,但尚未登入。 如果系統管理伺服器未執行,請先進行疑難解答並解決問題,再繼續進行。 系統管理員伺服器無法在 Azure 外部存取。

啟動 msp1

返回連接到 mspVM1的命令提示字元。 如果您遺失它,請執行下列命令以連線到它:

set MSPVM1_IP="192.168.0.6"
ssh azureuser@%MSPVM1_IP%

如果您未使用 oracle 使用者,請使用 oracle登入 :

sudo su - oracle

admin 帳戶保存到 /u01/domains/wlsd/servers/msp1/security/boot.properties ,以啟用自動啟動 msp1 而不要求認證。 將使用者名稱與密碼取代為您 。

mkdir -p /u01/domains/wlsd/servers/msp1/security

cat <<EOF >/u01/domains/wlsd/servers/msp1/security/boot.properties
username=weblogic
password=Secret123456
EOF

現在,您會為節點管理員建立 Linux 服務,以在機器重新啟動時自動啟動程式。 如需詳細資訊,請參閱 在 Oracle Linux 上使用 systemd。

oracle結束使用者,並使用root使用者登入。

exit

#Skip this command if you are root
sudo su

建立節點管理員的 Linux 服務:

cat <<EOF >/etc/systemd/system/wls_nodemanager.service
[Unit]
Description=WebLogic nodemanager service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
# Note that the following three parameters should be changed to the correct paths
# on your own system
WorkingDirectory=/u01/domains/wlsd
ExecStart="/u01/domains/wlsd/bin/startNodeManager.sh"
ExecStop="/u01/domains/wlsd/bin/stopNodeManager.sh"
User=oracle
Group=oracle
KillMode=process
LimitNOFILE=65535
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
EOF

接下來,啟動節點管理員。

sudo systemctl enable wls_nodemanager
sudo systemctl daemon-reload
sudo systemctl start wls_nodemanager

如果節點管理員成功執行,您會看到類似下列範例的記錄:

[root@mspVM1 azureuser]# systemctl status wls_nodemanager -l
● wls_nodemanager.service - WebLogic nodemanager service
Loaded: loaded (/etc/systemd/system/wls_nodemanager.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2022-09-27 01:23:42 UTC; 19s ago
Main PID: 107544 (startNodeManage)
    Tasks: 15 (limit: 20654)
Memory: 146.7M

... ...

Sep 27 01:23:45 mspVM1 startNodeManager.sh[107592]: <Sep 27, 2022 1:23:45 AM Coordinated Universal Time> <INFO> <Server Implementation Class: weblogic.nodemanager.server.NMServer$ClassicServer.>
Sep 27 01:23:46 mspVM1 startNodeManager.sh[107592]: <Sep 27, 2022 1:23:46 AM Coordinated Universal Time> <INFO> <Secure socket listener started on port 5556, host /192.168.0.6>

Q 以結束記錄監視模式。

您必須開啟埠 8001 ,才能存取部署至叢集的應用程式,以及在 5556 網域內進行通訊。 執行下列命令以開啟埠:

sudo firewall-cmd --zone=public --add-port=8001/tcp
sudo firewall-cmd --zone=public --add-port=5556/tcp
sudo firewall-cmd --runtime-to-permanent
sudo systemctl restart firewalld

啟動 msp2

返回連接到 mspVM2的命令提示字元。 如果您遺失它,請執行下列命令以連線到它:

set MSPVM2_IP="192.168.0.7"
ssh azureuser@%MSPVM2_IP%

如果您未與使用者合作 oracle ,請使用 oracle登入 :

sudo su - oracle

admin 帳戶保存到 /u01/domains/wlsd/servers/msp2/security/boot.properties ,以啟用自動啟動 msp2 而不要求認證。 將使用者名稱與密碼取代為您 。


mkdir -p /u01/domains/wlsd/servers/msp2/security

cat <<EOF >/u01/domains/wlsd/servers/msp2/security/boot.properties
username=weblogic
password=Secret123456
EOF

接下來,建立節點管理員的Linux服務。

oracle結束使用者,並使用root使用者登入。

exit

#SKip this command if you are in root
sudo su

建立節點管理員的 Linux 服務:

cat <<EOF >/etc/systemd/system/wls_nodemanager.service
[Unit]
Description=WebLogic nodemanager service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
# Note that the following three parameters should be changed to the correct paths
# on your own system
WorkingDirectory=/u01/domains/wlsd
ExecStart="/u01/domains/wlsd/bin/startNodeManager.sh"
ExecStop="/u01/domains/wlsd/bin/stopNodeManager.sh"
User=oracle
Group=oracle
KillMode=process
LimitNOFILE=65535
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
EOF

啟動節點管理員。

sudo systemctl enable wls_nodemanager
sudo systemctl daemon-reload
sudo systemctl start wls_nodemanager

如果節點管理員成功執行,您會看到類似下列範例的記錄:

[root@mspVM2 azureuser]# systemctl status wls_nodemanager -l
● wls_nodemanager.service - WebLogic nodemanager service
Loaded: loaded (/etc/systemd/system/wls_nodemanager.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2022-09-27 01:23:42 UTC; 19s ago
Main PID: 107544 (startNodeManage)
    Tasks: 15 (limit: 20654)
Memory: 146.7M

... ...

Sep 27 01:23:45 mspVM2 startNodeManager.sh[107592]: <Sep 27, 2022 1:23:45 AM Coordinated Universal Time> <INFO> <Server Implementation Class: weblogic.nodemanager.server.NMServer$ClassicServer.>
Sep 27 01:23:46 mspVM2 startNodeManager.sh[107592]: <Sep 27, 2022 1:23:46 AM Coordinated Universal Time> <INFO> <Secure socket listener started on port 5556, host /192.168.0.6>

Q 以結束記錄監視模式。

開啟連接埠 80015556

sudo firewall-cmd --zone=public --add-port=8001/tcp
sudo firewall-cmd --zone=public --add-port=5556/tcp
sudo firewall-cmd --runtime-to-permanent
sudo systemctl restart firewalld

啟動受管理的伺服器

現在,從 Windows 電腦myWindowsVM中的瀏覽器開啟 管理員 istration 控制台入口網站,並使用下列步驟來啟動受管理的伺服器:

  1. 使用您的系統管理員帳戶和密碼登入 管理員 istration 主控台入口網站。 URL 為 http://<adminvm-private-ip>:7001/console/。 在這裡範例中,系統管理員帳戶和密碼為 weblogic/Secret123456。 您會發現受管理伺服器的狀態為 [關機]。
  2. 在 [定義域結構] 底下,選取 [環境]、[伺服器] 和 [控制],選取 msp1msp2,然後選取 [啟動]。
  3. 系統可能會提示您確認啟動伺服器。 如果是,請選取 [ ]。 您會看到「已將要求傳送至節點管理員以啟動選取的伺服器」訊息。
  4. 您可以選取資料表頂端的 [重新整理] 圖示,以啟動或停止該數據表中數據的動態重新整理。 下一個螢幕快照中會顯示此圖示。
  5. 您很快就會發現伺服器已啟動。

Screenshot of Oracle Configuration Wizard - Start Servers.

清除 Windows 電腦

您現在已完成 WLS 叢集設定。 如有需要,請使用下列命令移除 Windows 電腦。 或者,您可以關閉 Windows 計算機 myWindowsVM ,並繼續使用它作為進行中叢集維護工作的跳板。

export WINDOWSVM_NIC_ID=$(az vm show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myWindowsVM \
    --query networkProfile.networkInterfaces[0].id \
    --output tsv)
export WINDOWSVM_NSG_ID=$(az network nic show \
    --ids ${WINDOWSVM_NIC_ID} \
    --query networkSecurityGroup.id \
    --output tsv)
export WINDOWSVM_DISK_ID=$(az vm show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myWindowsVM \
    --query storageProfile.osDisk.managedDisk.id \
    --output tsv)
export WINDOWSVM_PUBLIC_IP=$(az network public-ip list \
    -g ${RESOURCE_GROUP_NAME} --query [0].id \
    --output tsv)

echo "deleting myWindowsVM"
az vm delete --resource-group ${RESOURCE_GROUP_NAME} --name myWindowsVM --yes
echo "deleting nic ${WINDOWSVM_NIC_ID}"
az network nic delete --ids ${WINDOWSVM_NIC_ID}
echo "deleting public-ip ${WINDOWSVM_PUBLIC_IP}"
az network public-ip delete --ids ${WINDOWSVM_PUBLIC_IP}
echo "deleting disk ${WINDOWSVM_DISK_ID}"
az disk delete --yes --ids ${WINDOWSVM_DISK_ID}
echo "deleting nsg ${WINDOWSVM_NSG_ID}"
az network nsg delete --ids ${WINDOWSVM_NSG_ID}

使用 Azure 應用程式閘道 公開 WLS

既然您已在 Windows 或 GNU/Linux 虛擬機上建立 WebLogic Server (WLS) 叢集,本節將逐步引導您完成使用 Azure 應用程式閘道 向因特網公開 WLS 的程式。

建立 Azure 應用程式閘道

若要向因特網公開 WLS,則需要公用 IP 位址。 建立公用IP位址,然後將Azure 應用程式閘道與其產生關聯。 使用 az network public-ip create 建立它,如下列範例所示:

az network public-ip create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myAGPublicIPAddress \
    --allocation-method Static \
    --sku Standard

您會將後端伺服器新增至 應用程式閘道 後端集區。 使用下列命令查詢後端 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)

接下來,建立 Azure 應用程式閘道。 下列範例會在預設後端集區中建立具有受控伺服器的應用程式閘道:

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

受控伺服器會使用埠 8001公開其工作負載。 使用下列命令來更新 appGatewayBackendHttpSettings ,方法是指定後埠 8001 併為其建立探查:

az network application-gateway probe create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --gateway-name myAppGateway \
    --name clusterProbe \
    --protocol http \
    --host 127.0.0.1 \
    --path /weblogic/ready

az network application-gateway http-settings update \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --gateway-name myAppGateway \
    --name appGatewayBackendHttpSettings \
    --port 8001 \
    --probe clusterProbe

下一個指令會佈建基本規則 rule1。 本範例會將路徑新增至 管理員 istration Server。 首先,使用下列命令來建立URL路徑對應:

az network application-gateway address-pool create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --gateway-name myAppGateway \
    --name adminServerAddressPool \
    --servers ${ADMINVM_IP}

az network application-gateway probe create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --gateway-name myAppGateway \
    --name adminProbe \
    --protocol http \
    --host 127.0.0.1 \
    --path /weblogic/ready

az network application-gateway http-settings create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --gateway-name myAppGateway \
    --name adminBackendSettings \
    --port 7001 \
    --protocol Http \
    --probe adminProbe

az network application-gateway url-path-map create \
    --gateway-name myAppGateway \
    --name urlpathmap \
    --paths /console/* \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --address-pool adminServerAddressPool \
    --default-address-pool appGatewayBackendPool \
    --default-http-settings appGatewayBackendHttpSettings \
    --http-settings adminBackendSettings \
    --rule-name consolePathRule

接下來,使用 az network application-gateway rule update 將規則類型更新為 PathBasedRouting

az network application-gateway rule update \
    --gateway-name myAppGateway \
    --name rule1 \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --http-listener appGatewayHttpListener \
    --rule-type PathBasedRouting \
    --url-path-map urlpathmap \
    --priority 1001 \
    --address-pool appGatewayBackendPool \
    --http-settings appGatewayBackendHttpSettings

您現在可以使用 URL http://<gateway-public-ip-address>/console/存取 管理員 伺服器。 執行下列命令以取得 URL:

export APPGATEWAY_IP=$(az network public-ip show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myAGPublicIPAddress \
    --query [ipAddress] \
    --output tsv)
echo "admin console URL is http://${APPGATEWAY_IP}/console/"

確認您可以登入 管理員 istration Server 控制台。 如果無法,請先進行疑難解答並解決問題,再繼續進行。

注意

此範例會設定使用 HTTP 對 WebLogic 伺服器的簡單存取。 如果您想要安全存取,請依照使用 應用程式閘道 的端對端 TLS 中的指示來設定 SSL/TLS 終止

此範例會透過 應用程式閘道 公開 管理員 istration Server 控制台。 請勿在生產環境中執行此動作。

部署範例應用程式

本節說明如何將簡單的應用程式部署至 WLS 叢集。 首先,從 Oracle 下載 testwebapp.war ,並將檔案儲存到您的本機文件系統。 然後,使用下列步驟來部署應用程式:

  1. 開啟網頁瀏覽器。
  2. 流覽至具有 URL http://<gateway-public-ip-address>/console/的 管理員 istration 控制台入口網站,然後使用您的系統管理員帳戶和密碼登入。 在這裡範例中,它們是 weblogic/Secret123456
  3. [變更中心] 下,如果這類按鈕存在,請選取 [鎖定] 和 [ 編輯]。 如果此按鈕不存在,請確認 [變更中心] 底下存在某些文字,例如「未來變更將會在您修改、新增或刪除此網域中的專案時自動啟動」。
  4. 在 [定義域結構] 底下,選取 [部署]。 如果您看到類似 Unexpected error encountered while obtaining monitoring information for applications.的錯誤訊息,您可以放心地忽略它。 選取 [設定],然後選取 [安裝]。 巢狀在文字內是具有上傳檔案文字的超連結。 選取該連結。 選取 [ 選擇檔案 ],然後選取 上一個步驟中建置的 testwebapp.war 。 選取 [下一步],然後選取 [下一]。
  5. 確定已選取 [ 將此部署安裝為應用程式 ]。 選取 [下一步]。
  6. 在 [貨物追蹤器的可用目標] 下,選取 [部署目標cluster1],選取 [下一步],然後選取 [完成]。
  7. [變更中心] 底下,如果這類按鈕存在,請選取 [ 啟用變更]。 您必須完成此步驟。 無法完成此步驟會導致您所做的變更不會生效。 如果此按鈕不存在,請確認 [變更中心] 底下有某些文字,例如 Future changes will automatically be activated as you modify, add or delete items in this domain
  8. 在 [定義域結構] 下,選取 [部署],然後選取 [控制]。 選取 [貨物追蹤器 ],然後選取 [ 啟動]、 [維護所有要求]。
  9. 選取 [是]
  10. 您會看到一則訊息,指出 Start requests have been sent to the selected deployments. 應用程式的狀態必須是 [作用中]。

測試 WLS 叢集設定

您現在已完成設定 WLS 叢集,並將 Java EE 應用程式部署至該叢集。 使用下列步驟來存取應用程式,以驗證所有設定:

  1. 開啟網頁瀏覽器。
  2. 流覽至具有URL http://<gateway-public-ip-address>/testwebapp/的應用程式。

清除資源

使用下列命令移除 abc1110rg

az group delete --name ${RESOURCE_GROUP_NAME} --yes --no-wait

下一步

繼續探索在 Azure 上執行 WLS 的選項。