ADC

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

このセクションでは、Azure PowerShell で次の構成を実行できる PowerShell コマンドレットについて説明します。

  • Citrix ADC VPXスタンドアロンインスタンスのプロビジョニング
  • Azure外部ロードバランサーを使用して高可用性セットアップでCitrix ADC VPXペアをプロビジョニングする
  • Azure内部ロードバランサーを使用した高可用性セットアップでのCitrix ADC VPXペアのプロビジョニング

PowerShell コマンドを使用して実行できる構成については、次のトピックも参照してください。

Citrix ADC 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
    <!--NeedCopy-->
    
  2. ストレージアカウントの作成

    ストレージアカウントには、小文字と数字のみを含む一意の名前を選択する必要があります。

    $saName="<storage account name>" $saType="<storage account type>"で次のいずれかを指定します:Standard_LRSStandard_GRSStandard_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
    <!--NeedCopy-->
    
  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
    <!--NeedCopy-->
    
  5. NIC を作成する

    NICを作成し、そのNICをCitrix ADC VPXインスタンスに関連付けます。上記の手順で作成されたフロントエンドサブネットは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
    <!--NeedCopy-->
    

    c) 動的パブリックアドレスと静的プライベートIPアドレスを持つNIC

    仮想マシンに追加するプライベート(静的)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. 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."

    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"
    <!--NeedCopy-->
    

    次のコマンドは、特定のオファー名についてパブリッシャーから提供される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
    <!--NeedCopy-->
    

    MarketPlaceに存在するイメージからVMを作成する場合、次のコマンドを使用してVMプランを指定します。

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

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

Azure外部ロードバランサーを使用して高可用性セットアップでCitrix ADC 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
    <!--NeedCopy-->
    
  2. ストレージアカウントの作成

    ストレージアカウントには、小文字と数字のみを含む一意の名前を選択する必要があります。

    $saName="<storage account name>"

    $saType="<storage account type>"で次のいずれかを指定します:Standard_LRSStandard_GRSStandard_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
    <!--NeedCopy-->
    
  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
    <!--NeedCopy-->
    

    注意: 要件に従って「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
    <!--NeedCopy-->
    

    : DomainNameLabel の値が使用可能かどうか確認してください。

    $FIPName = "ELBFIP"
    
    $frontendIP1 = New-AzureRmLoadBalancerFrontendIpConfig -Name $FIPName -PublicIpAddress $publicIP1
    
    $BEPool = "LB-backend-Pool"
    
    $beaddresspool1= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $BEPool
    <!--NeedCopy-->
    
  6. ヘルスプローブの作成

    ポート9000、間隔5秒でTCPヘルププローブを作成します。

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name HealthProbe -Protocol Tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
    <!--NeedCopy-->
    
  7. 負荷分散ルールの作成

    負荷分散するサービスごとに LB ルールを作成します。

    たとえば

    次の例を使用して、HTTP サービスを負荷分散できます。

    $lbrule1 = New-AzureRmLoadBalancerRuleConfig -Name "HTTP-LB" -FrontendIpConfiguration $frontendIP1 -BackendAddressPool  $beAddressPool1 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    <!--NeedCopy-->
    
  8. インバウンド NAT ルールの作成

    負荷分散していないサービスに対するNAT規則を作成します。

    たとえば、Citrix ADC VPXインスタンスへのSSHアクセスを作成する場合などです。

    :2 つの NAT ルールでプロトコル frontendPort-backendPort トリプレットが同じであってはなりません。

    $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. ロードバランサーエンティティの作成

    すべてのオブジェクト(NAT規則、ロードバランサー規則、プローブ構成)を一度に追加してロードバランサーを作成します。

    $lbName="ELB"
    
    $NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $locName -InboundNatRule $inboundNATRule1, $inboundNATRule2 -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe
    <!--NeedCopy-->
    
  10. NIC を作成する

    2つの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]
    <!--NeedCopy-->
    

    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]
    <!--NeedCopy-->
    
  11. Citrix ADC VPXインスタンスの作成

    同じリソースグループと可用性セットの一部として2つのCitrix ADC VPXインスタンスを作成し、外部ロードバランサーにアタッチします。

    a) Citrix ADC 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
    <!--NeedCopy-->
    

    b) Citrix ADC 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
    <!--NeedCopy-->
    
  12. 仮想マシンの構成

    両方のCitrix ADC VPXインスタンスが起動したら、SSHプロトコルを使用して両方のCitrix ADC VPXインスタンスに接続し、仮想マシンを構成します。

    a)アクティブ-アクティブ:両方のCitrix ADC VPXインスタンスのコマンドラインで同じ設定コマンドを実行します。

    b)アクティブ-パッシブ:両方のCitrix ADC VPXインスタンスのコマンドラインでこのコマンドを実行します。

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

    アクティブ-パッシブモードでは、プライマリノードでのみ構成コマンドを実行します。

Azure内部ロードバランサーを使用した高可用性セットアップでのCitrix ADC 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
    <!--NeedCopy-->
    
  2. ストレージアカウントの作成

    ストレージアカウントには、小文字と数字のみを含む一意の名前を選択する必要があります。

    $saName="<storage account name>"

    $saType="<storage account type>"で次のいずれかを指定します:Standard_LRSStandard_GRSStandard_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
    <!--NeedCopy-->
    
  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
    <!--NeedCopy-->
    

    注意: 要件に従って「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
    <!--NeedCopy-->
    

    要件に応じて、フロントエンドポートおよびバックエンドポートを使用します。

  7. ヘルスプローブの作成

    ポート9000、間隔5秒でTCPヘルププローブを作成します。

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name "HealthProbe"  " -Protocol tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
    <!--NeedCopy-->
    
  8. 負荷分散ルールの作成

    負荷分散するサービスごとに LB ルールを作成します。

    次に例を示します:

    次の例を使用して、HTTP サービスを負荷分散できます。

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

    要件に応じて、フロントエンドポートおよびバックエンドポートを使用します。

  9. ロードバランサーエンティティの作成

    すべてのオブジェクト(NAT規則、ロードバランサー規則、プローブ構成)を一度に追加してロードバランサーを作成します。

    $NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgname -Name "InternalLB" -Location $locName -FrontendIpConfiguration $frontendIP -InboundNatRule $inboundNATRule1,$inboundNatRule2 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
    <!--NeedCopy-->
    
  10. NIC を作成する

    2つのNICを作成し、各NICを各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]
    <!--NeedCopy-->
    

    このNICは、CitrixのCitrix ADC 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].
    <!--NeedCopy-->
    

    このNICはCitrix ADC VPX用です 2. Private IPAddressパラメーターには、要件に応じて任意のプライベートIPを設定できます。

  11. Citrix ADC VPXインスタンスの作成

    同じリソースグループと可用性セットの一部に 2 つの VPX インスタンスを作成し、内部ロードバランサーにアタッチします。

    a) Citrix ADC 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
    <!--NeedCopy-->
    

    b) Citrix ADC 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
    <!--NeedCopy-->
    
  12. 仮想マシンの構成

    両方のCitrix ADC VPXインスタンスが起動したら、SSHプロトコルを使用して両方のCitrix ADC VPXインスタンスに接続し、仮想マシンを構成します。

    a)アクティブ-アクティブ:両方のCitrix ADC VPXインスタンスのコマンドラインで同じ設定コマンドを実行します。

    b)アクティブ-パッシブ:両方のCitrix ADC VPXインスタンスのコマンドラインでこのコマンドを実行します。

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

    アクティブ-パッシブモードでは、プライマリノードでのみ構成コマンドを実行します。

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