快速入门:使用 Azure 门户 在 Azure 虚拟机上部署 JBoss EAP 群集

本文介绍如何使用 Azure 门户 在 Azure 虚拟机(VM)上快速部署 JBoss EAP 群集。

本文使用 JBoss EAP 群集的Azure 市场产品/服务来加速 Azure VM 之旅。 产品/服务会自动预配许多资源,包括 Azure Red Hat Enterprise Linux (RHEL) VM、每个 VM 上的 JBoss EAP 实例、每个 VM 上的 OpenJDK Red Hat 内部版本、JBoss EAP 管理控制台,以及Azure 应用网关实例( 可选)。 若要查看该产品/服务,请访问 Azure 门户。 如果你更喜欢在未利用产品/服务启用的 Azure VM 上安装 Red Hat JBoss EAP 群集的手动分步指南,请参阅教程:手动在 Azure 虚拟机上安装 Red Hat JBoss EAP。

先决条件

  • 如果还没有 Azure 订阅,可以在开始前创建一个免费帐户
  • 确保用于登录的 Azure 标识在当前订阅中具有参与者角色或所有者角色。 有关 Azure 角色的概述,请参阅 什么是 Azure 基于角色的访问控制 (Azure RBAC)?
  • 确保拥有必要的 Red Hat 许可证。 需要有一个 Red Hat 帐户,该帐户具有针对 JBoss EAP 的 Red Hat 订阅管理 (RHSM) 权利。 此权利允许通过 Azure 门户安装经过 Red Hat 测试和认证的 JBoss EAP 版本。

    注意

    如果你没有 EAP 权利,可以通过适用于个人的 Red Hat 开发人员订阅注册免费的开发人员订阅。 将帐户详细信息保存到下一部分中用作 RHSM 用户名RHSM 密码 的帐户详细信息。

  • 在注册后,你可以通过以下步骤找到必要的凭据(池 ID)。 在下文中,你还需要将池 ID 用作“具有 EAP 权利 的 RHSM 池 ID”。
    1. 登录到你的 Red Hat 帐户

    2. 首次登录时,系统会要求你完成个人资料。 请确保选择“个人”作为帐户类型,如以下屏幕截图所示。

      Red Hat 配置文件“更新帐户”页的屏幕截图。

    3. 在你登录到的选项卡中,打开适用于个人的 Red Hat 开发人员订阅。 此链接可访问你的帐户中相应 SKU 的所有订阅。

    4. 从“购买的所有订阅”表中选择第一个订阅。

    5. 从池 ID 复制并保存以下主池的值。

  • Java JDK 版本 11。 在本指南中,建议使用 OpenJDK 的 Red Hat 内部版本。 确保在运行命令的 shell 中正确设置 JAVA_HOME 环境变量。
  • Git。 使用 git --version 测试 git 是否有效。 本教程已使用版本 2.34.1 进行测试。
  • Maven。 使用 mvn -version 测试 mvn 是否有效。 本教程已使用版本 3.8.6 进行测试。

注意

本文中将使用的 Azure 市场产品/服务支持使用 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 计划

设置 Azure Database for PostgreSQL 灵活服务器

本部分中的步骤将指导你部署 Azure Database for PostgreSQL 灵活服务器,该服务器用于配置数据库连接,同时在下一部分中设置 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 灵活服务器的资源组的名称,例如 ejb040323postgresrg
  • <database-server-name>:PostgreSQL 服务器的名称,在 Azure 中应是唯一的, ejb040323postgresqlserver例如。
  • <postgresql-admin-password>:PostgreSQL 服务器的密码。 该密码必须至少为 8 个字符,最多只能包含 128 个字符。 这些字符应该属于以下类别中的三个类别:英文大写字母、英文小写字母、数字 (0-9)和非字母数字字符(!, $, #, % 等)。

接下来,使用以下步骤创建 Azure Database for PostgreSQL 灵活服务器:

  1. 使用以下命令创建 Azure Database for PostgreSQL 灵活服务器:

    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 服务器的 JDBC 连接 URL:

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

    记下输出,本文后面部分将用作 PostgreSQL 服务器的数据源连接字符串。

在 Azure VM 上部署 JBoss EAP 群集

本部分中的步骤指示在 Azure VM 上部署 JBoss EAP 群集。

使用以下步骤在 Azure VM 产品/服务上查找 JBoss EAP 群集:

  1. 通过访问https://aka.ms/publicportal登录Azure 门户。

  2. 在 Azure 门户顶部的搜索栏中输入 JBoss EAP。 在搜索结果的“ 市场 ”部分中,选择 VM 上的 JBoss EAP 群集。

    显示 Azure VM 上的 JBoss EAP Server 的Azure 门户屏幕截图。

  3. 在下拉菜单中,确保选中“即用即付”。

或者,也可以直接转到 VM 上的 JBoss EAP 群集产品/服务。 在这种情况下,已为你选择正确的计划。

无论哪种情况,此产品/服务都通过在部署时提供 Red Hat 订阅,在 Azure VM 上部署 JBoss EAP 群集。 套餐使用基本 VM 的即用即付配置在 Red Hat Enterprise Linux 上运行群集。

以下步骤演示如何填写 以下屏幕截图中显示的“基本信息 ”窗格。

显示 VM 基本信息窗格上的 JBoss EAP 群集Azure 门户的屏幕截图。

  1. 在产品/服务页面,选择“创建”。
  2. 在“基本信息”窗格中,确保“订阅”字段中显示的值与先决条件部分中列出的角色的值相同。
  3. 必须在空资源组中部署产品/服务。 在“资源组”字段中,选择“新建”,然后填写资源组的值。 由于资源组在订阅中必须是唯一的,因此请选择一个唯一名称。 拥有唯一名称的一种简单方法是使用首字母缩写、今天的日期和一些标识符的组合。 例如, ejb040323jbosseapcluster
  4. 在“实例详细信息”下,选择部署的区域。
  5. 对于“虚拟机大小”,保留默认的 VM 大小。
  6. 对于“JDK 版本”,保留默认选项“OpenJDK 17”。
  7. 对于用户名,保留默认值“jbossuser”。
  8. 对于“身份验证类型”,保留默认选项“密码”。
  9. 提供密码密码。 对“确认密码”使用相同的值。
  10. 要创建的虚拟机数使用 3
  11. 在“可选基本配置”下,对于“接受可选配置的默认值”,保留默认选项“是”。
  12. 滚动到“基本信息”窗格的底部,留意用于报告问题、获取帮助和共享反馈的有用链接。
  13. 选择“下一步: JBoss EAP 设置”。

以下步骤演示如何填写以下屏幕截图中显示的 JBoss EAP 设置窗格。

显示 VM JBoss EAP 设置窗格上的 JBoss EAP 群集Azure 门户的屏幕截图。

  1. 保留默认选项“使用托管域”或“独立主机”以形成群集
  2. 对于“JBoss EAP 管理员用户名”,保留默认值“jbossadmin”。
  3. 为 JBoss EAP 密码提供 JBoss EAP 密码。 对“确认密码”使用相同的值。 请保留该值供以后使用。
  4. 对于“连接到现有 Red Hat Satellite Server?”,保留默认选项“否”。
  5. 为 RHSM 用户名提供 RHSM 用户名。 该值与先决条件部分准备的值相同。
  6. 为 RHSM 密码提供 RHSM 密码。 对“确认密码”使用相同的值。 该值与先决条件部分准备的值相同。
  7. 为具有 EAP 权利RHSM 池 ID 提供 RHSM 池 ID。 该值与先决条件部分准备的值相同。
  8. 选择“下一步:Azure 应用程序网关”。

以下步骤演示如何填写以下屏幕截图中显示的Azure 应用程序网关窗格。

显示 VM 上的 JBoss EAP 群集Azure 应用程序网关窗格的Azure 门户屏幕截图。

  1. 为连接选择“是”以Azure 应用程序网关?

  2. 选择下一页:网络

    使用此窗格可以自定义 JBoss EAP 群集部署到的虚拟网络和子网。 在管理 CIDR 空间的情况下,此自定义项非常有用。 有关虚拟网络的信息,请参阅 创建、更改或删除虚拟网络。 接受此窗格中的默认值。

  3. 选择“下一步: 数据库”。

以下步骤演示如何填写 以下屏幕截图中显示的“数据库 ”窗格,并启动部署。

显示 VM 数据库窗格上的 JBoss EAP 群集Azure 门户的屏幕截图。

  1. 选择“”以连接数据库?
  2. 选择 PostgreSQL选择数据库类型
  3. 为 JNDI 名称填写 java:jboss/datasources/Java企业版CafeDB
  4. 为数据源连接字符串(jdbc:postgresql://<host>:<port>/<database>)提供之前保存的 PostgreSQL 服务器的 JDBC 连接 URL。
  5. 填写数据库用户名的 testuser
  6. 为数据库密码提供之前指定的占位符<postgresql-admin-password>的值。 对“确认密码”使用相同的值。
  7. 选择“查看 + 创建”。 确保绿色的“验证通过”消息显示在顶部。 如果未显示该消息,请解决任何验证问题,然后再次选择“查看 + 创建”。
  8. 选择创建
  9. 在“部署正在进行”页面跟踪部署进度。

根据所选区域中的网络状况和其他活动,部署可能需要长达 35 分钟才能完成。 之后,应会看到 部署完成后 会显示在部署页上的文本。

验证部署功能

使用以下步骤从 Red Hat JBoss Enterprise Application Platform 管理控制台验证 Azure VM 上 JBoss EAP 群集的部署功能:

  1. 在部署页上,选择“ 输出”。

  2. 选择 adminConsole 旁边的复制图标。

    显示部署输出的Azure 门户屏幕截图,其中突出显示了 adminConsole URL。

  3. 将 URL 粘贴到连接 Internet 的 Web 浏览器中,然后按 Enter。 你应会看到熟悉的“Red Hat JBoss Enterprise Application Platform”管理控制台登录屏幕,如以下屏幕截图所示。

    JBoss EAP 管理控制台登录屏幕的屏幕截图。

  4. 填写 jbossadmin for JBoss EAP 管理员用户名为之前为密码指定的 JBoss EAP 密码提供值,然后选择“登录”。

  5. 你应会看到熟悉的“Red Hat JBoss Enterprise Application Platform”管理控制台欢迎页面,如以下屏幕截图所示。

    JBoss EAP 管理控制台欢迎页的屏幕截图。

  6. 选择“运行时”选项卡。在导航窗格中,选择“拓扑”。 应会看到群集包含一个域控制器 节点和两个工作器节点,如以下屏幕截图所示:

    JBoss EAP 管理控制台运行时拓扑的屏幕截图。

  7. 选择“配置”选项卡。在导航窗格中,选择“配置文件>ha>数据源和驱动程序>数据源”。 应会看到数据源 dataSource-postgresql 已列出,如以下屏幕截图所示:

    “JBoss EAP 管理控制台配置”选项卡的屏幕截图,其中选择了“数据源”。

使管理控制台保持打开状态。 在下一部分中,使用它将示例应用部署到 JBoss EAP 群集。

将应用部署到 JBoss EAP 群集

使用以下步骤将 Java 企业版 Cafe 示例应用程序部署到 Red Hat JBoss EAP 群集:

  1. 使用以下步骤生成 Java 企业版 Cafe 示例。 以下步骤假定你安装了 Git 和 Maven 的本地环境:

    1. 使用以下命令从 GitHub 克隆源代码,并检查与此版本的文章对应的标记:

      git clone https://github.com/Azure/rhel-jboss-templates.git --branch 20230418 --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-café.war。 在下一步中,你将上传此文件。

  2. 使用 Red Hat JBoss Enterprise Application Platform 管理控制台中的以下步骤将 javaee-café.war 上传到内容存储库

    1. 在 Red Hat JBoss EAP 管理控制台的“部署”选项卡中,选择导航面板中的内容存储库

    2. 选择“ 添加 ”,然后选择“ 上传内容”。

      JBoss EAP 管理控制台“部署”选项卡的屏幕截图,其中突出显示了“上传内容”菜单项。

    3. 使用浏览器文件选择器选择 javaee-café.war 文件。

    4. 选择下一步

    5. 接受下一个屏幕上的默认值,然后选择“ 完成”。

    6. 选择“ 查看内容”。

  3. 使用以下步骤将应用程序部署到 :main-server-group

    1. 内容存储库中,选择 javaee-café.war

    2. 打开下拉菜单,然后选择“ 部署”。

    3. 选择 main-server-group 作为部署 javaee-café.war 的服务器组。

    4. 选择“部署”以启动部署。 应会看到类似于以下屏幕截图的通知:

      成功部署通知的屏幕截图。

现在,你已完成部署 Java 企业版 应用程序。 使用以下步骤访问应用程序并验证所有设置:

  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. 打开连接 Internet 的 Web 浏览器。

  4. 使用 URL http://<gateway-public-ip-address>/javaee-cafe导航到应用程序。 将占位符<gateway-public-ip-address>替换为之前复制Azure 应用程序网关的公共 IP 地址。

  5. 尝试添加和删除咖啡。

清理资源

若要避免 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 群集和 Azure Database for PostgreSQL 灵活服务器的两个资源组。 将占位符 <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 的更多信息: