New-AzureRmVmss

VMSS を作成します。

警告

AzureRM PowerShell モジュールは、2024 年 2 月 29 日の時点で正式に非推奨になりました。 引き続きサポートを受け、更新を受け取れるようにするために、AzureRM から Az PowerShell モジュールに移行することをお勧めします。

AzureRM モジュールは引き続き機能する可能性がありますが、メインが維持またはサポートされなくなり、ユーザーの判断とリスクで引き続き使用できます。 Az モジュールへの移行に関するガイダンスについては、移行リソースを参照してください。

構文

New-AzureRmVmss
   [-ResourceGroupName] <String>
   [-VMScaleSetName] <String>
   [-VirtualMachineScaleSet] <PSVirtualMachineScaleSet>
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmVmss
   [[-ResourceGroupName] <String>]
   [-VMScaleSetName] <String>
   [-AsJob]
   [-ImageName <String>]
   -Credential <PSCredential>
   [-InstanceCount <Int32>]
   [-VirtualNetworkName <String>]
   [-SubnetName <String>]
   [-PublicIpAddressName <String>]
   [-DomainNameLabel <String>]
   [-SecurityGroupName <String>]
   [-LoadBalancerName <String>]
   [-BackendPort <Int32[]>]
   [-Location <String>]
   [-VmSize <String>]
   [-UpgradePolicyMode <UpgradeMode>]
   [-AllocationMethod <String>]
   [-VnetAddressPrefix <String>]
   [-SubnetAddressPrefix <String>]
   [-FrontendPoolName <String>]
   [-BackendPoolName <String>]
   [-SystemAssignedIdentity]
   [-UserAssignedIdentity <String>]
   [-Zone <System.Collections.Generic.List`1[System.String]>]
   [-NatBackendPort <Int32[]>]
   [-DataDiskSizeInGb <Int32[]>]
   [-DefaultProfile <IAzureContextContainer>]
   [-SinglePlacementGroup]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

New-AzureRmVmss コマンドレットは Azure に仮想マシン スケール セット (VMSS) を作成します。 単純なパラメーター セット (SimpleParameterSet) を使用して、事前設定された VMSS と関連リソースをすばやく作成します。 作成前に VMSS の各コンポーネントと関連リソースを正確に構成する必要がある場合は、より高度なシナリオで既定のパラメーター セット (DefaultParameter) を使用します。

例 1: **'SimpleParameterSet'** を使用して VMSS を作成する

$vmssName = <VMSSNAME>
# Create credentials, I am using one way to create credentials, there are others as well.
# Pick one that makes the most sense according to your use case.
$vmPassword = ConvertTo-SecureString <PASSWORD_HERE> -AsPlainText -Force
$vmCred = New-Object System.Management.Automation.PSCredential(<USERNAME_HERE>, $vmPassword)

#Create a VMSS using the default settings
New-AzureRmVmss -Credential $vmCred -VMScaleSetName $vmssName

上記のコマンドでは、次の名前 $vmssName が作成されます。

  • リソース グループ
  • 仮想ネットワーク
  • ロード バランサー
  • パブリック IP
  • 2 つのインスタンスを持つ VMSS

VMSS 内の VM に対して選択された既定のイメージは、 2016-Datacenter Windows Server SKU が Standard_DS1_v2

例 2: **'DefaultParameterSet'** を使用して VMSS を作成する

# Common
$LOC = "WestUs";
$RGName = "rgkyvms";

New-AzureRmResourceGroup -Name $RGName -Location $LOC -Force;

# SRP
$STOName = "STO" + $RGName;
$STOType = "Standard_GRS";
New-AzureRmStorageAccount -ResourceGroupName $RGName -Name $STOName -Location $LOC -Type $STOType;
$STOAccount = Get-AzureRmStorageAccount -ResourceGroupName $RGName -Name $STOName;

# NRP
$SubNet = New-AzureRmVirtualNetworkSubnetConfig -Name ("subnet" + $RGName) -AddressPrefix "10.0.0.0/24";
$VNet = New-AzureRmVirtualNetwork -Force -Name ("vnet" + $RGName) -ResourceGroupName $RGName -Location $LOC -AddressPrefix "10.0.0.0/16" -DnsServer "10.1.1.1" -Subnet $SubNet;
$VNet = Get-AzureRmVirtualNetwork -Name ('vnet' + $RGName) -ResourceGroupName $RGName;
$SubNetId = $VNet.Subnets[0].Id;

$PubIP = New-AzureRmPublicIpAddress -Force -Name ("PubIP" + $RGName) -ResourceGroupName $RGName -Location $LOC -AllocationMethod Dynamic -DomainNameLabel ("PubIP" + $RGName);
$PubIP = Get-AzureRmPublicIpAddress -Name ("PubIP"  + $RGName) -ResourceGroupName $RGName;

# Create LoadBalancer
$FrontendName = "fe" + $RGName
$BackendAddressPoolName = "bepool" + $RGName
$ProbeName = "vmssprobe" + $RGName
$InboundNatPoolName  = "innatpool" + $RGName
$LBRuleName = "lbrule" + $RGName
$LBName = "vmsslb" + $RGName

$Frontend = New-AzureRmLoadBalancerFrontendIpConfig -Name $FrontendName -PublicIpAddress $PubIP
$BackendAddressPool = New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $BackendAddressPoolName
$Probe = New-AzureRmLoadBalancerProbeConfig -Name $ProbeName -RequestPath healthcheck.aspx -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2
$InboundNatPool = New-AzureRmLoadBalancerInboundNatPoolConfig -Name $InboundNatPoolName  -FrontendIPConfigurationId `
    $Frontend.Id -Protocol Tcp -FrontendPortRangeStart 3360 -FrontendPortRangeEnd 3362 -BackendPort 3370;
$LBRule = New-AzureRmLoadBalancerRuleConfig -Name $LBRuleName `
    -FrontendIPConfiguration $Frontend -BackendAddressPool $BackendAddressPool `
    -Probe $Probe -Protocol Tcp -FrontendPort 80 -BackendPort 80 `
    -IdleTimeoutInMinutes 15 -EnableFloatingIP -LoadDistribution SourceIP;
$ActualLb = New-AzureRmLoadBalancer -Name $LBName -ResourceGroupName $RGName -Location $LOC `
    -FrontendIpConfiguration $Frontend -BackendAddressPool $BackendAddressPool `
    -Probe $Probe -LoadBalancingRule $LBRule -InboundNatPool $InboundNatPool;
$ExpectedLb = Get-AzureRmLoadBalancer -Name $LBName -ResourceGroupName $RGName

# New VMSS Parameters
$VMSSName = "VMSS" + $RGName;

$AdminUsername = "Admin01";
$AdminPassword = "p4ssw0rd@123" + $RGName;

$PublisherName = "MicrosoftWindowsServer"
$Offer         = "WindowsServer"
$Sku           = "2012-R2-Datacenter"
$Version       = "latest"

$VHDContainer = "https://" + $STOName + ".blob.core.contoso.net/" + $VMSSName;

$ExtName = "CSETest";
$Publisher = "Microsoft.Compute";
$ExtType = "BGInfo";
$ExtVer = "2.1";

#IP Config for the NIC
$IPCfg = New-AzureRmVmssIPConfig -Name "Test" `
    -LoadBalancerInboundNatPoolsId $ExpectedLb.InboundNatPools[0].Id `
    -LoadBalancerBackendAddressPoolsId $ExpectedLb.BackendAddressPools[0].Id `
    -SubnetId $SubNetId;

#VMSS Config
$VMSS = New-AzureRmVmssConfig -Location $LOC -SkuCapacity 2 -SkuName "Standard_A2" -UpgradePolicyMode "Automatic" `
    | Add-AzureRmVmssNetworkInterfaceConfiguration -Name "Test" -Primary $True -IPConfiguration $IPCfg `
    | Add-AzureRmVmssNetworkInterfaceConfiguration -Name "Test2"  -IPConfiguration $IPCfg `
    | Set-AzureRmVmssOSProfile -ComputerNamePrefix "Test"  -AdminUsername $AdminUsername -AdminPassword $AdminPassword `
    | Set-AzureRmVmssStorageProfile -Name "Test"  -OsDiskCreateOption 'FromImage' -OsDiskCaching "None" `
    -ImageReferenceOffer $Offer -ImageReferenceSku $Sku -ImageReferenceVersion $Version `
    -ImageReferencePublisher $PublisherName -VhdContainer $VHDContainer `
    | Add-AzureRmVmssExtension -Name $ExtName -Publisher $Publisher -Type $ExtType -TypeHandlerVersion $ExtVer -AutoUpgradeMinorVersion $True

#Create the VMSS
New-AzureRmVmss -ResourceGroupName $RGName -Name $VMSSName -VirtualMachineScaleSet $VMSS;

上記の複雑な例では VMSS が作成されます。次に、何が起こっているかについて説明します。

  • 最初のコマンドは、指定した名前と場所を持つリソース グループを作成します。
  • 2 番目のコマンドでは、 New-AzureRmStorageAccount コマンドレットを使用してストレージ アカウントを作成します。
  • 3 番目の コマンドでは、Get-AzureRmStorageAccount コマンドレットを使用して、2 番目のコマンドで作成されたストレージ アカウントを取得し、結果を $STOAccount 変数に格納します。
  • 5 番目のコマンドでは、 New-AzureRmVirtualNetworkSubnetConfig コマンドレットを使用してサブネットを作成し、結果を $SubNet という名前の変数に格納します。
  • 6 番目のコマンドでは、 New-AzureRmVirtualNetwork コマンドレットを使用して仮想ネットワークを作成し、結果を $VNet という名前の変数に格納します。
  • 7 番目の コマンドでは、Get-AzureRmVirtualNetwork を使用して、6 番目のコマンドで作成された仮想ネットワークに関する情報を取得し、$VNetという名前の変数に情報を格納します。
  • 8 番目と 9 番目のコマンドでは、New-AzureRmPublicIpAddressGet- AzureRmPublicIpAddress を使用して、そのパブリック IP アドレスから情報を作成して取得します。
  • コマンドは、$PubIPという名前の変数に情報を格納します。
  • 10 番目のコマンドでは、 New- AzureRmLoadBalancerFrontendIpConfig コマンドレットを使用してフロントエンド ロード バランサーを作成し、結果を $Frontend という名前の変数に格納します。
  • 11 番目のコマンドでは、New-AzureRmLoadBalancerBackendAddressPoolConfig を使用してバックエンド アドレス プール構成を作成し、結果を $BackendAddressPool という名前の変数に格納します。
  • 12 番目のコマンドでは、New-AzureRmLoadBalancerProbeConfig を使用してプローブを作成し、$Probeという名前の変数にプローブ情報を格納します。
  • 13 番目の コマンドでは、New-AzureRmLoadBalancerInboundNatPoolConfig コマンドレットを使用して、ロード バランサーの受信ネットワーク アドレス変換 (NAT) プール構成を作成します。
  • 14 番目の コマンドでは、New-AzureRmLoadBalancerRuleConfig を使用してロード バランサー規則の構成を作成し、結果を $LBRule という名前の変数に格納します。
  • 15 番目のコマンドでは、 New-AzureRmLoadBalancer コマンドレットを使用してロード バランサーを作成し、結果を $ActualLb という名前の変数に格納します。
  • 16 番目のコマンドでは、Get-AzureRmLoadBalancer を使用して、15 番目のコマンドで作成されたロード バランサーに関する情報を取得し、$ExpectedLbという名前の変数に情報を格納します。
  • 17 番目のコマンドでは、New-AzureRmVmssIPConfig コマンドレットを使用して VMSS IP 構成を作成し、$IPCfgという名前の変数に情報を格納します。
  • 18 番目の コマンドでは、New-AzureRmVmssConfig コマンドレットを使用して VMSS 構成オブジェクトを作成し、結果を $VMSS という名前の変数に格納します。
  • 19 番目のコマンドでは、 New-AzureRmVmss コマンドレットを使用して VMSS を作成します。

パラメーター

-AllocationMethod

スケール セットのパブリック IP アドレスの割り当て方法 (静的または動的)。 値が指定されていない場合、割り当ては静的になります。

Type:String
Accepted values:Static, Dynamic
Position:Named
Default value:Static
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsJob

バックグラウンドでコマンドレットを実行し、進行状況を追跡するジョブを返します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BackendPoolName

このスケール セットのロード バランサーで使用するバックエンド アドレス プールの名前。 値が指定されていない場合は、スケール セットと同じ名前の新しいバックエンド プールが作成されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BackendPort

スケール セット内の VM と通信するためにスケール セット ロード バランサーによって使用されるバックエンド ポート番号。 値を指定しない場合、Windows VM にはポート 3389 と 5985 が使用され、ポート 22 は Linux VM に使用されます。

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

このスケール セット内の VM の管理者資格情報 (ユーザー名とパスワード)。

Type:PSCredential
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DataDiskSizeInGb

データ ディスクのサイズを GB 単位で指定します。

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Azure との通信に使用される資格情報、アカウント、テナント、サブスクリプション。

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DomainNameLabel

このスケール セットのパブリック完全修飾 doメイン 名前 (FQDN) の doメイン 名ラベル。 これは、スケール セットに自動的に割り当てられる doメイン 名の最初のコンポーネントです。 自動的に割り当てられた Doメイン 名は、フォーム (<DomainNameLabel>.<Location>.cloudapp.azure.com) を使用します。 値が指定されていない場合、既定の doメイン 名前ラベルは<ScaleSetName>連結と <ResourceGroupName>.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FrontendPoolName

スケール セット ロード バランサーで使用するフロントエンド アドレス プールの名前。 値が指定されていない場合は、スケール セットと同じ名前の新しいフロントエンド アドレス プールが作成されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ImageName

このスケール セット内の VM のイメージの名前。 値が指定されていない場合は、"Windows Server 2016 DataCenter" イメージが使用されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InstanceCount

スケール セット内の VM イメージの数。 値が指定されていない場合は、2 つのインスタンスが作成されます。

Type:Int32
Position:Named
Default value:2
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LoadBalancerName

このスケール セットで使用するロード バランサーの名前。 値が指定されていない場合は、スケール セットと同じ名前を使用する新しいロード バランサーが作成されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Location

このスケール セットが作成される Azure の場所。 値が指定されていない場合、パラメーターで参照されている他のリソースの場所から場所が推論されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NatBackendPort

受信ネットワーク アドレス変換のバックエンド ポート。

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PublicIpAddressName

このスケール セットで使用するパブリック IP アドレスの名前。 値が指定されていない場合は、スケール セットと同じ名前の新しいパブリック IPAddress が作成されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceGroupName

VMSS のリソース グループの名前を指定します。 値が指定されていない場合は、スケール セットと同じ名前を使用して新しい ResourceGroup が作成されます。

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SecurityGroupName

このスケール セットに適用するネットワーク セキュリティ グループの名前。 値が指定されていない場合は、スケール セットと同じ名前の既定のネットワーク セキュリティ グループが作成され、スケール セットに適用されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SinglePlacementGroup

これを使用して、1 つの配置グループにスケール セットを作成します。既定値は複数のグループです

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SubnetAddressPrefix

この ScaleSet が使用するサブネットのアドレス プレフィックス。 値が指定されていない場合、既定のサブネット設定 (192.168.1.0/24) が適用されます。

Type:String
Position:Named
Default value:192.168.1.0/24
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SubnetName

このスケール セットで使用するサブネットの名前。 値が指定されていない場合は、スケール セットと同じ名前で新しいサブネットが作成されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SystemAssignedIdentity

パラメーターが存在する場合、スケール セット内の VM には、自動生成されるマネージド システム ID が割り当てられます。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UpgradePolicyMode

このスケール セット内の VM インスタンスのアップグレード ポリシー モード。 アップグレード ポリシーでは、自動アップグレード、手動アップグレード、またはローリング アップグレードを指定できます。

Type:UpgradeMode
Accepted values:Automatic, Manual, Rolling
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserAssignedIdentity

スケール セット内の VM に割り当てる必要があるマネージド サービス ID の名前。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VirtualMachineScaleSet

このコマンドレットで作成する VMSS のプロパティを含む VirtualMachineScaleSet オブジェクトを指定します。

Type:PSVirtualMachineScaleSet
Position:3
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VirtualNetworkName

このスケール セットで使用する仮想ネットワークの名前。 値が指定されていない場合は、スケール セットと同じ名前の新しい仮想ネットワークが作成されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMScaleSetName

このコマンドレットによって作成される VMSS の名前を指定します。

Type:String
Aliases:Name
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VmSize

このスケール セット内の VM インスタンスのサイズ。 Size が指定されていない場合は、既定のサイズ (Standard_DS1_v2) が使用されます。

Type:String
Position:Named
Default value:Standard_DS1_v2
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VnetAddressPrefix

このスケール セットで使用される仮想ネットワークのアドレス プレフィックス。 値が指定されていない場合は、既定の仮想ネットワーク アドレス プレフィックス設定 (192.168.0.0/16) が使用されます。

Type:String
Position:Named
Default value:192.168.0.0/16
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Zone

リソースに割り当てられた IP を示す可用性ゾーンの一覧が必要です。

Type:List<T>[String]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

入力

String

PSVirtualMachineScaleSet

パラメーター: VirtualMachineScaleSet (ByValue)

List<T>[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]

出力

PSVirtualMachineScaleSet