NetScaler VPX

Scripts PowerShell supplémentaires pour le déploiement Azure

Cette section fournit les cmdlets PowerShell avec lesquelles vous pouvez effectuer les configurations suivantes dans Azure PowerShell :

  • Provisionner une instance NetScaler VPX autonome
  • Provisionner une paire NetScaler VPX dans une configuration haute disponibilité avec un équilibreur de charge externe Azure
  • Provisionner une paire NetScaler VPX dans une configuration haute disponibilité avec un équilibreur de charge interne Azure

Consultez également les rubriques suivantes pour les configurations que vous pouvez effectuer à l’aide de commandes PowerShell :

Provisionner une instance NetScaler VPX autonome

  1. Créer un groupe de ressources

    Le groupe de ressources peut inclure toutes les ressources de la solution, ou seulement celles que vous souhaitez gérer en tant que groupe. L’emplacement spécifié ici est l’emplacement par défaut pour les ressources de ce groupe de ressources. Assurez-vous que toutes les commandes de création d’un équilibreur de charge utilisent le même groupe de ressources.

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

    Par exemple :

    $rgName = "ARM-VPX"
    $locName = "West US"
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    <!--NeedCopy-->
    
  2. Créer un compte de stockage

    Choisissez un nom unique pour votre compte de stockage qui ne contient que des lettres minuscules et des chiffres.

    $saName="<storage account name>" $saType="<storage account type>", spécifiez-en un : Standard_LRS, Standard_GRS, Standard_RAGRS, ou Premium_LRS New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName

    Par exemple :

    $saName="vpxstorage"
    $saType="Standard\_LRS"
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    <!--NeedCopy-->
    
  3. Créer un groupe à haute disponibilité

    Un groupe à haute disponibilité aide à maintenir vos machines virtuelles disponibles pendant les temps d’arrêt, par exemple lors d’une maintenance. Un équilibreur de charge configuré avec un groupe à haute disponibilité garantit que votre application est toujours disponible.

    $avName="<availability set name>"

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

  4. Créer un réseau virtuel

    Ajoutez un nouveau réseau virtuel avec au moins un sous-réseau, si le sous-réseau n’a pas été créé précédemment.

    $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

    Par exemple :

    $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. Créer une carte réseau

    Créez une carte réseau et associez-la à l’instance NetScaler VPX. Le sous-réseau frontal créé dans la procédure ci-dessus est indexé à 0 et le sous-réseau dorsal est indexé à 1. Créez maintenant une carte réseau de l’une des trois manières suivantes :

    a) Carte réseau avec adresse IP publique

    $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 avec IP publique et étiquette DNS

    $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

    Avant d’attribuer $domName, vérifiez s’il est disponible ou non en utilisant la commande :

    Test-AzureRmDnsAvailability -DomainQualifiedName $domName -Location $locName

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

    Par exemple :

    $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 avec adresse IP publique dynamique et adresse IP privée statique

    Assurez-vous que l’adresse IP privée (statique) que vous ajoutez à la VM doit être de la même plage que celle du sous-réseau spécifié.

    $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. Créer un objet virtuel

    $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. Obtenir l’image NetScaler VPX

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

    Fournissez vos informations d’identification utilisées pour vous connecter à VPX

    $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

    Par exemple :

    $pubName="citrix"

    La commande suivante est utilisée pour afficher toutes les offres de Citrix® :

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

    La commande suivante est utilisée pour connaître le SKU proposé par l’éditeur pour un nom d’offre spécifique :

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

  8. Créer une machine virtuelle

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

    Par exemple :

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

    Lorsque vous créez une VM à partir d’images présentes sur la marketplace, utilisez la commande suivante pour spécifier le plan de la VM :

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

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

Provisionner une paire NetScaler VPX dans une configuration haute disponibilité avec un équilibreur de charge externe Azure

Connectez-vous à AzureRmAccount en utilisant vos identifiants utilisateur Azure.

  1. Créer un groupe de ressources

    L’emplacement spécifié ici est l’emplacement par défaut pour les ressources dans ce groupe de ressources. Assurez-vous que toutes les commandes utilisées pour créer un équilibreur de charge utilisent le même groupe de ressources.

    $rgName="<resource group name>"

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

    New-AzureRmResourceGroup -Name $rgName -Location $locName

    Par exemple :

    $rgName = "ARM-LB-NS"
    
    $locName = "West US"
    
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    <!--NeedCopy-->
    
  2. Créer un compte de stockage

    Choisissez un nom unique pour votre compte de stockage qui ne contient que des lettres minuscules et des chiffres.

    $saName="<storage account name>"

    $saType="<storage account type>", spécifiez-en un : Standard_LRS, Standard_GRS, Standard_RAGRS, ou Premium_LRS

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

    Par exemple :

    $saName="vpxstorage"
    
    $saType="Standard_LRS"
    
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    <!--NeedCopy-->
    
  3. Créer un groupe à haute disponibilité

    Un équilibreur de charge configuré avec un groupe à haute disponibilité garantit que votre application est toujours disponible.

    $avName="<availability set name>"

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

  4. Créer un réseau virtuel

    Ajoutez un nouveau réseau virtuel avec au moins un sous-réseau, si le sous-réseau n’a pas été créé précédemment.

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

    Remarque :

    Choisissez la valeur du paramètre AddressPrefix selon vos besoins.

    Attribuez un sous-réseau frontal et un sous-réseau dorsal au réseau virtuel que vous avez créé précédemment à cette étape.

    Si le sous-réseau frontal est le premier élément du tableau VNet, subnetId doit être $vnet.Subnets[0].Id.

    Si le sous-réseau frontal est le deuxième élément du tableau, subnetId doit être $vnet.Subnets[1].Id, et ainsi de suite.

  5. Configurer l’adresse IP frontale et créer un pool d’adresses dorsales

    Configurez une adresse IP frontale pour le trafic réseau entrant de l’équilibreur de charge et créez un pool d’adresses dorsales pour recevoir le trafic équilibré.

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

    Remarque :

    Vérifiez la disponibilité de la valeur pour DomainNameLabel.

    $FIPName = "ELBFIP"
    
    $frontendIP1 = New-AzureRmLoadBalancerFrontendIpConfig -Name $FIPName -PublicIpAddress $publicIP1
    
    $BEPool = "LB-backend-Pool"
    
    $beaddresspool1= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $BEPool
    <!--NeedCopy-->
    
  6. Créer une sonde d’intégrité

    Créez une sonde d’intégrité TCP avec le port 9000 et un intervalle de 5 secondes.

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name HealthProbe -Protocol Tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
    <!--NeedCopy-->
    
  7. Créer une règle d’équilibrage de charge

    Créez une règle d’équilibrage de charge (LB) pour chaque service que vous équilibrez.

    Par exemple :

    Vous pouvez utiliser l’exemple suivant pour équilibrer la charge du service HTTP.

    $lbrule1 = New-AzureRmLoadBalancerRuleConfig -Name "HTTP-LB" -FrontendIpConfiguration $frontendIP1 -BackendAddressPool  $beAddressPool1 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    <!--NeedCopy-->
    
  8. Créer des règles NAT entrantes

    Créez des règles NAT pour les services que vous n’équilibrez pas en charge.

    Par exemple, lors de la création d’un accès SSH à une instance NetScaler VPX.

    Remarque :

    Le triplet Protocole-PortFrontal-PortArrière ne doit pas être le même pour deux règles NAT.

    $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. Créer une entité d’équilibreur de charge

    Créez l’équilibreur de charge en ajoutant tous les objets (règles NAT, règles d’équilibrage de charge, configurations de sonde) ensemble.

    $lbName="ELB"
    
    $NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $locName -InboundNatRule $inboundNATRule1, $inboundNATRule2 -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe
    <!--NeedCopy-->
    
  10. Créer une carte réseau

    Créez deux cartes réseau et associez chaque carte réseau à chaque instance VPX

    a) Carte réseau 1 avec VPX1

    Par exemple :

    $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) Carte réseau 2 avec VPX2

    Par exemple :

    $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. Créer des instances NetScaler VPX

    Créez deux instances NetScaler VPX dans le même groupe de ressources et le même groupe à haute disponibilité, et associez-les à l’équilibreur de charge externe.

    a) Instance NetScaler VPX 1

    Par exemple :

    $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) Instance NetScaler VPX 2

    Par exemple :

    $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. Configurer les machines virtuelles

    Lorsque les deux instances NetScaler VPX démarrent, connectez-vous aux deux instances NetScaler VPX à l’aide du protocole SSH pour configurer les machines virtuelles.

    a) Actif-Actif : Exécutez le même ensemble de commandes de configuration sur la ligne de commande des deux instances NetScaler VPX.

    b) Actif-Passif : Exécutez cette commande sur la ligne de commande des deux instances NetScaler VPX.

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

    En mode Actif-Passif, exécutez les commandes de configuration uniquement sur le nœud principal.

Provisionner une paire NetScaler VPX dans une configuration haute disponibilité avec un équilibreur de charge interne Azure

Connectez-vous à AzureRmAccount à l’aide de vos informations d’identification d’utilisateur Azure.

  1. Créer un groupe de ressources

    L’emplacement spécifié ici est l’emplacement par défaut pour les ressources de ce groupe de ressources. Assurez-vous que toutes les commandes de création d’un équilibreur de charge utilisent le même groupe de ressources.

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

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

    New-AzureRmResourceGroup -Name $rgName -Location $locName

    Par exemple :

    $rgName = "ARM-LB-NS"
    
    $locName = "West US"
    
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    <!--NeedCopy-->
    
  2. Créer un compte de stockage

    Choisissez un nom unique pour votre compte de stockage qui ne contient que des lettres minuscules et des chiffres.

    $saName="<storage account name>"

    $saType="<storage account type>", spécifiez-en un : Standard_LRS, Standard_GRS, Standard_RAGRS, ou Premium_LRS

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

    Par exemple :

    $saName="vpxstorage"
    
    $saType="Standard_LRS"
    
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    <!--NeedCopy-->
    
  3. Créer un groupe à haute disponibilité

    Un équilibreur de charge configuré avec un groupe à haute disponibilité garantit que votre application est toujours disponible.

    $avName="<availability set name>"

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

  4. Créer un réseau virtuel

    Ajoutez un nouveau réseau virtuel avec au moins un sous-réseau, si le sous-réseau n’a pas été créé précédemment.

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

    Remarque :

    Choisissez la valeur du paramètre AddressPrefix selon vos besoins.

    Attribuez un sous-réseau frontal et un sous-réseau dorsal au réseau virtuel que vous avez créé précédemment à cette étape.

    Si le sous-réseau frontal est le premier élément du tableau VNet, subnetId doit être $vnet.Subnets[0].Id.

    Si le sous-réseau frontal est le deuxième élément du tableau, subnetId doit être $vnet.Subnets[1].Id, et ainsi de suite.

  5. Créer un pool d’adresses de backend

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

  6. Créer des règles NAT

    Créez des règles NAT pour les services que vous n’équilibrez pas en charge.

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

    Utilisez les ports frontaux et dorsaux selon vos besoins.

  7. Créer une sonde d’intégrité

    Créez une sonde d’intégrité TCP avec le port 9000 et un intervalle de 5 secondes.

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name "HealthProbe"  " -Protocol tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
    <!--NeedCopy-->
    
  8. Créer une règle d’équilibrage de charge

    Créez une règle d’équilibrage de charge pour chaque service pour lequel vous équilibrez la charge.

    Par exemple :

    Vous pouvez utiliser l’exemple suivant pour équilibrer la charge du service HTTP.

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

    Utilisez les ports front-end et back-end selon vos besoins.

  9. Créez une entité d’équilibreur de charge

    Créez l’équilibreur de charge en ajoutant tous les objets (règles NAT, règles d’équilibrage de charge, configurations de sonde) ensemble.

    $NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgname -Name "InternalLB" -Location $locName -FrontendIpConfiguration $frontendIP -InboundNatRule $inboundNATRule1,$inboundNatRule2 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
    <!--NeedCopy-->
    
  10. Créez une interface réseau

    Créez deux interfaces réseau et associez chaque interface réseau à chaque instance NetScaler VPX.

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

    Cette interface réseau est pour NetScaler VPX 1. L’adresse IP privée doit être dans le même sous-réseau que celui ajouté.

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

    Cette interface réseau est pour NetScaler VPX 2. Le paramètre Private IPAddress peut avoir n’importe quelle adresse IP privée selon vos besoins.

  11. Créez des instances NetScaler VPX

    Créez deux instances VPX faisant partie du même groupe de ressources et du même ensemble de disponibilité, et attachez-les à l’équilibreur de charge interne.

    a) Instance NetScaler VPX 1

    Par exemple :

    $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) Instance NetScaler VPX 2

    Par exemple :

    $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. Configurer les machines virtuelles

    Lorsque les deux instances NetScaler VPX démarrent, connectez-vous aux deux instances NetScaler VPX en utilisant le protocole SSH pour configurer les machines virtuelles.

    a) Actif-Actif : Exécutez le même ensemble de commandes de configuration sur la ligne de commande des deux instances NetScaler VPX.

    b) Actif-Passif : Exécutez cette commande sur la ligne de commande des deux instances NetScaler VPX.

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

    En mode Actif-Passif, exécutez les commandes de configuration uniquement sur le nœud principal.

Scripts PowerShell supplémentaires pour le déploiement Azure