Dela via


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

String

PSVirtualMachineScaleSet

Parametrar: VirtualMachineScaleSet (ByValue)

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

Utdata

PSVirtualMachineScaleSet