Citrix 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 ausführen können:

  • Bereitstellen einer eigenständigen Citrix ADC VPX-Instanz
  • Bereitstellen eines Citrix ADC VPX -Paars in einer Hochverfügbarkeit-Setup mit einem externen Azure-Load Balancer
  • Bereitstellen eines Citrix ADC VPX Paares in einem Hochverfügbarkeits-Setup mit dem internen Azure-Load Balancer

Weitere Informationen zu Konfigurationen, die Sie mithilfe von PowerShell Befehlen ausführen können, finden Sie in den folgenden Themen:

Bereitstellen einer eigenständigen Citrix ADC VPX-Instanz

  1. Erstellen einer Ressourcengruppe

    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 Speicherort ist der Standardspeicherort für Ressourcen in dieser Ressourcengruppe. Stellen Sie sicher, dass alle Befehle zum Erstellen eines Load Balancer 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
    
  2. Erstellen eines Speicherkontos

    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 eines an: Standard_LRS, Standard_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
    
  3. Erstellen eines Verfügbarkeitssatzes

    Verfügbarkeitssatz hilft, Ihre virtuellen Maschinen während Ausfallzeiten verfügbar zu halten, z. B. während der Wartung. Ein Load Balancer, der mit einem Verfügbarkeitssatz konfiguriert ist, 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, wenn das Subnetz vorher nicht 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
    
  5. Erstellen einer Netzwerkkarte

    Erstellen Sie eine Netzwerkkarte, und ordnen Sie die Netzwerkkarte der Citrix ADC VPX-Instanz zu. Das in der obigen Prozedur erstellte Front-End-Subnetz wird bei 0 indiziert und das Back-End-Subnetz wird bei 1 indiziert. Erstellen Sie nun 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, ob es verfügbar ist oder nicht, indem Sie den Befehl verwenden:

    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
    

    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, im gleichen Bereich wie der des angegebenen Subnetzes sein sollte.

    $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. Abrufen des Citrix ADC VPX Images

    $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 an, 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"
    

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

    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
    

    Wenn Sie VM aus Images erstellen, die auf Marketplace-Site 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

Bereitstellen eines Citrix ADC VPX -Paars in einer Hochverfügbarkeit-Setup mit einem externen Azure-Load Balancer

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

  1. Erstellen einer Ressourcengruppe

    Der hier angegebene Speicherort ist der Standardspeicherort für Ressourcen in dieser Ressourcengruppe. Stellen Sie sicher, dass alle Befehle, die zum Erstellen eines Load Balancer 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
    
  2. Erstellen eines Speicherkontos

    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 eines an: Standard_LRS, Standard_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
    
  3. Erstellen eines Verfügbarkeitssatzes

    Ein Load Balancer, der mit einem Verfügbarkeitssatz konfiguriert ist, 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, wenn das Subnetz vorher nicht 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
    

    Hinweis: Wählen Sie den AddressPrefix-Parameterwert gemäß Ihrer Anforderung.

    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, sollte SubnetID $VNet.Subnets [0] .Id sein.

    Wenn das Front-End-Subnetz das zweite Element im Array ist, sollte die SubnetID $vnet.subnets [1] .Id usw. 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 Lastausgleichsverkehr zu empfangen.

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

    Hinweis: Überprü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
    
  6. Erstellen eines Gesundheitstasters

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

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name HealthProbe -Protocol Tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
    
  7. Erstellen einer Lastausgleichsregel

    Erstellen Sie eine LB-Regel für jeden Dienst, für den Sie Lastenausgleich arbeiten.

    Zum Beispiel:

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

    $lbrule1 = New-AzureRmLoadBalancerRuleConfig -Name "HTTP-LB" -FrontendIpConfiguration $frontendIP1 -BackendAddressPool  $beAddressPool1 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    
  8. Erstellen eingehender NAT-Regeln

    Erstellen Sie NAT-Regeln für Dienste, für die Sie keinen Lastausgleich haben.

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

    Hinweis: Protocol-FrontendPort-BackendPort-Triplet sollte 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
    
  9. Erstellen einer Load Balancer-Entität

    Erstellen Sie den Load Balancer und fügen Sie alle Objekte (NAT-Regeln, Load Balancer-Regeln, Probe-Konfigurationen) zusammen.

    $lbName="ELB"
    
    $NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $locName -InboundNatRule $inboundNATRule1, $inboundNATRule2 -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe
    
  10. Erstellen einer Netzwerkkarte

    Erstellen Sie zwei Netzwerkkarten und verknüpfen Sie jede Netzwerkkarte mit jeder VPX-Instanz

    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]
    

    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]
    
  11. Erstellen von Citrix ADC VPX-Instanzen

    Erstellen Sie zwei Citrix ADC VPX-Instanzen als Teil derselben Ressourcengruppe und derselben Verfügbarkeitsgruppe, und fügen Sie sie an den externen Load Balancer an.

    a) Citrix ADC 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
    

    b) Citrix ADC 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
    
  12. Konfigurieren der virtuellen Maschinen

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

    a) Aktiv-Aktiv: Führen Sie denselben Satz von Konfigurationsbefehlen in der Befehlszeile beider Citrix ADC VPX-Instanzen aus.

    b) Aktiv-Passiv: Führen Sie diesen Befehl in der Befehlszeile der beiden Citrix ADC VPX-Instanzen aus.

    add ha node #nodeID <nsip of other Citrix ADC VPX>

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

Bereitstellen eines Citrix ADC VPX Paares in einem Hochverfügbarkeits-Setup mit dem internen Azure-Load Balancer

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

  1. Erstellen einer Ressourcengruppe

    Der hier angegebene Speicherort ist der Standardspeicherort für Ressourcen in dieser Ressourcengruppe. Stellen Sie sicher, dass alle Befehle zum Erstellen eines Load Balancer 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
    
  2. Erstellen eines Speicherkontos

    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 eines an: Standard_LRS, Standard_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
    
  3. Erstellen eines Verfügbarkeitssatzes

    Ein Load Balancer, der mit einem Verfügbarkeitssatz konfiguriert ist, 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, wenn das Subnetz vorher nicht 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
    

    Hinweis: Wählen Sie den AddressPrefix-Parameterwert gemäß Ihrer Anforderung.

    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, sollte SubnetID $VNet.Subnets [0] .Id sein.

    Wenn das Front-End-Subnetz das zweite Element im Array ist, sollte die SubnetID $vnet.subnets [1] .Id usw. sein.

  5. Erstellen eines Backend-Adresspool

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

  6. Erstellen von NAT-Regeln

    Erstellen Sie NAT-Regeln für Dienste, für die Sie keinen Lastausgleich haben.

    $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
    

    Verwenden Sie Front-End-und Back-End-Ports nach Ihren Anforderungen.

  7. Erstellen eines Gesundheitstasters

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

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name "HealthProbe"  " -Protocol tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
    
  8. Erstellen einer Lastausgleichsregel

    Erstellen Sie eine LB-Regel für jeden Dienst, für den Sie Lastenausgleich arbeiten.

    Beispiel:

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

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

    Verwenden Sie Front-End-und Back-End-Ports nach Ihren Anforderungen.

  9. Erstellen einer Load Balancer-Entität

    Erstellen Sie den Load Balancer und fügen Sie alle Objekte (NAT-Regeln, Load Balancer-Regeln, Probe-Konfigurationen) zusammen.

    $NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgname -Name "InternalLB" -Location $locName -FrontendIpConfiguration $frontendIP -InboundNatRule $inboundNATRule1,$inboundNatRule2 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
    
  10. Erstellen einer Netzwerkkarte

    Erstellen Sie zwei Netzwerkkarten und ordnen Sie jede Netzwerkkarte jeder Citrix ADC 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]
    

    Diese Netzwerkkarte ist für Citrix ADC VPX 1. Die private IP sollte sich im selben Subnetz wie das des hinzugefügten Subnetzes befinden.

    $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].
    

    Diese NIC ist für Citrix ADC VPX 2.Der Parameter Private IPAddress kann jede private IP gemäß Ihren Anforderungen haben.

  11. Erstellen von Citrix ADC VPX-Instanzen

    Erstellen Sie zwei VPX-Instanzen, die Teil derselben Ressourcengruppe und derselben Verfügbarkeitsgruppe sind, und fügen Sie sie dem internen Lastausgleichsdienst hinzu.

    a) Citrix ADC 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
    

    b) Citrix ADC 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
    
  12. Konfigurieren der virtuellen Maschinen

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

    a) Aktiv-Aktiv: Führen Sie denselben Satz von Konfigurationsbefehlen in der Befehlszeile beider Citrix ADC VPX-Instanzen aus.

    b) Aktiv-Passiv: Führen Sie diesen Befehl in der Befehlszeile der beiden Citrix ADC VPX-Instanzen aus.

    add ha node #nodeID <nsip of other Citrix ADC VPX>

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

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