Inicio rápido: Implementación de un clúster de JBoss EAP en Azure Virtual Machines (VM)
En este artículo se muestra cómo implementar rápidamente un clúster de JBoss Enterprise Application Platform (EAP) en Azure Virtual Machines (VM) mediante Azure Portal.
En este artículo se usa la oferta de Azure Marketplace para el clúster de JBoss EAP para acelerar el recorrido a las máquinas virtuales de Azure. La oferta aprovisiona automáticamente una serie de recursos, como máquinas virtuales de Red Hat Enterprise Linux (RHEL), instancias de JBoss EAP en cada máquina virtual, compilación de Red Hat de OpenJDK en cada máquina virtual, una consola de administración de JBoss EAP y, opcionalmente, una instancia de Azure App Gateway. Para ver la oferta, visite la solución Clúster de JBoss EAP en máquinas virtuales de RHEL mediante Azure Portal.
Si prefiere instrucciones paso a paso manuales para instalar el clúster de Red Hat JBoss EAP en máquinas virtuales de Azure que no usen la automatización habilitada por la oferta de Azure Marketplace, consulte Tutorial: Instalación de Red Hat JBoss EAP en Azure Virtual Machines manualmente.
Si está interesado en proporcionar comentarios o trabajar estrechamente en sus escenarios de migración con el equipo de ingeniería que desarrolla JBoss EAP en soluciones de Azure, rellene esta breve Encuesta sobre la migración de JBoss EAP e incluya la información de contacto. El equipo de administradores de programas, arquitectos e ingenieros se pondrá en contacto rápidamente con usted para iniciar una estrecha colaboración.
Requisitos previos
- Suscripción a Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
- Asegúrese de que la identidad de Azure que usa para iniciar sesión tiene los roles de Colaborador o Propietario en la suscripción actual. Consulte la información general sobre los roles de Azure en ¿Qué es el control de acceso basado en rol de Azure (RBAC)?.
- Un Kit de desarrollo de Java (JDK), versión 17. En esta guía, se recomienda la 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 sigit
funciona. Este tutorial se probó con la versión 2.34.1. - Maven. Use
mvn -version
para probar simvn
funciona. Este tutorial se probó con la versión 3.8.6.
Nota:
La oferta de Azure Marketplace que va a usar en este artículo incluye compatibilidad con Red Hat Satellite para la administración de licencias. El uso de Red Hat Satellite está fuera del ámbito de este inicio rápido. Para obtener información general sobre Red Hat Satellite, consulte Red Hat Satellite. Para más información sobre cómo mover las suscripciones de Red Hat JBoss EAP y Red Hat Enterprise Linux a Azure, consulte el programa Red Hat Cloud Access.
Configuración de un servidor flexible de Azure Database for PostgreSQL
Los pasos de esta sección le dirigen a implementar un servidor flexible de Azure Database for PostgreSQL, que se usa para configurar la conexión de base de datos al configurar un clúster de JBoss EAP en la sección siguiente.
En primer lugar, use el siguiente comando para configurar algunas variables de entorno.
export RG_NAME=<db-resource-group-name>
export SERVER_NAME=<database-server-name>
export ADMIN_PASSWORD=<postgresql-admin-password>
Reemplace los marcadores de posición por los siguientes valores, que se usan en todo el artículo:
<db-resource-group-name>
: el nombre del grupo de recursos que se va a usar para el servidor flexible de PostgreSQL, por ejemplo,ejb040323postgresrg
.<database-server-name>
: el nombre del servidor PostgreSQL, que debe ser único en Azure, por ejemplo,ejb040323postgresqlserver
.<postgresql-admin-password>
: la contraseña del servidor PostgreSQL. Esa contraseña debe tener al menos ocho caracteres y como máximo, 128 caracteres. Los caracteres deben ser de tres de las siguientes categorías: letras en mayúsculas en inglés, letras minúsculas en inglés, números (0 al 9) y caracteres sinfánfano (!, $, #, %, etc.).
A continuación, siga estos pasos para crear un servidor flexible de Azure Database for PostgreSQL:
Use el comando siguiente para crear un servidor flexible de 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
Use el siguiente comando para obtener el host del servidor PostgreSQL:
export DB_HOST=$(az postgres flexible-server show \ --resource-group ${RG_NAME} \ --name ${SERVER_NAME} \ --query "fullyQualifiedDomainName" \ --output tsv)
Use el siguiente comando para obtener la dirección URL de conexión de Java Database Connectivity (JDBC) del servidor PostgreSQL:
echo jdbc:postgresql://${DB_HOST}:5432/testdb
Anote la salida, que se usa como cadena de conexión del origen de datos del servidor PostgreSQL más adelante en este artículo.
Implementación de un clúster de JBoss EAP en máquinas virtuales de Azure
Los pasos de esta sección le dirigen a implementar un clúster de JBoss EAP en máquinas virtuales de Azure.
Siga estos pasos para buscar el clúster de JBoss EAP en máquinas virtuales de Azure:
Inicie sesión en Azure Portal visitando https://aka.ms/publicportal.
En la barra de búsqueda de la parte superior de Azure Portal, escriba JBoss EAP. En los resultados de la búsqueda, en la sección Marketplace, seleccione Clúster de JBoss EAP en máquinas virtuales.
En el menú desplegable, asegúrese de que está seleccionado PAYG.
Como alternativa, también puede ir directamente a la oferta de JBoss EAP Cluster en máquinas virtuales de Azure. En este caso, el plan correcto ya está seleccionado automáticamente.
En cualquier caso, esta oferta implementa un clúster de JBoss EAP en máquinas virtuales de Azure proporcionando la suscripción de Red Hat en el momento de la implementación. La oferta ejecuta el clúster en Red Hat Enterprise Linux mediante una configuración de pago por uso para las máquinas virtuales base.
En los pasos siguientes se muestra cómo rellenar el panel de Datos básicos que se muestra en el recorte de pantalla siguiente.
- En la página de la oferta, seleccione Crear.
- En el panel Aspectos básicos, asegúrese de que el valor que se muestra en el campo Suscripción es el mismo que tiene los roles enumerados en la sección requisitos previos.
- Debe implementar la oferta en un grupo de recursos vacío. En el campo Grupo de recursos, seleccione Crear nuevo y complete un valor para el grupo de recursos. Dado que los grupos de recursos deben ser únicos dentro de una suscripción, elija un nombre único. Una manera fácil de tener nombres únicos es usar una combinación de sus iniciales, la fecha de hoy y algún identificador. Por ejemplo, ejb040323jbosseapcluster.
- En Detalles de la instancia, seleccione la región para la implementación.
- Deje el tamaño de máquina virtual predeterminado en Virtual machine size.
- Deje la opción predeterminada OpenJDK 17 en JDK version.
- Deje el valor predeterminado jbossuser en Username.
- Deje la opción predeterminada Password en Authentication type.
- Proporcione una contraseña para Contraseña. Use el mismo valor para Confirm password.
- Use 3 para Número de máquinas virtuales que se van a crear.
- En Optional Basic Configuration, deje la opción predeterminada Yes en Accept defaults for optional configuration.
- Desplácese hasta la parte inferior del panel Basics y observe los vínculos útiles para Report issues, get help, and share feedback.
- Seleccione Next: JBoss EAP Settings.
En los pasos siguientes se muestra cómo rellenar el panel Configuración de JBoss EAP que se muestra en el recorte de pantalla siguiente.
- Deje la opción predeterminada Dominio administrado para Usar dominio administrado o hosts independientes para formar un clúster.
- Deje el valor predeterminado jbossadmin en JBoss EAP Admin username.
- Proporcione una contraseña de JBoss EAP para Contraseña de JBoss EAP. Use el mismo valor para Confirm password. Guarde el valor para su uso posterior.
- Deje la opción predeterminada No en Connect to an existing Red Hat Satellite Server?.
- Seleccione Siguiente: Azure Application Gateway.
En los pasos siguientes se muestra cómo rellenar el panel Azure Application Gateway que se muestra en la recorte de pantalla siguiente.
Seleccione Sí para Conectar a Azure Application Gateway?.
Seleccione Siguiente: Redes.
Este panel le permite personalizar la red virtual y la subred en la que se implementa el clúster de JBoss EAP. Para obtener información sobre las redes virtuales, consulte Creación, cambio o eliminación de una red virtual. Acepte los valores predeterminados en este panel.
Seleccione Next: Database.
Los pasos siguientes muestran cómo rellenar el panel Base de datos que se muestra en el recorte de pantalla siguiente e iniciar la implementación.
- Seleccione Sí para ¿Conectar a la base de datos?.
- Seleccione PostgreSQL para Elegir tipo de base de datos.
- Rellene java:jboss/datasources/JavaEECafeDB para nombre JNDI.
- Proporcione la dirección URL de conexión JDBC del servidor PostgreSQL, que guardó antes, para la Cadena de conexión del origen de datos (jdbc:postgresql://<host>:<port>/<database>).
- Rellene testuser para Nombre de usuario de base de datos.
- Proporcione el valor del marcador de posición
<postgresql-admin-password>
, que especificó antes, para Contraseña de base de datos. Use el mismo valor para Confirm password. - Seleccione Revisar + crear. Asegúrese de que aparezca el mensaje verde Validación superada en la parte superior. Si el mensaje no aparece, corrija los problemas de validación y, después, seleccione Review + create de nuevo.
- Seleccione Crear.
- Realice un seguimiento del progreso de la implementación en la página Implementación en curso.
En función de las condiciones de red y de otra actividad de la región seleccionada, la implementación puede tardar hasta 35 minutos en completarse. Después, debería ver el texto Su implementación se ha completado en la página de implementación.
Comprobación de la funcionalidad de la implementación
Siga estos pasos para comprobar la funcionalidad de la implementación de un clúster de JBoss EAP en máquinas virtuales de Azure desde la consola de administración de Red Hat JBoss Enterprise Application Platform:
En la página de implementación, seleccione Salidas.
Seleccione el icono de copia situado junto a adminConsole.
Pegue la dirección URL en un explorador web conectado a Internet y presione Entrar. Debería ver la conocida pantalla de inicio de sesión de la consola de administración de Red Hat JBoss Enterprise Application Platform, como se muestra en la siguiente captura de pantalla.
Rellene jbossadmin para Nombre de usuario de administrador de JBoss EAP Proporcione el valor de Contraseña de JBoss EAP que especificó antes para la Contraseña, y a continuación, seleccione Iniciar sesión.
Debería ver la conocida página principal de la consola de administración de Red Hat JBoss Enterprise Application Platform, como se muestra en la siguiente captura de pantalla.
Seleccione la pestaña Runtime. En el panel de navegación, seleccione Topología. Debería ver que el clúster contiene un controlador de dominio maestro y dos nodos de trabajo, como se muestra en el recorte de pantalla siguiente:
Seleccione la pestaña Configuración. En el panel de navegación, seleccione Perfiles>ha>Orígenes de datos y controladores>orígenes de datos. Debería ver que se muestra el origen de datos dataSource-postgresql, como se muestra en el recorte de pantalla siguiente:
Deje abierta la consola de administración. Se usa para implementar una aplicación de ejemplo en el clúster de JBoss EAP en la sección siguiente.
Implementación de la aplicación en el clúster de JBoss EAP
Siga estos pasos para implementar la aplicación de ejemplo java EE Cafe en el clúster de Red Hat JBoss EAP:
Siga estos pasos para compilar el ejemplo de Java EE Cafe. En estos pasos se supone que tiene un entorno local con Git y Maven instalado:
Use el siguiente comando para clonar el código fuente de GitHub y consultar la etiqueta correspondiente a esta versión del artículo:
git clone https://github.com/Azure/rhel-jboss-templates.git --branch 20240904 --single-branch
Si ve un mensaje de error con el texto
You are in 'detached HEAD' state
, puede omitirlo de forma segura.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 rhel-jboss-templates/eap-coffee-app/target/javaee-café.war. Cargará este archivo en el paso siguiente.
Siga estos pasos en la consola de administración de Red Hat JBoss Enterprise Application Platform para cargar el javaee-cafe.war en el Repositorio de contenido.
En la pestaña Implementaciones de la consola de administración de EAP de Red Hat JBoss, seleccione Repositorio de contenido en el panel de navegación.
Seleccione Agregar y después, Cargar contenido.
Use el selector de archivos del explorador para seleccionar el archivo javaee-café.war.
Seleccione Siguiente.
Acepte los valores predeterminados en la siguiente pantalla y seleccione Finalizar.
Seleccione Ver contenido.
Siga estos pasos para implementar una aplicación en
main-server-group
:En Repositorio de contenido, seleccione javaee-café.war.
Abra el menú desplegable y seleccione Implementar.
Seleccione main-server-group como grupo de servidores para implementar javaee-café.war.
Seleccione Implementar para iniciar la implementación. Debería ver un aviso similar a la recorte de pantalla siguiente:
Ya ha terminado de implementar la aplicación Java EE. Siga estos pasos para acceder a la aplicación y validar toda la configuración:
Use el comando siguiente para obtener la dirección IP pública de Azure Application Gateway. Reemplace el marcador de posición
<resource-group-name>
por el nombre del grupo de recursos donde se implementa el clúster de JBoss EAP.az network public-ip show \ --resource-group <resource-group-name> \ --name gwip \ --query '[ipAddress]' \ --output tsv
Copie la salida, que es la dirección IP pública de Azure Application Gateway implementada.
Abra un explorador web conectado a Internet.
Vaya a la aplicación con la dirección URL
http://<gateway-public-ip-address>/javaee-cafe
. Reemplace el marcador<gateway-public-ip-address>
de posición por la dirección IP pública de Azure Application Gateway que copió anteriormente.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 JBoss EAP implementado en máquinas virtuales de Azure, anule el registro de los servidores JBoss EAP y quite los recursos de Azure.
Ejecute el siguiente comando para anular el registro de los servidores y máquinas virtuales de JBoss EAP de la administración de suscripciones de Red Hat. Reemplace el marcador de posición <resource-group-name>
por el nombre del grupo de recursos donde se implementa el clúster de 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"
Ejecute los siguientes comandos para quitar los dos grupos de recursos en los que se implementa el clúster de JBoss EAP y el servidor flexible de Azure Database for PostgreSQL. Reemplace el marcador de posición <resource-group-name>
por el nombre del grupo de recursos donde se implementa el clúster de JBoss EAP. Asegúrese de que la variable de entorno $RG_NAME
se establece con el nombre del grupo de recursos donde se implementa el servidor flexible de PostgreSQL.
az group delete --name <resource-group-name> --yes --no-wait
az group delete --name $RG_NAME --yes --no-wait
Pasos siguientes
Obtenga más información sobre las opciones para implementar JBoss EAP en Azure: