Azureデプロイ用の追加PowerShellスクリプト

最終公開日 : Sep 25, 2026
このセクションでは、Azure PowerShellで以下の構成を実行できるPowerShellコマンドレットを提供します。
  • NetScaler VPXスタンドアロンインスタンスのプロビジョニング
  • Azure外部ロードバランサーを使用した高可用性セットアップでのNetScaler VPXペアのプロビジョニング
  • Azure内部ロードバランサーを使用した高可用性セットアップでのNetScaler VPXペアのプロビジョニング
PowerShellコマンドを使用して実行できる構成については、以下のトピックも参照してください。
  • PowerShellコマンドを使用して複数のIPアドレスとNICを持つ高可用性セットアップを構成する(/ja-jp/vpx/current-release/deploy-vpx-on-azure/configure-ha-pair-using-powershell.html)
  • NetScaler VPXインスタンスでGSLBを構成する(/ja-jp/vpx/current-release/deploy-vpx-on-azure/configuring-gslb-on-citrix-adc-vpx-appliance.html)
  • NetScalerアクティブ-スタンバイ高可用性セットアップでGSLBを構成する(/ja-jp/vpx/current-release/deploy-vpx-on-azure/configuring-gslb-active-standby-ha-deployment-azure.html)
  • PowerShellコマンドを使用してスタンドアロンモードのNetScaler VPXインスタンスに複数のIPアドレスを構成する(/ja-jp/vpx/current-release/deploy-vpx-on-azure/configuring-multiple-ips-for-vpx-in-standalone-mode.html)

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. 仮想ネットワークを作成する
    サブネットが以前に作成されていない場合は、少なくとも1つのサブネットを持つ新しい仮想ネットワークを追加します。
    $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を作成し、NetScaler VPXインスタンスにNICを関連付けます。上記の手順で作成されたフロントエンドサブネットは0に、バックエンドサブネットは1にインデックス付けされます。次に、以下の3つのいずれかの方法で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. 仮想ネットワークを作成する
    サブネットが以前に作成されていない場合は、少なくとも1つのサブネットを持つ新しい仮想ネットワークを追加します。
    $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である必要があります。
    フロントエンドサブネットが配列の2番目の要素である場合、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アクセスを作成する場合などです。
    注:
    2つの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を作成する
    2つのNICを作成し、それぞれのNICを各VPXインスタンスに関連付けます。
    a) VPX1が関連付けられたNIC1
    例えば:
    $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) VPX2が関連付けられたNIC2
    例えば:
    $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インスタンスを作成する
    同じリソースグループと可用性セットの一部として2つの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. 仮想ネットワークを作成する
    サブネットが以前に作成されていない場合は、少なくとも1つのサブネットを持つ新しい仮想ネットワークを追加します。
    $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である必要があります。
    フロントエンドサブネットが配列の2番目の要素である場合、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. ヘルスプローブを作成する
    ポート9000、間隔5秒のTCPヘルスプローブを作成します。
    $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を作成する
    2つの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インスタンスを作成する
    同じリソースグループと可用性セットの一部である2つの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>
    アクティブ-パッシブモードでは、プライマリノードでのみ構成コマンドを実行します。