Kurz: Ruční instalace protokolu EAP JBoss ve službě Azure Virtual Machines
V tomto kurzu se dozvíte, jak nainstalovat Red Hat JBoss Enterprise Application Platform (EAP) a nakonfigurovat cluster v režimu domény na virtuálních počítačích Azure, v Red Hat Enterprise Linuxu (RHEL).
V tomto kurzu se naučíte provádět následující úlohy:
- Vytvořte vlastní virtuální síť a vytvořte virtuální počítače v síti.
- Na virtuální počítače nainstalujte požadovanou sadu JDK a Red Hat JBoss EAP pomocí příkazového řádku ručně.
- Nakonfigurujte cluster Red Hat JBoss EAP v režimu domény pomocí rozhraní příkazového řádku (CLI).
- Nakonfigurujte připojení zdroje dat PostgreSQL v clusteru.
- Nasaďte a spusťte ukázkovou aplikaci Java EE v clusteru.
- Zveřejnění aplikace na veřejném internetu prostřednictvím brány Aplikace Azure lication.
- Ověřte úspěšnou konfiguraci.
Pokud dáváte přednost plně automatizovanému řešení, které provede všechny tyto kroky vaším jménem na virtuálních počítačích GNU/Linux, přímo z webu Azure Portal, přečtěte si rychlý start: Nasazení clusteru JBoss EAP na virtuálních počítačích Azure.
Pokud chcete poskytnout zpětnou vazbu nebo úzce spolupracovat na scénářích migrace s technickým týmem, který vyvíjí JBoss EAP v řešeních Azure, vyplňte tento krátký průzkum o migraci JBoss EAP a uveďte své kontaktní informace. Tým programových manažerů, architektů a inženýrů se s vámi okamžitě spojí a zahájí úzkou spolupráci.
Poznámka:
Tento článek obsahuje odkazy na termín slave (podřízený) , což je termín, který už Microsoft nepoužívá. Když se termín odebere ze softwaru, odebereme ho z tohoto článku.
Požadavky
Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Nainstalujte Azure CLI verze 2.51.0 nebo vyšší , abyste mohli spouštět příkazy Azure CLI.
- Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
- Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Ujistěte se, že máte potřebné licence Red Hatu. Musíte mít účet Red Hat s nárokem na správu předplatného Red Hat (RHSM) pro EAP red Hat JBoss. Tento nárok umožňuje plně automatizované řešení (v rychlém startu: Nasazení clusteru JBoss EAP na virtuálních počítačích Azure) nainstalovat otestovanou a certifikovanou verzi protokolu JBoss EAP pro Red Hat.
Poznámka:
Pokud nemáte nárok na EAP, můžete si zaregistrovat bezplatné předplatné pro vývojáře prostřednictvím předplatného red hat developer pro jednotlivce. Uložte si podrobnosti o účtu, které se používají jako uživatelské jméno RHSM a heslo RHSM v další části.
Pokud jste už zaregistrovaní nebo po dokončení registrace, můžete pomocí následujícího postupu vyhledat potřebné přihlašovací údaje (ID fondu). Tato ID fondu se také používají jako ID fondu RHSM s nárokem EAP v dalších krocích.
Přihlaste se ke svému účtu Red Hat.
Při prvním přihlášení se zobrazí výzva k dokončení profilu. V závislosti na využití vyberte osobní nebo firemní typ účtu, jak je znázorněno na následujícím snímku obrazovky:
Otevřete vývojářské předplatné Red Hat pro jednotlivce. Tento odkaz vás přenese na všechna předplatná ve vašem účtu pro příslušnou skladovou položku.
V řádku ovládacích prvků v tabulce Všechny zakoupené předplatná vyberte Aktivní.
Vyberte záhlaví seřaditelného sloupce pro koncové datum , dokud se hodnota v budoucnu nezobrazí jako první řádek.
Vyberte první řádek. Pak zkopírujte a uložte si hodnotu následující hlavní fondy z ID fondu.
Sada Java Development Kit (JDK) verze 11. V této příručce doporučujeme build Red Hat OpenJDK. Ujistěte se, že je vaše
JAVA_HOME
proměnná prostředí správně nastavená v prostředích, ve kterých spouštíte příkazy.Git– používá
git --version
se k otestování, jestligit
funguje. Tento kurz byl testován s verzí 2.25.1.Maven, slouží
mvn -version
k otestování, jestlimvn
funguje. Tento kurz byl testován s verzí 3.6.3.
Příprava prostředí
V této části nastavíte infrastrukturu, ve které nainstalujete ovladač JDK, Red Hat JBoss EAP a PostgreSQL Java Connectivity (JDBC).
Předpoklady
Tento kurz nakonfiguruje cluster EAP red Hat JBoss v režimu domény se serverem pro správu a dvěma spravovanými servery na celkem třech virtuálních počítačích. Pokud chcete nakonfigurovat cluster, musíte vytvořit následující tři virtuální počítače Azure:
- Virtuální počítač správce (název
adminVM
virtuálního počítače) běží jako řadič domény. - Dva spravované virtuální počítače (názvy
mspVM1
virtuálních počítačů amspVM2
) se spouštějí jako řadič hostitele.
Přihlášení k Azure
Pokud jste to ještě neudělali, přihlaste se ke svému předplatnému Azure pomocí příkazu az login a podle pokynů na obrazovce.
az login
Poznámka:
Pokud máte k přihlašovacím údajům Azure přidružených více tenantů Azure, musíte určit, ke kterému tenantovi se chcete přihlásit. Můžete to udělat pomocí --tenant
této možnosti. Například az login --tenant contoso.onmicrosoft.com
.
Vytvoření skupiny zdrojů
Vytvořte skupinu prostředků pomocí příkazu az group create. Názvy skupin prostředků musí být globálně jedinečné v rámci předplatného. Z tohoto důvodu zvažte předvyplnění některého jedinečného identifikátoru u všech názvů, které vytvoříte, které musí být jedinečné. Užitečnou technikou je použít iniciály následované dnešním datem ve mmdd
formátu. Tento příklad vytvoří skupinu prostředků pojmenovanou $RESOURCE_GROUP_NAME
westus
v umístění:
export SUBSCRIPTION=$(az account show --query id --output tsv)
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
Vytvoření virtuální sítě
Prostředky, které tvoří cluster Red Hat JBoss EAP, musí vzájemně komunikovat a veřejný internet pomocí virtuální sítě. Kompletní průvodce plánováním virtuální sítě najdete v průvodci architekturou přechodu na cloud pro Azure. Další informace najdete v tématu Nejčastější dotazy ke službě Azure Virtual Network.
Příklad v této části vytvoří virtuální síť s adresními prostory 192.168.0.0/16
a vytvoří podsíť použitou pro virtuální počítače.
Nejprve vytvořte virtuální síť pomocí příkazu az network vnet create. Následující příklad vytvoří síť s názvem myVNet
:
az network vnet create \
--resource-group $RESOURCE_GROUP_NAME \
--name myVNet \
--address-prefixes 192.168.0.0/24
Vytvořte podsíť pro cluster Red Hat JBoss EAP pomocí příkazu az network vnet subnet create. Následující příklad vytvoří podsíť s názvem mySubnet
:
az network vnet subnet create \
--resource-group $RESOURCE_GROUP_NAME \
--name mySubnet \
--vnet-name myVNet \
--address-prefixes 192.168.0.0/25
Vytvořte podsíť pro službu Application Gateway pomocí příkazu az network vnet subnet create. Následující příklad vytvoří podsíť s názvem jbossVMGatewaySubnet
:
az network vnet subnet create \
--resource-group $RESOURCE_GROUP_NAME \
--name jbossVMGatewaySubnet \
--vnet-name myVNet \
--address-prefixes 192.168.0.128/25
Vytvoření skupiny zabezpečení sítě a přiřazení podsítí k ní
Před vytvořením virtuálních počítačů s veřejnými IP adresami vytvořte skupinu zabezpečení sítě (NSG) pro zabezpečení virtuální sítě a podsítí vytvořených dříve.
Vytvořte skupinu zabezpečení sítě pomocí příkazu az network nsg create. Následující příklad vytvoří skupinu zabezpečení sítě s názvem mynsg
:
az network nsg create \
--resource-group $RESOURCE_GROUP_NAME \
--name mynsg
Vytvořte pravidla skupiny zabezpečení sítě pomocí příkazu az network nsg rule create. Následující příklad vytvoří pravidla skupiny zabezpečení sítě pojmenovaná ALLOW_APPGW
a ALLOW_HTTP_ACCESS
. Tato pravidla umožňují službě App Gateway přijímat příchozí provoz na portech HTTP používaných protokolem EAP Red Hat JBoss:
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
Přidružte podsítě vytvořené dříve k této skupině zabezpečení sítě pomocí příkazu az network vnet subnet update, jak je znázorněno v následujícím příkladu:
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
Vytvoření počítače s Red Hat Enterprise Linuxem pro správce
Generování klíčů SSH
Pomocí následujícího příkazu vygenerujte klíče SSH pro adminVM
:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/jbosseapvm
ssh-add ~/.ssh/jbosseapvm
Vytvoření virtuálního počítače správce
Image z Marketplace, kterou používáte k vytvoření virtuálních počítačů, je RedHat:rhel-raw:86-gen2:latest
. Další image najdete v tématu Image RHEL (Red Hat Enterprise Linux) dostupné v Azure.
Poznámka:
Pomocí příkazu az vm image list můžete zadat dotaz na všechny dostupné image Red Hat Enterprise Linuxu , například: az vm image list --offer RHEL --publisher RedHat --output table --all
. Další informace najdete v tématu Přehled imagí Red Hat Enterprise Linuxu.
Pokud používáte jinou image, možná budete muset nainstalovat další knihovny, abyste povolili infrastrukturu použitou v této příručce.
Vytvořte základní virtuální počítač, nainstalujte na něj všechny požadované nástroje, pořiďte jeho snímek a pak vytvořte repliky na základě snímku.
Vytvořte virtuální počítač pomocí příkazu az vm create. Na tomto virtuálním počítači spustíte server pro správu.
Následující příklad vytvoří spravovanou identitu Azure a virtuální počítač s Red Hat Enterprise Linuxem pomocí ověřování TLS/SSL.
az identity create \
--name "passwordless-managed-identity" \
--resource-group $RESOURCE_GROUP_NAME \
--location westus
az vm create \
--resource-group $RESOURCE_GROUP_NAME \
--name adminVM \
--image RedHat:rhel-raw:86-gen2:latest \
--assign-identity "/subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/passwordless-managed-identity" \
--size Standard_DS1_v2 \
--admin-username azureuser \
--ssh-key-values ~/.ssh/jbosseapvm.pub \
--public-ip-sku Standard \
--nsg mynsg \
--vnet-name myVnet \
--subnet mySubnet
Instalace Red Hat JBoss EAP
K instalaci použijte následující postup:
Veřejnou IP adresu
adminVM
získáte pomocí následujícího příkazu:export ADMIN_VM_PUBLIC_IP=$(az vm show \ --resource-group $RESOURCE_GROUP_NAME \ --name adminVM \ --show-details \ --query publicIps | tr -d '"')
Pomocí následujícího příkazu otevřete terminál a SSH:
adminVM
ssh -i ~/.ssh/jbosseapvm azureuser@$ADMIN_VM_PUBLIC_IP
Nakonfigurujte bránu firewall pro porty pomocí následujícího příkazu:
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
Slovo by se mělo zobrazit
success
za prvními dvěma příkazy. Po třetím příkazu by se měl zobrazit výstup podobný následujícímu příkladu:# 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
Poznámka:
Hodnoty RHSM_USER
a RHSM_PASSWORD
hodnoty jsou nutné k instalaci EAP red Hat JBoss. Doporučujeme použít účet služby s omezenými oprávněními pro přístup k zákaznickému portálu Red Hat.
Pomocí následujících příkazů zaregistrujte hostitele správce do účtu správy předplatného Red Hat (RHSM):
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
Měl by se zobrazit výstup podobný následujícímu příkladu:
Registering to: subscription.rhsm.redhat.com:443/subscription The system has been registered with ID: redacted The registered system name is: adminVM
Pomocí následujícího příkazu připojte hostitele správce k fondu EAP Red Hat JBoss:
sudo subscription-manager attach --pool=${EAP_POOL}
Poznámka:
Tento příkaz se ignoruje, pokud používáte režim Jednoduchý přístup k obsahu.
Pomocí následujících příkazů nainstalujte 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
U druhého a třetího příkazu byste měli vidět mnoho řádků výstupu, končících na Complete!
Pomocí následujících příkazů nastavte oprávnění a konfigurace sítě:
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
Ke konfiguraci proměnných prostředí použijte následující příkazy:
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
Ukončete připojení SSH zadáním ukončení.
Vytvoření počítačů pro spravované servery
Nainstalovali jste Red Hat JBoss EAP na adminVM
, který běží jako server řadiče domény. Stále potřebujete připravit počítače na spuštění dvou serverů hostitelského kontroleru. Dále vytvoříte snímek adminVM
a připravíte počítače pro dva spravované severy mspVM1
a mspVM2
.
Tato část představuje přístup k přípravě počítačů se snímkem adminVM
. Vraťte se do terminálu s přihlášenou službou Azure CLI a pak postupujte následovně:
K zastavení
adminVM
použijte následující příkaz:az vm stop --resource-group $RESOURCE_GROUP_NAME --name adminVM
Pomocí příkazu az snapshot create pořiďte snímek
adminVM
disku s operačním systémem, jak je znázorněno v následujícím příkladu: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}
Spuštěním následujícího příkazu
adminVM
:az vm start --resource-group $RESOURCE_GROUP_NAME --name adminVM
Pomocí následujících kroků vytvořte
mspVM1
:Nejprve vytvořte spravovaný disk pro
mspVM1
příkaz 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}
Dále pomocí následujících příkazů vytvořte virtuální počítač
mspVM1
, připojte diskmspVM1_OsDisk_1
s operačním systémem:#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 \ --assign-identity "/subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/passwordless-managed-identity" \ --attach-os-disk ${MSPVM1_DISK_ID} \ --os-type linux \ --public-ip-sku Standard \ --nsg mynsg \ --vnet-name myVnet \ --subnet mySubnet
Vytvořili
mspVM1
jste s nainstalovaným programem Red Hat JBoss EAP. Vzhledem k tomu, že se virtuální počítač vytvořil ze snímkuadminVM
disku s operačním systémem, mají dva virtuální počítače stejný název hostitele. Pomocí příkazu az vm run-command můžete změnit název hostitele na hodnotumspVM1
:az vm run-command invoke \ --resource-group $RESOURCE_GROUP_NAME \ --name mspVM1 \ --command-id RunShellScript \ --scripts "sudo hostnamectl set-hostname mspVM1"
Po úspěšném dokončení příkazu se zobrazí výstup podobný následujícímu příkladu:
{ "value": [ { "code": "ProvisioningState/succeeded", "displayStatus": "Provisioning succeeded", "level": "Info", "message": "Enable succeeded: \n[stdout]\n\n[stderr]\n", "time": null } ] }
K vytvoření
mspVM2
použijte stejné příkazy:#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 \ --assign-identity "/subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/passwordless-managed-identity" \ --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"
Pomocí následujících příkazů získáte a zobrazíte privátní IP adresy, které použijete v dalších částech:
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}"
Teď jsou všechny tři počítače připravené. Dále nakonfigurujete cluster Red Hat JBoss EAP v režimu spravované domény.
Konfigurace spravované domény a clusteru
Nakonfigurujte cluster s povolenou replikací relací. Další informace naleznete v tématu Replikace relace.
Pokud chcete povolit replikaci relací, použijte pro cluster vysokou dostupnost Red Hat JBoss EAP. Microsoft Azure nepodporuje protokoly zjišťování JGroups založené na vícesměrových vysíláních. I když můžete používat jiné protokoly zjišťování JGroups (například statickou konfiguraci (TCPPING
), sdílenou databázi (JDBC_PING
), příkaz ping založený na systému sdílených souborů (FILE_PING
) nebo TCPGOSSIP
), důrazně doporučujeme použít protokol zjišťování sdílených souborů vyvinutý pro Azure: AZURE_PING
. Další informace najdete v tématu Použití vysoké dostupnosti JBoss EAP v Microsoft Azure.
Vytvoření účtu úložiště Azure a kontejneru objektů blob pro AZURE_PING
K vytvoření účtu úložiště a kontejneru objektů blob použijte následující příkazy:
# 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
Potom pomocí následujícího příkazu načtěte klíč účtu úložiště pro pozdější použití. Pokud se zobrazí chyba, počkejte několik minut a zkuste to znovu. Předchozí příkaz pro vytvoření účtu úložiště možná ještě není hotový.
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}
Měl by se zobrazit následující výstup:
{
"created": true
}
Konfigurace řadiče domény (uzel správce)
V tomto kurzu se ke konfiguraci řadiče domény používají příkazy rozhraní příkazového řádku pro správu EAP Red Hat JBoss. Další informace najdete v průvodci rozhraním příkazového řádku pro správu.
Následující kroky nastaví konfiguraci řadiče domény v systému adminVM
. Připojte se jako adminVM
azureuser
uživatel pomocí SSH. Vzpomeňte si, že veřejná IP adresa adminVM
byla zachycena dříve do ADMIN_VM_PUBLIC_IP
proměnné prostředí.
ssh -i ~/.ssh/jbosseapvm azureuser@$ADMIN_VM_PUBLIC_IP
Nejprve pomocí následujících příkazů nakonfigurujte profil vysoké dostupnosti a skupiny JGroup pomocí AZURE_PING
protokolu:
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
Poslední stanza výstupu by měla vypadat podobně jako v následujícím příkladu. Pokud ne, před pokračováním problém vyřešte a vyřešte ho.
[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
Pak pomocí následujících příkazů nakonfigurujte server JBoss a nastavte službu EAP:
Poznámka:
Hodnoty JBOSS_EAP_USER
a JBOSS_EAP_PASSWORD
hodnoty jsou potřeba ke konfiguraci uživatele pro správu EAP JBoss.
# 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'
Výstup by měl vypadat zhruba jako v tomto příkladu:
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'
Nakonec pomocí následujících příkazů spusťte službu EAP:
# 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
Výstup by měl vypadat zhruba jako v tomto příkladu:
● 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).
Zadáním q ukončete pager. Ukončete připojení SSH zadáním ukončení.
Po spuštění služby Red Hat JBoss EAP můžete ke konzole pro správu přistupovat prostřednictvím http://$ADMIN_VM_PUBLIC_IP:9990
webového prohlížeče. Přihlaste se pomocí nakonfigurovaného uživatelského jména jbossadmin
a hesla Secret123456
.
Vyberte kartu Runtime. V navigačním podokně vyberte Topologie. Teď byste měli vidět, že váš cluster obsahuje jenom jeden řadič domény:
Konfigurace řadičů hostitele (pracovních uzlů)
Připojte se jako azureuser
uživatel pomocí mspVM1
SSH. Pomocí následujícího příkazu získejte veřejnou IP adresu virtuálního počítače:
MSPVM_PUBLIC_IP=$(az vm show \
--resource-group $RESOURCE_GROUP_NAME \
--name mspVM1 \
--show-details \
--query publicIps | tr -d '"' )
ssh -A -i ~/.ssh/jbosseapvm azureuser@$MSPVM_PUBLIC_IP
K nastavení hostitelského kontroleru použijte mspVM1
následující příkazy:
# 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
scp azureuser@${DOMAIN_CONTROLLER_PRIVATE_IP}:/tmp/domain.xml /tmp/domain.xml
sudo mv /tmp/domain.xml $EAP_HOME/wildfly/domain/configuration/domain.xml
sudo chown jboss:jboss $EAP_HOME/wildfly/domain/configuration/domain.xml
Pomocí následujících příkazů použijte změny kontroleru hostitele na 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})"
Poslední stanza výstupu by měla vypadat podobně jako v následujícím příkladu. Pokud ne, před pokračováním problém vyřešte a vyřešte ho.
[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
Pak pomocí následujících příkazů nakonfigurujte server JBoss a nastavte službu EAP:
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
Výstup by měl vypadat zhruba jako v tomto příkladu:
● 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).
Zadáním q ukončete pager. Ukončete připojení SSH zadáním ukončení.
Připojte se jako azureuser
uživatel pomocí mspVM2
SSH. Pomocí následujícího příkazu získejte veřejnou IP adresu virtuálního počítače:
az vm show \
--resource-group $RESOURCE_GROUP_NAME \
--name mspVM2 \
--show-details \
--query publicIps | tr -d '"'
Opakujte předchozí kroky mspVM2
a ukončete připojení SSH zadáním ukončení.
Po připojení adminVM
dvou řadičů hostitelů byste měli být schopni zobrazit topologii clusteru, jak je znázorněno na následujícím snímku obrazovky:
Zveřejnění clusteru Red Hat JBoss EAP s Aplikace Azure lication Gateway
Teď, když jste vytvořili cluster na virtuálních počítačích Azure, vás tato část provede zveřejněním protokolu JBoss EAP na internetu pomocí brány Aplikace Azure lication Gateway.
Vytvoření brány Aplikace Azure lication
K zveřejnění protokolu EAP Red Hat JBoss eAP na internetu se vyžaduje veřejná IP adresa. Vytvořte veřejnou IP adresu a pak k ní přidružte bránu Aplikace Azure lication. Pomocí příkazu az network public-ip create ho vytvořte, jak je znázorněno v následujícím příkladu:
az network public-ip create \
--resource-group $RESOURCE_GROUP_NAME \
--name myAGPublicIPAddress \
--allocation-method Static \
--sku Standard
Dále přidejte back-endové servery do back-endového fondu služby Application Gateway. K dotazování na back-endové IP adresy použijte následující příkazy. Řadiče hostitelů (pracovní uzly) jsou nakonfigurované jenom jako back-endové servery.
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)
Dále vytvořte Aplikace Azure lication Gateway. Následující příklad vytvoří aplikační bránu s řadiči hostitelů ve výchozím back-endovém fondu:
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}
Poznámka:
Tento příklad nastaví jednoduchý přístup k serverům EAP Red Hat JBoss pomocí protokolu HTTP. Pokud chcete zabezpečený přístup, nakonfigurujte ukončení protokolu TLS/SSL podle pokynů na konci protokolu TLS se službou Application Gateway.
Tento příklad zveřejňuje kontrolery hostitelů na portu 8080. V dalších krocích nasadíte ukázkovou aplikaci s připojením k databázi ke clusteru.
Připojení flexibilního serveru Azure Database for PostgreSQL
V této části se dozvíte, jak vytvořit instanci flexibilního serveru Azure Database for PostgreSQL a nakonfigurovat připojení k PostgreSQL v clusteru Red Hat JBoss EAP.
Vytvoření instance flexibilního serveru Azure Database for PostgreSQL
K vytvoření instance databáze použijte následující postup:
Pomocí příkazu az postgres flexible-server create zřiďte instanci flexibilního serveru Azure Database for PostgreSQL, jak je znázorněno v následujícím příkladu:
export DATA_BASE_USER=jboss DB_SERVER_NAME="jbossdb$(date +%s)" echo "DB_SERVER_NAME=${DB_SERVER_NAME}" az postgres flexible-server create \ --active-directory-auth Enabled \ --resource-group $RESOURCE_GROUP_NAME \ --name ${DB_SERVER_NAME} \ --location westus \ --version 16 \ --public-access 0.0.0.0 \ --tier Burstable \ --sku-name Standard_B1ms \ --yes objectId=$(az identity show --name passwordless-managed-identity --resource-group $RESOURCE_GROUP_NAME --query principalId -o tsv) az postgres flexible-server ad-admin create \ --resource-group $RESOURCE_GROUP_NAME \ --server-name ${DB_SERVER_NAME} \ --display-name "passwordless-managed-identity" \ --object-id $objectId \ --type ServicePrincipal
Pomocí následujících příkazů povolte přístup ze služeb Azure:
# 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"
K vytvoření databáze použijte následující příkaz:
az postgres flexible-server db create \ --resource-group $RESOURCE_GROUP_NAME \ --server-name ${DB_SERVER_NAME} \ --database-name testdb
Instalace ovladače
Pomocí následujících kroků nainstalujte ovladač JDBC pomocí rozhraní příkazového řádku pro správu JBoss:
Pomocí následujícího příkazu se přes SSH připojte k
adminVM
serveru SSH. Tento krok můžete přeskočit, pokud už máte otevřené připojení.ssh -A -i ~/.ssh/jbosseapvm azureuser@$ADMIN_VM_PUBLIC_IP
Pomocí následujících příkazů stáhněte ovladač JDBC na adminVM:
# Create JDBC driver and module directory jdbcDriverModuleDirectory="$EAP_HOME"/wildfly/modules/com/postgresql/main sudo mkdir -p "$jdbcDriverModuleDirectory" # Download JDBC driver and passwordless extensions extensionJarName=azure-identity-extensions-1.1.20.jar extensionPomName=azure-identity-extensions-1.1.20.pom sudo curl --retry 5 -Lo ${jdbcDriverModuleDirectory}/${extensionJarName} https://repo1.maven.org/maven2/com/azure/azure-identity-extensions/1.1.20/$extensionJarName sudo curl --retry 5 -Lo ${jdbcDriverModuleDirectory}/${extensionPomName} https://repo1.maven.org/maven2/com/azure/azure-identity-extensions/1.1.20/$extensionPomName sudo yum install maven -y sudo mvn dependency:copy-dependencies -f ${jdbcDriverModuleDirectory}/${extensionPomName} -Ddest=${jdbcDriverModuleDirectory} # Create module for JDBC driver jdbcDriverModule=module.xml sudo cat <<EOF >${jdbcDriverModule} <?xml version="1.0" ?> <module xmlns="urn:jboss:module:1.1" name="com.postgresql"> <resources> <resource-root path="${extensionJarName}"/> EOF # Add all jars from target/dependency for jar in ${jdbcDriverModuleDirectory}/target/dependency/*.jar; do if [ -f "$jar" ]; then # Extract just the filename from the path jarname=$(basename "$jar") echo " <resource-root path=\"target/dependency/${jarname}\"/>" >> ${jdbcDriverModule} fi done # Add the closing tags cat <<EOF >> ${jdbcDriverModule} </resources> <dependencies> <module name="javaee.api"/> <module name="sun.jdk"/> <module name="ibm.jdk"/> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module> EOF chmod 644 $jdbcDriverModule sudo mv $jdbcDriverModule $jdbcDriverModuleDirectory/$jdbcDriverModule
Pomocí následujících příkazů zkopírujte ovladač JDBC do řadičů hostitelů:
scp -rp $EAP_HOME/wildfly/modules/com/postgresql azureuser@mspvm1:/tmp/ ssh azureuser@mspvm1 "sudo mkdir -p $EAP_HOME/wildfly/modules/com/postgresql && sudo cp -rp /tmp/postgresql/* $EAP_HOME/wildfly/modules/com/postgresql && sudo rm -rf /tmp/postgresql" scp -rp $EAP_HOME/wildfly/modules/com/postgresql azureuser@mspvm2:/tmp/ ssh azureuser@mspvm2 "sudo mkdir -p $EAP_HOME/wildfly/modules/com/postgresql && sudo cp -rp /tmp/postgresql/* $EAP_HOME/wildfly/modules/com/postgresql && sudo rm -rf /tmp/postgresql"
Protokol serveru se nachází na
mspVM1
adrese amspVM2
na/var/opt/rh/eap7/lib/wildfly/domain/servers/mspvm1-server0/log/server.log
adrese . Pokud nasazení selže, projděte si tento soubor protokolu a před pokračováním problém vyřešte.
K registraci ovladače JDBC použijte následující příkazy:
# Register JDBC driver sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --connect --controller=$(hostname -I) --echo-command \ "/profile=ha/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=com.postgresql,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)"
Konfigurace připojení k databázi pro cluster Red Hat JBoss EAP
Spustili jste databázový server, získali potřebné ID prostředku a nainstalovali jste ovladač JDBC. Dále kroky v této části ukazují, jak pomocí rozhraní příkazového řádku JBoss nakonfigurovat připojení zdroje dat k instanci PostgreSQL, kterou jste vytvořili dříve.
Pomocí následujícího příkazu otevřete terminál a SSH:
adminVM
ssh -i ~/.ssh/jbosseapvm azureuser@$ADMIN_VM_PUBLIC_IP
K vytvoření zdroje dat použijte následující příkazy:
# Replace the following values with your own export DATA_SOURCE_CONNECTION_STRING="jdbc:postgresql://<database-fully-qualified-domain-name>:5432/testdb?sslmode=require&user=passwordless-managed-identity&authenticationPluginClassName=com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin" export JDBC_DATA_SOURCE_NAME=dataSource-postgresql export JDBC_JNDI_NAME=java:jboss/datasources/JavaEECafeDB sudo -u jboss $EAP_HOME/wildfly/bin/jboss-cli.sh --connect --controller=$(hostname -I) --echo-command \ "data-source add --driver-name=postgresql --profile=ha --name=${JDBC_DATA_SOURCE_NAME} --jndi-name=${JDBC_JNDI_NAME} --connection-url=${DATA_SOURCE_CONNECTION_STRING} "
Úspěšně jste nakonfigurovali zdroj dat s názvem java:jboss/datasources/JavaEECafeDB
.
Nasazení ukázkové aplikace Java EE Cafe
Pomocí následujících kroků nasaďte ukázkovou aplikaci Java EE Cafe do clusteru Red Hat JBoss EAP:
Pomocí následujícího postupu sestavte Java EE Cafe. Tento postup předpokládá, že máte místní prostředí s nainstalovaným Gitem a Mavenem:
Ke klonování zdrojového kódu z GitHubu použijte následující příkaz:
git clone https://github.com/Azure/rhel-jboss-templates.git --branch 20240904 --single-branch
K sestavení zdrojového kódu použijte následující příkaz:
mvn clean install --file rhel-jboss-templates/eap-coffee-app/pom.xml
Tento příkaz vytvoří soubor eap-coffee-app/target/javaee-café.war. Tento soubor nahrajete v dalším kroku.
Otevřete webový prohlížeč a přejděte do konzoly pro správu na adrese
http://<adminVM-public-IP>:9990
, pak se přihlaste pomocí uživatelského jménajbossadmin
a heslaSecret123456
.Pomocí následujícího postupu nahrajte soubor javaee-café.war do úložiště obsahu:
Na kartě Nasazení konzoly pro správu Red Hat JBoss EAP vyberte v navigačním podokně úložiště obsahu.
Vyberte tlačítko Přidat a pak vyberte Nahrát obsah.
Pomocí voliče souborů prohlížeče vyberte soubor javaee-café.war .
Vyberte Další.
Přijměte výchozí hodnoty na další obrazovce a pak vyberte Dokončit.
Vyberte Zobrazit obsah.
Pomocí následujícího postupu nasaďte aplikaci do
main-server-group
:
Testování konfigurace clusteru Red Hat JBoss EAP
Nakonfigurovali jste cluster JBoss EAP a nasadili jste do něj aplikaci. Pokud chcete ověřit všechna nastavení, použijte následující postup:
Pomocí následujícího příkazu získejte veřejnou IP adresu Aplikace Azure lication Gateway:
az network public-ip show \ --resource-group $RESOURCE_GROUP_NAME \ --name myAGPublicIPAddress \ --query '[ipAddress]' \ --output tsv
Otevřete webový prohlížeč.
Přejděte do aplikace s adresou URL
http://<gateway-public-ip-address>/javaee-cafe/
. Nezapomeňte na koncové lomítko.Zkuste přidat a odebrat kávu.
Vyčištění prostředků
Abyste se vyhnuli poplatkům za Azure, měli byste vyčistit nepotřebné prostředky. Pokud už cluster Red Hat JBoss EAP nasazený na virtuálním počítači Azure nepotřebujete, zrušte registraci serverů EAP Red Hat JBoss a odeberte prostředky Azure.
Pomocí následujících příkazů zrušíte registraci serverů a virtuálních počítačů EAP red Hat jBoss ze správy předplatného Red Hat:
# 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"
Pomocí následujícího příkazu odstraňte skupinu $RESOURCE_GROUP_NAME
prostředků:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Další kroky
Pokračujte v prozkoumání možností spuštění JBoss EAP v Azure.