ADC

Zusätzliche PowerShell-Skripts für die Azure-Bereitstellung

Dieser Abschnitt enthält die PowerShell-Cmdlets, mit denen Sie die folgenden Konfigurationen in Azure PowerShell durchführen können:

  • Bereitstellung einer eigenständigen NetScaler VPX-Instanz
  • Bereitstellung eines NetScaler VPX-Paars in einem Hochverfügbarkeits-Setup mit einem externen Azure-Load Balancer
  • Stellen Sie ein NetScaler VPX-Paar in einem Hochverfügbarkeits-Setup mit dem internen Azure-Load Balancer bereit

In den folgenden Themen finden Sie auch Konfigurationen, die Sie mithilfe von PowerShell-Befehlen durchführen können:

Bereitstellung einer eigenständigen NetScaler VPX-Instanz

  1. Eine Ressourcengruppe erstellen

    Die Ressourcengruppe kann alle Ressourcen für die Lösung oder nur die Ressourcen enthalten, die Sie als Gruppe verwalten möchten. Der hier angegebene Standort ist der Standardspeicherort für Ressourcen in dieser Ressourcengruppe. Stellen Sie sicher, dass alle Befehle zum Erstellen eines Load Balancers dieselbe Ressourcengruppe verwenden.

    $rgName="<resource group name>" $locName="<location name, such as West US> New-AzureRmResourceGroup -Name $rgName -Location $locName

    Zum Beispiel:

    $rgName = "ARM-VPX"
    $locName = "West US"
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    <!--NeedCopy-->
    
  2. Speicherkonto erstellen

    Wählen Sie einen eindeutigen Namen für Ihr Speicherkonto, der nur Kleinbuchstaben und Zahlen enthält.

    $saName="<storage account name>" $saType="<storage account type>", geben Sie eine an: Standard_LRSStandard_GRS, Standard_RAGRS, oder Premium_LRS New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName

    Zum Beispiel:

    $saName="vpxstorage"
    $saType="Standard_LRS"
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    <!--NeedCopy-->
    
  3. Verfügbarkeitssatz erstellen

    Das Verfügbarkeitsset hilft dabei, Ihre virtuellen Maschinen während Ausfallzeiten, z. B. während Wartungsarbeiten, verfügbar zu halten. Ein mit einem Verfügbarkeitssatz konfigurierter Load Balancer stellt sicher, dass Ihre Anwendung immer verfügbar ist.

    $avName="<availability set name>"

    New-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName -Location $locName

  4. Erstellen eines virtuellen Netzwerks

    Fügen Sie ein neues virtuelles Netzwerk mit mindestens einem Subnetz hinzu, falls das Subnetz nicht zuvor erstellt wurde.

    $FrontendAddressPrefix="10.0.1.0/24" $BackendAddressPrefix="10.0.2.0/24" $vnetAddressPrefix="10.0.0.0/16" $frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix $FrontendAddressPrefix $backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix $BackendAddressPrefix New-AzureRmVirtualNetwork -Name TestNet -ResourceGroupName $rgName -Location $locName -AddressPrefix $vnetAddressPrefix -Subnet $frontendSubnet,$backendSubnet

    Zum Beispiel:

    $frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix $FrontendAddressPrefix
    
    $backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix $BackendAddressPrefix
    
    New-AzureRmVirtualNetwork -Name TestNet -ResourceGroupName $rgName -Location $locName -AddressPrefix $vnetAddressPrefix -Subnet $frontendSubnet,$backendSubnet
    <!--NeedCopy-->
    
  5. Erstellen Sie eine NIC

    Erstellen Sie eine NIC und verknüpfen Sie die NIC mit der NetScaler VPX-Instanz. Das im obigen Verfahren erstellte Front-End-Subnetz wird mit 0 und das Back-End-Subnetz mit 1 indexiert. Erstellen Sie nun eine NIC auf eine der drei folgenden Arten:

    a) NIC mit öffentlicher IP-Adresse

    $nicName="<name of the NIC of the VM>"

    $pip = New-AzureRmPublicIpAddress -Name $nicName -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic

    $nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id

    b) NIC mit öffentlicher IP und DNS-Label

    $nicName="<name of the NIC of the VM>"

    $domName="<domain name label>"

    $pip = New-AzureRmPublicIpAddress -Name $nicName -ResourceGroupName $rgName -DomainNameLabel $domName -Location $locName -AllocationMethod Dynamic

    Bevor Sie $domName zuweisen, überprüfen Sie mit dem folgenden Befehl, ob er verfügbar ist oder nicht:

    Test-AzureRmDnsAvailability -DomainQualifiedName $domName -Location $locName

    $nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id

    Zum Beispiel:

    $nicName="frontendNIC"
    
    $domName="vpxazure"
    
    $pip = New-AzureRmPublicIpAddress -Name $nicName -ResourceGroupName $rgName -DomainNameLabel $domName -Location $locName -AllocationMethod Dynamic
    
    $nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id
    <!--NeedCopy-->
    

    c) NIC mit dynamischer öffentlicher Adresse und statischer privater IP-Adresse

    Stellen Sie sicher, dass die private (statische) IP-Adresse, die Sie der VM hinzufügen, den gleichen Bereich haben muss wie die des angegebenen Subnetzes.

    $nicName="<name of the NIC of the VM>"

    $staticIP="<available static IP address on the subnet>"

    $pip = New-AzureRmPublicIpAddress -Name $nicName -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic

    $nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id -PrivateIpAddress $staticIP

  6. Erstellen eines virtuellen Objekts

    $vmName="<VM name>"

    $vmSize="<VM size string>"

    $avSet=Get-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName

    $vm=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id

  7. Holen Sie sich das NetScaler VPX-Image

    $pubName="<Image publisher name>"

    $offerName="<Image offer name>"

    $skuName="<Image SKU name>"

    $cred=Get-Credential -Message "Type the name and password of the local administrator account."

    Geben Sie Ihre Anmeldeinformationen ein, die für die Anmeldung bei VPX verwendet werden

    $vm=Set-AzureRmVMOperatingSystem -VM $vm -Linux -ComputerName $vmName -Credential $cred -Verbose

    $vm=Set-AzureRmVMSourceImage -VM $vm -PublisherName $pubName -Offer $offerName -Skus $skuName -Version "latest"

    $vm=Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id

    Zum Beispiel:

    $pubName="citrix"

    Mit dem folgenden Befehl werden alle Angebote von Citrix angezeigt:

    Get-AzureRMVMImageOffer -Location $locName -Publisher $pubName | Select Offer
    
    $offerName="netscalervpx110-6531"
    <!--NeedCopy-->
    

    Der folgende Befehl wird verwendet, um die vom Herausgeber angebotene SKU für einen bestimmten Angebotsnamen zu kennen:

    Get-AzureRMVMImageSku -Location $locName -Publisher $pubName -Offer $offerName | Select Skus

  8. Erstellen einer virtuellen Maschine

    $diskName="<name identifier for the disk in Azure storage, such as OSDisk>"

    Zum Beispiel:

    $diskName="dynamic"
    
    $pubName="citrix"
    
    $offerName="netscalervpx110-6531"
    
    $skuName="netscalerbyol"
    
    $storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
    
    $osDiskUri=$storageAcc.PrimaryEndpoints.Blob.ToString() + "vhds/" + $diskName  + ".vhd"
    
    $vm=Set-AzureRmVMOSDisk -VM $vm -Name $diskName -VhdUri $osDiskUri -CreateOption fromImage
    <!--NeedCopy-->
    

    Wenn Sie eine VM aus Images erstellen, die auf dem Marketplace vorhanden sind, verwenden Sie den folgenden Befehl, um den VM-Plan anzugeben:

    Set-AzureRmVMPlan -VM $vm -Publisher $pubName -Product $offerName -Name $skuName

    New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm

Bereitstellung eines NetScaler VPX-Paars in einem Hochverfügbarkeits-Setup mit einem externen Azure-Load Balancer

Melden Sie sich mit Ihren Azure-Benutzeranmeldeinformationen bei Azure-Konto an.

  1. Eine Ressourcengruppe erstellen

    Der hier angegebene Standort ist der Standardspeicherort für Ressourcen in dieser Ressourcengruppe. Stellen Sie sicher, dass alle Befehle, die zum Erstellen eines Load Balancers verwendet werden, dieselbe Ressourcengruppe verwenden.

    $rgName="<resource group name>"

    $locName="<location name, such as West US>"

    New-AzureRmResourceGroup -Name $rgName -Location $locName

    Zum Beispiel:

    $rgName = "ARM-LB-NS"
    
    $locName = "West US"
    
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    <!--NeedCopy-->
    
  2. Speicherkonto erstellen

    Wählen Sie einen eindeutigen Namen für Ihr Speicherkonto, der nur Kleinbuchstaben und Zahlen enthält.

    $saName="<storage account name>"

    $saType="<storage account type>", geben Sie eine an: Standard_LRSStandard_GRS, Standard_RAGRS, oder Premium_LRS

    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName

    Zum Beispiel:

    $saName="vpxstorage"
    
    $saType="Standard_LRS"
    
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    <!--NeedCopy-->
    
  3. Verfügbarkeitssatz erstellen

    Ein mit einem Verfügbarkeitssatz konfigurierter Load Balancer stellt sicher, dass Ihre Anwendung immer verfügbar ist.

    $avName="<availability set name>"

    New-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName -Location $locName

  4. Erstellen eines virtuellen Netzwerks

    Fügen Sie ein neues virtuelles Netzwerk mit mindestens einem Subnetz hinzu, falls das Subnetz nicht zuvor erstellt wurde.

    $vnetName = "LBVnet"
    
    $FrontendAddressPrefix="10.0.1.0/24"
    
    $BackendAddressPrefix="10.0.2.0/24"
    
    $vnetAddressPrefix="10.0.0.0/16"
    
    $frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix $FrontendAddressPrefix
    
    $backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix $BackendAddressPrefix
    
    $vnet=New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $locName -AddressPrefix $vnetAddressPrefix -Subnet $frontendSubnet,$backendSubnet
    <!--NeedCopy-->
    

    Hinweis: Wählen Sie den AddressPrefix-Parameterwert gemäß Ihren Anforderungen.

    Weisen Sie dem virtuellen Netzwerk, das Sie zuvor in diesem Schritt erstellt haben, Front-End- und Back-End-Subnetz zu.

    Wenn das Front-End-Subnetz das erste Element von Array VNet ist, muss subnetId $vNet.Subnets [0] .Id sein.

    Wenn das Front-End-Subnetz das zweite Element im Array ist, muss die subnetID $vNet.Subnets [1] .Id und so weiter sein.

  5. Konfigurieren der Front-End-IP-Adresse und Erstellen eines Back-End-Adress-Pools

    Konfigurieren Sie eine Front-End-IP-Adresse für den eingehenden Load Balancer-Netzwerkverkehr und erstellen Sie einen Back-End-Adresspool, um den Load Balancer-Verkehr zu empfangen.

    $pubName="PublicIp1"
    
    $publicIP1 = New-AzureRmPublicIpAddress -Name $pubName -ResourceGroupName $rgName -Location $locName -AllocationMethod Static -DomainNameLabel nsvpx
    <!--NeedCopy-->
    

    Hinweis: Prüfen Sie, ob der Wert für DomainNameLabel verfügbar ist.

    $FIPName = "ELBFIP"
    
    $frontendIP1 = New-AzureRmLoadBalancerFrontendIpConfig -Name $FIPName -PublicIpAddress $publicIP1
    
    $BEPool = "LB-backend-Pool"
    
    $beaddresspool1= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $BEPool
    <!--NeedCopy-->
    
  6. Erstellen Sie eine Gesundheitssonde

    Erstellen Sie einen TCP-Integritätstest mit Port 9000 und einem Intervall von 5 Sekunden.

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name HealthProbe -Protocol Tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
    <!--NeedCopy-->
    
  7. Eine Load-Balancing-Regel erstellen

    Erstellen Sie eine LB-Regel für jeden Dienst, den Sie Load Balancing durchführen.

    Zum Beispiel:

    Sie können das folgende Beispiel verwenden, um den HTTP-Dienst auszubalancieren.

    $lbrule1 = New-AzureRmLoadBalancerRuleConfig -Name "HTTP-LB" -FrontendIpConfiguration $frontendIP1 -BackendAddressPool  $beAddressPool1 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    <!--NeedCopy-->
    
  8. NAT-Regeln für eingehenden Datenverkehr erstellen

    Erstellen Sie NAT-Regeln für Dienste, für die Sie keinen Lastenausgleich durchführen.

    Zum Beispiel beim Erstellen eines SSH-Zugriffs auf eine NetScaler VPX Instanz.

    Hinweis: Protocol-FrontendPort-BackendPort-Triplet darf für zwei NAT-Regeln nicht identisch sein.

    $inboundNATRule1= New-AzureRmLoadBalancerInboundNatRuleConfig -Name SSH1     -FrontendIpConfiguration $frontendIP1 -Protocol TCP -FrontendPort 22 -BackendPort 22
    
    $inboundNATRule2= New-AzureRmLoadBalancerInboundNatRuleConfig -Name SSH2 -FrontendIpConfiguration $frontendIP1 -Protocol TCP -FrontendPort 10022 -BackendPort 22
    <!--NeedCopy-->
    
  9. Erstellen einer Load Balancer-Entität

    Erstellen Sie den Load Balancer, indem Sie alle Objekte (NAT-Regeln, Load Balancer-Regeln, Testkonfigurationen) zusammenfügen.

    $lbName="ELB"
    
    $NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $locName -InboundNatRule $inboundNATRule1, $inboundNATRule2 -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe
    <!--NeedCopy-->
    
  10. Erstellen Sie eine NIC

    Erstellen Sie zwei NICs und ordnen Sie jede NIC jeder VPX-Instanz zu

    a) NIC1 mit VPX1

    Zum Beispiel:

    $nicName="NIC1"
    
    $lbName="ELB"
    
    $bePoolIndex=0
    
    * Rule indexes starts from 0.
    
    $natRuleIndex=0
    
    $subnetIndex=0
    
    * Frontend subnet index
    
    $lb=Get-AzureRmLoadBalancer -Name $lbName -ResourceGroupName $rgName
    
    $nic1=New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -Subnet $vnet.Subnets[$subnetIndex] -LoadBalancerBackendAddressPool $lb.BackendAddressPools[$bePoolIndex] -LoadBalancerInboundNatRule $lb.InboundNatRules[$natRuleIndex]
    <!--NeedCopy-->
    

    b) NIC2 mit VPX2

    Zum Beispiel:

    $nicName="NIC2"
    
    $lbName="ELB"
    
    $bePoolIndex=0
    
    $natRuleIndex=1
    
    * Second Inbound NAT (SSH) rule we need to use
    
    `$subnetIndex=0
    
    * Frontend subnet index
    
    $lb=Get-AzureRmLoadBalancer -Name $lbName -ResourceGroupName $rgName
    
    $nic2=New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -Subnet $vnet.Subnets[$subnetIndex] -LoadBalancerBackendAddressPool $lb.BackendAddressPools[$bePoolIndex] -LoadBalancerInboundNatRule  $lb.InboundNatRules[$natRuleIndex]
    <!--NeedCopy-->
    
  11. Erstellen von NetScaler VPX-Instanzen

    Erstellen Sie zwei NetScaler VPX-Instanzen als Teil derselben Ressourcengruppe und derselben Verfügbarkeitsgruppe und hängen Sie sie an den externen Load Balancer an.

    a) NetScaler VPX-Instanz 1

    Zum Beispiel:

    $vmName="VPX1"
    
    $vmSize="Standard_A3"
    
    $pubName="citrix"
    
    $offerName="netscalervpx110-6531"
    
    $skuName="netscalerbyol"
    
    $avSet=Get-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName
    
    $vm1=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
    
    $cred=Get-Credential -Message "Type Credentials which will be used to login to VPX instance"
    
    $vm1=Set-AzureRmVMOperatingSystem -VM $vm1 -Linux -ComputerName $vmName -Credential $cred -Verbose
    
    $vm1=Set-AzureRmVMSourceImage -VM $vm1 -PublisherName $pubName -Offer $offerName -Skus $skuName -Version "latest"
    
    $vm1=Add-AzureRmVMNetworkInterface -VM $vm1 -Id $nic1.Id
    
    $diskName="dynamic"
    
    $storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
    
    $osDiskUri1=$storageAcc.PrimaryEndpoints.Blob.ToString() + "vhds1/" + $diskName  + ".vhd"
    
    $vm1=Set-AzureRmVMOSDisk -VM $vm1 -Name $diskName -VhdUri $osDiskUri1 -CreateOption fromImage
    
    Set-AzureRmVMPlan -VM $vm1 -Publisher $pubName -Product $offerName -Name $skuName
    
    New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm1
    <!--NeedCopy-->
    

    b) NetScaler VPX-Instanz 2

    Zum Beispiel:

    $vmName="VPX2"
    
    $vmSize="Standard_A3"
    
    $avSet=Get-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName
    
    $vm2=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
    
    $cred=Get-Credential -Message " Type Credentials which will be used to login to VPX instance "
    
    $vm2=Set-AzureRmVMOperatingSystem -VM $vm2 -Linux -ComputerName $vmName -Credential $cred -Verbose
    
    $vm2=Set-AzureRmVMSourceImage -VM $vm2 -PublisherName $pubName -Offer $offerName -Skus $skuName -Version "latest"
    
    $vm2=Add-AzureRmVMNetworkInterface -VM $vm2 -Id $nic2.Id
    
    $diskName="dynamic"
    
    $storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
    
    $osDiskUri1=$storageAcc.PrimaryEndpoints.Blob.ToString() + "vhds2/" + $diskName  + ".vhd"
    
    $vm2=Set-AzureRmVMOSDisk -VM $vm2 -Name $diskName -VhdUri $osDiskUri1 -CreateOption fromImage
    
    Set-AzureRmVMPlan -VM $vm2 -Publisher $pubName -Product $offerName -Name $skuName
    
    New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm2
    <!--NeedCopy-->
    
  12. Konfiguration der virtuellen Maschinen

    Wenn beide NetScaler VPX-Instanzen gestartet werden, stellen Sie mithilfe des SSH-Protokolls eine Verbindung zu beiden NetScaler VPX-Instanzen her, um die virtuellen Maschinen zu konfigurieren.

    a) Active-Active: Führen Sie dieselben Konfigurationsbefehle auf der Befehlszeile der beiden NetScaler VPX-Instanzen aus.

    b) Active-Passive: Führen Sie diesen Befehl in der Befehlszeile der beiden NetScaler VPX-Instanzen aus.

    add ha node #nodeID <nsip of other NetScaler VPX>

    Führen Sie im Active-Passive-Modus Konfigurationsbefehle nur auf dem primären Knoten aus.

Stellen Sie ein NetScaler VPX-Paar in einem Hochverfügbarkeits-Setup mit dem internen Azure-Load Balancer bereit

Melden Sie sich mit Ihren Azure-Benutzeranmeldeinformationen bei Azure-Konto an.

  1. Eine Ressourcengruppe erstellen

    Der hier angegebene Standort ist der Standardspeicherort für Ressourcen in dieser Ressourcengruppe. Stellen Sie sicher, dass alle Befehle zum Erstellen eines Load Balancers dieselbe Ressourcengruppe verwenden.

    $rgName="\<resource group name\>"

    $locName="\<location name, such as West US\>"

    New-AzureRmResourceGroup -Name $rgName -Location $locName

    Zum Beispiel:

    $rgName = "ARM-LB-NS"
    
    $locName = "West US"
    
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    <!--NeedCopy-->
    
  2. Speicherkonto erstellen

    Wählen Sie einen eindeutigen Namen für Ihr Speicherkonto, der nur Kleinbuchstaben und Zahlen enthält.

    $saName="<storage account name>"

    $saType="<storage account type>", geben Sie eine an: Standard_LRSStandard_GRS, Standard_RAGRS, oder Premium_LRS

    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName

    Zum Beispiel:

    $saName="vpxstorage"
    
    $saType="Standard_LRS"
    
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    <!--NeedCopy-->
    
  3. Verfügbarkeitssatz erstellen

    Ein mit einem Verfügbarkeitssatz konfigurierter Load Balancer stellt sicher, dass Ihre Anwendung immer verfügbar ist.

    $avName="<availability set name>"

    New-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName -Location $locName

  4. Erstellen eines virtuellen Netzwerks

    Fügen Sie ein neues virtuelles Netzwerk mit mindestens einem Subnetz hinzu, falls das Subnetz nicht zuvor erstellt wurde.

    $vnetName = "LBVnet"
    
    $vnetAddressPrefix="10.0.0.0/16"
    
    $FrontendAddressPrefix="10.0.1.0/24"
    
    $BackendAddressPrefix="10.0.2.0/24"
    
    $vnet=New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $locName -AddressPrefix $vnetAddressPrefix -Subnet $frontendSubnet,$backendSubnet`
    
    $frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix $FrontendAddressPrefix
    
    $backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix $BackendAddressPrefix
    <!--NeedCopy-->
    

    Hinweis: Wählen Sie den AddressPrefix-Parameterwert gemäß Ihren Anforderungen.

    Weisen Sie dem virtuellen Netzwerk, das Sie zuvor in diesem Schritt erstellt haben, Front-End- und Back-End-Subnetz zu.

    Wenn das Front-End-Subnetz das erste Element von Array VNet ist, muss subnetId $vNet.Subnets [0] .Id sein.

    Wenn das Front-End-Subnetz das zweite Element im Array ist, muss die subnetID $vNet.Subnets [1] .Id und so weiter sein.

  5. Erstellen eines Backend-Adresspool

    $beaddresspool= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name "LB-backend"

  6. NAT-Regeln erstellen

    Erstellen Sie NAT-Regeln für Dienste, für die Sie keinen Lastenausgleich durchführen.

    $inboundNATRule1= New-AzureRmLoadBalancerInboundNatRuleConfig -Name "Inboundnatrule1" -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3441 -BackendPort 3389
    
    $inboundNATRule2= New-AzureRmLoadBalancerInboundNatRuleConfig -Name "RDP2" -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3442 -BackendPort 3389
    <!--NeedCopy-->
    

    Verwenden Sie Front-End- und Back-End-Ports gemäß Ihren Anforderungen.

  7. Erstellen Sie eine Gesundheitssonde

    Erstellen Sie einen TCP-Integritätstest mit Port 9000 und einem Intervall von 5 Sekunden.

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name "HealthProbe"  " -Protocol tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
    <!--NeedCopy-->
    
  8. Eine Load-Balancing-Regel erstellen

    Erstellen Sie eine LB-Regel für jeden Dienst, den Sie Load Balancing durchführen.

    Zum Beispiel:

    Sie können das folgende Beispiel verwenden, um den HTTP-Dienst auszubalancieren.

    $lbrule = New-AzureRmLoadBalancerRuleConfig -Name "lbrule1" -FrontendIpConfiguration $frontendIP -BackendAddressPool $beAddressPool -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    <!--NeedCopy-->
    

    Verwenden Sie Front-End- und Back-End-Ports gemäß Ihren Anforderungen.

  9. Erstellen einer Load Balancer-Entität

    Erstellen Sie den Load Balancer, indem Sie alle Objekte (NAT-Regeln, Load Balancer-Regeln, Testkonfigurationen) zusammenfügen.

    $NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgname -Name "InternalLB" -Location $locName -FrontendIpConfiguration $frontendIP -InboundNatRule $inboundNATRule1,$inboundNatRule2 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
    <!--NeedCopy-->
    
  10. Erstellen Sie eine NIC

    Erstellen Sie zwei Netzwerkkarten und ordnen Sie jede Netzwerkkarte jeder NetScaler VPX-Instanz zu

    $backendnic1= New-AzureRmNetworkInterface -ResourceGroupName $rgName -Name lb-nic1-be -Location $locName -PrivateIpAddress 10.0.2.6 -Subnet $backendSubnet -LoadBalancerBackendAddressPool $nrplb.BackendAddressPools[0] -LoadBalancerInboundNatRule $nrplb.InboundNatRules[0]
    <!--NeedCopy-->
    

    Diese Netzwerkkarte ist für NetScaler VPX 1. Die Private IP muss sich im selben Subnetz befinden wie die des hinzugefügten Subnetzes.

    $backendnic2= New-AzureRmNetworkInterface -ResourceGroupName $rgName -Name lb-nic2-be -Location $locName -PrivateIpAddress 10.0.2.7 -Subnet $backendSubnet -LoadBalancerBackendAddressPool $nrplb.BackendAddressPools[0] -LoadBalancerInboundNatRule $nrplb.InboundNatRules[1].
    <!--NeedCopy-->
    

    Diese NIC ist für NetScaler VPX 2. Der Parameter Private IPAddress kann jede private IP gemäß Ihrer Anforderung haben.

  11. Erstellen von NetScaler VPX-Instanzen

    Erstellen Sie zwei VPX-Instanzen, die Teil derselben Ressourcengruppe und derselben Verfügbarkeitsgruppe sind, und hängen Sie sie an den internen Load Balancer an.

    a) NetScaler VPX-Instanz 1

    Zum Beispiel:

    $vmName="VPX1"
    
    $vmSize="Standard_A3"
    
    $avSet=Get-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName
    
    $vm1=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
    
    $cred=Get-Credential -Message "Type Credentials which will be used to login to VPX instance"
    
    $vm1=Set-AzureRmVMOperatingSystem -VM $vm1 -Linux -ComputerName $vmName -Credential $cred -Verbose
    
    $vm1=Set-AzureRmVMSourceImage -VM $vm1 -PublisherName $pubName -Offer $offerName -Skus $skuName -Version "latest"
    
    $vm1=Add-AzureRmVMNetworkInterface -VM $vm1 -Id $backendnic1.Id
    
    $diskName="dynamic"
    
    $storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
    
    $osDiskUri1=$storageAcc.PrimaryEndpoints.Blob.ToString() + "vhds1/" + $diskName  + ".vhd"
    
    $vm1=Set-AzureRmVMOSDisk -VM $vm1 -Name $diskName -VhdUri $osDiskUri1 -CreateOption fromImage
    
    Set-AzureRmVMPlan -VM $vm1 -Publisher $pubName -Product $offerName -Name $skuName
    
    New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm1
    <!--NeedCopy-->
    

    b) NetScaler VPX-Instanz 2

    Zum Beispiel:

    $vmName="VPX2"
    
    $vmSize="Standard_A3"
    
    $avSet=Get-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName
    
    $vm2=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
    
    $cred=Get-Credential -Message " Type Credentials which will be used to login to VPX instance "
    
    $vm2=Set-AzureRmVMOperatingSystem -VM $vm2 -Linux -ComputerName $vmName -Credential $cred -Verbose
    
    $vm2=Set-AzureRmVMSourceImage -VM $vm2 -PublisherName $pubName -Offer $offerName -Skus $skuName -Version "latest"
    
    $vm2=Add-AzureRmVMNetworkInterface -VM $vm2 -Id $backendnic2.Id
    
    $diskName="dynamic"
    
    $storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
    
    $osDiskUri1=$storageAcc.PrimaryEndpoints.Blob.ToString() + "vhds2/" + $diskName  + ".vhd"
    
    $vm2=Set-AzureRmVMOSDisk -VM $vm2 -Name $diskName -VhdUri $osDiskUri1 -CreateOption fromImage
    
    Set-AzureRmVMPlan -VM $vm2 -Publisher $pubName -Product $offerName -Name $skuName
    
    New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm2
    <!--NeedCopy-->
    
  12. Konfiguration der virtuellen Maschinen

    Wenn beide NetScaler VPX-Instanzen gestartet werden, stellen Sie mithilfe des SSH-Protokolls eine Verbindung zu beiden NetScaler VPX-Instanzen her, um die virtuellen Maschinen zu konfigurieren.

    a) Active-Active: Führen Sie dieselben Konfigurationsbefehle auf der Befehlszeile der beiden NetScaler VPX-Instanzen aus.

    b) Active-Passive: Führen Sie diesen Befehl in der Befehlszeile der beiden NetScaler VPX-Instanzen aus.

    add ha node #nodeID <nsip of other NetScaler VPX>

    Führen Sie im Active-Passive-Modus Konfigurationsbefehle nur auf dem primären Knoten aus.

Zusätzliche PowerShell-Skripts für die Azure-Bereitstellung