快速入门:使用 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”。
登录到你的 Red Hat 帐户。
首次登录时,系统会要求你完成个人资料。 请确保选择“个人”作为帐户类型,如以下屏幕截图所示。
在你登录到的选项卡中,打开适用于个人的 Red Hat 开发人员订阅。 此链接可访问你的帐户中相应 SKU 的所有订阅。
从“购买的所有订阅”表中选择第一个订阅。
从池 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 灵活服务器:
使用以下命令创建 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
使用以下命令获取 PostgreSQL 服务器的主机:
export DB_HOST=$(az postgres flexible-server show \ --resource-group ${RG_NAME} \ --name ${SERVER_NAME} \ --query "fullyQualifiedDomainName" \ --output tsv)
使用以下命令获取 PostgreSQL 服务器的 JDBC 连接 URL:
echo jdbc:postgresql://${DB_HOST}:5432/testdb
记下输出,本文后面部分将用作 PostgreSQL 服务器的数据源连接字符串。
在 Azure VM 上部署 JBoss EAP 群集
本部分中的步骤指示在 Azure VM 上部署 JBoss EAP 群集。
使用以下步骤在 Azure VM 产品/服务上查找 JBoss EAP 群集:
通过访问https://aka.ms/publicportal登录Azure 门户。
在 Azure 门户顶部的搜索栏中输入 JBoss EAP。 在搜索结果的“ 市场 ”部分中,选择 VM 上的 JBoss EAP 群集。
在下拉菜单中,确保选中“即用即付”。
或者,也可以直接转到 VM 上的 JBoss EAP 群集产品/服务。 在这种情况下,已为你选择正确的计划。
无论哪种情况,此产品/服务都通过在部署时提供 Red Hat 订阅,在 Azure VM 上部署 JBoss EAP 群集。 套餐使用基本 VM 的即用即付配置在 Red Hat Enterprise Linux 上运行群集。
以下步骤演示如何填写 以下屏幕截图中显示的“基本信息 ”窗格。
- 在产品/服务页面,选择“创建”。
- 在“基本信息”窗格中,确保“订阅”字段中显示的值与先决条件部分中列出的角色的值相同。
- 必须在空资源组中部署产品/服务。 在“资源组”字段中,选择“新建”,然后填写资源组的值。 由于资源组在订阅中必须是唯一的,因此请选择一个唯一名称。 拥有唯一名称的一种简单方法是使用首字母缩写、今天的日期和一些标识符的组合。 例如, ejb040323jbosseapcluster。
- 在“实例详细信息”下,选择部署的区域。
- 对于“虚拟机大小”,保留默认的 VM 大小。
- 对于“JDK 版本”,保留默认选项“OpenJDK 17”。
- 对于用户名,保留默认值“jbossuser”。
- 对于“身份验证类型”,保留默认选项“密码”。
- 提供密码密码。 对“确认密码”使用相同的值。
- 对要创建的虚拟机数使用 3。
- 在“可选基本配置”下,对于“接受可选配置的默认值”,保留默认选项“是”。
- 滚动到“基本信息”窗格的底部,留意用于报告问题、获取帮助和共享反馈的有用链接。
- 选择“下一步: JBoss EAP 设置”。
以下步骤演示如何填写以下屏幕截图中显示的 JBoss EAP 设置窗格。
- 保留默认选项“使用托管域”或“独立主机”以形成群集。
- 对于“JBoss EAP 管理员用户名”,保留默认值“jbossadmin”。
- 为 JBoss EAP 密码提供 JBoss EAP 密码。 对“确认密码”使用相同的值。 请保留该值供以后使用。
- 对于“连接到现有 Red Hat Satellite Server?”,保留默认选项“否”。
- 为 RHSM 用户名提供 RHSM 用户名。 该值与先决条件部分准备的值相同。
- 为 RHSM 密码提供 RHSM 密码。 对“确认密码”使用相同的值。 该值与先决条件部分准备的值相同。
- 为具有 EAP 权利的 RHSM 池 ID 提供 RHSM 池 ID。 该值与先决条件部分准备的值相同。
- 选择“下一步:Azure 应用程序网关”。
以下步骤演示如何填写以下屏幕截图中显示的Azure 应用程序网关窗格。
为连接选择“是”以Azure 应用程序网关?。
选择下一页:网络。
使用此窗格可以自定义 JBoss EAP 群集部署到的虚拟网络和子网。 在管理 CIDR 空间的情况下,此自定义项非常有用。 有关虚拟网络的信息,请参阅 创建、更改或删除虚拟网络。 接受此窗格中的默认值。
选择“下一步: 数据库”。
以下步骤演示如何填写 以下屏幕截图中显示的“数据库 ”窗格,并启动部署。
- 选择“是”以连接数据库?
- 选择 PostgreSQL 以 选择数据库类型。
- 为 JNDI 名称填写 java:jboss/datasources/Java企业版CafeDB。
- 为数据源连接字符串(jdbc:postgresql://<host>:<port>/<database>)提供之前保存的 PostgreSQL 服务器的 JDBC 连接 URL。
- 填写数据库用户名的 testuser。
- 为数据库密码提供之前指定的占位符
<postgresql-admin-password>
的值。 对“确认密码”使用相同的值。 - 选择“查看 + 创建”。 确保绿色的“验证通过”消息显示在顶部。 如果未显示该消息,请解决任何验证问题,然后再次选择“查看 + 创建”。
- 选择创建。
- 在“部署正在进行”页面跟踪部署进度。
根据所选区域中的网络状况和其他活动,部署可能需要长达 35 分钟才能完成。 之后,应会看到 部署完成后 会显示在部署页上的文本。
验证部署功能
使用以下步骤从 Red Hat JBoss Enterprise Application Platform 管理控制台验证 Azure VM 上 JBoss EAP 群集的部署功能:
在部署页上,选择“ 输出”。
选择 adminConsole 旁边的复制图标。
将 URL 粘贴到连接 Internet 的 Web 浏览器中,然后按 Enter。 你应会看到熟悉的“Red Hat JBoss Enterprise Application Platform”管理控制台登录屏幕,如以下屏幕截图所示。
填写 jbossadmin for JBoss EAP 管理员用户名为之前为密码指定的 JBoss EAP 密码提供值,然后选择“登录”。
你应会看到熟悉的“Red Hat JBoss Enterprise Application Platform”管理控制台欢迎页面,如以下屏幕截图所示。
选择“运行时”选项卡。在导航窗格中,选择“拓扑”。 应会看到群集包含一个域控制器 主 节点和两个工作器节点,如以下屏幕截图所示:
选择“配置”选项卡。在导航窗格中,选择“配置文件>ha>数据源和驱动程序>数据源”。 应会看到数据源 dataSource-postgresql 已列出,如以下屏幕截图所示:
使管理控制台保持打开状态。 在下一部分中,使用它将示例应用部署到 JBoss EAP 群集。
将应用部署到 JBoss EAP 群集
使用以下步骤将 Java 企业版 Cafe 示例应用程序部署到 Red Hat JBoss EAP 群集:
使用以下步骤生成 Java 企业版 Cafe 示例。 以下步骤假定你安装了 Git 和 Maven 的本地环境:
使用以下命令从 GitHub 克隆源代码,并检查与此版本的文章对应的标记:
git clone https://github.com/Azure/rhel-jboss-templates.git --branch 20230418 --single-branch
如果看到包含文本
You are in 'detached HEAD' state
的错误消息,则可以安全地忽略它。使用以下命令生成源代码:
mvn clean install --file rhel-jboss-templates/eap-coffee-app/pom.xml
此命令创建文件 rhel-jboss-templates/eap-coffee-app/target/javaee-café.war。 在下一步中,你将上传此文件。
使用 Red Hat JBoss Enterprise Application Platform 管理控制台中的以下步骤将 javaee-café.war 上传到内容存储库。
使用以下步骤将应用程序部署到 :
main-server-group
现在,你已完成部署 Java 企业版 应用程序。 使用以下步骤访问应用程序并验证所有设置:
使用以下命令获取Azure 应用程序网关的公共 IP 地址。 将占位符
<resource-group-name>
替换为部署 JBoss EAP 群集的资源组的名称。az network public-ip show \ --resource-group <resource-group-name> \ --name gwip \ --query '[ipAddress]' \ --output tsv
复制输出,这是部署Azure 应用程序网关的公共 IP 地址。
打开连接 Internet 的 Web 浏览器。
使用 URL
http://<gateway-public-ip-address>/javaee-cafe
导航到应用程序。 将占位符<gateway-public-ip-address>
替换为之前复制Azure 应用程序网关的公共 IP 地址。尝试添加和删除咖啡。
清理资源
若要避免 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 的更多信息:
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