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-AzureRmPublicIpAddress と Get- 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 アドレスの割り当て方法 (静的または動的)。 値が指定されていない場合、割り当ては静的になります。
型: | String |
指定可能な値: | Static, Dynamic |
配置: | Named |
規定値: | Static |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-AsJob
バックグラウンドでコマンドレットを実行し、進行状況を追跡するジョブを返します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-BackendPoolName
このスケール セットのロード バランサーで使用するバックエンド アドレス プールの名前。 値が指定されていない場合は、スケール セットと同じ名前の新しいバックエンド プールが作成されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-BackendPort
スケール セット内の VM と通信するためにスケール セット ロード バランサーによって使用されるバックエンド ポート番号。 値を指定しない場合、Windows VM にはポート 3389 と 5985 が使用され、ポート 22 は Linux VM に使用されます。
型: | Int32[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Credential
このスケール セット内の VM の管理者資格情報 (ユーザー名とパスワード)。
型: | PSCredential |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DataDiskSizeInGb
データ ディスクのサイズを GB 単位で指定します。
型: | Int32[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DefaultProfile
Azure との通信に使用される資格情報、アカウント、テナント、サブスクリプション。
型: | IAzureContextContainer |
Aliases: | AzureRmContext, AzureCredential |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DomainNameLabel
このスケール セットのパブリック完全修飾 doメイン 名前 (FQDN) の doメイン 名ラベル。 これは、スケール セットに自動的に割り当てられる doメイン 名の最初のコンポーネントです。 自動的に割り当てられた Doメイン 名は、フォーム (<DomainNameLabel>.<Location>.cloudapp.azure.com
) を使用します。 値が指定されていない場合、既定の doメイン 名前ラベルは<ScaleSetName>
連結と <ResourceGroupName>
.
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-FrontendPoolName
スケール セット ロード バランサーで使用するフロントエンド アドレス プールの名前。 値が指定されていない場合は、スケール セットと同じ名前の新しいフロントエンド アドレス プールが作成されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ImageName
このスケール セット内の VM のイメージの名前。 値が指定されていない場合は、"Windows Server 2016 DataCenter" イメージが使用されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InstanceCount
スケール セット内の VM イメージの数。 値が指定されていない場合は、2 つのインスタンスが作成されます。
型: | Int32 |
配置: | Named |
規定値: | 2 |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-LoadBalancerName
このスケール セットで使用するロード バランサーの名前。 値が指定されていない場合は、スケール セットと同じ名前を使用する新しいロード バランサーが作成されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Location
このスケール セットが作成される Azure の場所。 値が指定されていない場合、パラメーターで参照されている他のリソースの場所から場所が推論されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-NatBackendPort
受信ネットワーク アドレス変換のバックエンド ポート。
型: | Int32[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-PublicIpAddressName
このスケール セットで使用するパブリック IP アドレスの名前。 値が指定されていない場合は、スケール セットと同じ名前の新しいパブリック IPAddress が作成されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ResourceGroupName
VMSS のリソース グループの名前を指定します。 値が指定されていない場合は、スケール セットと同じ名前を使用して新しい ResourceGroup が作成されます。
型: | String |
配置: | 1 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-SecurityGroupName
このスケール セットに適用するネットワーク セキュリティ グループの名前。 値が指定されていない場合は、スケール セットと同じ名前の既定のネットワーク セキュリティ グループが作成され、スケール セットに適用されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SinglePlacementGroup
これを使用して、1 つの配置グループにスケール セットを作成します。既定値は複数のグループです
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SubnetAddressPrefix
この ScaleSet が使用するサブネットのアドレス プレフィックス。 値が指定されていない場合、既定のサブネット設定 (192.168.1.0/24) が適用されます。
型: | String |
配置: | Named |
規定値: | 192.168.1.0/24 |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SubnetName
このスケール セットで使用するサブネットの名前。 値が指定されていない場合は、スケール セットと同じ名前で新しいサブネットが作成されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SystemAssignedIdentity
パラメーターが存在する場合、スケール セット内の VM には、自動生成されるマネージド システム ID が割り当てられます。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UpgradePolicyMode
このスケール セット内の VM インスタンスのアップグレード ポリシー モード。 アップグレード ポリシーでは、自動アップグレード、手動アップグレード、またはローリング アップグレードを指定できます。
型: | UpgradeMode |
指定可能な値: | Automatic, Manual, Rolling |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UserAssignedIdentity
スケール セット内の VM に割り当てる必要があるマネージド サービス ID の名前。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-VirtualMachineScaleSet
このコマンドレットで作成する VMSS のプロパティを含む VirtualMachineScaleSet オブジェクトを指定します。
型: | PSVirtualMachineScaleSet |
配置: | 3 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-VirtualNetworkName
このスケール セットで使用する仮想ネットワークの名前。 値が指定されていない場合は、スケール セットと同じ名前の新しい仮想ネットワークが作成されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-VMScaleSetName
このコマンドレットによって作成される VMSS の名前を指定します。
型: | String |
Aliases: | Name |
配置: | 2 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-VmSize
このスケール セット内の VM インスタンスのサイズ。 Size が指定されていない場合は、既定のサイズ (Standard_DS1_v2) が使用されます。
型: | String |
配置: | Named |
規定値: | Standard_DS1_v2 |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-VnetAddressPrefix
このスケール セットで使用される仮想ネットワークのアドレス プレフィックス。 値が指定されていない場合は、既定の仮想ネットワーク アドレス プレフィックス設定 (192.168.0.0/16) が使用されます。
型: | String |
配置: | Named |
規定値: | 192.168.0.0/16 |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Zone
リソースに割り当てられた IP を示す可用性ゾーンの一覧が必要です。
型: | List<T>[String] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
入力
パラメーター: VirtualMachineScaleSet (ByValue)
List<T>[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]