New-AzureRmVmss
Skapar en VMSS.
Varning
AzureRM PowerShell-modulen är officiellt inaktuell från och med den 29 februari 2024. Användare rekommenderas att migrera från AzureRM till Az PowerShell-modulen för att säkerställa fortsatt support och uppdateringar.
Även om AzureRM-modulen fortfarande kan fungera, underhålls den inte längre eller stöds, vilket gör att användaren kan välja och riskera fortsatt användning. Se våra migreringsresurser för vägledning om övergången till Az-modulen.
Syntax
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>]
Description
Cmdleten New-AzureRmVmss skapar en VMSS (Virtual Machine Scale Set) i Azure.
Använd den enkla parameteruppsättningen (SimpleParameterSet
) för att snabbt skapa en förinställd VMSS och associerade resurser. Använd standardparameteruppsättningen (DefaultParameter
) för mer avancerade scenarier när du behöver konfigurera varje komponent i VMSS och varje associerad resurs innan du skapar den.
Exempel
Exempel 1: Skapa en VMSS med **'SimpleParameterSet'**
$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
Kommandot ovan skapar följande med namnet $vmssName
:
- En resursgrupp
- Ett virtuellt nätverk
- En lastbalanserare
- En offentlig IP-adress
- VMSS med 2 instanser
Standardavbildningen som valts för de virtuella datorerna i VMSS är 2016-Datacenter Windows Server
och SKU:n är Standard_DS1_v2
Exempel 2: Skapa en VMSS med **'DefaultParameterSet'**
# 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;
Det komplexa exemplet ovan skapar en VMSS. Följande är en förklaring av vad som händer:
- Det första kommandot skapar en resursgrupp med det angivna namnet och platsen.
- Det andra kommandot använder cmdleten New-AzureRmStorageAccount för att skapa ett lagringskonto.
- Det tredje kommandot använder sedan cmdleten Get-AzureRmStorageAccount för att hämta lagringskontot som skapades i det andra kommandot och lagrar resultatet i variabeln $STOAccount.
- Det femte kommandot använder cmdleten New-AzureRmVirtualNetworkSubnetConfig för att skapa ett undernät och lagrar resultatet i variabeln med namnet $SubNet.
- Det sjätte kommandot använder cmdleten New-AzureRmVirtualNetwork för att skapa ett virtuellt nätverk och lagrar resultatet i variabeln med namnet $VNet.
- Det sjunde kommandot använder Get-AzureRmVirtualNetwork för att hämta information om det virtuella nätverk som skapades i det sjätte kommandot och lagrar informationen i variabeln med namnet $VNet.
- Det åttonde och nionde kommandot använder New-AzureRmPublicIpAddress och Get- AzureRmPublicIpAddress för att skapa och hämta information från den offentliga IP-adressen.
- Kommandona lagrar informationen i variabeln med namnet $PubIP.
- Det tionde kommandot använder cmdleten New- AzureRmLoadBalancerFrontendIpConfig för att skapa en frontend-lastbalanserare och lagrar resultatet i variabeln med namnet $Frontend.
- Det elfte kommandot använder New-AzureRmLoadBalancerBackendAddressPoolConfig för att skapa en konfiguration av serverdelsadresspoolen och lagrar resultatet i variabeln med namnet $BackendAddressPool.
- Det tolfte kommandot använder New-AzureRmLoadBalancerProbeConfig för att skapa en avsökning och lagrar avsökningsinformationen i variabeln med namnet $Probe.
- Det trettonde kommandot använder cmdleten New-AzureRmLoadBalancerInboundNatPoolConfig för att skapa en nat-poolkonfiguration (inbound network address translation).
- Det fjortonde kommandot använder New-AzureRmLoadBalancerRuleConfig för att skapa en konfiguration av lastbalanserarens regel och lagrar resultatet i variabeln med namnet $LBRule.
- Det femtonde kommandot använder cmdleten New-AzureRmLoadBalancer för att skapa en lastbalanserare och lagrar resultatet i variabeln med namnet $ActualLb.
- Det sextonde kommandot använder Get-AzureRmLoadBalancer för att hämta information om lastbalanseraren som skapades i det femtonde kommandot och lagrar informationen i variabeln med namnet $ExpectedLb.
- Det sjuttonde kommandot använder cmdleten New-AzureRmVmssIPConfig för att skapa en VMSS IP-konfiguration och lagrar informationen i variabeln med namnet $IPCfg.
- Det artonde kommandot använder cmdleten New-AzureRmVmssConfig för att skapa ett VMSS-konfigurationsobjekt och lagrar resultatet i variabeln med namnet $VMSS.
- Det nittonde kommandot använder cmdleten New-AzureRmVmss för att skapa VMSS.
Parametrar
-AllocationMethod
Allokeringsmetod för den offentliga IP-adressen för skalningsuppsättningen (statisk eller dynamisk). Om inget värde anges är allokeringen statisk.
Typ: | String |
accepterade värden: | Static, Dynamic |
Position: | Named |
standardvärde: | Static |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AsJob
Kör cmdleten i bakgrunden och returnera ett jobb för att spåra förloppet.
Typ: | SwitchParameter |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BackendPoolName
Namnet på serverdelsadresspoolen som ska användas i lastbalanseraren för den här skalningsuppsättningen. Om inget värde anges skapas en ny serverdelspool med samma namn som skalningsuppsättningen.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BackendPort
Serverdelsportnummer som används av lastbalanseraren för skalningsuppsättning för att kommunicera med virtuella datorer i skalningsuppsättningen. Om inga värden anges används portarna 3389 och 5985 för virtuella Windows-datorer och port 22 används för virtuella Linux-datorer.
Typ: | Int32[] |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Typ: | SwitchParameter |
Aliases: | cf |
Position: | Named |
standardvärde: | False |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Administratörsautentiseringsuppgifterna (användarnamn och lösenord) för virtuella datorer i den här skalningsuppsättningen.
Typ: | PSCredential |
Position: | Named |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DataDiskSizeInGb
Anger storleken på datadiskar i GB.
Typ: | Int32[] |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultProfile
Autentiseringsuppgifter, konto, klientorganisation och prenumeration som används för kommunikation med Azure.
Typ: | IAzureContextContainer |
Aliases: | AzureRmContext, AzureCredential |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DomainNameLabel
Domännamnsetiketten för det offentliga fullständigt kvalificerade domännamnet (FQDN) för den här skalningsuppsättningen. Det här är den första komponenten i domännamnet som automatiskt tilldelas till skalningsuppsättningen. Automatiskt tilldelade domännamn använder formuläret (<DomainNameLabel>.<Location>.cloudapp.azure.com
). Om inget värde anges är standardetiketten för domännamn sammanfogningen av <ScaleSetName>
och <ResourceGroupName>
.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FrontendPoolName
Namnet på klientdelsadresspoolen som ska användas i lastbalanseraren skalningsuppsättning. Om inget värde anges skapas en ny klientdelsadresspool med samma namn som skalningsuppsättningen.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ImageName
Namnet på avbildningen för virtuella datorer i den här skalningsuppsättningen. Om inget värde anges används avbildningen "Windows Server 2016 DataCenter".
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InstanceCount
Antalet VM-avbildningar i skalningsuppsättningen. Om inget värde anges skapas två instanser.
Typ: | Int32 |
Position: | Named |
standardvärde: | 2 |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LoadBalancerName
Namnet på lastbalanseraren som ska användas med den här skalningsuppsättningen. En ny lastbalanserare med samma namn som skalningsuppsättningen skapas om inget värde anges.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Location
Den Azure-plats där skalningsuppsättningen skapas. Om inget värde anges härleds platsen från platsen för andra resurser som refereras i parametrarna.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NatBackendPort
Serverdelsport för inkommande nätverksadressöversättning.
Typ: | Int32[] |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PublicIpAddressName
Namnet på den offentliga IP-adress som ska användas med den här skalningsuppsättningen. En ny offentlig IPAddress med samma namn som skalningsuppsättningen skapas om inget värde anges.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ResourceGroupName
Anger namnet på resursgruppen för VMSS. Om inget värde anges skapas en ny ResourceGroup med samma namn som skalningsuppsättningen.
Typ: | String |
Position: | 1 |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SecurityGroupName
Namnet på nätverkssäkerhetsgruppen som ska tillämpas på den här skalningsuppsättningen. Om inget värde anges skapas en standardnätverkssäkerhetsgrupp med samma namn som skalningsuppsättningen och tillämpas på skalningsuppsättningen.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SinglePlacementGroup
Använd detta för att skapa skalningsuppsättningen i en enskild placeringsgrupp, standardvärdet är flera grupper
Typ: | SwitchParameter |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SubnetAddressPrefix
Adressprefixet för det undernät som skalaruppsättningen använder. Standardinställningar för undernät (192.168.1.0/24) tillämpas om inget värde anges.
Typ: | String |
Position: | Named |
standardvärde: | 192.168.1.0/24 |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SubnetName
Namnet på det undernät som ska användas med den här skalningsuppsättningen. Ett nytt undernät skapas med samma namn som skalningsuppsättningen om inget värde anges.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SystemAssignedIdentity
Om parametern finns tilldelas de virtuella datorerna i skalningsuppsättningen en hanterad systemidentitet som genereras automatiskt.
Typ: | SwitchParameter |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UpgradePolicyMode
Uppgraderingsprincipläget för VM-instanser i den här skalningsuppsättningen. Uppgraderingsprincipen kan ange automatiska, manuella eller löpande uppgraderingar.
Typ: | UpgradeMode |
accepterade värden: | Automatic, Manual, Rolling |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserAssignedIdentity
Namnet på en hanterad tjänstidentitet som ska tilldelas till de virtuella datorerna i skalningsuppsättningen.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VirtualMachineScaleSet
Anger objektet VirtualMachineScaleSet som innehåller egenskaperna för den VMSS som den här cmdleten skapar.
Typ: | PSVirtualMachineScaleSet |
Position: | 3 |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VirtualNetworkName
Namnet på det virtuella nätverk som ska användas med den här skalningsuppsättningen. Om inget värde anges skapas ett nytt virtuellt nätverk med samma namn som skalningsuppsättningen.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VMScaleSetName
Anger namnet på den VMSS som den här cmdleten skapar.
Typ: | String |
Aliases: | Name |
Position: | 2 |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VmSize
Storleken på de virtuella datorinstanserna i den här skalningsuppsättningen. En standardstorlek (Standard_DS1_v2) används om ingen storlek har angetts.
Typ: | String |
Position: | Named |
standardvärde: | Standard_DS1_v2 |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VnetAddressPrefix
Adressprefixet för det virtuella nätverket som används med den här skalningsuppsättningen. Standardinställningar för adressprefix för virtuella nätverk (192.168.0.0/16) används om inget värde anges.
Typ: | String |
Position: | Named |
standardvärde: | 192.168.0.0/16 |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Typ: | SwitchParameter |
Aliases: | wi |
Position: | Named |
standardvärde: | False |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Zone
En lista över tillgänglighetszoner som anger den IP-adress som allokerats för resursen måste komma från.
Typ: | List<T>[String] |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Indata
Parametrar: VirtualMachineScaleSet (ByValue)
List<T>[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]