Guida introduttiva: Distribuire un cluster JBoss EAP in macchine virtuali di Azure
Questo articolo illustra come distribuire rapidamente un cluster JBoss Enterprise Application Platform (EAP) in una macchina virtuale di Azure usando il portale di Azure.
Questo articolo usa l'offerta di Azure Marketplace per il cluster JBoss EAP per accelerare il percorso verso le macchine virtuali di Azure. L'offerta effettua automaticamente il provisioning di una serie di risorse, tra cui macchine virtuali Azure Red Hat Enterprise Linux (RHEL), istanze JBoss EAP in ogni macchina virtuale, build Red Hat di OpenJDK in ogni macchina virtuale, console di gestione JBoss EAP e facoltativamente un'istanza del gateway app di Azure. Per visualizzare l'offerta, visitare la soluzione Cluster JBoss EAP nelle macchine virtuali RHEL usando il portale di Azure.
Se si preferisce indicazioni dettagliate manuali per l'installazione del cluster Red Hat JBoss EAP in macchine virtuali di Azure che non usano l'automazione abilitata dall'offerta Azure Marketplace, vedere Esercitazione: Installare manualmente Red Hat JBoss EAP in macchine virtuali di Azure.
Se si è interessati a fornire commenti e suggerimenti o lavorare strettamente sugli scenari di migrazione con il team di progettazione che sviluppa JBoss EAP nelle soluzioni di Azure, compilare questo breve sondaggio sulla migrazione di JBoss EAP e includere le informazioni di contatto. Il team di responsabili del programma, architetti e ingegneri si metterà immediatamente in contatto con l'utente per avviare una stretta collaborazione.
Prerequisiti
- Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
- Verificare che l'identità di Azure usata per accedere abbia il ruolo Collaboratore o Proprietario nella sottoscrizione corrente. Per una panoramica dei ruoli di Azure, vedere Che cos'è il controllo degli accessi in base al ruolo di Azure?
- Java Development Kit (JDK), versione 17. In questa guida si consiglia Red Hat Build di OpenJDK. Assicurarsi che la
JAVA_HOME
variabile di ambiente sia impostata correttamente nelle shell in cui si eseguono i comandi. - Git. Usare
git --version
per verificare segit
funziona. Questa esercitazione è stata testata con la versione 2.34.1. - Maven. Usare
mvn -version
per verificare semvn
funziona. Questa esercitazione è stata testata con la versione 3.8.6.
Nota
L'offerta di Azure Marketplace che verrà usata in questo articolo include il supporto per Red Hat Satellite per la gestione delle licenze. L'uso di Red Hat Satellite esula dall'ambito di questa guida introduttiva. Per una panoramica su Red Hat Satellite, vedere Red Hat Satellite. Per altre informazioni sullo spostamento delle sottoscrizioni di Red Hat JBoss EAP e Red Hat Enterprise Linux in Azure, vedere Programma Red Hat Cloud Access.
Configurare un server flessibile di Database di Azure per PostgreSQL
I passaggi descritti in questa sezione consentono di distribuire un server flessibile di Database di Azure per PostgreSQL, usato per configurare la connessione al database durante la configurazione di un cluster JBoss EAP nella sezione successiva.
Prima di tutto, configurare alcune variabili di ambiente usando il comando seguente.
export RG_NAME=<db-resource-group-name>
export SERVER_NAME=<database-server-name>
export ADMIN_PASSWORD=<postgresql-admin-password>
Sostituire i segnaposto con i valori seguenti, che vengono usati nell'intero articolo:
<db-resource-group-name>
: nome del gruppo di risorse da usare per il server flessibile PostgreSQL, ad esempioejb040323postgresrg
.<database-server-name>
: nome del server PostgreSQL, che deve essere univoco in Azure, ad esempioejb040323postgresqlserver
.<postgresql-admin-password>
: password del server PostgreSQL. Tale password deve avere una lunghezza compresa tra 8 e 128 caratteri. I caratteri devono essere compresi tra tre delle categorie seguenti: lettere maiuscole, lettere minuscole, numeri (0-9) e caratteri non alfanumerici (!, $, #, % e così via).
Usare quindi la procedura seguente per creare un server flessibile di Database di Azure per PostgreSQL:
Usare il comando seguente per creare un server flessibile di Database di Azure per 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
Usare il comando seguente per ottenere l'host del server PostgreSQL:
export DB_HOST=$(az postgres flexible-server show \ --resource-group ${RG_NAME} \ --name ${SERVER_NAME} \ --query "fullyQualifiedDomainName" \ --output tsv)
Usare il comando seguente per ottenere l'URL di connessione JDBC (Java Database Connectivity) del server PostgreSQL:
echo jdbc:postgresql://${DB_HOST}:5432/testdb
Prendere nota dell'output, usato come stringa di connessione dell'origine dati del server PostgreSQL più avanti in questo articolo.
Distribuire un cluster JBoss EAP in macchine virtuali di Azure
I passaggi descritti in questa sezione consentono di distribuire un cluster JBoss EAP in macchine virtuali di Azure.
Per trovare l'offerta cluster JBoss EAP nelle macchine virtuali di Azure, seguire questa procedura:
Accedere al portale di Azure visitando https://aka.ms/publicportal.
Nella barra di ricerca nella parte superiore del portale di Azure immettere JBoss EAP. Nei risultati della ricerca, nella sezione Marketplace selezionare Cluster JBoss EAP nelle macchine virtuali.
Nel menu a discesa assicurarsi che sia selezionato il pagamento in base al consumo.
In alternativa, è anche possibile passare direttamente all'offerta Cluster JBoss EAP nelle macchine virtuali di Azure. In questo caso, il piano corretto è già selezionato automaticamente.
In entrambi i casi, questa offerta distribuisce un cluster JBoss EAP in macchine virtuali di Azure fornendo la sottoscrizione Red Hat in fase di distribuzione. L'offerta esegue il cluster in Red Hat Enterprise Linux usando una configurazione con pagamento in base al consumo per le macchine virtuali di base.
I passaggi seguenti illustrano come compilare il riquadro Informazioni di base illustrato nello screenshot seguente.
- Nella pagina dell'offerta selezionare Creare.
- Nel riquadro Informazioni di base, verificare che il valore visualizzato nel campo Sottoscrizione corrisponda a quello con i ruoli elencati nella sezione prerequisiti.
- È necessario distribuire l'offerta in un gruppo di risorse vuoto. Nel campo Gruppo di risorse, selezionare Crea nuovo e immettere un valore per il gruppo di risorse. Poiché i gruppi di risorse devono essere univoci all'interno di una sottoscrizione, selezionare un nome univoco. Un modo semplice per avere nomi univoci consiste nell'usare una combinazione di iniziali, data odierna e identificatore. Ad esempio, ejb040323jbosseapcluster.
- In Dettagli istanza selezionare l'area per la distribuzione.
- Lasciare le dimensioni predefinite della macchina virtuale per le dimensioni della macchina virtuale.
- Lasciare l'opzione predefinita OpenJDK 17 per la Versione JDK.
- Lasciare il valore predefinito jbossuser per Nome utente.
- Lasciare l'opzione predefinita Password per Tipo di autenticazione.
- Specificare una password per Password. Usare lo stesso valore per Conferma password.
- Usare 3 per Numero di macchine virtuali da creare.
- In Configurazione di base facoltativa, lasciare l'opzione predefinita Sì per Accetta impostazioni predefinite per la configurazione facoltativa.
- Scorrere fino alla fine del riquadro Informazioni di base e notare i collegamenti utili per segnalare i problemi, ottenere assistenza e condividere commenti e suggerimenti.
- Selezionare Successivo: Impostazioni EAP di JBoss.
I passaggi seguenti illustrano come compilare il riquadro Impostazioni JBoss EAP illustrato nello screenshot seguente.
- Lasciare l'opzione predefinita Dominio gestito per Usare host autonomi o dominio gestito per formare un cluster.
- Lasciare il valore predefinito jbossadmin per nome utente amministratore JBoss EAP.
- Fornire la password JBoss EAP per la password JBoss EAP. Usare lo stesso valore per Conferma password. Salvare il valore per l'uso successivo.
- Lasciare l'opzione predefinita No per Connetti a un server Satellite Red Hat esistente?.
- Selezionare Avanti: Gateway applicazione di Azure.
I passaggi seguenti illustrano come compilare il riquadro Gateway applicazione di Azure illustrato nello screenshot seguente.
Selezionare Sì per Connettere al gateway applicazione di Azure?.
Selezionare Avanti: Rete.
Questo riquadro consente di personalizzare la rete virtuale e la subnet in cui viene distribuito il cluster JBoss EAP. Per informazioni sulle reti virtuali, vedere Creare, modificare o eliminare una rete virtuale. Accettare le altre impostazioni predefinite di questo riquadro.
Selezionare Avanti: Database.
I passaggi seguenti illustrano come compilare il riquadro Database illustrato nello screenshot seguente e avviare la distribuzione.
- Selezionare Sì per Connettere al database?.
- Selezionare PostgreSQL per Scegliere il tipo di database.
- Compilare java:jboss/datasources/JavaEECafeDB per Nome JNDI.
- Specificare l'URL di connessione JDBC del server PostgreSQL salvato in precedenza per Stringa di connessione dell'origine dati (jdbc:postgresql://<host>:<porta>/<database>).
- Compilare testuser per Nome utente database.
- Specificare il valore per il segnaposto
<postgresql-admin-password>
, specificato in precedenza, per Password del database. Usare lo stesso valore per Conferma password. - Selezionare Rivedi e crea. Verificare che nella parte superiore venga visualizzato il messaggio verde Convalida superata. Se il messaggio non viene visualizzato, correggere eventuali problemi di convalida, quindi selezionare di nuovo Rivedi e crea.
- Seleziona Crea.
- Tenere traccia dello stato di avanzamento della distribuzione nella pagina Distribuzione in corso.
A seconda delle condizioni di rete e di altre attività nell'area selezionata, il completamento della distribuzione potrebbe richiedere fino a 35 minuti. Successivamente, verrà visualizzato il testo La distribuzione è stata completata nella pagina di distribuzione.
Verificare la funzionalità della distribuzione
Usare la procedura seguente per verificare la funzionalità della distribuzione per un cluster JBoss EAP in macchine virtuali di Azure dalla console di gestione di Red Hat JBoss Enterprise Application Platform:
Nella pagina di distribuzione selezionare Output.
Selezionare l'icona di copia accanto ad adminConsole.
Incollare l'URL in un Web browser connesso a Internet e premere INVIO. Verrà visualizzata la schermata di accesso familiare della console di gestione di Red Hat JBoss Enterprise Application Platform, come illustrato nello screenshot seguente.
Compilare jbossadmin per Nome utente amministratore JBoss EAPImmettere il valore per Password JBoss EAP specificato in precedenza per Password, quindi selezionare Accedi.
Dovrebbe essere visualizzata la pagina iniziale familiare della console di gestione di Red Hat JBoss Enterprise Application Platform, come illustrato nello screenshot seguente.
Selezionare la scheda Runtime. Nel riquadro di spostamento selezionare Topologia. Si noterà che il cluster contiene un controller di dominio master e due nodi di lavoro, come illustrato nello screenshot seguente:
Scegliere la scheda Configurazione. Nel riquadro di spostamento selezionare Profili>ha>Origini dati e driver>Origini dati. Si noterà che l'origine dati dataSource-postgresql è elencata, come illustrato nello screenshot seguente:
Lasciare aperta la console di gestione. Viene usato per distribuire un'app di esempio nel cluster JBoss EAP nella sezione successiva.
Distribuire l'app nel cluster JBoss EAP
Usare la procedura seguente per distribuire l'applicazione di esempio Java EE Cafe nel cluster Red Hat JBoss EAP:
Usare la procedura seguente per compilare l'esempio Java EE Cafe. Questi passaggi presuppongono che sia installato un ambiente locale con Git e Maven:
Usare il comando seguente per clonare il codice sorgente da GitHub ed eseguire il check-out del tag corrispondente a questa versione dell'articolo:
git clone https://github.com/Azure/rhel-jboss-templates.git --branch 20240904 --single-branch
Se viene visualizzato un messaggio di errore con il testo
You are in 'detached HEAD' state
, è possibile ignorarlo senza problemi.Usare il comando seguente per compilare il codice sorgente:
mvn clean install --file rhel-jboss-templates/eap-coffee-app/pom.xml
Questo comando crea il file rhel-jboss-templates/eap-coffee-app/target/javaee-cafe.war. Questo file verrà caricato nel passaggio successivo.
Usare la procedura seguente nella console di gestione Piattaforma per applicazioni aziendali Red Hat JBoss per caricare javaee-cafe.war nel Repository di contenuti.
Nella scheda Distribuzioni della console di gestione di Red Hat JBoss EAP selezionare Repository di contenuti nel pannello di spostamento.
Selezionare Aggiungi e quindi selezionare Carica contenuto.
Usare il selettore di file del browser per selezionare il file javaee-cafe.war.
Selezionare Avanti.
Accettare le impostazioni predefinite nella schermata successiva e quindi selezionare Fine.
Selezionare Visualizza contenuti.
Usare la procedura seguente per distribuire un'applicazione in
main-server-group
:In Repository di contenuti selezionare javaee-cafe.war.
Aprire il menu a discesa e selezionare Distribuisci.
Selezionare main-server-group come gruppo di server per la distribuzione di javaee-cafe.war.
Selezionare Distribuisci per avviare la distribuzione. Verrà visualizzato un avviso simile a quello raffigurato nello screenshot seguente:
A questo punto è stata completata la distribuzione dell'applicazione Java EE. Usare la procedura seguente per accedere all'applicazione e convalidare tutte le impostazioni:
Usare il comando seguente per ottenere l'indirizzo IP pubblico del gateway applicazione di Azure. Sostituire il segnaposto
<resource-group-name>
con il nome del gruppo di risorse in cui è stato distribuito il cluster JBoss EAP.az network public-ip show \ --resource-group <resource-group-name> \ --name gwip \ --query '[ipAddress]' \ --output tsv
Copiare l'output, ovvero l'indirizzo IP pubblico del gateway applicazione di Azure distribuito.
Aprire un Web browser connesso a Internet.
Passare all'applicazione con l'URL
http://<gateway-public-ip-address>/javaee-cafe
. Sostituire il segnaposto<gateway-public-ip-address>
con l'indirizzo IP pubblico del gateway applicazione di Azure copiato in precedenza.Provare ad aggiungere e rimuovere caffè.
Pulire le risorse
Per evitare addebiti per Azure, è necessario eliminare le risorse non necessarie. Quando non è più necessario il cluster JBoss EAP distribuito nelle macchine virtuali di Azure, annullare la registrazione dei server JBoss EAP e rimuovere le risorse di Azure.
Eseguire il comando seguente per annullare la registrazione dei server JBoss EAP e delle macchine virtuali dalla gestione delle sottoscrizioni Red Hat. Sostituire il segnaposto <resource-group-name>
con il nome del gruppo di risorse in cui è stato distribuito il cluster 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"
Eseguire i comandi seguenti per rimuovere i due gruppi di risorse in cui vengono distribuiti il cluster JBoss EAP e il server flessibile di Database di Azure per PostgreSQL. Sostituire il segnaposto <resource-group-name>
con il nome del gruppo di risorse in cui è stato distribuito il cluster JBoss EAP. Assicurarsi che la variabile di ambiente $RG_NAME
sia impostata con il nome del gruppo di risorse in cui è distribuito il server flessibile PostgreSQL.
az group delete --name <resource-group-name> --yes --no-wait
az group delete --name $RG_NAME --yes --no-wait
Passaggi successivi
Altre informazioni sulle opzioni per la distribuzione di JBoss EAP in Azure: