教程:在 Azure 虚拟机上手动安装 Oracle WebLogic Server

本教程介绍了在 Windows 或 GNU/Linux 上安装 Oracle WebLogic Server (WLS)并在 Azure 虚拟机(VM)上配置 WebLogic 群集的步骤。

本教程介绍如何执行下列操作:

  • 创建自定义虚拟网络并在网络中创建 VM。
  • 使用所需的 JDK 和 WLS 预配 VM。
  • 使用 Oracle 配置向导配置 WLS 域和 WLS 群集。
  • 在群集中部署并运行 Java 企业版应用程序。
  • 通过Azure 应用程序网关向公共 Internet 公开应用程序。
  • 验证成功配置。

如果你更喜欢代表 GNU/Linux VM 执行所有这些步骤的完全自动化解决方案,请直接从Azure 门户参阅快速入门:使用 Azure 门户 在 Azure 虚拟机上部署 WebLogic Server。 可以使用查询“WebLogic 基础映像”在Azure 市场中找到这些产品/服务

先决条件

  • 如果还没有 Azure 订阅,可以在开始前创建一个免费帐户
  • 安装 Azure CLI 2.46.0 或更高版本 以运行 Azure CLI 命令。
    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展
    • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade
  • 必须具有 Oracle 帐户。 若要创建 Oracle 帐户并接受 WebLogic Server 映像的许可协议,请按照 Oracle 容器注册表中的步骤操作。 记下 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 群集的资源必须使用虚拟网络相互通信,公共 Internet。 有关规划虚拟网络的完整指南,请参阅 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 市场。 如果想要使用 Windows OS,说明将从基本 Windows VM 开始,并指导你完成安装所有必要的依赖项的步骤。

本文中用于创建 VM 的市场映像是 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 服务器的部分。

  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. 选择“查看 + 创建”,然后选择“创建”。

    创建 VM 和支持资源需要几分钟时间。

    部署完成后,安装 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 启动
    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.

选择“下一步”,然后输入管理员管理帐户 将名称设置为 Weblogic并将密码设置为 Secret123456

Screenshot of Oracle Configuration Wizard - Administration Account.

选择下一步。 对于域模式,请选择“ 生产”。 对于 JDK,请保留默认选项。

Screenshot of Oracle Configuration Wizard - Domain Mode and JDK.

选择下一步。 对于高级配置,请选择管理员服务器节点管理器拓扑

Screenshot of Oracle Configuration Wizard - Advanced Configurations.

选择“下一步”,并使用管理员填写管理员服务器名称使用专用 IP 填充侦听 IP adminVM地址。 此示例中的值为 192.168.0.4

Screenshot of Oracle Configuration Wizard - Administration Server.

选择下一步。 对于节点管理器类型,请选择“每个域自定义位置”,并使用 /u01/domains/wlsd/nodemanager 填写位置。 对于 Node Manager 凭据,用户名为 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.

选择下一步。 请勿更改服务器模板动态服务器的值。 动态群集可以接受默认值。

对于 将服务器分配到群集,请同时 msp1 分配和 msp2 分配到 cluster1

Screenshot of Oracle Configuration Wizard - Assign Servers to Clusters.

选择下一步。 添加计算机 adminVMmspVM1以及 mspVM2。 使用之前发现的 IP 地址。

名称 节点管理器侦听地址 节点管理器侦听端口
mspVM1 的专用 IP 地址 mspVM1 5556
mspVM2 的专用 IP 地址 mspVM2 5556
adminVM 的专用 IP 地址 adminVM 5556

Screenshot of Oracle Configuration Wizard - Machines.

选择下一步。 对于将服务器分配到计算机,请将服务器adminadminVM分配到、msp1分配给mspVM1msp2分配给mspVM2计算机。

Screenshot of Oracle Configuration Wizard - Assign Servers to Machines.

选择下一步。 此时会显示 “配置摘要”,如以下屏幕截图所示:

Screenshot of Oracle Configuration Wizard - Configuration Summary.

选择创建。 “ 配置进度 ”页显示进度。 应成功配置所有列出的项。

Screenshot of Oracle Configuration Wizard - Configuration Progress.

最后,有一个“配置结束”页,用于显示管理员服务器 URL。

Screenshot of Oracle Configuration Wizard - End.

管理员服务器未运行,因此 URL 无法解析。 选择“下一步”,然后选择“完成”。 现已使用群集cluster1(包括两个托管服务器)配置wlsd域。

接下来,将域配置应用于 mspVM1mspVM2

使用 pack 和 unpack 命令扩展域。

使用 pack 和 unpack 命令创建副本 (replica)

本教程使用 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

    打开新的命令提示符,并使用以下命令连接到 mspVM1。 替换为 192.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
    

现在,你已副本 (replica)域配置mspVM1mspVM2,并且已准备好启动服务器。

启动服务器

本部分中的步骤将指导你执行以下两项任务:

  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 退出日志监视模式。

打开端口7001之前无法访问管理员服务器。5556 运行以下命令以打开端口:

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 Console 门户,并使用以下步骤启动托管服务器:

  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 应用程序网关 向 Internet 公开 WLS 的过程。

创建 Azure 应用程序网关

若要向 Internet 公开 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/"

验证是否可以登录到管理员服务器控制台。 如果无法,请在继续操作之前对问题进行故障排除和解决问题。

注意

此示例使用 HTTP 设置对 WebLogic 服务器的简单访问。 如果需要安全访问,请按照“端到端 TLS”中的说明配置 SSL/TLS 终止,并应用程序网关。

此示例通过应用程序网关公开管理员服务器控制台。 请勿在生产环境中执行此操作。

部署示例应用程序

本部分介绍如何将简单的应用程序部署到 WLS 群集。 首先,从 Oracle 下载 testwebapp.war 并将该文件保存到本地文件系统。 然后,使用以下步骤部署应用程序:

  1. 打开 Web 浏览器。
  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 企业版 应用程序部署到该群集。 使用以下步骤访问应用程序以验证所有设置:

  1. 打开 Web 浏览器。
  2. 使用 URL http://<gateway-public-ip-address>/testwebapp/导航到应用程序。

清理资源

使用以下命令删除 abc1110rg

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

后续步骤

继续探索用于运行 Azure 上的 WLS 的选项。