Share via


Tutorial: Instalación manual de Red Hat JBoss EAP en Azure Virtual Machines

En este tutorial se muestran los pasos para instalar Red Hat JBoss EAP y configurar un clúster en modo de dominio en Azure Virtual Machines (VM), en Red Hat Enterprise Linux (RHEL).

En este tutorial, aprenderá las siguientes tareas:

  • Cree una red virtual personalizada y cree las máquinas virtuales dentro de la red.
  • Instale el JDK deseado y Red Hat JBoss EAP en las máquinas virtuales mediante la línea de comandos manualmente.
  • Configure un clúster de Red Hat JBoss EAP en modo de dominio mediante la interfaz de la línea de comandos (CLI).
  • Configure una conexión de origen de datos de PostgreSQL en el clúster.
  • Implemente y ejecute una aplicación java EE de ejemplo en el clúster.
  • Exponga la aplicación a la red pública de Internet a través de App de Azure lication Gateway.
  • Valide la configuración correcta.

Si prefiere una solución totalmente automatizada que realice todos estos pasos en su nombre en máquinas virtuales GNU/Linux, directamente desde Azure Portal, consulte Inicio rápido: Implementación de JBoss EAP Server en una máquina virtual de Azure mediante Azure Portal.

Nota:

Este artículo contiene referencias al término esclavo, un término que Microsoft ya no usa. Cuando se elimine el término del software, se eliminará también de este artículo.

Requisitos previos

  • Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

  • Instale la VERSIÓN 2.51.0 o posterior de la CLI de Azure para ejecutar comandos de la CLI de Azure.

    • Cuando se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información, consulte Uso de extensiones con la CLI de Azure.
    • Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
  • Asegúrese de que tiene las licencias de Red Hat necesarias. Debe tener una cuenta de Red Hat con derechos de Red Hat Subscription Management (RHSM) para Red Hat JBoss EAP. Este derecho permite que la solución totalmente automatizada mencionada anteriormente (en Implementación del servidor de JBoss EAP en una máquina virtual de Azure mediante Azure Portal) instale la versión de JBoss EAP probada y certificada de Red Hat.

    Nota:

    Si no tiene ningún derecho de EAP, puede registrarse para obtener una suscripción gratuita para desarrolladores a través de la suscripción Red Hat Developer Subscription for Individuals. Guarde los detalles de la cuenta, que se usa como nombre de usuario de RHSM y contraseña de RHSM en la sección siguiente.

  • Si ya está registrado o después de completar el registro, puede encontrar las credenciales necesarias (identificadores de grupo) mediante los pasos siguientes. Estos identificadores de grupo también se usan como identificador de grupo de RHSM con derechos de EAP en pasos posteriores.

    1. Inicie sesión en su cuenta de Red Hat.

    2. La primera vez que inicie sesión, se le pedirá que complete el perfil. En función del uso, seleccione Personal o Corporativo para Tipo de cuenta, como se muestra en la captura de pantalla siguiente:

      Captura de pantalla de la ventana cuenta de Red Hat que muestra las opciones Tipo de cuenta con Personal seleccionado.

    3. Abra la suscripción de desarrollador de Red Hat para individuos. Este vínculo le lleva a todas las suscripciones de su cuenta para la SKU adecuada.

    4. En la fila de controles de la tabla Todas las suscripciones compradas, seleccione Activo. Esto garantiza que solo se muestran las suscripciones activas.

    5. Seleccione el encabezado de columna ordenable para Fecha de finalización hasta que el valor más lejano en el futuro se muestre como la primera fila.

    6. Seleccione la primera fila. A continuación, copie y guarde el valor que sigue a los grupos maestros de los identificadores de grupo.

  • JDK de Java, versión 11. En esta guía, se recomienda red Hat Build of OpenJDK (Compilación de Red Hat de OpenJDK). Asegúrese de que la variable de entorno JAVA_HOME se ha establecido correctamente en los shells en los que ejecuta los comandos.

  • Git; use git --version para probar si git funciona. Este tutorial se probó con la versión 2.25.1.

  • Maven; use mvn -version para probar si mvn funciona. Este tutorial se probó con la versión 3.6.3.

Preparación del entorno

En esta sección, configurará la infraestructura en la que instalará JDK, Red Hat JBoss EAP y el controlador JDBC de PostgreSQL.

Supuestos

En este tutorial se configura un clúster de Red Hat JBoss EAP en modo de dominio con un servidor de administración y dos servidores administrados en un total de tres máquinas virtuales. Para configurar el clúster, debe crear las tres máquinas virtuales de Azure siguientes:

  • Una máquina virtual de administración (nombre adminVMde máquina virtual) se ejecuta como controlador de dominio.
  • Dos máquinas virtuales administradas (nombres mspVM1 de máquina virtual y mspVM2) se ejecutan como controlador de host.

Inicio de sesión en Azure

Si aún no lo ha hecho, inicie sesión en su suscripción de Azure mediante el comando az login y siga las instrucciones en pantalla.

az login

Nota:

Si tiene varios inquilinos de Azure asociados a sus credenciales de Azure, debe especificar en qué inquilino desea iniciar sesión. Puede hacerlo con la --tenant opción . Por ejemplo, az login --tenant contoso.onmicrosoft.com.

Crear un grupo de recursos

Cree un grupo de recursos con az group create. Los nombres de los grupos de recursos deben ser únicos globalmente dentro de una suscripción. Por este motivo, considere la posibilidad de prepending some unique identifier to any names you create that must be unique. Una técnica útil es usar sus iniciales seguidas de la fecha de hoy en formato mmdd. En este ejemplo se crea un grupo de recursos denominado abc1110rg en la eastus ubicación:

az group create \
    --name abc1110rg \
    --location eastus

Creación de una red virtual

Los recursos que componen el clúster de Red Hat JBoss EAP deben comunicarse entre sí y la red pública de Internet mediante una red virtual. Para obtener una guía completa para planear la red virtual, consulte cloud Adoption Framework for Azure guide Plan virtual networks (Planeamiento de redes virtuales de Cloud Adoption Framework para Azure). Para más información, consulte Preguntas más frecuentes sobre Azure Virtual Network.

En el ejemplo de esta sección se crea una red virtual con espacio 192.168.0.0/16 de direcciones y se crea una subred que se usa para las máquinas virtuales.

En primer lugar, cree una red virtual mediante az network vnet create. En el ejemplo siguiente se crea una red denominada myVNet:

az network vnet create \
    --resource-group abc1110rg \
    --name myVNet \
    --address-prefixes 192.168.0.0/24

Cree una subred para el clúster de Red Hat JBoss EAP mediante az network vnet subnet create. En el ejemplo siguiente se crea una subred denominada mySubnet:

az network vnet subnet create \
    --resource-group abc1110rg \
    --name mySubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.0.0/25

Cree una subred para Application Gateway mediante az network vnet subnet create. En el ejemplo siguiente se crea una subred denominada jbossVMGatewaySubnet:

az network vnet subnet create \
    --resource-group abc1110rg \
    --name jbossVMGatewaySubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.0.128/25

Crear un grupo de seguridad de red y asignarle subredes

Antes de crear máquinas virtuales con direcciones IP públicas, cree un grupo de seguridad de red (NSG) para proteger la red virtual y las subredes creadas anteriormente.

Utilice az network nsg create para crear un grupo de seguridad de red. En el ejemplo siguiente, se crea un grupo de seguridad de red denominado mynsg:

az network nsg create \
    --resource-group abc1110rg \
    --name mynsg

Cree reglas de grupo de seguridad de red mediante az network nsg rule create. En el ejemplo siguiente se crean reglas de grupo de seguridad de red denominadas ALLOW_APPGW y ALLOW_HTTP_ACCESS. Estas reglas permiten que App Gateway acepte el tráfico entrante en los puertos HTTP que usa Red Hat JBoss EAP:

az network nsg rule create \
    --resource-group abc1110rg \
    --nsg-name mynsg \
    --name ALLOW_APPGW \
    --protocol Tcp \
    --destination-port-ranges 65200-65535 \
    --source-address-prefix GatewayManager \
    --destination-address-prefix '*' \
    --access Allow \
    --priority 500 \
    --direction Inbound

az network nsg rule create \
    --resource-group abc1110rg \
    --nsg-name mynsg \
    --name ALLOW_HTTP_ACCESS \
    --protocol Tcp \
    --destination-port-ranges 22 80 443 9990 8080 \
    --source-address-prefix Internet \
    --destination-address-prefix '*' \
    --access Allow \
    --priority 510 \
    --direction Inbound

Asocie las subredes creadas anteriormente a este grupo de seguridad de red mediante az network vnet subnet update, como se muestra en el ejemplo siguiente:

az network vnet subnet update \
    --resource-group abc1110rg \
    --vnet-name myVNet \
    --name mySubnet \
    --network-security-group mynsg

az network vnet subnet update \
    --resource-group abc1110rg \
    --vnet-name myVNet \
    --name jbossVMGatewaySubnet \
    --network-security-group mynsg

Creación de una máquina Red Hat Enterprise Linux para el administrador

Creación de la máquina virtual de administración

La imagen de Marketplace que se usa para crear las máquinas virtuales es RedHat:rhel-raw:86-gen2:latest. Para ver otras imágenes, consulte Imágenes de Red Hat Enterprise Linux (RHEL) disponibles en Azure.

Nota:

Puede consultar todas las imágenes de Red Hat Enterprise Linux disponibles proporcionadas por Red Hat con el comando az vm image list , por ejemplo: az vm image list --offer RHEL --publisher RedHat --output table --all. Para obtener más información, consulte Introducción a las imágenes de Red Hat Enterprise Linux.

Si usa una imagen diferente, es posible que tenga que instalar bibliotecas adicionales para habilitar la infraestructura que se usa en esta guía.

Cree una máquina virtual básica, instale todas las herramientas necesarias en ella, tome una instantánea de ella y, a continuación, cree réplicas basadas en la instantánea.

Cree una máquina virtual mediante az vm create. Ejecute el servidor de Administración istration en esta máquina virtual.

En el ejemplo siguiente se crea una máquina virtual Red Hat Enterprise Linux mediante el nombre de usuario y el par de contraseñas para la autenticación. Si lo desea, puede usar la autenticación TLS/SSL en su lugar.

az vm create \
    --resource-group abc1110rg \
    --name adminVM \
    --image RedHat:rhel-raw:86-gen2:latest \
    --size Standard_DS1_v2  \
    --admin-username azureuser \
    --admin-password Secret123456 \
    --public-ip-sku Standard \
    --nsg mynsg \
    --vnet-name myVnet \
    --subnet mySubnet

Instalación de OpenJDK 11 y Red Hat JBoss EAP 7.4

Siga estos pasos para instalar:

  1. Use el comando siguiente para obtener la dirección IP pública de adminVM:

    export ADMIN_VM_PUBLIC_IP=$(az vm show \
        --resource-group abc1110rg \
        --name adminVM \
        --show-details \
        --query publicIps | tr -d '"')
    
  2. Abra un terminal y SSH en adminVM mediante el comando siguiente:

    ssh azureuser@$ADMIN_VM_PUBLIC_IP
    
  3. Proporcione Secret123456 como contraseña.

  4. Configure el firewall para los puertos mediante el comando siguiente:

    sudo firewall-cmd --zone=public --add-port={9999/tcp,8443/tcp,8009/tcp,8080/tcp,9990/tcp,9993/tcp,45700/tcp,7600/tcp} --permanent
    sudo firewall-cmd --reload
    sudo iptables-save
    

    Debería ver la palabra success después de los dos primeros comandos. Debería ver una salida similar al ejemplo siguiente después del tercer comando:

    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *filter
    :INPUT ACCEPT [20:3546]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [24:5446]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *security
    :INPUT ACCEPT [19:3506]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [5:492]
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m tcp --dport 53 -j ACCEPT
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m tcp --dport 53 -j ACCEPT
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m owner --uid-owner 0 -j ACCEPT
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m conntrack --ctstate INVALID,NEW -j DROP
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *raw
    :PREROUTING ACCEPT [20:3546]
    :OUTPUT ACCEPT [24:5446]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *mangle
    :PREROUTING ACCEPT [20:3546]
    :INPUT ACCEPT [20:3546]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [24:5446]
    :POSTROUTING ACCEPT [24:5446]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *nat
    :PREROUTING ACCEPT [1:40]
    :INPUT ACCEPT [0:0]
    :POSTROUTING ACCEPT [4:240]
    :OUTPUT ACCEPT [4:240]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    
  5. Use los siguientes comandos para registrar el host de administrador en la cuenta de Red Hat Subscription Management (RHSM):

    export RHSM_USER=<your-rhsm-username>
    export RHSM_PASSWORD="<your-rhsm-password>"
    export EAP_POOL=<your-rhsm-pool-ID>
    
    sudo subscription-manager register --username ${RHSM_USER} --password ${RHSM_PASSWORD} --force
    

    Debería ver una salida similar al ejemplo siguiente:

    Registering to: subscription.rhsm.redhat.com:443/subscription
    The system has been registered with ID: redacted
    The registered system name is: adminVM
    
  6. Use el siguiente comando para adjuntar el host de administración al grupo de Red Hat JBoss EAP:

    sudo subscription-manager attach --pool=${EAP_POOL}
    

    Nota:

    Este comando se omite si usa el modo de acceso de contenido simple.

  7. Use el siguiente comando para instalar OpenJDK 11:

    sudo yum install java-11-openjdk -y
    

    Debería ver muchas líneas de salida, finalizando con Complete!

  8. Use los siguientes comandos para instalar Red Hat JBoss EAP 7.4:

    sudo subscription-manager repos --enable=jb-eap-7.4-for-rhel-8-x86_64-rpms
    sudo yum update -y --disablerepo='*' --enablerepo='*microsoft*'
    sudo yum groupinstall -y jboss-eap7
    

    Para los comandos segundo y tercer, debería ver muchas líneas de salida, finalizando con Complete!

  9. Use los siguientes comandos para establecer permisos y configuraciones tcp:

    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
    echo 'AllowTcpForwarding no' | sudo tee -a /etc/ssh/sshd_config
    sudo systemctl restart sshd
    
  10. Use los comandos siguientes para configurar las variables de entorno:

    echo 'export EAP_RPM_CONF_DOMAIN="/etc/opt/rh/eap7/wildfly/eap7-domain.conf"' >> ~/.bash_profile
    echo 'export EAP_HOME="/opt/rh/eap7/root/usr/share"' >> ~/.bash_profile
    source ~/.bash_profile
    sudo touch /etc/profile.d/eap_env.sh
    echo 'export EAP_HOME="/opt/rh/eap7/root/usr/share"' | sudo tee -a /etc/profile.d/eap_env.sh
    
  11. Salga de la conexión SSH escribiendo exit.

Creación de máquinas para servidores administrados

Ha instalado OpenJDK 11 y Red Hat JBoss EAP 7.4 en adminVM, que se ejecuta como servidor de controlador de dominio. Todavía tiene que preparar las máquinas para ejecutar los dos servidores de controlador de host. A continuación, creará una instantánea de adminVM y preparará las máquinas para dos servidores administrados y mspVM2mspVM1 .

En esta sección se presenta un enfoque para preparar máquinas con la instantánea de adminVM. Vuelva al terminal que tiene la CLI de Azure iniciada y siga estos pasos:

  1. Use el siguiente comando para detener adminVM:

    az vm stop --resource-group abc1110rg --name adminVM
    
  2. Use az snapshot create para tomar una instantánea del disco del adminVM sistema operativo, como se muestra en el ejemplo siguiente:

    export ADMIN_OS_DISK_ID=$(az vm show \
        --resource-group abc1110rg \
        --name adminVM \
        --query storageProfile.osDisk.managedDisk.id \
        --output tsv)
    az snapshot create \
        --resource-group abc1110rg \
        --name myAdminOSDiskSnapshot \
        --source ${ADMIN_OS_DISK_ID}
    
  3. Use el comando siguiente para iniciar adminVM:

    az vm start --resource-group abc1110rg --name adminVM
    
    
  4. Siga estos pasos para crear mspVM1:

    1. En primer lugar, cree un disco administrado para mspVM1 con az disk create:

      #Get the snapshot ID
      export SNAPSHOT_ID=$(az snapshot show \
          --name myAdminOSDiskSnapshot \
          --resource-group abc1110rg \
          --query '[id]' \
          --output tsv)
      
      #Create a new Managed Disks using the snapshot Id
      #Note that managed disk is created in the same location as the snapshot
      az disk create \
          --resource-group abc1110rg \
          --name mspVM1_OsDisk_1 \
          --source ${SNAPSHOT_ID}
      
    2. A continuación, use los siguientes comandos para crear la máquina virtual mspVM1y conectar el disco mspVM1_OsDisk_1del sistema operativo :

      #Get the resource Id of the managed disk
      export MSPVM1_DISK_ID=$(az disk show \
          --name mspVM1_OsDisk_1 \
          --resource-group abc1110rg \
          --query '[id]' \
          --output tsv)
      
      #Create VM by attaching existing managed disks as OS
      az vm create \
          --resource-group abc1110rg \
          --name mspVM1 \
          --attach-os-disk ${MSPVM1_DISK_ID} \
          --os-type linux \
          --public-ip-sku Standard \
          --nsg mynsg \
          --vnet-name myVnet \
          --subnet mySubnet
      
    3. Ha creado mspVM1 con OpenJDK 11 y Red Hat JBoss EAP 7.4 instalado. Dado que la máquina virtual se creó a partir de una instantánea del disco del adminVM sistema operativo, las dos máquinas virtuales tienen el mismo nombre de host. Use az vm run-command invoke para cambiar el nombre de host al valor mspVM1:

      az vm run-command invoke \
          --resource-group abc1110rg \
          --name mspVM1 \
          --command-id RunShellScript \
          --scripts "sudo hostnamectl set-hostname mspVM1"
      

      Cuando el comando se completa correctamente, verá un resultado similar al ejemplo siguiente:

      {
          "value": [
              {
              "code": "ProvisioningState/succeeded",
              "displayStatus": "Provisioning succeeded",
              "level": "Info",
              "message": "Enable succeeded: \n[stdout]\n\n[stderr]\n",
              "time": null
              }
          ]
      }
      
  5. Use los mismos comandos para crear mspVM2:

    #Create a new Managed Disks for mspVM2
    az disk create \
        --resource-group abc1110rg \
        --name mspVM2_OsDisk_1 \
        --source ${SNAPSHOT_ID}
    
    #Get the resource Id of the managed disk
    export MSPVM2_DISK_ID=$(az disk show \
        --name mspVM2_OsDisk_1 \
        --resource-group abc1110rg \
        --query '[id]' \
        --output tsv)
    
    #Create VM by attaching existing managed disks as OS
    az vm create \
        --resource-group abc1110rg \
        --name mspVM2 \
        --attach-os-disk ${MSPVM2_DISK_ID} \
        --os-type linux \
        --public-ip-sku Standard \
        --nsg mynsg \
        --vnet-name myVnet \
        --subnet mySubnet
    
    #Set hostname
    az vm run-command invoke \
        --resource-group abc1110rg \
        --name mspVM2 \
        --command-id RunShellScript \
        --scripts "sudo hostnamectl set-hostname mspVM2"
    

Use los siguientes comandos para obtener y mostrar las direcciones IP privadas que se usan en secciones posteriores:

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}"

Ahora, las tres máquinas están listas. A continuación, configurará un clúster de Red Hat JBoss EAP en modo de dominio administrado.

Configuración de un dominio administrado y un clúster

Configure el clúster con la replicación de sesión habilitada. Para obtener más información, consulte Replicación de sesión.

Para habilitar la replicación de sesión, use La alta disponibilidad de Red Hat JBoss EAP para el clúster. Microsoft Azure no admite protocolos de detección de JGroups basados en multidifusión UDP. Aunque puede usar otros protocolos de detección de JGroups (como una configuración estática (TCPPING), una base de datos compartida (JDBC_PING), ping basado en el sistema de archivos compartidos (FILE_PING) o TCPGOSSIP), se recomienda encarecidamente usar el protocolo de detección de archivos compartidos desarrollado específicamente para Azure: AZURE_PING. Para más información, consulte Uso de la alta disponibilidad de JBoss EAP en Microsoft Azure.

Creación de una cuenta de Azure Storage y un contenedor de blobs para AZURE_PING

Use los siguientes comandos para crear una cuenta de almacenamiento y un contenedor de blobs:

# Define your storage account name
export STORAGE_ACCOUNT_NAME=azurepingstgabc1110rg
# Define your Blob container name
export CONTAINER_NAME=azurepingcontainerabc1110rg

# Create storage account
az storage account create \
    --resource-group abc1110rg \
    --name ${STORAGE_ACCOUNT_NAME} \
    --location eastus \
    --sku Standard_LRS \
    --kind StorageV2 \
    --access-tier Hot

A continuación, recupere la clave de la cuenta de almacenamiento para su uso posterior mediante el comando siguiente. Si ve un error, espere unos minutos e inténtelo de nuevo. El error puede deberse al comando anterior para crear la cuenta de almacenamiento no completa.

export STORAGE_ACCESS_KEY=$(az storage account keys list \
    --resource-group abc1110rg \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --query "[0].value" \
    --output tsv)

# Create blob container
az storage container create \
    --name ${CONTAINER_NAME} \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --account-key ${STORAGE_ACCESS_KEY}

Debería ver la salida siguiente:

{
  "created": true
}

Configuración del controlador de dominio (nodo de administración)

En este tutorial se usan los comandos de la CLI de administración de EAP de Red Hat JBoss para configurar el controlador de dominio. Para más información, consulte Guía de la CLI de administración.

Los pasos siguientes configuran la configuración del controlador de dominio en adminVM. Use SSH para conectarse a adminVM como usuario azureuser . Recuerde que la dirección IP pública de adminVM se capturó anteriormente en la ADMIN_VM_PUBLIC_IP variable de entorno.

ssh azureuser@$ADMIN_VM_PUBLIC_IP

En primer lugar, use los siguientes comandos para configurar el perfil de alta disponibilidad y JGroups mediante el AZURE_PING protocolo :

export HOST_VM_IP=$(hostname -I)
export STORAGE_ACCOUNT_NAME=azurepingstgabc1110rg
export CONTAINER_NAME=azurepingcontainerabc1110rg
export STORAGE_ACCESS_KEY=<the-value-from-before-you-connected-with-SSH>


#-Configure the HA profile and JGroups using AZURE_PING protocol
sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --echo-command \
'embed-host-controller --std-out=echo --domain-config=domain.xml --host-config=host-master.xml',\
':write-attribute(name=name,value=domain1)',\
'/profile=ha/subsystem=jgroups/stack=tcp:remove',\
'/profile=ha/subsystem=jgroups/stack=tcp:add()',\
'/profile=ha/subsystem=jgroups/stack=tcp/transport=TCP:add(socket-binding=jgroups-tcp,properties={ip_mcast=false})',\
"/profile=ha/subsystem=jgroups/stack=tcp/protocol=azure.AZURE_PING:add(properties={storage_account_name=\"${STORAGE_ACCOUNT_NAME}\", storage_access_key=\"${STORAGE_ACCESS_KEY}\", container=\"${CONTAINER_NAME}\"})",\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=MERGE3:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=FD_SOCK:add(socket-binding=jgroups-tcp-fd)',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=FD_ALL:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=VERIFY_SUSPECT:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=pbcast.NAKACK2:add(properties={use_mcast_xmit=false,use_mcast_xmit_req=false})',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=UNICAST3:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=pbcast.STABLE:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=pbcast.GMS:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=MFC:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=FRAG3:add',\
'/profile=ha/subsystem=jgroups/channel=ee:write-attribute(name="stack", value="tcp")',\
'/server-group=main-server-group:write-attribute(name="profile", value="ha")',\
'/server-group=main-server-group:write-attribute(name="socket-binding-group", value="ha-sockets")',\
"/host=master/subsystem=elytron/http-authentication-factory=management-http-authentication:write-attribute(name=mechanism-configurations,value=[{mechanism-name=DIGEST,mechanism-realm-configurations=[{realm-name=ManagementRealm}]}])",\
"/host=master/interface=unsecure:add(inet-address=${HOST_VM_IP})",\
"/host=master/interface=management:write-attribute(name=inet-address, value=${HOST_VM_IP})",\
"/host=master/interface=public:add(inet-address=${HOST_VM_IP})"

# Save a copy of the domain.xml, later you need to share it with all host controllers
cp $EAP_HOME/wildfly/domain/configuration/domain.xml /tmp/domain.xml

La última estrofa de salida debe ser similar al ejemplo siguiente. Si no es así, solucione y resuelva el problema antes de continuar.

[domain@embedded /] /host=master/interface=public:add(inet-address=192.168.0.4 )
{
    "outcome" => "success",
    "result" => undefined,
    "server-groups" => undefined,
    "response-headers" => {"process-state" => "reload-required"}
}
02:05:55,019 INFO  [org.jboss.as] (MSC service thread 1-1) WFLYSRV0050: JBoss EAP 7.4.10.GA (WildFly Core 15.0.25.Final-redhat-00001) stopped in 28ms

A continuación, use los siguientes comandos para configurar el servidor JBoss y configurar el servicio EAP:

# Configure the JBoss server and setup EAP service
echo 'WILDFLY_HOST_CONFIG=host-master.xml' | sudo tee -a $EAP_RPM_CONF_DOMAIN

# Configure JBoss EAP management user
export JBOSS_EAP_USER=jbossadmin
export JBOSS_EAP_PASSWORD=Secret123456
sudo $EAP_HOME/wildfly/bin/add-user.sh  -u $JBOSS_EAP_USER -p $JBOSS_EAP_PASSWORD -g 'guest,mgmtgroup'

La salida debería tener un aspecto similar al ejemplo siguiente:

Added user 'jbossadmin' to file '/etc/opt/rh/eap7/wildfly/standalone/mgmt-users.properties'
Added user 'jbossadmin' to file '/etc/opt/rh/eap7/wildfly/domain/mgmt-users.properties'
Added user 'jbossadmin' with groups guest,mgmtgroup to file '/etc/opt/rh/eap7/wildfly/standalone/mgmt-groups.properties'
Added user 'jbossadmin' with groups guest,mgmtgroup to file '/etc/opt/rh/eap7/wildfly/domain/mgmt-groups.properties'

Por último, use los siguientes comandos para iniciar el servicio EAP:

# Start the JBoss server and setup EAP service
sudo systemctl enable eap7-domain.service

# Edit eap7-domain.services
sudo sed -i 's/After=syslog.target network.target/After=syslog.target network.target NetworkManager-wait-online.service/' /usr/lib/systemd/system/eap7-domain.service
sudo sed -i 's/Before=httpd.service/Wants=NetworkManager-wait-online.service \nBefore=httpd.service/' /usr/lib/systemd/system/eap7-domain.service

# Reload and restart EAP service
sudo systemctl daemon-reload
sudo systemctl restart eap7-domain.service

# Check the status of EAP service
systemctl status eap7-domain.service

La salida debería tener un aspecto similar al ejemplo siguiente:

● eap7-domain.service - JBoss EAP (domain mode)
   Loaded: loaded (/usr/lib/systemd/system/eap7-domain.service; enabled; vendor>
   Active: active (running) since Thu 2023-03-30 02:11:44 UTC; 5s ago
 Main PID: 3855 (scl)
    Tasks: 82 (limit: 20612)
   Memory: 232.4M
   CGroup: /system.slice/eap7-domain.service
           ├─3855 /usr/bin/scl enable eap7 -- /opt/rh/eap7/root/usr/share/wildf>
           ├─3856 /bin/bash /var/tmp/sclfYu7yW
           ├─3858 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/launch.sh /us>
           ├─3862 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/domain.sh --h>
           ├─3955 /usr/lib/jvm/jre/bin/java -D[Process Controller] -server -Xms>
           └─3967 /usr/lib/jvm/jre/bin/java -D[Host Controller] -Dorg.jboss.boo>

Mar 30 02:11:44 adminVM systemd[1]: Started JBoss EAP (domain mode).

Escriba q para salir del buscapersonas. Salga de la conexión SSH escribiendo exit.

Después de iniciar el servicio Red Hat JBoss EAP, puede acceder a la consola de administración mediante http://$ADMIN_VM_PUBLIC_IP:9990 en el explorador web. Inicie sesión con el nombre de usuario jbossadmin y la contraseña configurados Secret123456.

Captura de pantalla de la consola de administración del controlador de dominio de Red Hat JBoss Enterprise Application Platform.

Seleccione la pestaña Runtime (Tiempo de ejecución ). En el panel de navegación, seleccione Topología. Debería ver que por ahora el clúster solo contiene un controlador de dominio:

Captura de pantalla de red Hat JBoss Enterprise Application Platform que muestra la pestaña Runtime y el panel Topología solo con controlador de dominio.

Configuración de controladores de host (nodos de trabajo)

Use SSH para conectarse a mspVM1 como usuario azureuser . Obtenga la dirección IP pública de la máquina virtual con el siguiente comando:

MSPVM_PUBLIC_IP=$(az vm show \
    --resource-group abc1110rg \
    --name mspVM1 \
    --show-details \
    --query publicIps)

ssh azureuser@$MSPVM_PUBLIC_IP

Recuerde que la contraseña es la misma que antes, ya que mspVM1 es simplemente un clon de adminVM.

Use los siguientes comandos para configurar el controlador de host en mspVM1:

# environment variables
export DOMAIN_CONTROLLER_PRIVATE_IP=<adminVM-private-IP>
export HOST_VM_NAME=$(hostname)
export HOST_VM_NAME_LOWERCASE=$(echo "${HOST_VM_NAME,,}")
export HOST_VM_IP=$(hostname -I)

export JBOSS_EAP_USER=jbossadmin
export JBOSS_EAP_PASSWORD=Secret123456

# Save default domain configuration as backup
sudo -u jboss mv $EAP_HOME/wildfly/domain/configuration/domain.xml $EAP_HOME/wildfly/domain/configuration/domain.xml.backup

# Fetch domain.xml from domain controller
sudo -u jboss scp azureuser@${DOMAIN_CONTROLLER_PRIVATE_IP}:/tmp/domain.xml $EAP_HOME/wildfly/domain/configuration/domain.xml

Se le pide la contraseña para la conexión. En este ejemplo, la contraseña es Secret123456.

Use los comandos siguientes para aplicar los cambios del controlador de host a mspVM1:

# Setup host controller
sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --echo-command \
"embed-host-controller --std-out=echo --domain-config=domain.xml --host-config=host-slave.xml",\
"/host=${HOST_VM_NAME_LOWERCASE}/server-config=server-one:remove",\
"/host=${HOST_VM_NAME_LOWERCASE}/server-config=server-two:remove",\
"/host=${HOST_VM_NAME_LOWERCASE}/server-config=${HOST_VM_NAME_LOWERCASE}-server0:add(group=main-server-group)",\
"/host=${HOST_VM_NAME_LOWERCASE}/subsystem=elytron/authentication-configuration=slave:add(authentication-name=${JBOSS_EAP_USER}, credential-reference={clear-text=${JBOSS_EAP_PASSWORD}})",\
"/host=${HOST_VM_NAME_LOWERCASE}/subsystem=elytron/authentication-context=slave-context:add(match-rules=[{authentication-configuration=slave}])",\
"/host=${HOST_VM_NAME_LOWERCASE}:write-attribute(name=domain-controller.remote.username, value=${JBOSS_EAP_USER})",\
"/host=${HOST_VM_NAME_LOWERCASE}:write-attribute(name=domain-controller.remote, value={host=${DOMAIN_CONTROLLER_PRIVATE_IP}, port=9990, protocol=remote+http, authentication-context=slave-context})",\
"/host=${HOST_VM_NAME_LOWERCASE}/core-service=discovery-options/static-discovery=primary:write-attribute(name=host, value=${DOMAIN_CONTROLLER_PRIVATE_IP})",\
"/host=${HOST_VM_NAME_LOWERCASE}/interface=unsecured:add(inet-address=${HOST_VM_IP})",\
"/host=${HOST_VM_NAME_LOWERCASE}/interface=management:write-attribute(name=inet-address, value=${HOST_VM_IP})",\
"/host=${HOST_VM_NAME_LOWERCASE}/interface=public:write-attribute(name=inet-address, value=${HOST_VM_IP})"

La última estrofa de salida debe ser similar al ejemplo siguiente. Si no es así, solucione y resuelva el problema antes de continuar.

[domain@embedded /] /host=mspvm1/interface=public:write-attribute(name=inet-address, value=192.168.0.5 )
{
    "outcome" => "success",
    "result" => undefined,
    "server-groups" => undefined,
    "response-headers" => {"process-state" => "reload-required"}
}
02:58:59,388 INFO  [org.jboss.as] (MSC service thread 1-2) WFLYSRV0050: JBoss EAP 7.4.10.GA (WildFly Core 15.0.25.Final-redhat-00001) stopped in 58ms

A continuación, use los siguientes comandos para configurar el servidor JBoss y configurar el servicio EAP:

echo 'WILDFLY_HOST_CONFIG=host-slave.xml' | sudo tee -a $EAP_RPM_CONF_DOMAIN

# Enable the JBoss server and setup EAP service
sudo systemctl enable eap7-domain.service

# Edit eap7-domain.services
sudo sed -i 's/After=syslog.target network.target/After=syslog.target network.target NetworkManager-wait-online.service/' /usr/lib/systemd/system/eap7-domain.service
sudo sed -i 's/Before=httpd.service/Wants=NetworkManager-wait-online.service \nBefore=httpd.service/' /usr/lib/systemd/system/eap7-domain.service

# Reload and restart EAP service
sudo systemctl daemon-reload
sudo systemctl restart eap7-domain.service

# Check the status of EAP service
systemctl status eap7-domain.service

La salida debería tener un aspecto similar al ejemplo siguiente:

● eap7-domain.service - JBoss EAP (domain mode)
   Loaded: loaded (/usr/lib/systemd/system/eap7-domain.service; enabled; vendor>
   Active: active (running) since Thu 2023-03-30 03:02:15 UTC; 7s ago
 Main PID: 9699 (scl)
    Tasks: 51 (limit: 20612)
   Memory: 267.6M
   CGroup: /system.slice/eap7-domain.service
           ├─9699 /usr/bin/scl enable eap7 -- /opt/rh/eap7/root/usr/share/wildf>
           ├─9700 /bin/bash /var/tmp/sclgJ1hRD
           ├─9702 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/launch.sh /us>
           ├─9706 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/domain.sh --h>
           ├─9799 /usr/lib/jvm/jre/bin/java -D[Process Controller] -server -Xms>
           └─9811 /usr/lib/jvm/jre/bin/java -D[Host Controller] -Dorg.jboss.boo>

Mar 30 03:02:15 mspVM1 systemd[1]: Started JBoss EAP (domain mode).

Escriba q para salir del buscapersonas. Salga de la conexión SSH escribiendo exit.

Use SSH para conectarse a mspVM2 como usuario azureuser . Obtenga la dirección IP pública de la máquina virtual con el siguiente comando:

az vm show \
    --resource-group abc1110rg \
    --name mspVM2 \
    --show-details \
    --query publicIps

Repita los pasos anteriores en mspVM2y, a continuación, salga de la conexión SSH escribiendo exit.

Después de que dos controladores de host estén conectados a adminVM, debería poder ver la topología del clúster, como se muestra en la captura de pantalla siguiente:

Captura de pantalla de red Hat JBoss Enterprise Application Platform que muestra la pestaña Runtime y el panel Topología con todos los hosts.

Exposición del clúster de Red Hat JBoss EAP con App de Azure lication Gateway

Ahora que ha creado el clúster de Red Hat JBoss EAP en máquinas virtuales de Azure, esta sección le guiará por el proceso de exposición de Red Hat JBoss EAP a Internet con App de Azure lication Gateway.

Crear la instancia de Azure Application Gateway

Para exponer Red Hat JBoss EAP a Internet, se requiere una dirección IP pública. Cree la dirección IP pública y, a continuación, asocie una puerta de enlace de App de Azure lication con ella. Use az network public-ip create para crearlo, como se muestra en el ejemplo siguiente:

az network public-ip create \
    --resource-group abc1110rg \
    --name myAGPublicIPAddress \
    --allocation-method Static \
    --sku Standard

A continuación, agregue los servidores back-end al grupo de back-end de Application Gateway. Consulte las direcciones IP de back-end mediante los siguientes comandos. Solo tiene los controladores de host (nodos de trabajo) configurados como servidores back-end.

export MSPVM1_NIC_ID=$(az vm show \
    --resource-group abc1110rg \
    --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 abc1110rg \
    --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)

A continuación, cree una puerta de enlace de App de Azure lication. En el ejemplo siguiente se crea una puerta de enlace de aplicaciones con controladores de host en el grupo de back-end predeterminado:

az network application-gateway create \
    --resource-group abc1110rg \
    --name myAppGateway \
    --public-ip-address myAGPublicIPAddress \
    --location eastus \
    --capacity 2 \
    --http-settings-port 8080 \
    --http-settings-protocol Http \
    --frontend-port 80 \
    --sku Standard_V2 \
    --subnet jbossVMGatewaySubnet \
    --vnet-name myVNet \
    --priority 1001 \
    --servers ${MSPVM1_IP} ${MSPVM2_IP}

Nota:

En este ejemplo se configura un acceso sencillo a los servidores de EAP de Red Hat JBoss con HTTP. Si desea un acceso seguro, configure la terminación TLS/SSL siguiendo las instrucciones de Tls de un extremo a otro con Application Gateway.

En este ejemplo se exponen los controladores de host en el puerto 8080. Implemente una aplicación de ejemplo con una conexión de base de datos al clúster en pasos posteriores.

Conectar Azure Database for PostgreSQL

En esta sección se muestra cómo crear una instancia de PostgreSQL en Azure y configurar una conexión a PostgreSQL en el clúster de Red Hat JBoss EAP.

Creación de una instancia de Azure Database for PostgreSQL

Siga estos pasos para crear la instancia de base de datos:

  1. Use az postgres server create para aprovisionar una instancia de PostgreSQL en Azure, como se muestra en el ejemplo siguiente:

    export DATA_BASE_USER=jboss
    export DATA_BASE_PASSWORD=Secret123456
    
    DB_SERVER_NAME="jbossdb$(date +%s)"
    echo "DB_SERVER_NAME=${DB_SERVER_NAME}"
    az postgres server create \
        --resource-group abc1110rg \
        --name ${DB_SERVER_NAME}  \
        --location eastus \
        --admin-user ${DATA_BASE_USER} \
        --ssl-enforcement Enabled \
        --admin-password ${DATA_BASE_PASSWORD} \
        --sku-name GP_Gen5_2
    
  2. Use los comandos siguientes para permitir el acceso desde los servicios de Azure:

    # Save aside the following names for later use
    export fullyQualifiedDomainName=$(az postgres server show \
        --resource-group abc1110rg \
        --name ${DB_SERVER_NAME} \
        --query "fullyQualifiedDomainName" \
        --output tsv)
    export name=$(az postgres server show \
        --resource-group abc1110rg \
        --name ${DB_SERVER_NAME} \
        --query "name" \
        --output tsv)
    
    az postgres server firewall-rule create \
        --resource-group abc1110rg \
        --server ${DB_SERVER_NAME} \
        --name "AllowAllAzureIps" \
        --start-ip-address 0.0.0.0 \
        --end-ip-address 0.0.0.0
    
  3. Use el siguiente comando para crear la base de datos:

    az postgres db create \
        --resource-group abc1110rg \
        --server ${DB_SERVER_NAME} \
        --name testdb
    

Instalación del controlador

Siga estos pasos para instalar el controlador JDBC con la CLI de administración de JBoss. Para obtener más información sobre los controladores JDBC en Red Hat JBoss EAP, consulte Instalación de un controlador JDBC como implementación jar.

  1. SSH a adminVM mediante el comando siguiente. Puede omitir este paso si ya tiene abierta una conexión.

    ssh azureuser@$ADMIN_VM_PUBLIC_IP
    
  2. Use los comandos siguientes para descargar el controlador JDBC. Aquí se usa postgresql-42.5.2.jar. Para obtener más información sobre las ubicaciones de descarga del controlador JDBC, consulte Ubicaciones de descarga de controladores JDBC proporcionadas por Red Hat.

    jdbcDriverName=postgresql-42.5.2.jar
    sudo curl --retry 5 -Lo /tmp/${jdbcDriverName} https://jdbc.postgresql.org/download/${jdbcDriverName}
    
  3. Implemente el controlador JDBC mediante el siguiente comando de la CLI de JBoss:

    sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --connect --controller=$(hostname -I) --echo-command \
    "deploy /tmp/${jdbcDriverName} --server-groups=main-server-group"
    

    El registro del servidor se encuentra en mspVM1 y mspVM2 en /var/opt/rh/eap7/lib/wildfly/domain/servers/mspvm1-server0/log/server.log. Si se produce un error en la implementación, examine este archivo de registro y resuelva el problema antes de continuar.

Configuración de la conexión de base de datos para el clúster de Red Hat JBoss EAP

Ha iniciado el servidor de bases de datos, ha obtenido el identificador de recurso necesario e instalado el controlador JDBC. A continuación, los pasos de esta sección muestran cómo usar la CLI de JBoss para configurar una conexión de origen de datos con la instancia de PostgreSQL que creó anteriormente.

  1. Abra un terminal y SSH en adminVM mediante el comando siguiente:

    ssh azureuser@$ADMIN_VM_PUBLIC_IP
    
  2. Cree el origen de datos mediante los siguientes comandos:

    # Replace the following values with your own
    export DATA_SOURCE_CONNECTION_STRING=jdbc:postgresql://<database-fully-qualified-domain-name>:5432/testdb
    export DATA_BASE_USER=jboss@<database-server-name>
    export JDBC_DATA_SOURCE_NAME=dataSource-postgresql
    export JDBC_JNDI_NAME=java:jboss/datasources/JavaEECafeDB
    export DATA_BASE_PASSWORD=Secret123456
    export JDBC_DRIVER_NAME=postgresql-42.5.2.jar
    
    sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --connect --controller=$(hostname -I) --echo-command \
    "data-source add --driver-name=${JDBC_DRIVER_NAME} --profile=ha --name=${JDBC_DATA_SOURCE_NAME} --jndi-name=${JDBC_JNDI_NAME} --connection-url=${DATA_SOURCE_CONNECTION_STRING} --user-name=${DATA_BASE_USER} --password=${DATA_BASE_PASSWORD}"
    

Después de estos pasos, ha configurado correctamente un origen de datos denominado java:jboss/datasources/JavaEECafeDB.

Implementación de la aplicación de ejemplo java EE Cafe

Siga estos pasos para implementar la aplicación de ejemplo de Java EE Cafe en el clúster de Red Hat JBoss EAP:

  1. Siga estos pasos para compilar Java EE Cafe. En estos pasos se supone que tiene un entorno local con Git y Maven instalado:

    1. Use el siguiente comando para clonar el código fuente desde GitHub:

      git clone https://github.com/Azure/rhel-jboss-templates.git
      
    2. Use el siguiente comando para compilar el código fuente:

      mvn clean install --file rhel-jboss-templates/eap-coffee-app/pom.xml
      

      Este comando crea el archivo eap-coffee-app/target/javaee-café.war. Cargue este archivo en el paso siguiente.

  2. Abra un explorador web y vaya a la consola de administración en http://<adminVM-public-IP>:9990y, a continuación, inicie sesión con el nombre de usuario jbossadmin y la contraseña Secret123456.

  3. Siga estos pasos para cargar javaee-café.war en el repositorio de contenido:

    1. En la pestaña Implementaciones de la consola de administración de Red Hat JBoss EAP, seleccione Repositorio de contenido en el panel de navegación.

    2. Seleccione el botón Agregar y, a continuación, seleccione Cargar contenido.

      Captura de pantalla de la pestaña Implementaciones de plataforma de aplicaciones empresariales de Red Hat JBoss con la opción de menú Cargar contenido resaltada.

    3. Use el selector de archivos del explorador para seleccionar el archivo javaee-café.war .

    4. Seleccione Siguiente.

    5. Acepte los valores predeterminados en la siguiente pantalla y seleccione Finalizar.

    6. Seleccione Ver contenido.

  4. Siga estos pasos para implementar una aplicación en main-server-group:

    1. En Repositorio de contenido, seleccione javaee-café.war.

    2. En el menú desplegable, seleccione Implementar.

    3. Seleccione main-server-group como grupo de servidores para implementar javaee-café.war.

    4. Seleccione Implementar para iniciar la implementación. Debería ver un aviso similar a la captura de pantalla siguiente:

      Captura de pantalla del aviso de implementación correcta.

Prueba de la configuración del clúster de Red Hat JBoss EAP

Ya ha terminado de configurar el clúster de Red Hat JBoss EAP e implementar la aplicación Java EE en él. Siga estos pasos para acceder a la aplicación para validar toda la configuración:

  1. Use el comando siguiente para obtener la dirección IP pública de la puerta de enlace de App de Azure lication:

    az network public-ip show \
        --resource-group abc1110rg \
        --name myAGPublicIPAddress \
        --query '[ipAddress]' \
        --output tsv
    
  2. Abra un explorador web.

  3. Vaya a la aplicación con la dirección URL http://<gateway-public-ip-address>/javaee-cafe/. No olvide la barra diagonal final.

  4. Intente agregar y quitar cafés.

Limpieza de recursos

Para evitar los cargos de Azure, se recomienda limpiar los recursos que no sean necesarios. Cuando ya no necesite el clúster de Red Hat JBoss EAP implementado en una máquina virtual de Azure, anule el registro de los servidores de Red Hat JBoss EAP y quite los recursos de Azure.

Use los siguientes comandos para anular el registro de los servidores y máquinas virtuales de Red Hat JBoss EAP de la administración de suscripciones de Red Hat:

# Unregister domain controller
az vm run-command invoke \
    --resource-group abc1110rg \
    --name adminVM \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

# Unregister host controllers
az vm run-command invoke \
    --resource-group abc1110rg \
    --name mspVM1 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"
az vm run-command invoke \
    --resource-group abc1110rg \
    --name mspVM2 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

Use el comando siguiente para eliminar el grupo abc1110rgde recursos :

az group delete --name abc1110rg --yes --no-wait

Pasos siguientes

Continúe explorando las opciones para ejecutar Red Hat JBoss EAP en Azure.