你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 Azure 门户在 Azure Red Hat OpenShift 上部署 JBoss EAP

本文介绍如何使用 Azure 门户在 Azure Red Hat OpenShift (ARO) 上快速建立 JBoss EAP。

本文使用适用于 JBoss EAP 的 Azure 市场产品/服务来加速你的 ARO 之旅。 产品/服务会自动预配资源,这包括带有内置 OpenShift 容器注册表 (OCR) 的 ARO 集群、JBoss EAP 操作器,并根据需要包括使用源到镜像 (S2I) 的容器映像(包括 JBoss EAP 和你的应用程序)。 若要查看该产品/服务,请访问 Azure 门户。 如果想要获取手动分布指南,了解如何在不使用产品/服务启用的自动化的 ARO 上运行 JBoss EAP,请参阅在 Azure Red Hat OpenShift 4 群集上使用 Red Hat JBoss 企业应用程序平台 (JBoss EAP) 部署 Java 应用程序

先决条件

  • 如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

  • 具有完整配置文件的 Red Hat 帐户。 如果没有,可以通过适用于个人的 Red Hat 开发人员订阅注册免费的开发人员订阅。

  • 一个本地开发人员命令行,其安装有类似 UNIX 的命令环境(例如 Ubuntu、macOS 或适用于 Linux 的 Windows 子系统)和 Azure CLI。 要了解如何安装 Azure CLI,请参阅如何安装 Azure CLI

  • mysql CLI。 可使用以下命令安装 CLI:

sudo apt update
sudo apt install mysql-server

注意

还可以从 Azure Cloud Shell 执行本指南。 此方法预安装了所有必备工具。

注意

Azure Red Hat OpenShift 至少需要 40 个核心才能创建和运行 OpenShift 群集。 新 Azure 订阅的默认 Azure 资源配额不满足此要求。 若要请求提高资源上限,请参阅标准配额:按 VM 系列提高上限中所述。 请注意,免费试用订阅无法增加配额,请升级到即用即付订阅再请求增加配额。

获取 Red Hat 拉取机密

本文中使用的 Azure 市场产品/服务需要 Red Hat 拉取机密。 本部分介绍如何获取 Azure Red Hat OpenShift 的 Red Hat 拉取机密。 要了解什么是 Red Hat Pull Secret 以及为什么需要它,请参阅教程:创建 Azure Red Hat OpenShift 4 群集获取 Red Hat 拉取机密 部分。

按照以下步骤获取拉取机密。

  1. 打开 Red Hat OpenShift 混合云控制台,然后使用 Red Hat 帐户登录 OpenShift 群集管理器门户。 可能需要接受更多条款并更新帐户,如以下屏幕截图所示。 使用与创建帐户时相同的密码。

    Red Hat 更新帐户页的屏幕截图。

  2. 登录后,选择“OpenShift”,然后选择“下载”。

  3. 选择“所有类别”下拉列表,然后选择“令牌”。

  4. 在“拉取机密”下,选择“复制”或“下载”以获取值,如以下屏幕截图所示。

    Red Hat 控制台门户的屏幕截图,其中显示了拉取机密。

    以下内容是从 Red Hat 控制台门户复制的示例,其中身份验证代码替换为 xxxx...xxx

    {"auths":{"cloud.openshift.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"quay.io":{"auth":"xxx...xxx","email":"contoso-user@test.com"},"registry.connect.redhat.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"registry.redhat.io":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"}}}
    
  5. 将机密保存到文件中,以便稍后使用。

从 Azure 门户创建 Microsoft Entra 服务主体

本文中使用的 Azure 市场产品/服务需要 Microsoft Entra 服务主体才能部署 Azure Red Hat OpenShift 群集。 该产品/服务会在部署期间为服务主体分配适当的权限,无需进行角色分配。 如果你有可供使用的服务主体,请跳过此部分并转到下一部分,你将在其中创建 Red Hat 容器注册表服务帐户。

使用以下步骤部署服务主体并从 Azure 门户获取其应用程序(客户端)ID 和机密。 有关详细信息,请参阅创建并使用服务主体来部署 Azure Red Hat OpenShift 群集

注意

你必须具有足够的权限,才能向你的 Microsoft Entra 租户注册应用程序。 如果遇到问题,请查看所需权限,确保帐户可以创建标识。 有关详细信息,请参阅使用门户创建可以访问资源的 Microsoft Entra 应用程序和服务主体注册应用程序所需的权限部分。

  1. 通过 Azure 门户登录到 Azure 帐户。

  2. 选择“Microsoft Entra ID”。

  3. 选择“应用注册” 。

  4. 选择“新注册”。

  5. 为应用程序命名,例如 jboss-eap-on-aro-app。 选择支持的帐户类型,它决定了谁可以使用应用程序。 设置好值后,选择“注册”,如以下屏幕截图所示。 预配应用程序需要几秒钟时间。 等待部署完成,然后再继续。

    Azure 门户的屏幕截图,其中显示了“注册应用程序”页。

  6. 从概述页保存应用程序(客户端)ID,如以下屏幕截图所示。 将指针悬停在该值(在屏幕截图中已编辑)上,然后选择出现的复制图标。 工具提示将显示“复制到剪贴板”。 请注意复制正确的值,因为该部分中的其他值也有复制图标。 将应用程序 ID 保存到文件中,以便稍后使用。

    Azure 门户的屏幕截图,其中显示了服务主体客户端 ID。

  7. 按照以下步骤创建新的客户端密码:

    1. 选择“证书和机密”。
    2. 选择“客户端密码”,然后选择“新建客户端密码”。
    3. 提供机密的说明和持续时间。 完成后,选择“添加”。
    4. 添加客户端密码后,将显示客户端密码的值。 请复制此值,因为以后无法检索此值。 请务必复制,而不是 机密 ID

你创建了 Microsoft Entra 应用程序、服务主体和客户端密码。

创建 Red Hat 容器注册表服务帐户

稍后,本文将介绍如何使用源到映像 (S2I) 手动将应用程序部署到 OpenShift。 需要 Red Hat 容器注册表服务帐户才能为运行应用程序的 JBoss EAP 拉取容器映像。 如果你有一个可供使用的 Red Hat 容器注册表服务帐户,请跳过此部分并转到下一部分,你将在其中部署该产品/服务。

使用以下步骤创建 Red Hat 容器注册表服务帐户并获取其用户名和密码。 有关详细信息,请参阅 Red Hat 文档中的创建注册表服务帐户

  1. 使用 Red Hat 帐户登录注册表服务帐户管理应用程序
  2. 在“注册表服务帐户”页中,选择“新建服务帐户”。
  3. 为服务帐户提供一个名称。 该名称以固定的随机字符串开头。
    • 输入说明。
    • 选择“创建”
  4. 导航回你的服务帐户。
  5. 选择创建的服务帐户。
    • 记下用户名,包括前面追加的字符串(即 XXXXXXX|username)。 登录 registry.redhat.io 时将使用此用户名。
    • 记下密码。 将使用此密码登录 registry.redhat.io

你创建了 Red Hat Container Registry 服务帐户。

在 Azure Red Hat OpenShift 上部署 JBoss EAP

本部分中的步骤将指导你在 Azure Red Hat OpenShift 上部署 JBoss EAP。

以下步骤演示了如何查找产品/服务并填写“基本信息”窗格。

  1. 在 Azure 门户顶部的搜索栏中输入 JBoss EAP。 在搜索结果的“市场”部分中,选择“Azure Red Hat OpenShift 上的 JBoss EAP”,如以下屏幕截图所示。

    Azure 门户的屏幕截图,其中显示了搜索结果中 Azure Red Hat OpenShift 上的 JBoss EAP。

    还可以直接转到 Azure 门户上的 Azure Red Hat OpenShift 上的 JBoss EAP

  2. 在产品/服务页面,选择“创建”。

  3. 在“基本信息”窗格中,确保“订阅”字段中显示的值与先决条件部分中列出的角色的值相同。

  4. 必须在空资源组中部署产品/服务。 在“资源组”字段中,选择“新建”,然后填写资源组的值。 由于资源组在订阅中必须是唯一的,因此请选择一个唯一名称。 拥有唯一名称的一种简单方法是使用首字母缩写、今天的日期和一些标识符的组合。 例如,eaparo033123rg

  5. 在“实例详细信息”下,选择部署的区域。 有关运行 OpenShift 的 Azure 区域的列表,请参阅 Azure 上的 Red Hat OpenShift 4.x 的区域

  6. 选择“下一步: ARO”。

以下步骤演示如何填写 ARO 窗格,如以下屏幕截图所示:

Azure 门户的屏幕截图,其中显示了搜索结果中 Azure Red Hat OpenShift ARO 窗格上的 JBoss EAP。

  1. 在“创建新群集”下,选择“”。

  2. 在“提供信息以创建新群集”下,对于“Red Hat 拉取机密”,填写在“获取 Red Hat 拉取机密”部分中获取的 Red Hat 拉取机密。 对“确认机密”使用相同的值。

  3. 使用在从 Azure 门户创建 Microsoft Entra 服务主体部分中获取的服务主体应用程序(客户端)ID 填写服务主体客户端 ID

  4. 使用在从 Azure 门户创建 Microsoft Entra 服务主体部分中获取的服务主体应用程序密码填写服务主体客户端密码。 对“确认机密”使用相同的值。

  5. 选择“下一个 EAP 应用程序”。

以下步骤演示如何填写“EAP 应用程序”窗格(如以下屏幕截图所示),然后开始部署。

Azure 门户的屏幕截图,其中显示了搜索结果中 Azure Red Hat OpenShift EAP 应用程序窗格上的 JBoss EAP。

  1. 对于“使用源到映像(S2I)将应用程序部署到 OpenShift?”,保留默认选项“”。

    注意

    稍后,本快速入门将演示如何使用数据库连接手动部署应用程序。

  2. 在完成时选择“下一步:查看 + 创建”。

  3. 选择“查看 + 创建”。 确保绿色的“验证通过”消息显示在顶部。 如果未显示该消息,请解决任何验证问题,然后再次选择“查看 + 创建”。

  4. 选择创建

  5. 在“部署正在进行”页面跟踪部署进度。

根据所选区域中的网络状况和其他活动,部署可能需要长达 35 分钟才能完成。

在等待的同时,可以设置数据库。

设置 Azure Database for MySQL - 灵活服务器

以下部分介绍如何设置 Azure Database for MySQL - 灵活服务器。

在命令行 shell 中设置环境变量

此示例是由 MySQL 数据库支持的 Java 应用程序,并使用源到映像 (S2I) 部署到 OpenShift 群集。 有关 S2I 的更多信息,请参阅 S2I 文档

打开 shell 并设置以下环境变量。 根据需要更换替换项。

RG_NAME=<resource-group-name>
SERVER_NAME=<database-server-name>
DB_DATABASE_NAME=testdb
ADMIN_USERNAME=myadmin
ADMIN_PASSWORD=Secret123456
DB_USERNAME=testuser
DB_PASSWORD=Secret123456
PROJECT_NAME=eaparo-sample
CON_REG_SECRET_NAME=eaparo-sample-pull-secret
CON_REG_ACC_USER_NAME="<red-hat-container-registry-service-account-username>"
CON_REG_ACC_PWD="<red-hat-container-registry-service-account-password>"
APPLICATION_NAME=javaee-cafe
APP_REPLICAS=3

使用以下值替换占位符,本文的其余部分将使用这些值:

  • <resource-group-name>:先前创建的资源组的名称,例如 eaparo033123rg
  • <database-server-name>:MySQL 服务器的名称,该名称应在整个 Azure 中唯一,例如 eaparo033123mysql
  • ADMIN_PASSWORD:MySQL 数据库服务器的管理员密码。 本文使用所示密码进行了测试。 有关密码规则,请查看数据库文档。
  • <red-hat-container-registry-service-account-username><red-hat-container-registry-service-account-password>:先前创建的 Red Hat 容器注册表服务帐户的用户名和密码。

最好将完整填写的名称/值对保存在文本文件中,以防 shell 在你完成命令执行之前退出。 这样,就可将它们粘贴到 shell 的新实例中并轻松继续操作。

这些名称/值对本质上是“机密”。有关保护 Azure Red Hat OpenShift 安全的生产就绪方法(包括机密管理),请参阅 Azure Red Hat OpenShift 登陆区域加速器的安全性

创建并初始化数据库

接下来,使用以下步骤创建 Azure Database for MySQL - 灵活服务器,并创建具有从特定数据库读取/写入的权限的用户。

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

    az mysql flexible-server create \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --database-name ${DB_DATABASE_NAME} \
        --public-access 0.0.0.0  \
        --admin-user ${ADMIN_USERNAME} \
        --admin-password ${ADMIN_PASSWORD} \
        --yes
    

    此命令可能需要 10 分钟或更长才能完成。 命令成功完成后,会显示类似于以下示例的输出:

    {
      "connectionString": "mysql testdb --host ejb010406adb.mysql.database.azure.com --user myadmin --password=Secret#123345",
      "databaseName": "testdb",
      "firewallName": "AllowAllAzureServicesAndResourcesWithinAzureIps_2023-4-6_21-21-3",
      "host": "ejb010406adb.mysql.database.azure.com",
      "id": "/subscriptions/redacted/resourceGroups/ejb010406a/providers/Microsoft.DBforMySQL/flexibleServers/ejb010406adb",
      "location": "East US",
      "password": "Secret#123345",
      "resourceGroup": "ejb010406a",
      "skuname": "Standard_B1ms",
      "username": "myadmin",
      "version": "5.7"
    }
    
  2. 使用以下命令获取创建的 MySQL 服务器的主机:

    DB_HOST=$(az mysql flexible-server show \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --query "fullyQualifiedDomainName" \
        --output tsv)
    echo $DB_HOST
    

    将名称/值对保存到文本文件。

  3. 使用以下命令创建临时防火墙规则以允许从公共互联网连接到 MySQL 服务器:

    az mysql flexible-server firewall-rule create \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --rule-name "AllowAllIPs" \
        --start-ip-address 0.0.0.0 \
        --end-ip-address 255.255.255.255
    
  4. 使用以下命令创建一个新的数据库用户,该用户具有读写特定数据库的权限。 此命令对于将 SQL 直接发送到数据库很有用。

    mysql --host ${DB_HOST} --user ${ADMIN_USERNAME} --password=${ADMIN_PASSWORD} << EOF
    CREATE USER '${DB_USERNAME}'@'%' IDENTIFIED BY '${DB_PASSWORD}';
    GRANT ALL PRIVILEGES ON ${DB_DATABASE_NAME} . * TO '${DB_USERNAME}'@'%';
    FLUSH PRIVILEGES;
    EOF
    
  5. 使用以下命令删除临时防火墙规则:

    az mysql flexible-server firewall-rule delete \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME}  \
        --rule-name "AllowAllIPs" \
        --yes
    

你现在已经运行 MySQL 数据库服务器,并已准备好与应用连接。

验证部署功能

本部分中的步骤演示了如何验证部署已成功完成。

如果你已离开“部署正在进行”页面,后续步骤将演示如何返回该页面。 如果你仍在显示“部署已完成”的页面上,则可以跳到步骤 5。

  1. 在任何 Azure 门户页面的一角,选择汉堡菜单,然后选择“资源组”。

  2. 在包含文本“筛选任何字段”的框中,输入之前创建的资源组的前几个字符。 如果遵循了建议的约定,请输入缩写,然后选择相应的资源组。

  3. 在导航窗格的“设置”部分,选择“部署”。 你将看到此资源组的部署的有序列表,最新的部署在最前面。

  4. 滚动到此列表中最早的条目。 此条目对应于在上一部分中启动的部署。 选择最早的部署,如以下屏幕截图所示。

    Azure 门户的屏幕截图,其中显示了 Azure Red Hat OpenShift 部署上的 JBoss EAP,其中突出显示了最早的部署。

  5. 在导航窗格中,选择“输出”。 此列表显示部署的输出值,其中包括一些有用的信息。

  6. 打开 shell,粘贴 cmdToGetKubeadminCredentials 字段中的值并执行它。 你将看到用于登录 OpenShift 群集控制台门户的管理员帐户和凭据。 以下示例显示了管理员帐户:

    az aro list-credentials --resource-group eaparo033123rg --name clusterf9e8b9
    

    此命令会生成类似于以下示例的输出:

    {
      "kubeadminPassword": "xxxxx-xxxxx-xxxxx-xxxxx",
      "kubeadminUsername": "kubeadmin"
    }
    
  7. consoleUrl 字段中的值粘贴到连接到 Internet 的 Web 浏览器中,然后按 Enter。 填写管理员用户名和密码,然后选择“登录”。 在 Azure Red Hat OpenShift 的管理控制台中,选择“操作程序”>“已安装的操作程序”,可以看到 JBoss EAP 操作程序已成功安装,如下图所示。

    Red Hat OpenShift 群集控制台门户的屏幕截图,其中显示了“已安装运算符”页。

接下来,按照以下步骤使用 OpenShift CLI 连接到 OpenShift 群集:

  1. 在 shell 中,使用以下命令下载适用于 GNU/Linux 的最新 OpenShift 4 CLI。 如果在 GNU/Linux 以外的操作系统上运行,请下载适合该操作系统的二进制文件。

    cd ~
    wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux.tar.gz
    
    mkdir openshift
    tar -zxvf openshift-client-linux.tar.gz -C openshift
    echo 'export PATH=$PATH:~/openshift' >> ~/.bashrc && source ~/.bashrc
    
  2. 将 cmdToLoginWithKubeadmin 字段中的值粘贴到 shelll 中,然后执行它。 此时应该会看到 login successful 消息和正在使用的项目。 以下内容是使用 OpenShift CLI 连接到 OpenShift 群集的命令示例。

    oc login \
        $(az aro show \
            --resource-group ${RG_NAME} \
            --name aro-cluster \
            --query apiserverProfile.url \
            --output tsv) \
        -u $(az aro list-credentials \
            --resource-group ${RG_NAME} \
            --name aro-cluster \
            --query kubeadminUsername \
            --output tsv) \
        -p $(az aro list-credentials \
            --resource-group ${RG_NAME} \
            --name aro-cluster \
            --query kubeadminPassword \
            --output tsv)
    

    此命令会生成类似于以下示例的输出:

    Login successful.
    
    You have access to 68 projects, the list has been suppressed. You can list all projects with 'oc projects'
    
    Using project "default".
    

将 JBoss EAP 应用部署到 OpenShift 群集

本部分中的步骤演示如何在群集上部署应用程序。

将应用部署到群集

使用以下步骤将应用部署到群集。 该应用程序托管在 GitHub 存储库 rhel-jboss-templates/eap-coffee-app 中。

  1. 在 shell 中运行以下命令。 这些命令会创建项目,应用权限以启用 S2I,对拉取密钥创建映像,并将密钥链接到项目中的相关服务帐户来进行映像拉取。 忽略有关“'detached HEAD' 状态”的 git 警告。

    git clone https://github.com/Azure/rhel-jboss-templates.git
    cd rhel-jboss-templates
    git checkout 20230615
    cd ..
    oc new-project ${PROJECT_NAME}
    oc adm policy add-scc-to-user privileged -z default --namespace ${PROJECT_NAME}
    w0=-w0
    if [[ $OSTYPE == 'darwin'* ]]; then
      w0=
    fi
    
    CON_REG_ACC_USER_NAME_BASE64=$(echo ${CON_REG_ACC_USER_NAME} | base64 $w0)
    CON_REG_ACC_PWD_BASE64=$(echo ${CON_REG_ACC_PWD} | base64 $w0)
    

    由于下一节使用 HEREDOC 格式,因此最好将其包含在自己的代码摘录中并执行。

    
    cat <<EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: ${CON_REG_SECRET_NAME}
    type: Opaque
    data:
      username: ${CON_REG_ACC_USER_NAME_BASE64}
      password: ${CON_REG_ACC_PWD_BASE64}
    stringData:
      hostname: registry.redhat.io
    EOF
    

    必须看到 secret/eaparo-sample-pull-secret created,它表明已成功创建机密。 如果没有看到此输出,请先排除故障并解决问题,然后再继续。 最后,将机密链接到用于下载容器映像的默认服务帐户,以便群集可以运行它们。

    oc secrets link default ${CON_REG_SECRET_NAME} --for=pull
    oc secrets link builder ${CON_REG_SECRET_NAME} --for=pull
    
  2. 然后,使用以下命令拉取 jboss-eap74-openjdk11-openshift 映像。 然后,启动源到映像进程,并等待它完成。

    oc apply -f https://raw.githubusercontent.com/jboss-container-images/jboss-eap-openshift-templates/eap74/eap74-openjdk11-image-stream.json
    oc new-build --name=${APPLICATION_NAME} --binary --image-stream=jboss-eap74-openjdk11-openshift:7.4.0 -e CUSTOM_INSTALL_DIRECTORIES=extensions
    oc start-build ${APPLICATION_NAME} --from-dir=rhel-jboss-templates/eap-coffee-app --follow
    

成功输出的结尾应如下所示:

Writing manifest to image destination
Storing signatures
Successfully pushed image-registry.openshift-image-registry.svc:5000/eaparo-sample/javaee-cafe@sha256:754587c33c03bf42ba4f3ce5a11526bbfc82aea94961ce1179a415c2bfa73449
Push successful

如果没有看到类似的输出,请先排除故障并解决问题,然后再继续。

为数据库密码创建机密

接下来,使用以下步骤创建机密:

  1. 使用以下命令创建用于保存数据库密码的机密:

    oc create secret generic db-secret --from-literal=password=${DB_PASSWORD}
    
  2. 使用以下命令在群集中部署和运行容器化应用的三个副本:

    cat <<EOF | oc apply -f -
    apiVersion: wildfly.org/v1alpha1
    kind: WildFlyServer
    metadata:
      name: ${APPLICATION_NAME}
    spec:
      applicationImage: ${APPLICATION_NAME}:latest
      replicas: ${APP_REPLICAS}
      env:
        - name: DB_SERVICE_PREFIX_MAPPING
          value: TEST-MYSQL=DS1
        - name: TEST_MYSQL_SERVICE_HOST
          value: ${DB_HOST}
        - name: TEST_MYSQL_SERVICE_PORT
          value: '3306'
        - name: DS1_JNDI
          value: java:jboss/datasources/JavaEECafeDB
        - name: DS1_URL
          value: jdbc:mysql://${DB_HOST}:3306/${DB_DATABASE_NAME}
        - name: DS1_DRIVER
          value: mysql
        - name: DS1_DATABASE
          value: ${DB_DATABASE_NAME}
        - name: DS1_USERNAME
          value: ${DB_USERNAME}
        - name: DS1_PASSWORD
          valueFrom:
            secretKeyRef:
              name: db-secret
              key: password
      secrets:
        - db-secret
    EOF
    

    如果命令成功完成,应会看到 wildflyserver.wildfly.org/javaee-cafe created。 如果没有看到此输出,请先排除故障并解决问题,然后再继续。

  3. 运行 oc get pod -w | grep 1/1 以监视应用的所有 Pod 是否正在运行。 看到类似于以下示例的输出时,按 Ctrl + C 停止监视:

    javaee-cafe-2         1/1     Running             0          31s
    javaee-cafe-1         1/1     Running             0          30s
    javaee-cafe-0         1/1     Running             0          30s
    

    可能需要几分钟才能达到正确的状态。 在显示 Running 之前,你甚至可以看到 STATUS 列值,包括 ErrImagePullImagePullBackOff

  4. 运行以下命令以返回应用程序的 URL。 可以使用此 URL 访问已部署的示例应用程序。 将输出复制到剪贴板。

    echo http://$(oc get route ${APPLICATION_NAME}-route -o=jsonpath='{.spec.host}')/javaee-cafe
    
  5. 将输出粘贴到连接 Internet 的 Web 浏览器中,然后按 Enter。 此时应该会看到 Java EE Cafe 应用的 UI,如以下屏幕截图所示:

    Java EE Cafe 应用 UI 的屏幕截图。

  6. 添加和删除某些行以验证数据库连接是否正常工作。

清理资源

如果不打算继续使用 OpenShift 群集,请导航回工作资源组。 在页面顶部的“资源组”文本下,选择资源组。 然后,选择“删除资源组”。

后续步骤

通过以下链接了解有关在 Azure 上部署 JBoss EAP 的更多信息: