Condividi tramite


Guida introduttiva: Distribuire JBoss EAP in Azure Red Hat OpenShift

Questo articolo illustra come configurare rapidamente JBoss Enterprise Application Platform (EAP) in Azure Red Hat OpenShift (ARO) usando il portale di Azure.

Questo articolo usa l'offerta di Azure Marketplace per JBoss EAP per accelerare il percorso verso ARO. L'offerta effettua automaticamente il provisioning delle risorse, incluso un cluster ARO con un registro contenitori OpenShift (OCR) predefinito, l'operatore JBoss EAP e, facoltativamente, un'immagine del contenitore, tra cui JBoss EAP e l'applicazione usando source-to-Image (S2I). Per visualizzare l'offerta, visitare il portale di Azure. Se si preferisce disporre di indicazioni dettagliate per eseguire in modo manuale JBoss EAP in ARO senza ricorrere all'automazione abilitata dall'offerta, vedere Distribuire un'applicazione Java con Red Hat JBoss Enterprise Application Platform (JBoss EAP) in un cluster Azure Red Hat OpenShift 4.

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

Azure Red Hat OpenShift richiede almeno 40 core per creare ed eseguire un cluster OpenShift. La quota di risorse di Azure predefinita per una nuova sottoscrizione di Azure non soddisfa questo requisito. Per richiedere un aumento del limite di risorse, vedere Aumentare le quote di vCPU per la famiglia di macchine virtuali. Si noti che la sottoscrizione di valutazione gratuita non è idonea per un aumento delle quote. Eseguire l'aggiornamento a una sottoscrizione con pagamento in base al consumo prima di richiedere un aumento delle quote. Per maggiori informazioni, vedere Aggiornare l'account Azure gratuito o l'account Azure for Students Starter.

Ottenere un segreto di pull di Red Hat

L'offerta di Azure Marketplace usata in questo articolo richiede un segreto pull di Red Hat. Questa sezione illustra come ottenere un segreto di pull di Red Hat per Azure Red Hat OpenShift. Per informazioni sul segreto di pull di Red Hat e sul motivo per cui è necessario, vedere la sezione Ottenere un segreto pull di Red Hat di Esercitazione: Creare un cluster Azure Red Hat OpenShift 4.

Per ottenere il segreto di pull, seguire questa procedura:

  1. Aprire Red Hat OpenShift Hybrid Cloud Console, quindi usare l'account Red Hat per accedere al portale di Gestione cluster OpenShift. Potrebbe essere necessario accettare altri termini e aggiornare l'account, come illustrato nello screenshot seguente. Usare la stessa password di quando è stato creato l'account.

    Screenshot della pagina Aggiorna l'account di Red Hat.

  2. Dopo aver eseguito l'accesso, selezionare OpenShift e quindi Download.

  3. Selezionare l'elenco a discesa Tutte le categorie e quindi selezionare Token.

  4. In Segreto pull, selezionare Copia o Scarica per ottenere il valore, come illustrato nello screenshot seguente.

    Screenshot del portale della console di Red Hat che mostra il segreto di pull.

    Il contenuto seguente è un esempio copiato dal portale della console di Red Hat, con i codici di autenticazione sostituiti con xxxx...xxx.

    {"auths":{"cloud.openshift.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"quay.io":{"auth":"xxx...xxx","email":"contoso-user@test.com"},"registry.connect.redhat.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"registry.redhat.io":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"}}}
    
  5. Salvare il segreto in un file in modo da poterlo usare in un secondo momento.

Creare un account del servizio Registro Container di Red Hat

Più avanti, questo articolo illustra come distribuire manualmente un'applicazione in OpenShift usando S2I (Source-to-Image). È necessario un account del servizio Registro Container di Red Hat per eseguire il pull dell'immagine del contenitore per JBoss EAP in cui eseguire l'applicazione. Se si dispone di un account del servizio Registro Container di Red Hat pronto per l'uso, ignorare questa sezione e passare alla sezione successiva, in cui si distribuisce l'offerta.

Usare la procedura seguente per creare un account del servizio Registro Container di Red Hat e ottenere il nome utente e la password. Per altre informazioni, vedere Creazione di account del servizio Registro, nella documentazione di Red Hat.

  1. Usare l'account Red Hat per accedere all'applicazione di gestione degli account del servizio Registro.
  2. Nella pagina Account del servizio Registro, selezionare Nuovo account del servizio.
  3. Specificare un nome per l'account del servizio. Il nome viene anteposto a una stringa fissa e casuale.
    • Immettere una descrizione.
    • Selezionare Crea.
  4. Tornare agli account del servizio.
  5. Selezionare l'account del servizio creato.
    • Prendere nota del nome utente, inclusa la stringa anteposta, ovvero XXXXXXX|username. Usare questo nome utente quando si accede a registry.redhat.io.
    • Prendere nota della password. Usare questa password per accedere a registry.redhat.io.

È stato creato l'account del servizio Registro Container di Red Hat.

Creare un'entità servizio Microsoft Entra dal portale di Azure

L'offerta di Azure Marketplace usata in questo articolo richiede un'entità servizio Microsoft Entra per distribuire il cluster Azure Red Hat OpenShift. L'offerta assegna all'entità servizio privilegi appropriati durante la distribuzione, senza che sia necessaria alcuna assegnazione di ruolo. Se si dispone di un'entità servizio pronta per l'uso, ignorare questa sezione e passare alla sezione successiva, in cui si crea un account del servizio Registro Container di Red Hat.

Usare la procedura seguente per distribuire un'entità servizio e ottenere l'ID applicazione (client) e il segreto dal portale di Azure. Per altre informazioni, vedere Creare e usare un'entità servizio per distribuire un clusterAzure Red Hat OpenShift.

Nota

È necessario disporre di autorizzazioni sufficienti per registrare un'applicazione con il tenant di Microsoft Entra. Se si verifica un problema, controllare le autorizzazioni necessarie per assicurarsi che l'account possa creare l'identità. Per altre informazioni, vedere Registrare un'app Microsoft Entra e creare un'entità servizio.

  1. Accedere all'account di Azure tramite il portale di Azure.

  2. Selezionare Microsoft Entra ID.

  3. Selezionare Registrazioni app.

  4. Seleziona Nuova registrazione.

  5. Denominare l'applicazione, ad esempio jboss-eap-on-aro-app. Selezionare un tipo di account supportato, che determina chi può usare l'applicazione. Dopo aver impostato i valori, selezionare Registra, come illustrato nello screenshot seguente. Il provisioning dell'applicazione richiede alcuni secondi. Attendere il completamento della distribuzione prima di continuare.

    Screenshot del portale di Azure che mostra la pagina Registra un'applicazione.

  6. Salvare l'ID applicazione (client) dalla pagina di panoramica, come illustrato nello screenshot seguente. Passare il puntatore del mouse sul valore, che viene redatto nello screenshot e selezionare l'icona di copia visualizzata. La descrizione comando indica Copia negli Appunti. Prestare attenzione a copiare il valore corretto, poiché anche gli altri valori in tale sezione hanno icone di copia. Salvare l'ID applicazione in un file in modo da poterlo usare in un secondo momento.

    Screenshot del portale di Azure che mostra la pagina Panoramica con l'ID applicazione (client) evidenziato.

  7. Creare un nuovo segreto client seguendo questa procedura:

    1. Selezionare Certificati e segreti.
    2. Selezionare Segreti client, quindi selezionare Nuovo segreto client.
    3. Specificare una descrizione del segreto e una durata. Al termine, selezionare Aggiungi.
    4. Una volta aggiunto il segreto client, il valore verrà visualizzato dopo il salvataggio. Copiare questo valore perché non è possibile recuperarlo in un secondo momento. Assicurarsi di copiare il valore e non l'ID segreto.

È stata creata l'applicazione Microsoft Entra, l'entità servizio e il segreto client.

Convalidare l'entità servizio

Usare il comando seguente per convalidare l'entità servizio:

az login \
    --service-principal \
    --username <service-principal-client-id> \
    --password <service-principal-client-secret> \
    --tenant <tenant-id>
az account show

Sostituire <service-principal-client-id>, <service-principal-client-secret> e <tenant-id> con i valori ottenuti nei passaggi precedenti. Se vengono visualizzate le informazioni sull'account, l'entità servizio è valida.

Distribuire JBoss EAP in Azure Red Hat OpenShift

I passaggi descritti in questa sezione consentono di distribuire JBoss EAP in Azure Red Hat OpenShift.

I passaggi seguenti illustrano come trovare l'offerta e compilare il riquadro Informazioni di base.

  1. Nella barra di ricerca nella parte superiore del portale di Azure immettere JBoss EAP. Nei risultati della ricerca, nella sezione Marketplace, selezionare JBoss EAP in Azure Red Hat OpenShift, come illustrato nello screenshot seguente.

    Screenshot del portale di Azure che mostra JBoss EAP in Azure Red Hat OpenShift nei risultati della ricerca.

    È anche possibile passare direttamente all'offerta JBoss EAP in Azure Red Hat OpenShift nel portale di Azure.

  2. Nella pagina dell'offerta selezionare Creare.

  3. Nel riquadro Informazioni di base, verificare che il valore visualizzato nel campo Sottoscrizione corrisponda a quello con i ruoli elencati nella sezione prerequisiti.

  4. È 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, eaparo033123rg.

  5. In Dettagli istanza selezionare l'area per la distribuzione. Per un elenco delle aree di Azure in cui opera OpenShift, vedere Aree per Red Hat OpenShift 4.x in Azure.

  6. Selezionare Avanti: ARO.

I passaggi seguenti illustrano come compilare il riquadro ARO illustrato nello screenshot seguente:

Screenshot del portale di Azure che mostra JBoss EAP nel riquadro ARO di Azure Red Hat OpenShift.

  1. In Crea un nuovo cluster, selezionare .

  2. In Fornire informazioni per creare un nuovo cluster, per il segreto pull di Red Hat, compilare il segreto pull di Red Hat ottenuto nella sezione Ottenere un segreto di pull di Red Hat. Usare lo stesso valore per Conferma segreto.

  3. Compilare l'ID client dell'entità servizio con l'ID applicazione (client) dell'entità servizio ottenuto nella sezione Creare un'entità servizio Microsoft Entra dal portale di Azure.

  4. Compilare il segreto client dell'entità servizio con il segreto dell'applicazione dell'entità servizio ottenuto nella sezione Creare un'entità servizio Microsoft Entra dal portale di Azure. Usare lo stesso valore per Conferma segreto.

  5. Selezionare Avanti: Applicazione EAP.

I passaggi seguenti illustrano come compilare il riquadro Applicazione EAP illustrato nello screenshot seguente. Poi, avviare la distribuzione.

Screenshot del portale di Azure che mostra JBoss EAP nel riquadro dell'applicazione EAP di Azure Red Hat OpenShift.

  1. Lasciare l'opzione predefinita No per Distribuisci un applicazione in OpenShift usando Source-to-Image (S2I)?.

    Nota

    In seguito, questa guida introduttiva illustra come distribuire manualmente un'applicazione con una connessione di database.

  2. Selezionare Avanti: Rivedi e crea.

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

  4. Seleziona Crea.

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

Durante l'attesa, è possibile configurare il database.

Configurare Server flessibile di Database di Azure per MySQL

Le sezioni seguenti illustrano come configurare il server flessibile di Database di Azure per MySQL.

Impostare le variabili di ambiente nella shell della riga di comando

L'esempio è un'applicazione Java supportata da un database MySQL e viene distribuita nel cluster OpenShift usando Source-to-Image (S2I). Per altre informazioni su S2I, vedere la documentazione di S2I.

Aprire una shell e impostare le variabili di ambiente seguenti. Sostituire le sostituzioni in base alle esigenze.

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

Sostituire i segnaposto con i valori seguenti, che vengono usati nel resto di questo articolo:

  • <resource-group-name>: nome del gruppo di risorse creato in precedenza, ad esempio eaparo033123rg.
  • <database-server-name>: nome del server MySQL, che deve essere univoco in Azure, ad esempio eaparo033123mysql.
  • ADMIN_PASSWORD: la password del server di database MySQL. Questo articolo è stato testato usando la password visualizzata. Per informazioni sulle regole delle password, vedere la documentazione del database.
  • <red-hat-container-registry-service-account-username> e <red-hat-container-registry-service-account-password>: nome utente e password dell'account del servizio Registro Container di Red Hat creato in precedenza.

È consigliabile salvare le coppie nome/valore compilate completamente in un file di testo, nel caso in cui la shell venga chiusa prima di eseguire i comandi. In questo modo, è possibile incollarli in una nuova istanza della shell e continuare facilmente.

Queste coppie nome/valore sono essenzialmente dei "segreti". Per un modo pronto per la produzione che consenta di proteggere Azure Red Hat OpenShift, inclusa la gestione dei segreti, vedere Sicurezza per l'acceleratore della zona di destinazione di Azure Red Hat OpenShift.

Creare e inizializzare il database

Usare quindi la procedura seguente per creare un server flessibile di Database di Azure per MySQL e creare un utente con autorizzazioni di lettura/scrittura da/verso il database specifico.

  1. Usare il comando seguente per creare un server flessibile di Database di Azure per MySQL:

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

    Il completamento di questo comando potrebbe richiedere dieci o più minuti. Al termine del comando, viene visualizzato un output simile all'esempio seguente:

    {
      "connectionString": "mysql testdb --host ejb010406adb.mysql.database.azure.com --user myadmin --password=Secret#123345",
      "databaseName": "testdb",
      "firewallName": "AllowAllAzureServicesAndResourcesWithinAzureIps_2023-4-6_21-21-3",
      "host": "ejb010406adb.mysql.database.azure.com",
      "id": "/subscriptions/redacted/resourceGroups/ejb010406a/providers/Microsoft.DBforMySQL/flexibleServers/ejb010406adb",
      "location": "East US",
      "password": "Secret#123345",
      "resourceGroup": "ejb010406a",
      "skuname": "Standard_B1ms",
      "username": "myadmin",
      "version": "5.7"
    }
    
  2. Usare i comandi seguenti per ottenere l'host del server MySQL creato:

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

    Salvare la coppia nome/valore nel file di testo.

  3. Usare il comando seguente per creare una regola del firewall temporanea per consentire la connessione al server MySQL dalla rete Internet pubblica:

    az mysql flexible-server firewall-rule create \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --rule-name "AllowAllIPs" \
        --start-ip-address 0.0.0.0 \
        --end-ip-address 255.255.255.255
    
  4. Usare il comando seguente per creare un nuovo utente del database con autorizzazioni per leggere e scrivere il database specifico. Questo comando è utile per inviare SQL direttamente al database.

    mysql --host ${DB_HOST} --user ${ADMIN_USERNAME} --password=${ADMIN_PASSWORD} << EOF
    CREATE USER '${DB_USERNAME}'@'%' IDENTIFIED BY '${DB_PASSWORD}';
    GRANT ALL PRIVILEGES ON ${DB_DATABASE_NAME} . * TO '${DB_USERNAME}'@'%';
    FLUSH PRIVILEGES;
    EOF
    
  5. Usare il comando seguente per eliminare la regola del firewall temporanea:

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

È ora disponibile un server di database MySQL in esecuzione e pronto per connettersi all'app.

Verificare la funzionalità della distribuzione

I passaggi descritti in questa sezione illustrano come verificare che la distribuzione sia stata completata correttamente.

Se ci si è allontanati dalla pagina Distribuzione in corso, i passaggi seguenti mostrano come tornare a quella pagina. Se si è ancora nella pagina che mostra il messaggio La distribuzione è stata completata, è possibile passare al quinto passaggio.

  1. Nell’angolo di una pagina qualsiasi del portale di Microsoft Azure, selezionare il menu hamburger e quindi selezionare Gruppi di risorse.

  2. Nella casella con il testo Filtra per qualsiasi campoimmettere i primi caratteri del gruppo di risorse creato in precedenza. Se è stata seguita la convenzione consigliata, immettere le iniziali, quindi selezionare il gruppo di risorse appropriato.

  3. Nella sezione Impostazionidel riquadro di spostamento selezionare Distribuzioni. Viene visualizzato un elenco ordinato delle distribuzioni in questo gruppo di risorse, con quello più recente.

  4. Scorrere fino alla voce meno recente in questo elenco. Questa voce corrisponde alla distribuzione avviata nella sezione precedente. Selezionare la distribuzione meno recente, come illustrato nello screenshot seguente.

    Screenshot del portale di Azure che mostra JBoss EAP nelle distribuzioni di Azure Red Hat OpenShift con la distribuzione meno recente evidenziata.

  5. Nel riquadro di spostamento selezionare Outout. Questo elenco mostra i valori di output della distribuzione, che include alcune informazioni utili.

  6. Aprire la shell, incollare il valore dal campo cmdToGetKubeadminCredentials ed eseguirlo. Vengono visualizzati l'account amministratore e le credenziali per l'accesso al portale della console del cluster OpenShift. L'esempio seguente mostra un account amministratore:

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

    L'output generato dal comando sarà simile all'esempio seguente:

    {
      "kubeadminPassword": "xxxxx-xxxxx-xxxxx-xxxxx",
      "kubeadminUsername": "kubeadmin"
    }
    
  7. Incollare il valore dal campo consoleUrl in un Web browser connesso a Internet e quindi premere INVIO. Immettere il nome utente e la password dell'amministratore, quindi selezionare Accedi. Nella console di amministrazione di Azure Red Hat OpenShift selezionare Operatori>installati, in cui è possibile trovare che l'operatore JBoss EAP sia installato correttamente, come illustrato nello screenshot seguente.

    Screenshot del portale della console del cluster Red Hat OpenShift che mostra la pagina Operatori installati.

Usare quindi la procedura seguente per connettersi al cluster OpenShift usando l'interfaccia della riga di comando di OpenShift:

  1. Nella shell, usare i comandi seguenti per scaricare la versione più recente dell'interfaccia della riga di comando di OpenShift 4 per GNU/Linux. Se è in esecuzione in un sistema operativo diverso da GNU/Linux, scaricare il file binario appropriato per il sistema operativo.

    cd ~
    wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux.tar.gz
    
    mkdir openshift
    tar -zxvf openshift-client-linux.tar.gz -C openshift
    echo 'export PATH=$PATH:~/openshift' >> ~/.bashrc && source ~/.bashrc
    
  2. Incollare il valore dal campo cmdToLoginWithKubeadmin nella shell ed eseguirlo. Verrà visualizzato il messaggio login successful e il progetto in uso. Il contenuto seguente è un esempio del comando per connettersi al cluster OpenShift usando l'interfaccia della riga di comando di OpenShift.

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

    L'output generato dal comando sarà simile all'esempio seguente:

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

Distribuire un'app JBoss EAP nel cluster OpenShift

I passaggi descritti in questa sezione illustrano come distribuire un'app nel cluster.

Distribuire l'app nel cluster

Usare la procedura seguente per distribuire l'app nel cluster. L'app è ospitata nel repository GitHub rhel-jboss-templates/eap-coffee-app.

  1. Nella shell eseguire i comandi seguenti. I comandi creano un progetto, applicano un'autorizzazione per consentire il funzionamento di S2I, l'immagine del segreto pull e il collegamento del segreto agli account di servizio relativi nel progetto per abilitare il pull dell'immagine. Ignorare l'avviso Git relativo allo stato "HEAD scollegato".

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

    Poiché la sezione successiva usa il formato HEREDOC, è consigliabile includerla ed eseguirla nel proprio estratto di codice.

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

    È necessario visualizzare secret/eaparo-sample-pull-secret created per indicare la corretta creazione del segreto. Se questo output non viene visualizzato, risolvere e risolvere il problema prima di continuare. Collegare infine il segreto all'account del servizio predefinito per scaricare le immagini del contenitore in modo che il cluster possa eseguirli.

    oc secrets link default ${CON_REG_SECRET_NAME} --for=pull
    oc secrets link builder ${CON_REG_SECRET_NAME} --for=pull
    
  2. Usare i comandi seguenti per eseguire il pull del flusso di immagini jboss-eap74-openjdk11-openshift. Avviare quindi il processo di origine per l'immagine e attendere il completamento.

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

L'output riuscito dovrebbe terminare con un risultato simile all'esempio seguente:

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

Se non viene visualizzato un messaggio simile, risolvere il problema prima di procedere.

Creare un segreto per la password del database

Usare quindi la procedura seguente per creare un segreto:

  1. Usare il comando seguente per creare un segreto per contenere la password del database:

    oc create secret generic db-secret --from-literal=password=${DB_PASSWORD}
    
  2. Usare i comandi seguenti per distribuire ed eseguire tre repliche dell'app in contenitori nel cluster:

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

    Se il comando è stato completato correttamente, verrà visualizzato wildflyserver.wildfly.org/javaee-cafe created. Se questo output non viene visualizzato, risolvere e risolvere il problema prima di continuare.

  3. Eseguire oc get pod -w | grep 1/1 per monitorare se tutti i pod dell'app sono in esecuzione. Quando viene visualizzato un output simile all'esempio seguente, premere CTRL + C per arrestare il monitoraggio:

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

    Potrebbero essere necessari alcuni minuti per raggiungere lo stato corretto. È anche possibile che vengano visualizzati i valori della colonna STATUS, tra cui ErrImagePull e ImagePullBackOff, prima che venga mostrato Running.

  4. Eseguire il comando seguente per restituire l'URL dell'applicazione. È possibile usare questo URL per accedere all'app di esempio distribuita. Copiare l'output negli Appunti.

    echo http://$(oc get route ${APPLICATION_NAME}-route -o=jsonpath='{.spec.host}')/javaee-cafe
    
  5. Incollare l'output in un Web browser connesso a Internet e quindi premere INVIO. Verrà visualizzata l'interfaccia utente dell'app Java EE Cafe simile alla schermata seguente:

    Screenshot dell'interfaccia utente dell'app di esempio Java EE Cafe.

  6. Aggiungere ed eliminare alcune righe per verificare che la connettività del database funzioni correttamente.

Pulire le risorse

Se non si intende continuare a usare il cluster OpenShift, tornare al gruppo di risorse di lavoro. Nella parte superiore della pagina selezionare il gruppo di risorse sotto il testo Gruppo di risorse. Selezionare quindi Elimina gruppo di risorse.

Passaggio successivo

Per altre informazioni sulla distribuzione di JBoss EAP in Azure, vedere Red Hat JBoss EAP in Azure.