Citrix ADC

Scripts de PowerShell adicionales para la implementación de Azure

Esta sección proporciona los cmdlets de PowerShell con los que puede realizar las siguientes configuraciones en Azure PowerShell:

  • Aprovisionar una instancia independiente de Citrix ADC VPX
  • Aprovisione un par Citrix ADC VPX en una configuración de alta disponibilidad con un equilibrador de carga externo de Azure
  • Aprovisione un par Citrix ADC VPX en una configuración de alta disponibilidad con el equilibrador de carga interno de Azure

Consulte también los temas siguientes para las configuraciones que puede realizar mediante comandos de PowerShell:

Aprovisionar una instancia independiente de Citrix ADC VPX

  1. Crear un grupo de recursos

    El grupo de recursos puede incluir todos los recursos de la solución o solo los recursos que quiera administrar como grupo. La ubicación especificada aquí es la ubicación predeterminada de los recursos de ese grupo de recursos. Asegúrese de que todos los comandos para crear un equilibrador de carga utilizan el mismo grupo de recursos.

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

    Por ejemplo:

    $rgName = "ARM-VPX"
    $locName = "West US"
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    
  2. Crear una cuenta de almacenamiento

    Elija un nombre único para su cuenta de almacenamiento que contenga solo letras y números minúsculas.

    $saName="<storage account name>" $saType="<storage account type>", especifique uno: Standard_LRS, Standard_GRS, Standard_RAGRS o Premium_LRS New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName

    Por ejemplo:

    $saName="vpxstorage"
    $saType="Standard_LRS"
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    
  3. Crear un conjunto de disponibilidad

    El conjunto de disponibilidad ayuda a mantener las máquinas virtuales disponibles durante el tiempo de inactividad, como durante el mantenimiento. Un equilibrador de carga configurado con un conjunto de disponibilidad garantiza que la aplicación esté siempre disponible.

    $avName="<availability set name>"

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

  4. Crear una red virtual

    Agregue una nueva red virtual con al menos una subred, si la subred no se creó previamente.

    $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

    Por ejemplo:

    $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. Crear una NIC

    Cree una NIC y asocie la NIC con la instancia de Citrix ADC VPX. La subred front-end creada en el procedimiento anterior se indexa en 0 y la subred back-end se indexa en 1. Ahora cree NIC de una de las tres maneras siguientes:

    a) NIC con dirección IP pública

    $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 con IP pública y etiqueta 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

    Antes de asignar $DOMName, compruebe que está disponible o no mediante el comando:

    Test-AzureRmDnsAvailability -DomainQualifiedName $domName -Location $locName

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

    Por ejemplo:

    $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 con dirección pública dinámica y dirección IP privada estática

    Asegúrese de que la dirección IP privada (estática) que agregue a la máquina virtual debe tener el mismo rango que la de la subred especificada.

    $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. Crear un objeto virtual

    $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. Obtener la imagen de Citrix ADC 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."

    Proporcione sus credenciales que se utilizan para iniciar sesión en 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

    Por ejemplo:

    $pubName="citrix"

    El siguiente comando se utiliza para mostrar todas las ofertas de Citrix:

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

    El siguiente comando se utiliza para conocer el sku ofrecido por el editor para un nombre de oferta específico:

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

  8. Crear una máquina virtual

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

    Por ejemplo:

    $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
    

    Al crear VM a partir de imágenes presentes en el mercado, utilice el siguiente comando para especificar el plan de VM:

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

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

Aprovisione un par Citrix ADC VPX en una configuración de alta disponibilidad con un equilibrador de carga externo de Azure

Inicie sesión en AzurermAccount con sus credenciales de usuario de Azure.

  1. Crear un grupo de recursos

    La ubicación especificada aquí es la ubicación predeterminada de los recursos de ese grupo de recursos. Asegúrese de que todos los comandos utilizados para crear un equilibrador de carga utilizan el mismo grupo de recursos.

    $rgName="<resource group name>"

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

    New-AzureRmResourceGroup -Name $rgName -Location $locName

    Por ejemplo:

    $rgName = "ARM-LB-NS"
    
    $locName = "West US"
    
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    
  2. Crear una cuenta de almacenamiento

    Elija un nombre único para su cuenta de almacenamiento que contenga solo letras y números minúsculas.

    $saName="<storage account name>"

    $saType="<storage account type>", especifique uno: Standard_LRS, Standard_GRS, Standard_RAGRS o Premium_LRS

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

    Por ejemplo:

    $saName="vpxstorage"
    
    $saType="Standard_LRS"
    
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    
  3. Crear un conjunto de disponibilidad

    Un equilibrador de carga configurado con un conjunto de disponibilidad garantiza que la aplicación esté siempre disponible.

    $avName="<availability set name>"

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

  4. Crear una red virtual

    Agregue una nueva red virtual con al menos una subred, si la subred no se creó previamente.

    $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
    

    Nota: Seleccione el valor del parámetro AddressPrefix según su requisito.

    Asigne subred front-end y back-end a la red virtual que creó anteriormente en este paso.

    Si la subred front-end es el primer elemento de la VNet de matriz, SubnetID debe ser $vnet.Subnets [0] .Id.

    Si la subred frontal es el segundo elemento de la matriz, el subNetID debe ser $vnet.subnets [1] .Id, y así sucesivamente.

  5. Configurar la dirección IP de front-end y crear un grupo de direcciones back-end

    Configure una dirección IP front-end para el tráfico de red del equilibrador de carga entrante y cree un grupo de direcciones back-end para recibir el tráfico balanceado de carga.

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

    Nota: Compruebe la disponibilidad del valor de DomainNameLabel.

    $FIPName = "ELBFIP"
    
    $frontendIP1 = New-AzureRmLoadBalancerFrontendIpConfig -Name $FIPName -PublicIpAddress $publicIP1
    
    $BEPool = "LB-backend-Pool"
    
    $beaddresspool1= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $BEPool
    
  6. Crear un sondeo de estado

    Cree un sondeo de estado TCP con el puerto 9000 y el intervalo de 5 segundos.

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name HealthProbe -Protocol Tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
    
  7. Crear una regla de equilibrio de carga

    Cree una regla LB para cada servicio que esté equilibrando la carga.

    Por ejemplo:

    Puede utilizar el siguiente ejemplo para equilibrar la carga del servicio HTTP.

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

    Cree reglas NAT para los servicios que no esté equilibrando la carga.

    Por ejemplo, al crear un acceso SSH a una instancia de Citrix ADC VPX.

    Nota: Protocol-FrontenDPort-BackendPort triplet no debe ser el mismo para dos reglas 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
    
  9. Crear una entidad de equilibrador de carga

    Cree el equilibrador de carga agregando todos los objetos (reglas NAT, reglas de equilibrador de carga, configuraciones de sondeo) juntos.

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

    Cree dos NIC y asocie cada NIC con cada instancia VPX

    a) NIC1 con VPX1

    Por ejemplo:

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

    Por ejemplo:

    $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. Crear instancias Citrix ADC VPX

    Cree dos instancias de Citrix ADC VPX como parte del mismo grupo de recursos y conjunto de disponibilidad, y adjuntarlo al equilibrador de carga externo.

    a) Instancia 1 de Citrix ADC VPX

    Por ejemplo:

    $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) Instancia 2 de Citrix ADC VPX

    Por ejemplo:

    $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. Configurar las máquinas virtuales

    Cuando se inician las dos instancias de Citrix ADC VPX, conéctese a ambas instancias de Citrix ADC VPX mediante el protocolo SSH para configurar las máquinas virtuales.

    a) Activo-Activo: Ejecute el mismo conjunto de comandos de configuración en la línea de comandos de ambas instancias de Citrix ADC VPX.

    b) Active-Passive: Ejecute este comando en la línea de comandos de ambas instancias de Citrix ADC VPX.

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

    En el modo Activo-Pasivo, ejecute comandos de configuración solo en el nodo principal.

Aprovisione un par Citrix ADC VPX en una configuración de alta disponibilidad con el equilibrador de carga interno de Azure

Inicie sesión en AzurermAccount con sus credenciales de usuario de Azure.

  1. Crear un grupo de recursos

    La ubicación especificada aquí es la ubicación predeterminada de los recursos de ese grupo de recursos. Asegúrese de que todos los comandos para crear un equilibrador de carga utilizan el mismo grupo de recursos.

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

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

    New-AzureRmResourceGroup -Name $rgName -Location $locName

    Por ejemplo:

    $rgName = "ARM-LB-NS"
    
    $locName = "West US"
    
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    
  2. Crear una cuenta de almacenamiento

    Elija un nombre único para su cuenta de almacenamiento que contenga solo letras y números minúsculas.

    $saName="<storage account name>"

    $saType="<storage account type>", especifique uno: Standard_LRS, Standard_GRS, Standard_RAGRS o Premium_LRS

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

    Por ejemplo:

    $saName="vpxstorage"
    
    $saType="Standard_LRS"
    
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    
  3. Crear un conjunto de disponibilidad

    Un equilibrador de carga configurado con un conjunto de disponibilidad garantiza que la aplicación esté siempre disponible.

    $avName="<availability set name>"

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

  4. Crear una red virtual

    Agregue una nueva red virtual con al menos una subred, si la subred no se creó previamente.

    $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
    

    Nota: Seleccione el valor del parámetro AddressPrefix según su requisito.

    Asigne subred front-end y back-end a la red virtual que creó anteriormente en este paso.

    Si la subred front-end es el primer elemento de la VNet de matriz, SubnetID debe ser $vnet.Subnets [0] .Id.

    Si la subred frontal es el segundo elemento de la matriz, el subNetID debe ser $vnet.subnets [1] .Id, y así sucesivamente.

  5. Crear un grupo de direcciones back-end

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

  6. Crear reglas NAT

    Cree reglas NAT para los servicios que no esté equilibrando la carga.

    $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
    

    Utilice puertos front-end y back-end según sus necesidades.

  7. Crear un sondeo de estado

    Cree un sondeo de estado TCP con el puerto 9000 y el intervalo de 5 segundos.

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name "HealthProbe"  " -Protocol tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
    
  8. Crear una regla de equilibrio de carga

    Cree una regla LB para cada servicio que esté equilibrando la carga.

    Por ejemplo:

    Puede utilizar el siguiente ejemplo para equilibrar la carga del servicio HTTP.

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

    Utilice puertos front-end y back-end según sus necesidades.

  9. Crear una entidad de equilibrador de carga

    Cree el equilibrador de carga agregando todos los objetos (reglas NAT, reglas de equilibrador de carga, configuraciones de sondeo) juntos.

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

    Cree dos NIC y asocie cada NIC con cada instancia de Citrix ADC 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]
    

    Esta NIC es para Citrix ADC VPX 1. La IP privada debe estar en la misma subred que la de la subred agregada.

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

    Esta NIC es para Citrix ADC VPX 2.El parámetro Private IPAddress puede tener cualquier IP privada según sus requisitos.

  11. Crear instancias Citrix ADC VPX

    Cree dos instancias VPX que forman parte del mismo grupo de recursos y conjunto de disponibilidad, y conéctela al equilibrador de carga interno.

    a) Instancia 1 de Citrix ADC VPX

    Por ejemplo:

    $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) Instancia 2 de Citrix ADC VPX

    Por ejemplo:

    $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. Configurar las máquinas virtuales

    Cuando se inician las dos instancias de Citrix ADC VPX, conéctese a ambas instancias de Citrix ADC VPX mediante el protocolo SSH para configurar las máquinas virtuales.

    a) Activo-Activo: Ejecute el mismo conjunto de comandos de configuración en la línea de comandos de ambas instancias de Citrix ADC VPX.

    b) Active-Passive: Ejecute este comando en la línea de comandos de ambas instancias de Citrix ADC VPX.

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

    En el modo Activo-Pasivo, ejecute comandos de configuración solo en el nodo principal.