Share via


Quickstart: JBoss EAP implementeren in Azure Red Hat OpenShift met behulp van Azure Portal

In dit artikel leest u hoe u JBoss EAP snel kunt opstaan in Azure Red Hat OpenShift (ARO) met behulp van Azure Portal.

In dit artikel wordt gebruikgemaakt van de Azure Marketplace-aanbieding voor JBoss EAP om uw reis naar ARO te versnellen. De aanbieding richt automatisch resources in, waaronder een ARO-cluster met een ingebouwd OpenShift Container Registry (OCR), de JBoss EAP-operator en eventueel een containerinstallatiekopie, waaronder JBoss EAP en uw toepassing met behulp van Source-to-Image (S2I). Ga naar Azure Portal om de aanbieding te bekijken. Zie Een Java-toepassing implementeren met Red Hat JBoss Enterprise Application Platform (JBoss EAP) op een Azure Red Hat OpenShift 4-cluster als u de voorkeur geeft aan handmatige stapsgewijze instructies voor het uitvoeren van JBoss EAP op ARO waarvoor de automatisering niet wordt gebruikt.

Vereisten

sudo apt update
sudo apt install mysql-server

Notitie

U kunt deze richtlijnen ook uitvoeren vanuit De Azure Cloud Shell. Bij deze benadering zijn alle vereiste hulpprogramma's vooraf geïnstalleerd.

Notitie

Azure Red Hat OpenShift vereist minimaal 40 kernen om een OpenShift-cluster te maken en uit te voeren. Het standaardquotum voor Azure-resources voor een nieuw Azure-abonnement voldoet niet aan deze vereiste. Als u een verhoging van uw resourcelimiet wilt aanvragen, raadpleegt u Standaardquotum: Limieten verhogen per VM-reeks. Houd er rekening mee dat het gratis proefabonnement niet in aanmerking komt voor een quotumverhoging, upgrade naar een abonnement met betalen per gebruik voordat u een quotumverhoging aanvraagt.

Een Red Hat pull-geheim ophalen

Voor de Azure Marketplace-aanbieding die in dit artikel wordt gebruikt, is een Red Hat-pull-geheim vereist. In deze sectie wordt beschreven hoe u een Red Hat-pull-geheim voor Azure Red Hat OpenShift krijgt. Zie de sectie Get a Red Hat pull secret in Tutorial: Create an Azure Red Hat OpenShift 4 cluster voor meer informatie over wat een Red Hat pull-geheim is en waarom u het nodig hebt.

Gebruik de volgende stappen om het pull-geheim op te halen.

  1. Open de Red Hat OpenShift Hybrid Cloud-console en gebruik vervolgens uw Red Hat-account om u aan te melden bij de OpenShift-clusterbeheerportal. Mogelijk moet u meer voorwaarden accepteren en uw account bijwerken, zoals wordt weergegeven in de volgende schermopname. Gebruik hetzelfde wachtwoord als bij het maken van het account.

    Schermopname van de pagina Uw account bijwerken in Red Hat.

  2. Nadat u zich hebt aangemeld, selecteert u OpenShift en vervolgens Downloads.

  3. Selecteer de vervolgkeuzelijst Alle categorieën en selecteer vervolgens Tokens.

  4. Selecteer onder Pull-geheim de optie Kopiëren of Downloaden om de waarde op te halen, zoals wordt weergegeven in de volgende schermopname.

    Schermopname van de Red Hat-consoleportal met het pull-geheim.

    De volgende inhoud is een voorbeeld dat is gekopieerd uit de Red Hat-consoleportal, waarbij de verificatiecodes zijn vervangen door 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. Sla het geheim op in een bestand, zodat u het later kunt gebruiken.

Een Microsoft Entra-service-principal maken vanuit Azure Portal

