共用方式為


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

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

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

  • 建立自定義虛擬網路,並在網路中建立 VM。
  • 布建已安裝所需 Java 開發工具套件 (JDK) 和 WLS 的 VM。
  • 使用 Oracle 組態精靈設定 WebLogic Server 網域和 WebLogic Server 叢集。
  • 在叢集中部署和執行Java應用程式。
  • 透過 Azure 應用程式閘道 向公用因特網公開應用程式。
  • 驗證成功的設定。

如果您偏好使用代表 GNU/Linux VM 執行上述所有步驟的完整自動化解決方案,請直接從 Azure 入口網站,請參閱快速入門:使用 Azure 入口網站 在 Azure 虛擬機上部署 WebLogic Server。

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

必要條件

  • 已安裝類似 Unix 作業系統的本機電腦 ,例如 Ubuntu、macOS 或 Windows 子系統 Linux 版。
  • Azure 訂用帳戶。 如果您沒有 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 和 WebLogic Server 的基礎結構。

假設

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

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

登入 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 建立 WebLogic Server 叢集的子網。 下列範例會建立名為 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 上安裝 WebLogic Server 的步驟。 您可以根據您的需求選擇作業系統、JDK 版本和 WebLogic 版本,但您應該確認它們可在 Oracle Fusion 中間件支援的系統設定中使用。 此外,請先仔細考慮系統和平臺特定需求,再繼續進行。 如需詳細資訊,請參閱 系統需求和規格。 選取所選作業系統的索引標籤。

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

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

注意

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

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

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

使用 az vm create 建立 VM。 您會在此 VM 上執行系統管理伺服器。

下列範例會使用 SSH 金鑰組來建立 Oracle Linux VM 以進行驗證。 如有需要,您可以改用密碼驗證。

如果您沒有 SSH 金鑰組,您可以使用下列命令來產生它:

ssh-keygen -t rsa -b 2048 -f ~/.ssh/wls-vm-key

此命令會建立下列檔案:

  • ~/.ssh/wls-vm-key:私鑰。
  • ~/.ssh/wls-vm-key.pub:公鑰。
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 \
    --ssh-key-value ~/.ssh/wls-vm-key.pub \
    --public-ip-address "" \
    --nsg ""

注意

不建議使用使用者名稱和密碼認證來授與 VM 的存取權。 如果您的特定使用需求建議認證型存取是最佳方法,您可以使用使用者名稱和密碼來建立 VM:

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 <your-password> \
    --public-ip-address "" \
    --nsg ""

建立 Windows VM 並設定 X-server

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

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

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

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

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

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

  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 在這些網络上通訊」。選取 [允許存取]。

  1. 將 SSH 金鑰 ~/.ssh/wls-vm-key 複製到 Windows VM,並將其儲存至 C:\Users\azureuser.ssh

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

使用 az vm create 建立兩個 VM。 您可以在這些 VM 上執行受控伺服器。

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

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 \
    --ssh-key-value ~/.ssh/wls-vm-key.pub \
    --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 \
    --ssh-key-value ~/.ssh/wls-vm-key.pub \
    --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 組態精靈來建立 WebLogic Server 網域。

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

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

    在您的 Windows 電腦上 myWindowsVM執行下列命令。 192.168.0.4取代為您的adminVM私人 IP 位址:

    set SSH_KEY="C:\Users\azureuser\.ssh\wls-vm-key"
    set ADMINVM_IP="192.168.0.4"
    ssh -i %SSH_KEY% 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。 網域組態會儲存至此資料夾。

Oracle 設定精靈 - 建立網域的螢幕快照。

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

Oracle 設定精靈 - 範本的螢幕快照。

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

Oracle 設定精靈 - 系統管理帳戶的螢幕快照。

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

Oracle 設定精靈 - 網域模式和 JDK 的螢幕快照。

選取 [下一步]。 針對進階設定,請選取 [系統管理伺服器]、 [節點管理員] 和 [拓撲]。

Oracle 設定精靈 - 進階設定的螢幕快照。

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

Oracle 設定精靈 - 系統管理伺服器的螢幕快照。

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

Oracle 設定精靈 - 節點管理員的螢幕快照。

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

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

Oracle 設定精靈 - 受管理伺服器的螢幕快照。

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

Oracle 設定精靈 - 叢集的螢幕快照。

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

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

Oracle 設定精靈 - 將伺服器指派給叢集的螢幕快照。

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

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

Oracle 設定精靈 - 機器的螢幕快照。

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

Oracle 設定精靈 - 將伺服器指派給機器的螢幕快照。

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

Oracle 設定精靈 - 組態摘要的螢幕快照。

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

Oracle 設定精靈 - 設定進度的螢幕快照。

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

Oracle 設定精靈 - 結束的螢幕快照。

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

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

使用 pack 和 unpack 命令建立複本

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

  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 和使用 mspVM2 scp。 如果系統提示您輸入金鑰指紋, 請輸入 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 SSH_KEY="C:\Users\azureuser\.ssh\wls-vm-key"
    set MSPVM1_IP="192.168.0.6"
    ssh -i %SSH_KEY% 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

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

    set SSH_KEY="C:\Users\azureuser\.ssh\wls-vm-key"
    set MSPVM2_IP="192.168.0.7"
    ssh -i %SSH_KEY% 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 SSH_KEY="C:\Users\azureuser\.ssh\wls-vm-key"
set ADMINVM_IP="192.168.0.4"
ssh -i %SSH_KEY% 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 重新啟動後自動啟動

建立 WebLogic 系統管理伺服器和節點管理員的 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 SSH_KEY="C:\Users\azureuser\.ssh\wls-vm-key"
set MSPVM1_IP="192.168.0.6"
ssh -i %SSH_KEY% 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 SSH_KEY="C:\Users\azureuser\.ssh\wls-vm-key"
set MSPVM2_IP="192.168.0.7"
ssh -i %SSH_KEY% 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中的瀏覽器開啟管理主控台入口網站,並使用下列步驟來啟動受管理的伺服器:

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

Oracle 設定精靈 - 啟動伺服器的螢幕快照。

清除 Windows 電腦

您已完成 WebLogic Server 叢集設定。 如有需要,請使用下列命令移除 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 應用程式閘道 公開 WebLogic Server

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

建立 Azure 應用程式閘道

若要將 WebLogic Server 公開至因特網,則需要公用 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。 本範例會將路徑新增至系統管理伺服器。 首先,使用下列命令來建立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/"

確認您可以登入 [系統管理伺服器] 主控台。 如果無法,請先進行疑難解答並解決問題,再繼續進行。

注意

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

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

部署應用程式範例

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

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

測試 WebLogic Server 叢集組態

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

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

清除資源

使用下列命令移除資源群組:

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

下一步

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

如需 Oracle WebLogic 供應專案的詳細資訊,請參閱 Azure 上的 Oracle WebLogic Server。 這些供應項目全都是自備授權。 他們假設您已經擁有 Oracle 的適當授權,且已正確授權在 Azure 中執行供應專案。