Dela via


Självstudie: Installera JBoss EAP på virtuella Azure-datorer manuellt

Den här självstudien visar stegen för att installera Red Hat JBoss Enterprise Application Platform (EAP) och konfigurera ett kluster i domänläge på virtuella Azure-datorer (VM) på Red Hat Enterprise Linux (RHEL).

I den här självstudien får du lära dig hur du utför följande uppgifter:

  • Skapa ett anpassat virtuellt nätverk och skapa de virtuella datorerna i nätverket.
  • Installera önskad JDK och Red Hat JBoss EAP på de virtuella datorerna med hjälp av kommandoraden manuellt.
  • Konfigurera ett Red Hat JBoss EAP-kluster i domänläge med hjälp av kommandoradsgränssnittet (CLI).
  • Konfigurera en PostgreSQL-datakällaanslutning i klustret.
  • Distribuera och kör ett Java EE-exempelprogram i klustret.
  • Exponera programmet för det offentliga Internet via Azure Application Gateway.
  • Verifiera den lyckade konfigurationen.

Om du föredrar en helt automatiserad lösning som utför alla dessa steg åt dig på virtuella GNU-/Linux-datorer, direkt från Azure Portal, kan du läsa Snabbstart: Distribuera ett JBoss EAP-kluster på virtuella Azure-datorer (VM).

Om du är intresserad av att ge feedback eller arbeta nära dina migreringsscenarier med utvecklingsteamet som utvecklar JBoss EAP för Azure-lösningar, fyller du i den här korta undersökningen om JBoss EAP-migrering och inkluderar din kontaktinformation. Teamet med programchefer, arkitekter och ingenjörer kommer snabbt att kontakta dig för att initiera ett nära samarbete.

Kommentar

Den här artikeln innehåller referenser till termen slav, en term som Microsoft inte längre använder. När termen tas bort från programvaran tar vi bort den från den här artikeln.

Förutsättningar

  • En Azure-prenumeration. Om du inte har en Azure-prenumeration kan du skapa ettkostnadsfritt konto innan du börjar.

  • Installera Azure CLI version 2.51.0 eller senare för att köra Azure CLI-kommandon.

    • När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.
    • Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
  • Se till att du har de nödvändiga Red Hat-licenserna. Du måste ha ett Red Hat-konto med red hat-prenumerationshantering (RHSM) för Red Hat JBoss EAP. Med den här behörigheten kan den helt automatiserade lösningen (i Snabbstart: Distribuera ett JBoss EAP-kluster på virtuella Azure-datorer )) installera red hat-testad och certifierad JBoss EAP-version.

    Kommentar

    Om du inte har en EAP-behörighet kan du registrera dig för en kostnadsfri utvecklarprenumeration via Red Hat Developer-prenumerationen för enskilda användare. Spara bort kontoinformationen, som används som RHSM-användarnamn och RHSM-lösenord i nästa avsnitt.

  • Om du redan är registrerad eller när du har slutfört registreringen kan du hitta de nödvändiga autentiseringsuppgifterna (pool-ID:t) med hjälp av följande steg. Dessa pool-ID: n används också som RHSM-pool-ID med EAP-berättigande i efterföljande steg.

    1. Logga in på ditt Red Hat-konto.

    2. Första gången du loggar in uppmanas du att slutföra din profil. Beroende på din användning väljer du antingen Personlig eller Företags för kontotyp, som du ser i följande skärmbild:

      Skärmbild av fönstret Red Hat-konto som visar alternativen Kontotyp med Personligt valt.

    3. Öppna Red Hat Developer-prenumerationen för enskilda användare. Den här länken tar dig till alla prenumerationer i ditt konto för lämplig SKU.

    4. På raden med kontroller under tabellen Alla köpta prenumerationer väljer du Aktiv.

    5. Välj den sorterbara kolumnrubriken för Slutdatum tills värdet längst fram i framtiden visas som den första raden.

    6. Välj den första raden. Kopiera och spara sedan värdet efter huvudpooler från pool-ID:t.

  • Ett Java Development Kit (JDK), version 11. I den här guiden rekommenderar vi Red Hat Build of OpenJDK. Kontrollera att miljövariabeln JAVA_HOME är korrekt inställd i de gränssnitt där du kör kommandona.

  • Git; används git --version för att testa om git fungerar. Den här självstudien har testats med version 2.25.1.

  • Maven; använd mvn -version för att testa om mvn fungerar. Den här självstudien har testats med version 3.6.3.

Förbereda miljön

I det här avsnittet konfigurerar du infrastrukturen där du installerar JDK, Red Hat JBoss EAP och PostgreSQL Java Database Connectivity-drivrutinen (JDBC).

Antaganden

Den här självstudien konfigurerar ett Red Hat JBoss EAP-kluster i domänläge med en administrationsserver och två hanterade servrar på totalt tre virtuella datorer. För att konfigurera klustret måste du skapa följande tre virtuella Azure-datorer:

  • En virtuell administratörsdator (VM-namn adminVM) körs som domänkontrollant.
  • Två hanterade virtuella datorer (VM-namn mspVM1 och mspVM2) körs som värdstyrenhet.

Logga in på Azure

Om du inte redan har gjort det loggar du in på din Azure-prenumeration med kommandot az login och följer anvisningarna på skärmen.

az login

Kommentar

Om du har flera Azure-klienter associerade med dina Azure-autentiseringsuppgifter måste du ange vilken klientorganisation du vill logga in på. Du kan göra detta med alternativet --tenant . Exempel: az login --tenant contoso.onmicrosoft.com

Skapa en resursgrupp

Skapa en resursgrupp med az group create. Resursgruppsnamn måste vara globalt unika i en prenumeration. Därför bör du överväga att lägga till en unik identifierare för alla namn som du skapar som måste vara unika. En användbar teknik är att använda dina initialer följt av dagens datum i mmdd format. I det här exemplet skapas en resursgrupp med namnet $RESOURCE_GROUP_NAME på platsen westus :

export SUFFIX=$(date +%s)
export RESOURCE_GROUP_NAME=rg-$SUFFIX
echo "Resource group name: $RESOURCE_GROUP_NAME"
az group create \
    --name $RESOURCE_GROUP_NAME \
    --location westus

Skapa ett virtuellt nätverk

Resurserna som består av ditt Red Hat JBoss EAP-kluster måste kommunicera med varandra och det offentliga Internet med hjälp av ett virtuellt nätverk. En fullständig guide för hur du planerar ditt virtuella nätverk finns i cloud adoption framework for Azure guide Plan virtual networks (Molnimplementeringsramverk för Azure) planera virtuella nätverk. Mer information finns i Vanliga frågor och svar om Azure Virtual Network.

Exemplet i det här avsnittet skapar ett virtuellt nätverk med adressutrymme 192.168.0.0/16 och skapar ett undernät som används för virtuella datorer.

Skapa först ett virtuellt nätverk med az network vnet create. I följande exempel skapas ett nätverk med namnet myVNet:

az network vnet create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name myVNet \
    --address-prefixes 192.168.0.0/24

Skapa ett undernät för Red Hat JBoss EAP-klustret med az network vnet subnet create. I följande exempel skapas ett undernät med namnet mySubnet:

az network vnet subnet create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name mySubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.0.0/25

Skapa ett undernät för Application Gateway med az network vnet subnet create. I följande exempel skapas ett undernät med namnet jbossVMGatewaySubnet:

az network vnet subnet create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name jbossVMGatewaySubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.0.128/25

Skapa en nätverkssäkerhetsgrupp och tilldela undernät till den

Innan du skapar virtuella datorer med offentliga IP-adresser skapar du en nätverkssäkerhetsgrupp (NSG) för att skydda det virtuella nätverket och undernät som skapades tidigare.

Skapa en nätverkssäkerhetsgrupp med hjälp av az network nsg create. I följande exempel skapas en nätverkssäkerhetsgrupp med namnet mynsg:

az network nsg create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name mynsg

Skapa regler för nätverkssäkerhetsgrupp med hjälp av az network nsg rule create. I följande exempel skapas regler för nätverkssäkerhetsgrupper med namnet ALLOW_APPGW och ALLOW_HTTP_ACCESS. Dessa regler tillåter att App Gateway accepterar inkommande trafik på HTTP-portarna som används av Red Hat JBoss EAP:

az network nsg rule create \
    --resource-group $RESOURCE_GROUP_NAME \
    --nsg-name mynsg \
    --name ALLOW_APPGW \
    --protocol Tcp \
    --destination-port-ranges 65200-65535 \
    --source-address-prefix GatewayManager \
    --destination-address-prefix '*' \
    --access Allow \
    --priority 500 \
    --direction Inbound

az network nsg rule create \
    --resource-group $RESOURCE_GROUP_NAME \
    --nsg-name mynsg \
    --name ALLOW_HTTP_ACCESS \
    --protocol Tcp \
    --destination-port-ranges 22 80 443 9990 8080 \
    --source-address-prefix Internet \
    --destination-address-prefix '*' \
    --access Allow \
    --priority 510 \
    --direction Inbound

Associera de undernät som skapades tidigare till den här nätverkssäkerhetsgruppen med az network vnet subnet update, som du ser i följande exempel:

az network vnet subnet update \
    --resource-group $RESOURCE_GROUP_NAME \
    --vnet-name myVNet \
    --name mySubnet \
    --network-security-group mynsg

az network vnet subnet update \
    --resource-group $RESOURCE_GROUP_NAME \
    --vnet-name myVNet \
    --name jbossVMGatewaySubnet \
    --network-security-group mynsg

Skapa en Red Hat Enterprise Linux-dator för administratör

Skapa den virtuella administratörsdatorn

Den Marketplace-avbildning som du använder för att skapa de virtuella datorerna är RedHat:rhel-raw:86-gen2:latest. Andra avbildningar finns i Red Hat Enterprise Linux-avbildningar (RHEL) som är tillgängliga i Azure.

Kommentar

Du kan fråga alla tillgängliga Red Hat Enterprise Linux-avbildningar från Red Hat med kommandot az vm image list – till exempel: az vm image list --offer RHEL --publisher RedHat --output table --all. Mer information finns i Översikt över Red Hat Enterprise Linux-avbildningar.

Om du använder en annan avbildning kan du behöva installera extra bibliotek för att aktivera infrastrukturen som används i den här guiden.

Skapa en grundläggande virtuell dator, installera alla nödvändiga verktyg på den, ta en ögonblicksbild av den och skapa sedan repliker baserat på ögonblicksbilden.

Skapa en virtuell dator med az vm create. Du kör administrationsservern på den här virtuella datorn.

I följande exempel skapas en virtuell Red Hat Enterprise Linux-dator med användarnamn och lösenordspar för autentiseringen. Om du vill kan du använda TLS/SSL-autentisering i stället.

az vm create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name adminVM \
    --image RedHat:rhel-raw:86-gen2:latest \
    --size Standard_DS1_v2  \
    --admin-username azureuser \
    --admin-password Secret123456 \
    --public-ip-sku Standard \
    --nsg mynsg \
    --vnet-name myVnet \
    --subnet mySubnet

Installera Red Hat JBoss EAP

Använd följande steg för att installera:

  1. Använd följande kommando för att hämta den offentliga IP-adressen adminVMför :

    export ADMIN_VM_PUBLIC_IP=$(az vm show \
        --resource-group $RESOURCE_GROUP_NAME \
        --name adminVM \
        --show-details \
        --query publicIps | tr -d '"')
    
  2. Öppna en terminal och SSH till adminVM med hjälp av följande kommando:

    ssh azureuser@$ADMIN_VM_PUBLIC_IP
    
  3. Ange Secret123456 som lösenord.

  4. Konfigurera brandväggen för portar med hjälp av följande kommando:

    sudo firewall-cmd --zone=public --add-port={9999/tcp,8443/tcp,8009/tcp,8080/tcp,9990/tcp,9993/tcp,45700/tcp,7600/tcp} --permanent
    sudo firewall-cmd --reload
    sudo iptables-save
    

    Du bör se ordet success efter de två första kommandona. Du bör se utdata som liknar följande exempel efter det tredje kommandot:

    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *filter
    :INPUT ACCEPT [20:3546]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [24:5446]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *security
    :INPUT ACCEPT [19:3506]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [5:492]
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m tcp --dport 53 -j ACCEPT
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m tcp --dport 53 -j ACCEPT
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m owner --uid-owner 0 -j ACCEPT
    -A OUTPUT -d 168.63.129.16/32 -p tcp -m conntrack --ctstate INVALID,NEW -j DROP
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *raw
    :PREROUTING ACCEPT [20:3546]
    :OUTPUT ACCEPT [24:5446]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *mangle
    :PREROUTING ACCEPT [20:3546]
    :INPUT ACCEPT [20:3546]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [24:5446]
    :POSTROUTING ACCEPT [24:5446]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    # Generated by iptables-save v1.8.4 on Wed Mar 29 22:39:23 2023
    *nat
    :PREROUTING ACCEPT [1:40]
    :INPUT ACCEPT [0:0]
    :POSTROUTING ACCEPT [4:240]
    :OUTPUT ACCEPT [4:240]
    COMMIT
    # Completed on Wed Mar 29 22:39:23 2023
    
  5. Använd följande kommandon för att registrera administratörsvärden till ditt RHSM-konto (Red Hat Subscription Management):

    export RHSM_USER=<your-rhsm-username>
    export RHSM_PASSWORD='<your-rhsm-password>'
    export EAP_POOL=<your-rhsm-pool-ID>
    
    sudo subscription-manager register --username ${RHSM_USER} --password ${RHSM_PASSWORD} --force
    

    Du bör se utdata som liknar följande exempel:

    Registering to: subscription.rhsm.redhat.com:443/subscription
    The system has been registered with ID: redacted
    The registered system name is: adminVM
    
  6. Använd följande kommando för att koppla administratörsvärden till Red Hat JBoss EAP-poolen:

    sudo subscription-manager attach --pool=${EAP_POOL}
    

    Kommentar

    Det här kommandot ignoreras om du använder läget Enkel innehållsåtkomst .

  7. Använd följande kommandon för att installera Red Hat JBoss EAP :

    sudo subscription-manager repos --enable=jb-eap-7.4-for-rhel-8-x86_64-rpms
    sudo yum update -y --disablerepo='*' --enablerepo='*microsoft*'
    sudo yum groupinstall -y jboss-eap7
    

För de andra och tredje kommandona bör du se många rader med utdata som slutar med Complete!

  1. Använd följande kommandouppsättningsbehörighet och nätverkskonfigurationer:

    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
    echo 'AllowTcpForwarding no' | sudo tee -a /etc/ssh/sshd_config
    sudo systemctl restart sshd
    
  2. Använd följande kommandon för att konfigurera miljövariablerna:

    echo 'export EAP_RPM_CONF_DOMAIN="/etc/opt/rh/eap7/wildfly/eap7-domain.conf"' >> ~/.bash_profile
    echo 'export EAP_HOME="/opt/rh/eap7/root/usr/share"' >> ~/.bash_profile
    source ~/.bash_profile
    sudo touch /etc/profile.d/eap_env.sh
    echo 'export EAP_HOME="/opt/rh/eap7/root/usr/share"' | sudo tee -a /etc/profile.d/eap_env.sh
    
  3. Avsluta SSH-anslutningen genom att skriva avsluta.

Skapa datorer för hanterade servrar

Du har installerat Red Hat JBoss EAP på adminVM, som körs som domänkontrollantserver. Du måste fortfarande förbereda datorer för att köra de två värdstyrenhetsservrarna. Sedan skapar du en ögonblicksbild av adminVM och förbereder datorer för två hanterade severs mspVM1 och mspVM2.

I det här avsnittet beskrivs en metod för att förbereda datorer med ögonblicksbilden av adminVM. Gå tillbaka till terminalen som har Azure CLI inloggad och använd sedan följande steg:

  1. Använd följande kommando för att stoppa adminVM:

    az vm stop --resource-group $RESOURCE_GROUP_NAME --name adminVM
    
  2. Använd az snapshot create för att ta en ögonblicksbild av OS-disken adminVM , som du ser i följande exempel:

    export ADMIN_OS_DISK_ID=$(az vm show \
        --resource-group $RESOURCE_GROUP_NAME \
        --name adminVM \
        --query storageProfile.osDisk.managedDisk.id \
        --output tsv)
    az snapshot create \
        --resource-group $RESOURCE_GROUP_NAME \
        --name myAdminOSDiskSnapshot \
        --source ${ADMIN_OS_DISK_ID}
    
  3. Använd följande kommando för att starta adminVM:

    az vm start --resource-group $RESOURCE_GROUP_NAME --name adminVM
    
  4. Använd följande steg för att skapa mspVM1:

    1. Skapa först en hanterad disk för mspVM1 med az disk create:

      #Get the snapshot ID
      export SNAPSHOT_ID=$(az snapshot show \
          --name myAdminOSDiskSnapshot \
          --resource-group $RESOURCE_GROUP_NAME \
          --query '[id]' \
          --output tsv)
      
      #Create a new Managed Disks using the snapshot Id
      #Note that managed disk is created in the same location as the snapshot
      az disk create \
          --resource-group $RESOURCE_GROUP_NAME \
          --name mspVM1_OsDisk_1 \
          --source ${SNAPSHOT_ID}
      
    2. Använd sedan följande kommandon för att skapa en virtuell dator och ansluta OS-disk mspVM1mspVM1_OsDisk_1:

      #Get the resource Id of the managed disk
      export MSPVM1_DISK_ID=$(az disk show \
          --name mspVM1_OsDisk_1 \
          --resource-group $RESOURCE_GROUP_NAME \
          --query '[id]' \
          --output tsv)
      
      #Create VM by attaching existing managed disks as OS
      az vm create \
          --resource-group $RESOURCE_GROUP_NAME \
          --name mspVM1 \
          --attach-os-disk ${MSPVM1_DISK_ID} \
          --os-type linux \
          --public-ip-sku Standard \
          --nsg mynsg \
          --vnet-name myVnet \
          --subnet mySubnet
      
    3. Du skapade mspVM1 med Red Hat JBoss EAP installerat. Eftersom den virtuella datorn skapades från en ögonblicksbild av OS-disken adminVM har de två virtuella datorerna samma värdnamn. Använd az vm run-command invoke för att ändra värdnamnet till värdet mspVM1:

      az vm run-command invoke \
          --resource-group $RESOURCE_GROUP_NAME \
          --name mspVM1 \
          --command-id RunShellScript \
          --scripts "sudo hostnamectl set-hostname mspVM1"
      

      När kommandot har slutförts visas utdata som liknar följande exempel:

      {
          "value": [
              {
              "code": "ProvisioningState/succeeded",
              "displayStatus": "Provisioning succeeded",
              "level": "Info",
              "message": "Enable succeeded: \n[stdout]\n\n[stderr]\n",
              "time": null
              }
          ]
      }
      
  5. Använd samma kommandon för att skapa mspVM2:

    #Create a new Managed Disks for mspVM2
    az disk create \
        --resource-group $RESOURCE_GROUP_NAME \
        --name mspVM2_OsDisk_1 \
        --source ${SNAPSHOT_ID}
    
    #Get the resource Id of the managed disk
    export MSPVM2_DISK_ID=$(az disk show \
        --name mspVM2_OsDisk_1 \
        --resource-group $RESOURCE_GROUP_NAME \
        --query '[id]' \
        --output tsv)
    
    #Create VM by attaching existing managed disks as OS
    az vm create \
        --resource-group $RESOURCE_GROUP_NAME \
        --name mspVM2 \
        --attach-os-disk ${MSPVM2_DISK_ID} \
        --os-type linux \
        --public-ip-sku Standard \
        --nsg mynsg \
        --vnet-name myVnet \
        --subnet mySubnet
    
    #Set hostname
    az vm run-command invoke \
        --resource-group $RESOURCE_GROUP_NAME \
        --name mspVM2 \
        --command-id RunShellScript \
        --scripts "sudo hostnamectl set-hostname mspVM2"
    

Använd följande kommandon för att hämta och visa de privata IP-adresserna som du använder i senare avsnitt:

export ADMINVM_NIC_ID=$(az vm show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name adminVM \
    --query networkProfile.networkInterfaces'[0]'.id \
    --output tsv)
export ADMINVM_IP=$(az network nic show \
    --ids ${ADMINVM_NIC_ID} \
    --query ipConfigurations'[0]'.privateIPAddress \
    --output tsv)
export MSPVM1_NIC_ID=$(az vm show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name mspVM1 \
    --query networkProfile.networkInterfaces'[0]'.id \
    --output tsv)
export MSPVM1_IP=$(az network nic show \
    --ids ${MSPVM1_NIC_ID} \
    --query ipConfigurations'[0]'.privateIPAddress \
    --output tsv)
export MSPVM2_NIC_ID=$(az vm show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name mspVM2 \
    --query networkProfile.networkInterfaces'[0]'.id \
    --output tsv)
export MSPVM2_IP=$(az network nic show \
    --ids ${MSPVM2_NIC_ID} \
    --query ipConfigurations'[0]'.privateIPAddress \
    --output tsv)
echo "Private IP of adminVM: ${ADMINVM_IP}"
echo "Private IP of mspVM1: ${MSPVM1_IP}"
echo "Private IP of mspVM2: ${MSPVM2_IP}"

Nu är alla tre datorerna klara. Därefter konfigurerar du ett Red Hat JBoss EAP-kluster i hanterat domänläge.

Konfigurera hanterad domän och kluster

Konfigurera klustret med sessionsreplikering aktiverat. Mer information finns i Sessionsreplikering.

Om du vill aktivera sessionsreplikering använder du Red Hat JBoss EAP Hög tillgänglighet för klustret. Microsoft Azure stöder inte JGroups-identifieringsprotokoll som baseras på multicast. Även om du kan använda andra JGroups-identifieringsprotokoll (till exempel en statisk konfiguration (TCPPING), en delad databas (JDBC_PING), delad filsystembaserad ping (FILE_PING) eller TCPGOSSIP), rekommenderar vi starkt att du använder protokollet för identifiering av delade filer som utvecklats för Azure: AZURE_PING. Mer information finns i Använda hög tillgänglighet för JBoss EAP i Microsoft Azure.

Skapa Azure Storage-konto och Blob-container för AZURE_PING

Använd följande kommandon för att skapa ett lagringskonto och en blobcontainer:

# Define your storage account name
export STORAGE_ACCOUNT_NAME=azurepingstgabc1111rg
# Define your Blob container name
export CONTAINER_NAME=azurepingcontainerabc1111rg

# Create storage account
az storage account create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name ${STORAGE_ACCOUNT_NAME} \
    --location westus \
    --sku Standard_LRS \
    --kind StorageV2 \
    --access-tier Hot

Hämta sedan lagringskontonyckeln för senare användning med hjälp av följande kommando. Om du ser ett fel väntar du några minuter och försöker igen. Det tidigare kommandot för att skapa lagringskontot kanske inte är gjort än.

export STORAGE_ACCESS_KEY=$(az storage account keys list \
    --resource-group $RESOURCE_GROUP_NAME \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --query "[0].value" \
    --output tsv)

# Create blob container
az storage container create \
    --name ${CONTAINER_NAME} \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --account-key ${STORAGE_ACCESS_KEY}

Du bör se följande utdata:

{
  "created": true
}

Konfigurera domänkontrollant (administratörsnod)

I den här självstudien används CLI-kommandona för Red Hat JBoss EAP-hantering för att konfigurera domänkontrollanten. Mer information finns i hanteringsguiden för CLI.

Följande steg konfigurerar konfigurationen av domänkontrollanten på adminVM. Använd SSH för att ansluta till adminVM som azureuser användare. Kom ihåg att den offentliga IP-adressen adminVM för registrerades tidigare i ADMIN_VM_PUBLIC_IP miljövariabeln.

ssh azureuser@$ADMIN_VM_PUBLIC_IP

Använd först följande kommandon för att konfigurera HA-profilen och JGroups med hjälp av AZURE_PING protokollet:

export HOST_VM_IP=$(hostname -I)
export STORAGE_ACCOUNT_NAME=azurepingstgabc1111rg
export CONTAINER_NAME=azurepingcontainerabc1111rg
export STORAGE_ACCESS_KEY=<the-value-from-before-you-connected-with-SSH>


#-Configure the HA profile and JGroups using AZURE_PING protocol
sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --echo-command \
'embed-host-controller --std-out=echo --domain-config=domain.xml --host-config=host-master.xml',\
':write-attribute(name=name,value=domain1)',\
'/profile=ha/subsystem=jgroups/stack=tcp:remove',\
'/profile=ha/subsystem=jgroups/stack=tcp:add()',\
'/profile=ha/subsystem=jgroups/stack=tcp/transport=TCP:add(socket-binding=jgroups-tcp,properties={ip_mcast=false})',\
"/profile=ha/subsystem=jgroups/stack=tcp/protocol=azure.AZURE_PING:add(properties={storage_account_name=\"${STORAGE_ACCOUNT_NAME}\", storage_access_key=\"${STORAGE_ACCESS_KEY}\", container=\"${CONTAINER_NAME}\"})",\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=MERGE3:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=FD_SOCK:add(socket-binding=jgroups-tcp-fd)',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=FD_ALL:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=VERIFY_SUSPECT:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=pbcast.NAKACK2:add(properties={use_mcast_xmit=false,use_mcast_xmit_req=false})',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=UNICAST3:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=pbcast.STABLE:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=pbcast.GMS:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=MFC:add',\
'/profile=ha/subsystem=jgroups/stack=tcp/protocol=FRAG3:add',\
'/profile=ha/subsystem=jgroups/channel=ee:write-attribute(name="stack", value="tcp")',\
'/server-group=main-server-group:write-attribute(name="profile", value="ha")',\
'/server-group=main-server-group:write-attribute(name="socket-binding-group", value="ha-sockets")',\
"/host=master/subsystem=elytron/http-authentication-factory=management-http-authentication:write-attribute(name=mechanism-configurations,value=[{mechanism-name=DIGEST,mechanism-realm-configurations=[{realm-name=ManagementRealm}]}])",\
"/host=master/interface=unsecure:add(inet-address=${HOST_VM_IP})",\
"/host=master/interface=management:write-attribute(name=inet-address, value=${HOST_VM_IP})",\
"/host=master/interface=public:add(inet-address=${HOST_VM_IP})"

# Save a copy of the domain.xml, later you need to share it with all host controllers
cp $EAP_HOME/wildfly/domain/configuration/domain.xml /tmp/domain.xml

Den sista stanza av utdata bör se ut ungefär som i följande exempel. Om den inte gör det kan du felsöka och lösa problemet innan du fortsätter.

[domain@embedded /] /host=master/interface=public:add(inet-address=192.168.0.4 )
{
    "outcome" => "success",
    "result" => undefined,
    "server-groups" => undefined,
    "response-headers" => {"process-state" => "reload-required"}
}
02:05:55,019 INFO  [org.jboss.as] (MSC service thread 1-1) WFLYSRV0050: JBoss EAP 7.4.10.GA (WildFly Core 15.0.25.Final-redhat-00001) stopped in 28ms

Använd sedan följande kommandon för att konfigurera JBoss-servern och konfigurera EAP-tjänsten:

# Configure the JBoss server and setup EAP service
echo 'WILDFLY_HOST_CONFIG=host-master.xml' | sudo tee -a $EAP_RPM_CONF_DOMAIN

# Configure JBoss EAP management user
export JBOSS_EAP_USER=jbossadmin
export JBOSS_EAP_PASSWORD=Secret123456
sudo $EAP_HOME/wildfly/bin/add-user.sh  -u $JBOSS_EAP_USER -p $JBOSS_EAP_PASSWORD -g 'guest,mgmtgroup'

Utdata bör se ut ungefär som följande exempel:

Added user 'jbossadmin' to file '/etc/opt/rh/eap7/wildfly/standalone/mgmt-users.properties'
Added user 'jbossadmin' to file '/etc/opt/rh/eap7/wildfly/domain/mgmt-users.properties'
Added user 'jbossadmin' with groups guest,mgmtgroup to file '/etc/opt/rh/eap7/wildfly/standalone/mgmt-groups.properties'
Added user 'jbossadmin' with groups guest,mgmtgroup to file '/etc/opt/rh/eap7/wildfly/domain/mgmt-groups.properties'

Använd slutligen följande kommandon för att starta EAP-tjänsten:

# Start the JBoss server and setup EAP service
sudo systemctl enable eap7-domain.service

# Edit eap7-domain.services
sudo sed -i 's/After=syslog.target network.target/After=syslog.target network.target NetworkManager-wait-online.service/' /usr/lib/systemd/system/eap7-domain.service
sudo sed -i 's/Before=httpd.service/Wants=NetworkManager-wait-online.service \nBefore=httpd.service/' /usr/lib/systemd/system/eap7-domain.service

# Reload and restart EAP service
sudo systemctl daemon-reload
sudo systemctl restart eap7-domain.service

# Check the status of EAP service
systemctl status eap7-domain.service

Utdata bör se ut ungefär som följande exempel:

● eap7-domain.service - JBoss EAP (domain mode)
   Loaded: loaded (/usr/lib/systemd/system/eap7-domain.service; enabled; vendor>
   Active: active (running) since Thu 2023-03-30 02:11:44 UTC; 5s ago
 Main PID: 3855 (scl)
    Tasks: 82 (limit: 20612)
   Memory: 232.4M
   CGroup: /system.slice/eap7-domain.service
           ├─3855 /usr/bin/scl enable eap7 -- /opt/rh/eap7/root/usr/share/wildf>
           ├─3856 /bin/bash /var/tmp/sclfYu7yW
           ├─3858 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/launch.sh /us>
           ├─3862 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/domain.sh --h>
           ├─3955 /usr/lib/jvm/jre/bin/java -D[Process Controller] -server -Xms>
           └─3967 /usr/lib/jvm/jre/bin/java -D[Host Controller] -Dorg.jboss.boo>

Mar 30 02:11:44 adminVM systemd[1]: Started JBoss EAP (domain mode).

Skriv q för att avsluta sidsökaren. Avsluta SSH-anslutningen genom att skriva avsluta.

När du har startat Red Hat JBoss EAP-tjänsten kan du komma åt hanteringskonsolen via http://$ADMIN_VM_PUBLIC_IP:9990 i webbläsaren. Logga in med det konfigurerade användarnamnet jbossadmin och lösenordet Secret123456.

Skärmbild av hanteringskonsolen för Red Hat JBoss Enterprise Application Platform-domänkontrollanten.

Välj fliken Körning . I navigeringsfönstret väljer du Topologi. Du bör se att klustret för tillfället bara innehåller en domänkontrollant:

Konfigurera värdkontrollanter (arbetsnoder)

Använd SSH för att ansluta till mspVM1 som azureuser användare. Hämta den virtuella datorns offentliga IP-adress med följande kommando:

MSPVM_PUBLIC_IP=$(az vm show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name mspVM1 \
    --show-details \
    --query publicIps | tr -d '"' )

ssh azureuser@$MSPVM_PUBLIC_IP

Kom ihåg att lösenordet är detsamma som tidigare, eftersom mspVM1 det bara är en klon av adminVM.

Använd följande kommandon för att konfigurera värdstyrenheten på mspVM1:

# environment variables
export DOMAIN_CONTROLLER_PRIVATE_IP=<adminVM-private-IP>
export HOST_VM_NAME=$(hostname)
export HOST_VM_NAME_LOWERCASE=$(echo "${HOST_VM_NAME,,}")
export HOST_VM_IP=$(hostname -I)

export JBOSS_EAP_USER=jbossadmin
export JBOSS_EAP_PASSWORD=Secret123456

# Save default domain configuration as backup
sudo -u jboss mv $EAP_HOME/wildfly/domain/configuration/domain.xml $EAP_HOME/wildfly/domain/configuration/domain.xml.backup

# Fetch domain.xml from domain controller
sudo -u jboss scp azureuser@${DOMAIN_CONTROLLER_PRIVATE_IP}:/tmp/domain.xml $EAP_HOME/wildfly/domain/configuration/domain.xml

Du uppmanas att ange lösenordet för anslutningen. I det här exemplet är lösenordet Secret123456.

Använd följande kommandon för att tillämpa ändringar av värdkontrollanten på mspVM1:

# Setup host controller
sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --echo-command \
"embed-host-controller --std-out=echo --domain-config=domain.xml --host-config=host-slave.xml",\
"/host=${HOST_VM_NAME_LOWERCASE}/server-config=server-one:remove",\
"/host=${HOST_VM_NAME_LOWERCASE}/server-config=server-two:remove",\
"/host=${HOST_VM_NAME_LOWERCASE}/server-config=${HOST_VM_NAME_LOWERCASE}-server0:add(group=main-server-group)",\
"/host=${HOST_VM_NAME_LOWERCASE}/subsystem=elytron/authentication-configuration=slave:add(authentication-name=${JBOSS_EAP_USER}, credential-reference={clear-text=${JBOSS_EAP_PASSWORD}})",\
"/host=${HOST_VM_NAME_LOWERCASE}/subsystem=elytron/authentication-context=slave-context:add(match-rules=[{authentication-configuration=slave}])",\
"/host=${HOST_VM_NAME_LOWERCASE}:write-attribute(name=domain-controller.remote.username, value=${JBOSS_EAP_USER})",\
"/host=${HOST_VM_NAME_LOWERCASE}:write-attribute(name=domain-controller.remote, value={host=${DOMAIN_CONTROLLER_PRIVATE_IP}, port=9990, protocol=remote+http, authentication-context=slave-context})",\
"/host=${HOST_VM_NAME_LOWERCASE}/core-service=discovery-options/static-discovery=primary:write-attribute(name=host, value=${DOMAIN_CONTROLLER_PRIVATE_IP})",\
"/host=${HOST_VM_NAME_LOWERCASE}/interface=unsecured:add(inet-address=${HOST_VM_IP})",\
"/host=${HOST_VM_NAME_LOWERCASE}/interface=management:write-attribute(name=inet-address, value=${HOST_VM_IP})",\
"/host=${HOST_VM_NAME_LOWERCASE}/interface=public:write-attribute(name=inet-address, value=${HOST_VM_IP})"

Den sista stanza av utdata bör se ut ungefär som i följande exempel. Om den inte gör det kan du felsöka och lösa problemet innan du fortsätter.

[domain@embedded /] /host=mspvm1/interface=public:write-attribute(name=inet-address, value=192.168.0.5 )
{
    "outcome" => "success",
    "result" => undefined,
    "server-groups" => undefined,
    "response-headers" => {"process-state" => "reload-required"}
}
02:58:59,388 INFO  [org.jboss.as] (MSC service thread 1-2) WFLYSRV0050: JBoss EAP 7.4.10.GA (WildFly Core 15.0.25.Final-redhat-00001) stopped in 58ms

Använd sedan följande kommandon för att konfigurera JBoss-servern och konfigurera EAP-tjänsten:

echo 'WILDFLY_HOST_CONFIG=host-slave.xml' | sudo tee -a $EAP_RPM_CONF_DOMAIN

# Enable the JBoss server and setup EAP service
sudo systemctl enable eap7-domain.service

# Edit eap7-domain.services
sudo sed -i 's/After=syslog.target network.target/After=syslog.target network.target NetworkManager-wait-online.service/' /usr/lib/systemd/system/eap7-domain.service
sudo sed -i 's/Before=httpd.service/Wants=NetworkManager-wait-online.service \nBefore=httpd.service/' /usr/lib/systemd/system/eap7-domain.service

# Reload and restart EAP service
sudo systemctl daemon-reload
sudo systemctl restart eap7-domain.service

# Check the status of EAP service
systemctl status eap7-domain.service

Utdata bör se ut ungefär som följande exempel:

● eap7-domain.service - JBoss EAP (domain mode)
   Loaded: loaded (/usr/lib/systemd/system/eap7-domain.service; enabled; vendor>
   Active: active (running) since Thu 2023-03-30 03:02:15 UTC; 7s ago
 Main PID: 9699 (scl)
    Tasks: 51 (limit: 20612)
   Memory: 267.6M
   CGroup: /system.slice/eap7-domain.service
           ├─9699 /usr/bin/scl enable eap7 -- /opt/rh/eap7/root/usr/share/wildf>
           ├─9700 /bin/bash /var/tmp/sclgJ1hRD
           ├─9702 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/launch.sh /us>
           ├─9706 /bin/sh /opt/rh/eap7/root/usr/share/wildfly/bin/domain.sh --h>
           ├─9799 /usr/lib/jvm/jre/bin/java -D[Process Controller] -server -Xms>
           └─9811 /usr/lib/jvm/jre/bin/java -D[Host Controller] -Dorg.jboss.boo>

Mar 30 03:02:15 mspVM1 systemd[1]: Started JBoss EAP (domain mode).

Skriv q för att avsluta sidsökaren. Avsluta SSH-anslutningen genom att skriva avsluta.

Använd SSH för att ansluta till mspVM2 som azureuser användare. Hämta den virtuella datorns offentliga IP-adress med följande kommando:

az vm show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name mspVM2 \
    --show-details \
    --query publicIps | tr -d '"'

Upprepa föregående steg i mspVM2och avsluta sedan SSH-anslutningen genom att skriva avsluta.

När två värdkontrollanter är anslutna till adminVMbör du kunna se klustertopologin, enligt följande skärmbild:

Exponera Red Hat JBoss EAP-kluster med Azure Application Gateway

Nu när du har skapat klustret på virtuella Azure-datorer går det här avsnittet igenom hur du exponerar JBoss EAP på Internet med Azure Application Gateway.

Skapa Azure Application Gateway

För att exponera Red Hat JBoss EAP för Internet krävs en offentlig IP-adress. Skapa den offentliga IP-adressen och associera sedan en Azure Application Gateway med den. Använd az network public-ip create för att skapa det, som du ser i följande exempel:

az network public-ip create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name myAGPublicIPAddress \
    --allocation-method Static \
    --sku Standard

Lägg sedan till serverdelsservrarna i Application Gateway-serverdelspoolen. Fråga efter serverdels-IP-adresser med hjälp av följande kommandon. Du har bara de värdstyrenheter (arbetsnoder) som konfigurerats som serverdelsservrar.

export MSPVM1_NIC_ID=$(az vm show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name mspVM1 \
    --query networkProfile.networkInterfaces'[0]'.id \
    --output tsv)
export MSPVM1_IP=$(az network nic show \
    --ids ${MSPVM1_NIC_ID} \
    --query ipConfigurations'[0]'.privateIPAddress \
    --output tsv)
export MSPVM2_NIC_ID=$(az vm show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name mspVM2 \
    --query networkProfile.networkInterfaces'[0]'.id \
    --output tsv)
export MSPVM2_IP=$(az network nic show \
    --ids ${MSPVM2_NIC_ID} \
    --query ipConfigurations'[0]'.privateIPAddress \
    --output tsv)

Skapa sedan en Azure Application Gateway. I följande exempel skapas en programgateway med värdstyrenheter i standardserverdelspoolen:

az network application-gateway create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name myAppGateway \
    --public-ip-address myAGPublicIPAddress \
    --location westus \
    --capacity 2 \
    --http-settings-port 8080 \
    --http-settings-protocol Http \
    --frontend-port 80 \
    --sku Standard_V2 \
    --subnet jbossVMGatewaySubnet \
    --vnet-name myVNet \
    --priority 1001 \
    --servers ${MSPVM1_IP} ${MSPVM2_IP}

Kommentar

I det här exemplet konfigureras enkel åtkomst till Red Hat JBoss EAP-servrar med HTTP. Om du vill ha säker åtkomst konfigurerar du TLS/SSL-avslutning genom att följa anvisningarna i Slutpunkt-till-slutpunkt-TLS med Application Gateway.

I det här exemplet exponeras värdstyrenheterna på port 8080. Du distribuerar ett exempelprogram med en databasanslutning till klustret i senare steg.

Ansluta Azure Database for PostgreSQL – flexibel server

Det här avsnittet visar hur du skapar en Azure Database for PostgreSQL – flexibel serverinstans och konfigurerar en anslutning till PostgreSQL i ditt Red Hat JBoss EAP-kluster.

Skapa en Azure Database for PostgreSQL – flexibel serverinstans

Använd följande steg för att skapa databasinstansen:

  1. Använd az postgres flexible-server create för att etablera en Azure Database for PostgreSQL – flexibel serverinstans, som du ser i följande exempel:

    export DATA_BASE_USER=jboss
    export DATA_BASE_PASSWORD=Secret123456
    
    DB_SERVER_NAME="jbossdb$(date +%s)"
    echo "DB_SERVER_NAME=${DB_SERVER_NAME}"
    az postgres flexible-server create \
        --resource-group $RESOURCE_GROUP_NAME \
        --name ${DB_SERVER_NAME}  \
        --location westus \
        --admin-user ${DATA_BASE_USER} \
        --admin-password ${DATA_BASE_PASSWORD} \
        --version 16 \
        --public-access 0.0.0.0 \
        --tier Burstable \
        --sku-name Standard_B1ms \
        --yes
    
  2. Använd följande kommandon för att tillåta åtkomst från Azure-tjänster:

    # Save aside the following names for later use
    export fullyQualifiedDomainName=$(az postgres flexible-server show \
        --resource-group $RESOURCE_GROUP_NAME \
        --name ${DB_SERVER_NAME} \
        --query "fullyQualifiedDomainName" \
        --output tsv)
    export name=$(az postgres flexible-server show \
        --resource-group $RESOURCE_GROUP_NAME \
        --name ${DB_SERVER_NAME} \
        --query "name" \
        --output tsv)
    
    az postgres flexible-server firewall-rule create \
        --resource-group $RESOURCE_GROUP_NAME \
        --name ${DB_SERVER_NAME} \
        --rule-name "AllowAllWindowsAzureIps" \
        --start-ip-address "0.0.0.0" \
        --end-ip-address "0.0.0.0"
    
  3. Använd följande kommando för att skapa databasen:

    az postgres flexible-server db create \
        --resource-group $RESOURCE_GROUP_NAME \
        --server-name ${DB_SERVER_NAME} \
        --database-name testdb
    

Installera drivrutin

Använd följande steg för att installera JDBC-drivrutinen med JBoss-hanterings-CLI. Mer information om JDBC-drivrutiner på Red Hat JBoss EAP finns i Installera en JDBC-drivrutin som en JAR-distribution.

  1. SSH till adminVM med hjälp av följande kommando. Du kan hoppa över det här steget om du redan har öppnat en anslutning.

    ssh azureuser@$ADMIN_VM_PUBLIC_IP
    
  2. Använd följande kommandon för att ladda ned JDBC-drivrutinen. Här använder du postgresql-42.5.2.jar. Mer information om nedladdningsplatser för JDBC-drivrutiner finns i JDBC-drivrutinsnedladdningsplatser som tillhandahålls av Red Hat.

    jdbcDriverName=postgresql-42.5.2.jar
    sudo curl --retry 5 -Lo /tmp/${jdbcDriverName} https://jdbc.postgresql.org/download/${jdbcDriverName}
    
  3. Distribuera JDBC-drivrutin med hjälp av följande JBoss CLI-kommando:

    sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --connect --controller=$(hostname -I) --echo-command \
    "deploy /tmp/${jdbcDriverName} --server-groups=main-server-group"
    

    Serverloggen finns på mspVM1 och mspVM2/var/opt/rh/eap7/lib/wildfly/domain/servers/mspvm1-server0/log/server.log. Om distributionen misslyckas undersöker du loggfilen och löser problemet innan du fortsätter.


Konfigurera databasanslutningen för Red Hat JBoss EAP-klustret

Du startade databasservern, hämtade det nödvändiga resurs-ID:t och installerade JDBC-drivrutinen. Sedan visar stegen i det här avsnittet hur du använder JBoss CLI för att konfigurera en datakällaanslutning med PostgreSQL-instansen som du skapade tidigare.

  1. Öppna en terminal och SSH till adminVM med hjälp av följande kommando:

    ssh azureuser@$ADMIN_VM_PUBLIC_IP
    
  2. Skapa datakälla med hjälp av följande kommandon:

    # Replace the following values with your own
    export DATA_SOURCE_CONNECTION_STRING=jdbc:postgresql://<database-fully-qualified-domain-name>:5432/testdb
    export DATA_BASE_USER=jboss
    export JDBC_DATA_SOURCE_NAME=dataSource-postgresql
    export JDBC_JNDI_NAME=java:jboss/datasources/JavaEECafeDB
    export DATA_BASE_PASSWORD=Secret123456
    export JDBC_DRIVER_NAME=postgresql-42.5.2.jar
    
    sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --connect --controller=$(hostname -I) --echo-command \
    "data-source add --driver-name=${JDBC_DRIVER_NAME} --profile=ha --name=${JDBC_DATA_SOURCE_NAME} --jndi-name=${JDBC_JNDI_NAME} --connection-url=${DATA_SOURCE_CONNECTION_STRING} --user-name=${DATA_BASE_USER} --password=${DATA_BASE_PASSWORD}"
    

Du har konfigurerat en datakälla med namnet java:jboss/datasources/JavaEECafeDB.

Distribuera Java EE Cafe-exempelprogram

Använd följande steg för att distribuera Java EE Cafe-exempelprogrammet till Red Hat JBoss EAP-klustret:

  1. Använd följande steg för att skapa Java EE Cafe. Dessa steg förutsätter att du har en lokal miljö med Git och Maven installerade:

    1. Använd följande kommando för att klona källkoden från GitHub:

      git clone https://github.com/Azure/rhel-jboss-templates.git --branch 20240904 --single-branch
      
    2. Använd följande kommando för att skapa källkoden:

      mvn clean install --file rhel-jboss-templates/eap-coffee-app/pom.xml
      

      Det här kommandot skapar filen eap-coffee-app/target/javaee-café.war. Du laddar upp den här filen i nästa steg.

  2. Öppna en webbläsare och gå till hanteringskonsolen på http://<adminVM-public-IP>:9990och logga sedan in med användarnamn jbossadmin och lösenord Secret123456.

  3. Använd följande steg för att ladda upp javaee-café.war till innehållslagringsplatsen:

    1. På fliken Distributioner i Red Hat JBoss EAP-hanteringskonsolen väljer du Innehållslagringsplats i navigeringsfönstret.

    2. Välj knappen Lägg till och välj sedan Ladda upp innehåll.

      Skärmbild av fliken Distributioner av Red Hat JBoss Enterprise Application Platform med menyalternativet Ladda upp innehåll markerat.

    3. Använd webbläsarfilväljaren för att välja filen javaee-café.war .

    4. Välj Nästa.

    5. Acceptera standardvärdena på nästa skärm och välj sedan Slutför.

    6. Välj Visa innehåll.

  4. Använd följande steg för att distribuera ett program till main-server-group:

    1. Från Innehållslagringsplats väljer du javaee-café.war.

    2. På den nedrullningsbara menyn väljer du Distribuera.

    3. Välj main-server-group som servergrupp för att distribuera javaee-café.war.

    4. Välj Distribuera för att starta distributionen. Du bör se ett meddelande som liknar följande skärmbild:

      Skärmbild av meddelandet om lyckad distribution.

Testa konfigurationen av Red Hat JBoss EAP-kluster

Du konfigurerade JBoss EAP-klustret och distribuerade programmet till det. Använd följande steg för att få åtkomst till programmet för att verifiera alla inställningar:

  1. Använd följande kommando för att hämta den offentliga IP-adressen för Azure Application Gateway:

    az network public-ip show \
        --resource-group $RESOURCE_GROUP_NAME \
        --name myAGPublicIPAddress \
        --query '[ipAddress]' \
        --output tsv
    
  2. Öppna en webbläsare.

  3. Navigera till programmet med URL:en http://<gateway-public-ip-address>/javaee-cafe/. Glöm inte det avslutande snedstrecket.

  4. Försök att lägga till och ta bort kaffe.

Rensa resurser

För att undvika Azure-avgifter bör du rensa onödiga resurser. När du inte längre behöver Red Hat JBoss EAP-klustret distribuerat på en virtuell Azure-dator avregistrerar du Red Hat JBoss EAP-servrarna och tar bort Azure-resurserna.

Använd följande kommandon för att avregistrera Red Hat JBoss EAP-servrar och virtuella datorer från Red Hat-prenumerationshantering:

# Unregister domain controller
az vm run-command invoke \
    --resource-group $RESOURCE_GROUP_NAME \
    --name adminVM \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

# Unregister host controllers
az vm run-command invoke \
    --resource-group $RESOURCE_GROUP_NAME \
    --name mspVM1 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"
az vm run-command invoke \
    --resource-group $RESOURCE_GROUP_NAME \
    --name mspVM2 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

Använd följande kommando för att ta bort resursgruppen $RESOURCE_GROUP_NAME:

az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait

Nästa steg

Fortsätt att utforska alternativ för att köra JBoss EAP på Azure.