Voor de Azure Marketplace-aanbieding die in dit artikel wordt gebruikt, is een Microsoft Entra-service-principal vereist om uw Azure Red Hat OpenShift-cluster te implementeren. De aanbieding wijst de service-principal toe met de juiste bevoegdheden tijdens de implementatietijd, zonder dat er roltoewijzing nodig is. Als u een service-principal wilt gebruiken, slaat u deze sectie over en gaat u verder met de volgende sectie, waar u een Red Hat Container Registry-serviceaccount maakt.

Gebruik de volgende stappen om een service-principal te implementeren en de toepassings-id (client) en het geheim ervan op te halen uit de Azure-portal. Zie Een service-principal maken en gebruiken voor het implementeren van een Azure Red Hat OpenShift-cluster voor meer informatie.

Notitie

U moet over voldoende machtigingen beschikken om een toepassing te registreren bij uw Microsoft Entra-tenant. Als u tegen een probleem aanloopt, controleert u de vereiste machtigingen om ervoor te zorgen dat uw account de identiteit kan maken. Zie de machtigingen die vereist zijn voor het registreren van een app-sectie van De portal voor het maken van een Microsoft Entra-toepassing en service-principal die toegang hebben tot resources voor meer informatie.

  1. Meld u via Azure Portal aan bij uw Azure-account.

  2. Selecteer Microsoft Entra ID.

  3. Selecteer App-registraties.

  4. Selecteer Nieuwe registratie.

  5. Geef de toepassing een naam, jboss-eap-on-aro-appbijvoorbeeld. Kies een ondersteund accounttype, dat bepaalt wie de toepassing kan gebruiken. Nadat u de waarden hebt ingesteld, selecteert u Registreren, zoals wordt weergegeven in de volgende schermopname. Het duurt enkele seconden om de toepassing in te richten. Wacht tot de implementatie is voltooid voordat u doorgaat.

    Schermopname van Azure Portal met de pagina Een toepassing registreren.

  6. Sla de toepassings-id (client) op de overzichtspagina op, zoals wordt weergegeven in de volgende schermopname. Beweeg de muisaanwijzer over de waarde, die wordt bewerkt in de schermopname en selecteer het kopieerpictogram dat wordt weergegeven. De knopinfo zegt Kopiëren naar klembord. Zorg ervoor dat u de juiste waarde kopieert, omdat de andere waarden in die sectie ook kopieerpictogrammen hebben. Sla de toepassings-id op in een bestand, zodat u deze later kunt gebruiken.

    Schermopname van Azure Portal met de client-id van de service-principal.

  7. Maak een nieuw clientgeheim door de volgende stappen uit te voeren:

    1. Selecteer Certificaten en geheimen.
    2. Selecteer Clientgeheimen en vervolgens Nieuw clientgeheim.
    3. Geef een beschrijving op van het geheim en een duur. Wanneer u klaar bent, selecteert u Toevoegen.
    4. Nadat het clientgeheim is toegevoegd, wordt de waarde van het clientgeheim weergegeven. Kopieer deze waarde omdat u deze later niet meer kunt ophalen. Kopieer de waarde en niet de geheime id.

U hebt uw Microsoft Entra-toepassing, service-principal en clientgeheim gemaakt.

Een Red Hat Container Registry-serviceaccount maken

Later laat dit artikel zien hoe u handmatig een toepassing implementeert in OpenShift met behulp van Source-to-Image (S2I). Een Red Hat Container Registry-serviceaccount is nodig om de containerinstallatiekopie voor JBoss EAP op te halen waarop uw toepassing moet worden uitgevoerd. Als u een Red Hat Container Registry-serviceaccount hebt dat klaar is voor gebruik, slaat u deze sectie over en gaat u verder met de volgende sectie, waar u de aanbieding implementeert.

Gebruik de volgende stappen om een Red Hat Container Registry-serviceaccount te maken en de gebruikersnaam en het wachtwoord op te halen. Zie Registerserviceaccounts maken in de Red Hat-documentatie voor meer informatie.

  1. Gebruik uw Red Hat-account om u aan te melden bij de registerserviceaccountbeheertoepassing.
  2. Selecteer nieuw serviceaccount op de pagina Registerserviceaccounts.
  3. Geef een naam op voor het serviceaccount. De naam wordt voorafgegaan door een vaste, willekeurige tekenreeks.
    • Voer een omschrijving in.
    • Selecteer Maken.
  4. Ga terug naar uw serviceaccounts.
  5. Selecteer het serviceaccount dat u hebt gemaakt.
    • Noteer de gebruikersnaam, inclusief de vooraf gedefinieerde tekenreeks (dat wil gezegd). XXXXXXX|username Gebruik deze gebruikersnaam wanneer u zich aanmeldt bij registry.redhat.io.
    • Noteer het wachtwoord. Gebruik dit wachtwoord wanneer u zich aanmeldt bij registry.redhat.io.

U hebt uw Red Hat Container Registry-serviceaccount gemaakt.

JBoss EAP implementeren in Azure Red Hat OpenShift

Met de stappen in deze sectie gaat u JBoss EAP implementeren in Azure Red Hat OpenShift.

In de volgende stappen ziet u hoe u de aanbieding kunt vinden en het deelvenster Basisbeginselen kunt invullen.

  1. Voer in de zoekbalk boven in Azure Portal JBoss EAP in. Selecteer in de zoekresultaten in de sectie Marketplace JBoss EAP in Azure Red Hat OpenShift, zoals wordt weergegeven in de volgende schermopname.

    Schermopname van Azure Portal met JBoss EAP in Azure Red Hat OpenShift in zoekresultaten.

    U kunt ook rechtstreeks naar de JBoss EAP in Azure Red Hat OpenShift-aanbieding in Azure Portal gaan.

  2. Selecteer Maken op de pagina aanbieding.

  3. Controleer in het deelvenster Basisbeginselen of de waarde die wordt weergegeven in het veld Abonnement hetzelfde is als de rollen die worden vermeld in de sectie Vereisten.

  4. U moet de aanbieding implementeren in een lege resourcegroep. Selecteer in het veld Resourcegroep nieuwe maken en vul een waarde in voor de resourcegroep. Omdat resourcegroepen uniek moeten zijn binnen een abonnement, kiest u een unieke naam. Een eenvoudige manier om unieke namen te hebben, is door een combinatie van uw initialen, de datum van vandaag en een bepaalde id te gebruiken. Bijvoorbeeld eaparo033123rg.

  5. Selecteer onder Exemplaardetails de regio voor de implementatie. Zie Regio's voor Red Hat OpenShift 4.x in Azure voor een lijst met Azure-regio's waarin OpenShift wordt uitgevoerd.

  6. Selecteer Volgende: ARO.

In de volgende stappen ziet u hoe u het ARO-deelvenster kunt invullen dat wordt weergegeven in de volgende schermopname:

Schermopname van Azure Portal met JBoss EAP in het deelvenster Azure Red Hat OpenShift ARO.

  1. Selecteer Ja onder Een nieuw cluster maken.

  2. Vul onder Geef informatie op voor het maken van een nieuw cluster voor Red Hat-pull-geheim het Red Hat-pull-geheim dat u hebt verkregen in de sectie Get a Red Hat pull secret . Gebruik dezelfde waarde voor Het geheim bevestigen.

  3. Vul de client-id van de service-principal in met de service-principaltoepassings-id (client) die u hebt verkregen in de sectie Een Microsoft Entra-service-principal maken in de sectie Azure Portal.

  4. Vul het clientgeheim van de service-principal in met het toepassingsgeheim van de service-principal die u hebt verkregen in de sectie Een Microsoft Entra-service-principal maken in de sectie Azure Portal. Gebruik dezelfde waarde voor Het geheim bevestigen.

  5. Selecteer Volgende EAP-toepassing.

In de volgende stappen ziet u hoe u het deelvenster EAP-toepassing invult dat wordt weergegeven in de volgende schermopname en vervolgens de implementatie start.

Schermopname van Azure Portal met JBoss EAP in het deelvenster Azure Red Hat OpenShift EAP-toepassing.

  1. Laat de standaardoptie Nee staan voor het implementeren van een toepassing in OpenShift met behulp van Source-to-Image (S2I)?.

    Notitie

    Later ziet u in deze quickstart hoe u handmatig een toepassing implementeert met een databaseverbinding.

  2. Selecteer Volgende: Beoordelen en maken.

  3. Selecteer Controleren + maken. Zorg ervoor dat het groene bericht Validatie geslaagd bovenaan wordt weergegeven. Als het bericht niet wordt weergegeven, lost u validatieproblemen op en selecteert u Controleren en opnieuw maken .

  4. Selecteer Maken.

  5. Houd de voortgang van de implementatie op de implementatiepagina bij .

Afhankelijk van de netwerkomstandigheden en andere activiteiten in uw geselecteerde regio kan het tot 35 minuten duren voordat de implementatie is voltooid.

Terwijl u wacht, kunt u de database instellen.

Azure Database for MySQL - Flexibele server instellen

In de volgende secties ziet u hoe u Azure Database for MySQL - Flexible Server instelt.

Omgevingsvariabelen instellen in de opdrachtregelshell

Het voorbeeld is een Java-toepassing die wordt ondersteund door een MySQL-database en wordt geïmplementeerd in het OpenShift-cluster met behulp van Source-to-Image (S2I). Zie de S2I-documentatie voor meer informatie over S2I.

Open een shell en stel de volgende omgevingsvariabelen in. Vervang de vervangingen indien van toepassing.

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

Vervang de tijdelijke aanduidingen door de volgende waarden, die in de rest van het artikel worden gebruikt:

  • <resource-group-name>: De naam van de resourcegroep die u eerder hebt gemaakt, eaparo033123rgbijvoorbeeld.
  • <database-server-name>: De naam van uw MySQL-server, die uniek moet zijn in Azure, eaparo033123mysqlbijvoorbeeld.
  • ADMIN_PASSWORD: het beheerderswachtwoord van uw MySQL-databaseserver. Dit artikel is getest met behulp van het weergegeven wachtwoord. Raadpleeg de databasedocumentatie voor wachtwoordregels.
  • <red-hat-container-registry-service-account-username> en <red-hat-container-registry-service-account-password>: de gebruikersnaam en het wachtwoord van het Red Hat Container Registry-serviceaccount dat u eerder hebt gemaakt.

Het is een goed idee om de volledig ingevulde naam-/waardeparen op te slaan in een tekstbestand, voor het geval de shell wordt afgesloten voordat u klaar bent met het uitvoeren van de opdrachten. Op die manier kunt u ze in een nieuw exemplaar van de shell plakken en eenvoudig doorgaan.

Deze naam-/waardeparen zijn in wezen 'geheimen'. Zie Security for the Azure Red Hat OpenShift accelerator (Beveiliging voor de Azure Red Hat OpenShift-landingszoneversneller) voor een productieklare manier om Azure Red Hat OpenShift te beveiligen, inclusief geheimbeheer.

De database maken en initialiseren

Gebruik vervolgens de volgende stappen om een Azure Database for MySQL - Flexible Server te maken en een gebruiker te maken met machtigingen voor het lezen/schrijven van/naar de specifieke database.

  1. Gebruik de volgende opdracht om een Azure Database for MySQL - Flexible Server te maken:

    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
    

    Het kan tien of meer minuten duren voordat deze opdracht is voltooid. Wanneer de opdracht is voltooid, ziet u uitvoer die lijkt op het volgende voorbeeld:

    {
      "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. Gebruik de volgende opdrachten om de host van de gemaakte MySQL-server op te halen:

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

    Sla het naam-/waardepaar op in het tekstbestand.

  3. Gebruik de volgende opdracht om een tijdelijke firewallregel te maken om verbinding met de MySQL-server vanaf het openbare internet toe te staan:

    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. Gebruik de volgende opdracht om een nieuwe databasegebruiker te maken met machtigingen voor het lezen en schrijven van de specifieke database. Deze opdracht is handig om SQL rechtstreeks naar de database te verzenden.

    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. Gebruik de volgende opdracht om de tijdelijke firewallregel te verwijderen:

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

U hebt nu een MySQL-databaseserver die wordt uitgevoerd en klaar is om verbinding te maken met uw app.

De functionaliteit van de implementatie controleren

In de stappen in deze sectie ziet u hoe u kunt controleren of de implementatie is voltooid.

Als u weg navigeert van de implementatiepagina wordt uitgevoerd , ziet u in de volgende stappen hoe u terug kunt gaan naar die pagina. Als u nog steeds op de pagina bent waarin wordt aangegeven dat uw implementatie is voltooid, kunt u doorgaan naar stap 5.

  1. Selecteer in de hoek van een azure-portalpagina het hamburgermenu en selecteer vervolgens Resourcegroepen.

  2. Voer in het vak met het tekstfilter voor een veld de eerste paar tekens in van de resourcegroep die u eerder hebt gemaakt. Als u de aanbevolen conventie hebt gevolgd, voert u uw initialen in en selecteert u vervolgens de juiste resourcegroep.

  3. Selecteer Implementaties in het navigatiedeelvenster in de sectie Instellingen. U ziet een geordende lijst met de implementaties voor deze resourcegroep, met de meest recente eerst.

  4. Schuif naar het oudste item in deze lijst. Deze vermelding komt overeen met de implementatie die u in de vorige sectie hebt gestart. Selecteer de oudste implementatie, zoals wordt weergegeven in de volgende schermopname.

    Schermopname van Azure Portal met JBoss EAP in Azure Red Hat OpenShift-implementaties met de oudste implementatie gemarkeerd.

  5. Selecteer Uitvoer in het navigatiedeelvenster. Deze lijst bevat de uitvoerwaarden van de implementatie, die nuttige informatie bevat.

  6. Open de shell, plak de waarde uit het veld cmdToGetKubeadminCredentials en voer deze uit. U ziet het beheerdersaccount en de referenties voor aanmelding bij de OpenShift-clusterconsoleportal. In het volgende voorbeeld ziet u een beheerdersaccount:

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

    Met deze opdracht wordt uitvoer geproduceerd die vergelijkbaar is met het volgende voorbeeld:

    {
      "kubeadminPassword": "xxxxx-xxxxx-xxxxx-xxxxx",
      "kubeadminUsername": "kubeadmin"
    }
    
  7. Plak de waarde uit het consoleUrl-veld in een webbrowser met internetverbinding en druk op Enter. Vul de gebruikersnaam en het wachtwoord van de beheerder in en selecteer Vervolgens Aanmelden. Selecteer in de beheerconsole van Azure Red Hat OpenShift operators>geïnstalleerd operators, waar u kunt zien dat de JBoss EAP-operator is geïnstalleerd, zoals wordt weergegeven in de volgende schermopname.

    Schermopname van de Consoleportal van het Red Hat OpenShift-cluster met de pagina Geïnstalleerde operators.

Gebruik vervolgens de volgende stappen om verbinding te maken met het OpenShift-cluster met behulp van de OpenShift CLI:

  1. Gebruik in de shell de volgende opdrachten om de nieuwste OpenShift 4 CLI voor GNU/Linux te downloaden. Als het wordt uitgevoerd op een ander besturingssysteem dan GNU/Linux, downloadt u het juiste binaire bestand voor dat besturingssysteem.

    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. Plak de waarde uit het veld cmdToLoginWithKubeadmin in de shell en voer deze uit. U ziet het login successful bericht en het project dat u gebruikt. De volgende inhoud is een voorbeeld van de opdracht om verbinding te maken met het OpenShift-cluster met behulp van de OpenShift CLI.

    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)
    

    Met deze opdracht wordt uitvoer geproduceerd die vergelijkbaar is met het volgende voorbeeld:

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

Een JBoss EAP-app implementeren in het OpenShift-cluster

In de stappen in deze sectie ziet u hoe u een app in het cluster implementeert.

De app implementeren in het cluster

Gebruik de volgende stappen om de app in het cluster te implementeren. De app wordt gehost in de GitHub-opslagplaats rhel-jboss-templates/eap-coffee-app.

  1. Voer in de shell de volgende opdrachten uit. Met de opdrachten maakt u een project, past u een machtiging toe om S2I te laten werken, maakt u een afbeelding van het pull-geheim en koppelt u het geheim aan de relatieve serviceaccounts in het project om de pull-installatiekopie in te schakelen. Negeer de Git-waarschuwing over de status 'losgekoppelde HEAD'.

    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)
    

    Omdat in de volgende sectie de HEREDOC-indeling wordt gebruikt, kunt u deze het beste opnemen en uitvoeren in een eigen codefragment.

    
    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
    

    U moet zien secret/eaparo-sample-pull-secret created dat het geheim is gemaakt. Als u deze uitvoer niet ziet, kunt u het probleem oplossen voordat u doorgaat. Koppel tot slot het geheim aan het standaardserviceaccount voor het downloaden van containerinstallatiekopieën, zodat het cluster ze kan uitvoeren.

    oc secrets link default ${CON_REG_SECRET_NAME} --for=pull
    oc secrets link builder ${CON_REG_SECRET_NAME} --for=pull
    
  2. Gebruik de volgende opdrachten om de installatiekopiestroom jboss-eap74-openjdk11-openshiftop te halen. Start vervolgens de bron naar het afbeeldingsproces en wacht totdat deze is voltooid.

    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
    

Geslaagde uitvoer moet eindigen met iets dat lijkt op het volgende voorbeeld:

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

Als u vergelijkbare uitvoer niet ziet, kunt u het probleem oplossen voordat u doorgaat.

Een geheim maken voor het databasewachtwoord

Gebruik vervolgens de volgende stappen om een geheim te maken:

  1. Gebruik de volgende opdracht om een geheim te maken voor het bewaren van het wachtwoord van de database:

    oc create secret generic db-secret --from-literal=password=${DB_PASSWORD}
    
  2. Gebruik de volgende opdrachten om drie replica's van de container-app in het cluster te implementeren en uit te voeren:

    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
    

    Als de opdracht is voltooid, ziet u het volgende wildflyserver.wildfly.org/javaee-cafe created. Als u deze uitvoer niet ziet, kunt u het probleem oplossen voordat u doorgaat.

  3. Voer uit oc get pod -w | grep 1/1 om te controleren of alle pods van de app worden uitgevoerd. Wanneer u uitvoer ziet die vergelijkbaar is met het volgende voorbeeld, drukt u op Ctrl + C om de bewaking te stoppen:

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

    Het kan enkele minuten duren voordat de juiste status is bereikt. Mogelijk ziet STATUS u zelfs kolomwaarden, waaronder ErrImagePull en ImagePullBackOff voordat Running deze wordt weergegeven.

  4. Voer de volgende opdracht uit om de URL van de toepassing te retourneren. U kunt deze URL gebruiken voor toegang tot de geïmplementeerde voorbeeld-app. Kopieer de uitvoer naar het klembord.

    echo http://$(oc get route ${APPLICATION_NAME}-route -o=jsonpath='{.spec.host}')/javaee-cafe
    
  5. Plak de uitvoer in een webbrowser met internetverbinding en druk op Enter. U ziet nu de gebruikersinterface van de Java EE Cafe-app die vergelijkbaar is met de volgende schermopname:

    Schermopname van de gebruikersinterface van de Java EE Cafe-app.

  6. Voeg enkele rijen toe en verwijder deze om te controleren of de databaseverbinding correct werkt.

Resources opschonen

Als u het OpenShift-cluster niet meer gaat gebruiken, gaat u terug naar uw werkresourcegroep. Selecteer boven aan de pagina, onder de tekst Resourcegroep, de resourcegroep. Selecteer vervolgens Resourcegroep verwijderen.

Volgende stappen

Volg deze koppelingen voor meer informatie over het implementeren van JBoss EAP in Azure: