Share via


Guida introduttiva: Distribuire JBoss EAP in Azure Red Hat OpenShift usando il portale di Azure

Questo articolo illustra come supportare rapidamente JBoss 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 indicazioni dettagliate manuali per l'esecuzione di JBoss EAP in ARO che non usa l'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.

Prerequisiti

  • Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

  • Un account Red Hat con profilo completo. Se non è disponibile, è possibile iscriversi per ottenere una sottoscrizione per sviluppatori gratuita tramite la sottoscrizione per sviluppatori Red Hat per utenti singoli.

  • Riga di comando per sviluppatori locale con un ambiente di comando simile a UNIX, ad esempio Ubuntu, macOS o sottosistema Windows per Linux, e l'interfaccia della riga di comando di Azure installata. Per informazioni su come installare l'interfaccia della riga di comando di Azure, vedere Come installare l'interfaccia della riga di comando di Azure.

  • Interfaccia della mysql riga di comando. È possibile installare l'interfaccia della riga di comando usando i comandi seguenti:

sudo apt update
sudo apt install mysql-server

Nota

È anche possibile eseguire queste linee guida da Azure Cloud Shell. Questo approccio include tutti gli strumenti prerequisiti preinstallati.

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 Quota standard: aumentare i limiti per serie di macchine virtuali. Si noti che la sottoscrizione di valutazione gratuita non è idonea per un aumento della quota, eseguire l'aggiornamento a una sottoscrizione con pagamento in base al consumo prima di richiedere un aumento della quota.

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 in Esercitazione: Creare un cluster Azure Red Hat OpenShift 4.

Per ottenere il segreto 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 Red Hat Update Your Account (Aggiornamento dell'account).

  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 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'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 Azure Container Red Hat.

Usare la procedura seguente per distribuire un'entità servizio e ottenere il relativo ID applicazione (client) e segreto dal portale di Azure. Per altre informazioni, vedere Creare e usare un'entità servizio per distribuire un cluster Azure 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 la sezione Autorizzazioni necessarie per la registrazione di un'app in Usare il portale per creare un'applicazione Microsoft Entra e un'entità servizio in grado di accedere alle risorse.

  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, jboss-eap-on-aro-appad esempio . 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 procedere.

    Screenshot di 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 di portale di Azure che mostra l'ID client dell'entità servizio.

  7. Creare un nuovo segreto client seguendo questa procedura:

    1. Selezionare Certificati e segreti.
    2. Selezionare Segreti client e quindi Nuovo segreto client.
    3. Specificare una descrizione del segreto e una durata. Al termine, selezionare Aggiungi.
    4. Dopo aver aggiunto il segreto client, viene visualizzato il valore del segreto client. 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.

Creare un account del servizio Registro Azure Container 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 Azure Container 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 Azure Container 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 Azure Container Red Hat e ottenere il nome utente e la password. Per altre informazioni, vedere Creazione di account del servizio registro di sistema 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 di sistema selezionare Nuovo account del servizio.
  3. Specificare un nome per l'account del servizio. Il nome viene anteporto 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 anteporta , ovvero XXXXXXX|username. Usare questo nome utente quando si accede a registry.redhat.io.
    • Prendere nota della password. Usare questa password quando si accede a registry.redhat.io.

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

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 di 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 compilare 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 di portale di Azure che mostra il riquadro JBoss EAP in Azure Red Hat OpenShift ARO.

  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 Confirm secret( 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 dalla sezione portale di Azure.

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

  5. Selezionare Next EAP Application (Applicazione EAP successiva).

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

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

  1. Lasciare l'opzione predefinita No for Deploy an application to OpenShift using Source-to-Image (S2I)?.

    Nota

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

  2. Selezionare Avanti: Rivedi e crea.

  3. Selezionare Rivedi e crea. Verificare che nella parte superiore venga visualizzato il messaggio Convalida superata verde. Se il messaggio non viene visualizzato, correggere eventuali problemi di convalida e 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 può richiedere fino a 35 minuti.

Durante l'attesa, è possibile configurare il database.

Configurare Database di Azure per MySQL - Server flessibile

Le sezioni seguenti illustrano come configurare Database di Azure per MySQL - Server flessibile.

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 dell'articolo:

  • <resource-group-name>: nome del gruppo di risorse creato in precedenza, eaparo033123rgad esempio .
  • <database-server-name>: nome del server MySQL, che deve essere univoco in Azure, eaparo033123mysqlad esempio .
  • ADMIN_PASSWORD: password amministratore 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 Azure Container 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 "segreti". Per un modo pronto per la produzione per proteggere Azure Red Hat OpenShift, inclusa la gestione dei segreti, vedere Security for the Azure Red Hat OpenShift landing zone accelerator (Sicurezza per l'acceleratore di zona di destinazione di Azure Red Hat OpenShift).

Creare e inizializzare il database

Usare quindi la procedura seguente per creare un server flessibile 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 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 può 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 venga 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 che la distribuzione è stata completata, è possibile passare al passaggio 5.

  1. Nell'angolo di qualsiasi portale di Azure pagina 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 di 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
    

    Questo comando genera un output 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 login successful messaggio 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)
    

    Questo comando genera un output 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 procedere. 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 jboss-eap74-openjdk11-openshiftdi immagini . 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 output simile, risolvere e 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 procedere.

  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 STATUS i valori delle colonne, inclusi ErrImagePull e ImagePullBackOff prima 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 edizione Enterprise Cafe simile alla schermata seguente:

    Screenshot dell'interfaccia utente dell'app Java edizione Enterprise 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.

Passaggi successivi

Per altre informazioni sulla distribuzione di JBoss EAP in Azure, vedere i collegamenti seguenti: