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

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 esempio ejb040323postgresrg.
  • <database-server-name>: nome del server PostgreSQL, che deve essere univoco in Azure, ad esempio ejb040323postgresqlserver.
  • <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:

  1. 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
    
  2. 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)
    
  3. 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:

  1. Accedere al portale di Azure visitando https://aka.ms/publicportal.

  2. 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.

    Screenshot del portale di Azure che mostra il server JBoss EAP nella macchina virtuale di Azure nei risultati della ricerca.

  3. 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.

Screenshot del portale di Azure che mostra il riquadro Cluster JBoss EAP nelle macchine virtuali di base.

  1. Nella pagina dell'offerta selezionare Creare.
  2. Nel riquadro Informazioni di base, verificare che il valore visualizzato nel campo Sottoscrizione corrisponda a quello con i ruoli elencati nella sezione prerequisiti.
  3. È 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.
  4. In Dettagli istanza selezionare l'area per la distribuzione.
  5. Lasciare le dimensioni predefinite della macchina virtuale per le dimensioni della macchina virtuale.
  6. Lasciare l'opzione predefinita OpenJDK 17 per la Versione JDK.
  7. Lasciare il valore predefinito jbossuser per Nome utente.
  8. Lasciare l'opzione predefinita Password per Tipo di autenticazione.
  9. Specificare una password per Password. Usare lo stesso valore per Conferma password.
  10. Usare 3 per Numero di macchine virtuali da creare.
  11. In Configurazione di base facoltativa, lasciare l'opzione predefinita per Accetta impostazioni predefinite per la configurazione facoltativa.
  12. 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.
  13. Selezionare Successivo: Impostazioni EAP di JBoss.

I passaggi seguenti illustrano come compilare il riquadro Impostazioni JBoss EAP illustrato nello screenshot seguente.

Screenshot del portale di Azure che mostra il riquadro Impostazioni cluster JBoss EAP in JBoss EAP di macchine virtuali.

  1. Lasciare l'opzione predefinita Dominio gestito per Usare host autonomi o dominio gestito per formare un cluster.
  2. Lasciare il valore predefinito jbossadmin per nome utente amministratore JBoss EAP.
  3. Fornire la password JBoss EAP per la password JBoss EAP. Usare lo stesso valore per Conferma password. Salvare il valore per l'uso successivo.
  4. Lasciare l'opzione predefinita No per Connetti a un server Satellite Red Hat esistente?.
  5. Selezionare Avanti: Gateway applicazione di Azure.

I passaggi seguenti illustrano come compilare il riquadro Gateway applicazione di Azure illustrato nello screenshot seguente.

Screenshot del portale di Azure che mostra il riquadro Cluster JBoss EAP nelle macchine virtuali del gateway applicazione di Azure.

  1. Selezionare per Connettere al gateway applicazione di Azure?.

  2. 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.

  3. Selezionare Avanti: Database.

I passaggi seguenti illustrano come compilare il riquadro Database illustrato nello screenshot seguente e avviare la distribuzione.

Screenshot del portale di Azure che mostra il riquadro Cluster JBoss EAP nelle macchine virtuali database.

  1. Selezionare per Connettere al database?.
  2. Selezionare PostgreSQL per Scegliere il tipo di database.
  3. Compilare java:jboss/datasources/JavaEECafeDB per Nome JNDI.
  4. Specificare l'URL di connessione JDBC del server PostgreSQL salvato in precedenza per Stringa di connessione dell'origine dati (jdbc:postgresql://<host>:<porta>/<database>).
  5. Compilare testuser per Nome utente database.
  6. Specificare il valore per il segnaposto <postgresql-admin-password>, specificato in precedenza, per Password del database. Usare lo stesso valore per Conferma password.
  7. 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.
  8. Seleziona Crea.
  9. 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:

  1. Nella pagina di distribuzione selezionare Output.

  2. Selezionare l'icona di copia accanto ad adminConsole.

    Screenshot del portale di Azure che mostra gli output della distribuzione con l'URL adminConsole evidenziato.

  3. 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.

    Screenshot della schermata di accesso della console di gestione JBoss EAP.

  4. Compilare jbossadmin per Nome utente amministratore JBoss EAPImmettere il valore per Password JBoss EAP specificato in precedenza per Password, quindi selezionare Accedi.

  5. Dovrebbe essere visualizzata la pagina iniziale familiare della console di gestione di Red Hat JBoss Enterprise Application Platform, come illustrato nello screenshot seguente.

    Screenshot della pagina iniziale della console di gestione JBoss EAP.

  6. 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:

    Screenshot della topologia runtime della console di gestione JBoss EAP.

  7. 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:

    Screenshot della scheda Configurazione della console di gestione JBoss EAP con le origini dati selezionate.

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:

  1. Usare la procedura seguente per compilare l'esempio Java EE Cafe. Questi passaggi presuppongono che sia installato un ambiente locale con Git e Maven:

    1. 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.

    2. 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.

  2. Usare la procedura seguente nella console di gestione Piattaforma per applicazioni aziendali Red Hat JBoss per caricare javaee-cafe.war nel Repository di contenuti.

    1. Nella scheda Distribuzioni della console di gestione di Red Hat JBoss EAP selezionare Repository di contenuti nel pannello di spostamento.

    2. Selezionare Aggiungi e quindi selezionare Carica contenuto.

      Screenshot della scheda Distribuzioni della console di gestione JBoss EAP con la voce di menu Carica contenuto evidenziata.

    3. Usare il selettore di file del browser per selezionare il file javaee-cafe.war.

    4. Selezionare Avanti.

    5. Accettare le impostazioni predefinite nella schermata successiva e quindi selezionare Fine.

    6. Selezionare Visualizza contenuti.

  3. Usare la procedura seguente per distribuire un'applicazione in main-server-group:

    1. In Repository di contenuti selezionare javaee-cafe.war.

    2. Aprire il menu a discesa e selezionare Distribuisci.

    3. Selezionare main-server-group come gruppo di server per la distribuzione di javaee-cafe.war.

    4. Selezionare Distribuisci per avviare la distribuzione. Verrà visualizzato un avviso simile a quello raffigurato nello screenshot seguente:

      Screenshot dell'avviso relativo alla corretta distribuzione.

A questo punto è stata completata la distribuzione dell'applicazione Java EE. Usare la procedura seguente per accedere all'applicazione e convalidare tutte le impostazioni:

  1. 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
    
  2. Copiare l'output, ovvero l'indirizzo IP pubblico del gateway applicazione di Azure distribuito.

  3. Aprire un Web browser connesso a Internet.

  4. 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.

  5. 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: