用于 Azure 部署的其他 PowerShell 脚本

Last published : Oct 06, 2026
本节提供 PowerShell cmdlet 命令,您可以使用它们在 Azure PowerShell 中执行以下配置:
  • 预配 NetScaler VPX 独立实例
  • 在具有 Azure 外部负载均衡器的高可用性设置中预配 NetScaler VPX 对
  • 在具有 Azure 内部负载均衡器的高可用性设置中预配 NetScaler VPX 对
另请参阅以下主题,了解您可以使用 PowerShell 命令执行的配置:

预配 NetScaler VPX 独立实例

  1. 创建资源组
    资源组可以包含解决方案的所有资源,也可以只包含您希望作为组进行管理的资源。此处指定的位置是该资源组中资源的默认位置。请确保所有创建负载均衡器的命令都使用相同的资源组。
    $rgName="<resource group name>" $locName="<location name, such as West US> New-AzureRmResourceGroup -Name $rgName -Location $locName
    例如:
    $rgName = "ARM-VPX"
    $locName = "West US"
    New-AzureRmResourceGroup -Name $rgName -Location $locName
  2. 创建存储帐户
    为您的存储帐户选择一个仅包含小写字母和数字的唯一名称。
    $saName="<storage account name>" $saType="<storage account type>",指定以下其中一项:Standard_LRS、Standard_GRS、Standard_RAGRS 或 Premium_LRS New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    例如:
    $saName="vpxstorage"
    $saType="Standard\_LRS"
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
  3. 创建可用性集
    可用性集有助于在停机期间(例如在维护期间)保持虚拟机可用。配置了可用性集的负载均衡器可确保您的应用程序始终可用。
    $avName="<availability set name>"
    New-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName -Location $locName
  4. 创建虚拟网络
    如果之前未创建子网,请添加一个至少包含一个子网的新虚拟网络。
    $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
    例如:
    $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. 创建 NIC
    创建 NIC 并将 NIC 与 NetScaler VPX 实例关联。在上述过程中创建的前端子网索引为 0,后端子网索引为 1。现在通过以下三种方式之一创建 NIC:
    a) 具有公共 IP 地址的 NIC
    $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) 具有公共 IP 和 DNS 标签的 NIC
    $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
    在分配 $domName 之前,请使用以下命令检查其是否可用:
    Test-AzureRmDnsAvailability -DomainQualifiedName $domName -Location $locName
    $nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id
    例如:
    $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) 具有动态公共地址和静态私有 IP 地址的 NIC
    确保您添加到 VM 的私有(静态)IP 地址必须与指定子网的范围相同。
    $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. 创建虚拟对象
    $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. 获取 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."
    提供用于登录 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
    例如:
    $pubName="citrix"
    以下命令用于显示 Citrix® 的所有产品/服务:
    Get-AzureRMVMImageOffer -Location $locName -Publisher $pubName | Select Offer

    $offerName="netscalervpx110-6531"
    以下命令用于了解发布者针对特定产品/服务名称提供的 SKU:
    Get-AzureRMVMImageSku -Location $locName -Publisher $pubName -Offer $offerName | Select Skus
  8. 创建虚拟机
    $diskName="<name identifier for the disk in Azure storage, such as OSDisk>"
    例如:
    $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
    当您从市场中的映像创建 VM 时,请使用以下命令指定 VM 计划:
    Set-AzureRmVMPlan -VM $vm -Publisher $pubName -Product $offerName -Name $skuName
    New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm

在具有 Azure 外部负载均衡器的高可用性设置中预配 NetScaler VPX 对

使用您的 Azure 用户凭据登录到 AzureRmAccount。
  1. 创建资源组
    这里指定的位置是该资源组中资源的默认位置。确保所有用于创建负载均衡器的命令都使用相同的资源组。
    $rgName="<resource group name>"
    $locName="<location name, such as West US>"
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    例如:
    $rgName = "ARM-LB-NS"

    $locName = "West US"

    New-AzureRmResourceGroup -Name $rgName -Location $locName
  2. 创建存储帐户
    为您的存储帐户选择一个仅包含小写字母和数字的唯一名称。
    $saName="<storage account name>"
    $saType="<storage account type>",指定一个:Standard_LRS、Standard_GRS、Standard_RAGRS 或 Premium_LRS
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    例如:
    $saName="vpxstorage"

    $saType="Standard_LRS"

    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
  3. 创建可用性集
    配置了可用性集的负载均衡器可确保您的应用程序始终可用。
    $avName="<availability set name>"
    New-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName -Location $locName
  4. 创建虚拟网络
    如果之前未创建子网,则添加一个至少包含一个子网的新虚拟网络。
    $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
    注意:
    根据您的要求选择 AddressPrefix 参数值。
    将前端和后端子网分配给您在此步骤中早些时候创建的虚拟网络。
    如果前端子网是数组 VNet 的第一个元素,则 subnetId 必须是 $vnet.Subnets\[0\].Id。
    如果前端子网是数组中的第二个元素,则 subnetId 必须是 $vnet.Subnets\[1\].Id,依此类推。
  5. 配置前端 IP 地址并创建后端地址池
    为传入的负载均衡器网络流量配置前端 IP 地址,并创建后端地址池以接收负载均衡流量。
    $pubName="PublicIp1"

    $publicIP1 = New-AzureRmPublicIpAddress -Name $pubName -ResourceGroupName $rgName -Location $locName -AllocationMethod Static -DomainNameLabel nsvpx
    注意:
    检查 DomainNameLabel 值的可用性。
    $FIPName = "ELBFIP"

    $frontendIP1 = New-AzureRmLoadBalancerFrontendIpConfig -Name $FIPName -PublicIpAddress $publicIP1

    $BEPool = "LB-backend-Pool"

    $beaddresspool1= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $BEPool
  6. 创建运行状况探测
    创建端口为 9000、间隔为 5 秒的 TCP 运行状况探测。
    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name HealthProbe -Protocol Tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
  7. 创建负载均衡规则
    为您正在进行负载均衡的每个服务创建一个 LB 规则。
    例如:
    您可以使用以下示例对 HTTP 服务进行负载均衡。
    $lbrule1 = New-AzureRmLoadBalancerRuleConfig -Name "HTTP-LB" -FrontendIpConfiguration $frontendIP1 -BackendAddressPool  $beAddressPool1 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
  8. 创建入站 NAT 规则
    为不进行负载均衡的服务创建 NAT 规则。
    例如,当为 NetScaler VPX 实例创建 SSH 访问时。
    注意:
    两个 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. 创建负载均衡器实体
    创建负载均衡器,并将所有对象(NAT 规则、负载均衡器规则、探测配置)添加在一起。
    $lbName="ELB"

    $NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $locName -InboundNatRule $inboundNATRule1, $inboundNATRule2 -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe
  10. 创建 NIC
    创建两个 NIC,并将每个 NIC 与每个 VPX 实例关联
    a) NIC1 与 VPX1
    例如:
    $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 与 VPX2
    例如:
    $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. 创建 NetScaler VPX 实例
    创建两个 NetScaler VPX 实例,作为同一资源组和可用性集的一部分,并将其附加到外部负载均衡器。
    a) NetScaler VPX 实例 1
    例如:
    $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) NetScaler VPX 实例 2
    例如:
    $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. 配置虚拟机
    当两个 NetScaler VPX 实例都启动后,使用 SSH 协议连接到这两个 NetScaler VPX 实例以配置虚拟机。
    a) 主动-主动:在两个 NetScaler VPX 实例的命令行上运行相同的配置命令集。
    b) 主动-被动:在两个 NetScaler VPX 实例的命令行上运行此命令。
    add ha node #nodeID <nsip of other NetScaler VPX>
    在主动-被动模式下,仅在主节点上运行配置命令。

在具有 Azure 内部负载均衡器的高可用性设置中预配 NetScaler VPX 对

使用您的 Azure 用户凭据登录到 AzureRmAccount。
  1. 创建资源组
    此处指定的位置是该资源组中资源的默认位置。请确保所有创建负载均衡器的命令都使用相同的资源组。
    $rgName="\<resource group name\>"
    $locName="\<location name, such as West US\>"
    New-AzureRmResourceGroup -Name $rgName -Location $locName
    例如:
    $rgName = "ARM-LB-NS"

    $locName = "West US"

    New-AzureRmResourceGroup -Name $rgName -Location $locName
  2. 创建存储帐户
    为您的存储帐户选择一个仅包含小写字母和数字的唯一名称。
    $saName="<storage account name>"
    $saType="<storage account type>",指定一个:Standard_LRS、Standard_GRS、Standard_RAGRS 或 Premium_LRS
    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
    例如:
    $saName="vpxstorage"

    $saType="Standard_LRS"

    New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
  3. 创建可用性集
    配置了可用性集的负载均衡器可确保您的应用程序始终可用。
    $avName="<availability set name>"
    New-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName -Location $locName
  4. 创建虚拟网络
    如果之前未创建子网,则添加至少包含一个子网的新虚拟网络。
    $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
    注意:
    根据您的要求选择 AddressPrefix 参数值。
    将前端和后端子网分配给您在此步骤中早些时候创建的虚拟网络。
    如果前端子网是数组 VNet 的第一个元素,则 subnetId 必须是 $vnet.Subnets\[0\].Id。
    如果前端子网是数组中的第二个元素,则 subnetId 必须是 $vnet.Subnets\[1\].Id,依此类推。
  5. 创建后端地址池
    $beaddresspool= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name "LB-backend"
  6. 创建 NAT 规则
    为您不进行负载均衡的服务创建 NAT 规则。
    $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
    根据您的要求使用前端和后端端口。
  7. 创建运行状况探测
    创建一个 TCP 运行状况探测,端口为 9000,间隔为 5 秒。
    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name "HealthProbe"  " -Protocol tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
  8. 创建负载均衡规则
    为您正在进行负载均衡的每个服务创建一条 LB 规则。
    例如:
    您可以使用以下示例对 HTTP 服务进行负载均衡。
    $lbrule = New-AzureRmLoadBalancerRuleConfig -Name "lbrule1" -FrontendIpConfiguration $frontendIP -BackendAddressPool $beAddressPool -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    根据您的要求使用前端和后端端口。
  9. 创建负载均衡器实体
    创建负载均衡器,将所有对象(NAT 规则、负载均衡器规则、探测配置)添加在一起。
    $NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgname -Name "InternalLB" -Location $locName -FrontendIpConfiguration $frontendIP -InboundNatRule $inboundNATRule1,$inboundNatRule2 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
  10. 创建 NIC
    创建两个 NIC,并将每个 NIC 与每个 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\]
    此 NIC 用于 NetScaler VPX 1。私有 IP 必须与所添加子网位于同一子网中。
    $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\].
    此 NIC 用于 NetScaler VPX 2。参数 Private IPAddress 可以根据您的要求使用任何私有 IP。
  11. 创建 NetScaler VPX 实例
    创建两个属于同一资源组和可用性集的 VPX 实例,并将其附加到内部负载均衡器。
    a) NetScaler VPX 实例 1
    例如:
    $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) NetScaler VPX 实例 2
    例如:
    $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. 配置虚拟机
    当两个 NetScaler VPX 实例启动时,使用 SSH 协议连接到这两个 NetScaler VPX 实例以配置虚拟机。
    a) 主动-主动: 在两个 NetScaler VPX 实例的命令行上运行相同的配置命令。
    b) 主动-被动: 在两个 NetScaler VPX 实例的命令行上运行此命令。
    add ha node #nodeID <nsip of other NetScaler VPX>
    在主动-被动模式下,仅在主节点上运行配置命令。