ADC

Scripts PowerShell supplémentaires pour le déploiement Azure

Cette section fournit les applets de commande PowerShell avec lesquels vous pouvez effectuer les configurations suivantes dans Azure PowerShell :

  • Provisionner une instance autonome NetScaler VPX
  • 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 l’équilibreur de charge interne Azure

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

Provisionner une instance autonome NetScaler VPX

  1. Création d’un groupe de ressources

    Le groupe de ressources peut inclure toutes les ressources de la solution, ou uniquement les ressources que vous souhaitez gérer en tant que groupe. L’emplacement spécifié ici est l’emplacement par défaut des ressources de ce groupe de ressources. Assurez-vous que toutes les commandes permettant de 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-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 une : Standard_LRSStandard_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éation d’un ensemble de disponibilité

    L’ensemble de disponibilité permet de maintenir vos machines virtuelles disponibles pendant les temps d’arrêt, par exemple pendant la maintenance. Un équilibreur de charge configuré avec un ensemble de 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éation d’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 principal est indexé à 1. Créez maintenant une carte réseau de l’une des trois manières suivantes :

    a) NIC 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) Carte réseau avec adresse 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 qu’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) Carte réseau avec adresse publique dynamique et adresse IP privée statique

    Assurez-vous que l’adresse IP privée (statique) que vous ajoutez à la machine virtuelle doit correspondre à 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 permet de 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 machine virtuelle à partir d’images présentes sur Marketplace, utilisez la commande suivante pour spécifier le plan de machine virtuelle :

    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 à l’aide de vos informations d’identification utilisateur Azure.

  1. Création d’un groupe de ressources

    L’emplacement spécifié ici est l’emplacement par défaut des ressources de 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 une : Standard_LRSStandard_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éation d’un ensemble de disponibilité

    Un équilibreur de charge configuré avec un ensemble de 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.

    Affectez des sous-réseaux frontaux et back-end au réseau virtuel que vous avez créé précédemment au cours de cette étape.

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

    Si le sous-réseau frontal est le deuxième élément du tableau, l’ID de sous-réseau doit être $VNet.Subnets [1] .Id, etc.

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

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

    $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éez une sonde de santé

    Créez une sonde de santé 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éation d’une règle d’équilibrage de charge

    Créez une règle LB pour chaque service pour lequel vous équilibrez la charge.

    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éation de règles NAT entrantes

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

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

    Remarque : Le triplet Protocol-FrontEndPort-BackendPort 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’équilibrage de charge

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

    $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éation d’une carte réseau

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

    a) NIC1 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) NIC2 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éation d’instances NetScaler VPX

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

    a) Instance 1 de NetScaler VPX

    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 2 de NetScaler VPX

    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. Configuration des 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) Active-Active : exécutez le même ensemble de commandes de configuration sur la ligne de commande des deux instances de 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 uniquement les commandes de configuration sur le nœud principal.

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

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

  1. Création d’un groupe de ressources

    L’emplacement spécifié ici est l’emplacement par défaut des ressources de ce groupe de ressources. Assurez-vous que toutes les commandes permettant de 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 une : Standard_LRSStandard_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éation d’un ensemble de disponibilité

    Un équilibreur de charge configuré avec un ensemble de 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.

    Affectez des sous-réseaux frontaux et back-end au réseau virtuel que vous avez créé précédemment au cours de cette étape.

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

    Si le sous-réseau frontal est le deuxième élément du tableau, l’ID de sous-réseau doit être $VNet.Subnets [1] .Id, etc.

  5. Créer un pool d’adresses backend

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

  6. Création de règles NAT

    Créez des règles NAT pour les services dont vous n’équilibrez pas la 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éez une sonde de santé

    Créez une sonde de santé 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éation d’une règle d’équilibrage de charge

    Créez une règle LB 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 frontaux et dorsaux selon vos besoins.

  9. Créer une entité d’équilibrage de charge

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

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

    Créez deux cartes réseau et associez chaque carte 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 carte réseau est destinée à NetScaler VPX 1. L’IP privée doit se trouver dans le même sous-réseau que celui du sous-réseau 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 carte réseau est destinée à NetScaler VPX 2. Le paramètre Private IPAddress peut avoir n’importe quelle adresse IP privée selon vos besoins.

  11. Création d’instances NetScaler VPX

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

    a) Instance 1 de NetScaler VPX

    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 2 de NetScaler VPX

    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. Configuration des 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) Active-Active : exécutez le même ensemble de commandes de configuration sur la ligne de commande des deux instances de 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 uniquement les commandes de configuration sur le nœud principal.

Scripts PowerShell supplémentaires pour le déploiement Azure