Share via


New-AzureRmVmss

Hiermee maakt u een VMSS.

Waarschuwing

De AzureRM PowerShell-module is vanaf 29 februari 2024 officieel afgeschaft. Gebruikers wordt aangeraden om van AzureRM naar de Az PowerShell-module te migreren om ondersteuning en updates te garanderen.

Hoewel de AzureRM-module nog steeds kan functioneren, wordt deze niet meer onderhouden of ondersteund, waardoor het gebruik naar eigen goeddunken en risico van de gebruiker blijft bestaan. Raadpleeg onze migratiebronnen voor hulp bij de overgang naar de Az-module.

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

Met de cmdlet New-AzureRmVmss maakt u een virtuele-machineschaalset (VMSS) in Azure. Gebruik de eenvoudige parameterset (SimpleParameterSet) om snel een vooraf ingestelde VMSS en bijbehorende resources te maken. Gebruik de standaardparameterset (DefaultParameter) voor meer geavanceerde scenario's wanneer u elk onderdeel van de VMSS en elke bijbehorende resource nauwkeurig moet configureren voordat u deze maakt.

Voorbeelden

Voorbeeld 1: Een VMSS maken met behulp van de **'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

Met de bovenstaande opdracht maakt u het volgende met de naam $vmssName :

  • Een resourcegroep
  • Een virtueel netwerk
  • Een load balancer
  • Een openbaar IP-adres
  • de VMSS met 2 exemplaren

De standaardinstallatiekopieën die zijn gekozen voor de VM's in de VMSS 2016-Datacenter Windows Server en de SKU zijn Standard_DS1_v2

Voorbeeld 2: Een VMSS maken met behulp van de **'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;

In het bovenstaande complexe voorbeeld wordt een VMSS gemaakt. Hier volgt een uitleg van wat er gebeurt:

  • Met de eerste opdracht maakt u een resourcegroep met de opgegeven naam en locatie.
  • De tweede opdracht maakt gebruik van de cmdlet New-AzureRmStorageAccount om een opslagaccount te maken.
  • De derde opdracht gebruikt vervolgens de cmdlet Get-AzureRmStorageAccount om het opslagaccount op te halen dat in de tweede opdracht is gemaakt en slaat het resultaat op in de $STOAccount variabele.
  • De vijfde opdracht maakt gebruik van de cmdlet New-AzureRmVirtualNetworkSubnetConfig om een subnet te maken en slaat het resultaat op in de variabele met de naam $SubNet.
  • De zesde opdracht maakt gebruik van de cmdlet New-AzureRmVirtualNetwork om een virtueel netwerk te maken en slaat het resultaat op in de variabele met de naam $VNet.
  • De zevende opdracht maakt gebruik van Get-AzureRmVirtualNetwork voor informatie over het virtuele netwerk dat is gemaakt in de zesde opdracht en slaat de informatie op in de variabele met de naam $VNet.
  • De achtste en negende opdracht maakt gebruik van het New-AzureRmPublicIpAddress en Get- AzureRmPublicIpAddress om informatie van dat openbare IP-adres te maken en op te halen.
  • Met de opdrachten worden de gegevens opgeslagen in de variabele met de naam $PubIP.
  • De tiende opdracht maakt gebruik van de cmdlet New- AzureRmLoadBalancerFrontendIpConfig om een front-end load balancer te maken en slaat het resultaat op in de variabele met de naam $Frontend.
  • De elfde opdracht maakt gebruik van new-AzureRmLoadBalancerBackendAddressPoolConfig om een back-endadresgroepconfiguratie te maken en slaat het resultaat op in de variabele met de naam $BackendAddressPool.
  • De twaalfde opdracht maakt gebruik van new-AzureRmLoadBalancerProbeConfig om een test te maken en slaat de testgegevens op in de variabele met de naam $Probe.
  • De dertiende opdracht maakt gebruik van de cmdlet New-AzureRmLoadBalancerInboundNatPoolConfig om een nat-poolconfiguratie (Network Address Translation) voor een load balancer te maken.
  • De veertiende opdracht maakt gebruik van new-AzureRmLoadBalancerRuleConfig om een load balancer-regelconfiguratie te maken en slaat het resultaat op in de variabele met de naam $LBRule.
  • De vijftiende opdracht maakt gebruik van de cmdlet New-AzureRmLoadBalancer om een load balancer te maken en slaat het resultaat op in de variabele met de naam $ActualLb.
  • De zestiende opdracht maakt gebruik van de Get-AzureRmLoadBalancer om informatie op te halen over de load balancer die is gemaakt in de vijftiende opdracht en slaat de informatie op in de variabele met de naam $ExpectedLb.
  • De zeventiende opdracht maakt gebruik van de cmdlet New-AzureRmVmssIPConfig om een VMSS IP-configuratie te maken en slaat de informatie op in de variabele met de naam $IPCfg.
  • De achttiende opdracht maakt gebruik van de cmdlet New-AzureRmVmssConfig om een VMSS-configuratieobject te maken en slaat het resultaat op in de variabele met de naam $VMSS.
  • De negentiende opdracht maakt gebruik van de cmdlet New-AzureRmVmss om de VMSS te maken.

Parameters

-AllocationMethod

Toewijzingsmethode voor het openbare IP-adres van de schaalset (statisch of dynamisch). Als er geen waarde wordt opgegeven, is toewijzing statisch.

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

-AsJob

Voer de cmdlet op de achtergrond uit en retourneer een taak om de voortgang bij te houden.

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

-BackendPoolName

De naam van de back-endadresgroep die moet worden gebruikt in de load balancer voor deze schaalset. Als er geen waarde wordt opgegeven, wordt er een nieuwe back-endpool gemaakt met dezelfde naam als de schaalset.

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

-BackendPort

Back-endpoortnummers die door de load balancer van de schaalset worden gebruikt om te communiceren met VM's in de schaalset. Als er geen waarden zijn opgegeven, worden poorten 3389 en 5985 gebruikt voor Windows VMS en worden poort 22 gebruikt voor Linux-VM's.

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

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

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

-Credential

De beheerdersreferenties (gebruikersnaam en wachtwoord) voor VM's in deze schaalset.

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

-DataDiskSizeInGb

Hiermee geeft u de grootte van gegevensschijven in GB.

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

-DefaultProfile

De referenties, het account, de tenant en het abonnement die worden gebruikt voor communicatie met Azure.

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

-DomainNameLabel

Het domeinnaamlabel voor de openbare FQDN (Fully Qualified Domain Name) voor deze schaalset. Dit is het eerste onderdeel van de domeinnaam die automatisch wordt toegewezen aan de schaalset. Automatisch toegewezen domeinnamen gebruiken het formulier (<DomainNameLabel>.<Location>.cloudapp.azure.com). Als er geen waarde wordt opgegeven, is het standaarddomeinnaamlabel de samenvoeging van <ScaleSetName> en <ResourceGroupName>.

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

-FrontendPoolName

De naam van de front-endadresgroep die moet worden gebruikt in de load balancer van de schaalset. Als er geen waarde wordt opgegeven, wordt er een nieuwe front-endadresgroep gemaakt met dezelfde naam als de schaalset.

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

-ImageName

De naam van de installatiekopieën voor VM's in deze schaalset. Als er geen waarde wordt opgegeven, wordt de installatiekopieën van Windows Server 2016 DataCenter gebruikt.

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

-InstanceCount

Het aantal VM-installatiekopieën in de schaalset. Als er geen waarde is opgegeven, worden 2 exemplaren gemaakt.

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

-LoadBalancerName

De naam van de load balancer die moet worden gebruikt met deze schaalset. Er wordt een nieuwe load balancer gemaakt met dezelfde naam als de schaalset als er geen waarde is opgegeven.

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

-Location

De Azure-locatie waar deze schaalset wordt gemaakt. Als er geen waarde is opgegeven, wordt de locatie afgeleid van de locatie van andere resources waarnaar wordt verwezen in de parameters.

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

-NatBackendPort

Back-endpoort voor binnenkomende netwerkadresomzetting.

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

-PublicIpAddressName

De naam van het openbare IP-adres dat moet worden gebruikt met deze schaalset. Er wordt een nieuw openbaar IP-adres met dezelfde naam gemaakt als de schaalset als er geen waarde wordt opgegeven.

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

-ResourceGroupName

Hiermee geeft u de naam van de resourcegroep van de VMSS. Als er geen waarde is opgegeven, wordt er een nieuwe ResourceGroup gemaakt met dezelfde naam als de schaalset.

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

-SecurityGroupName

De naam van de netwerkbeveiligingsgroep die moet worden toegepast op deze schaalset. Als er geen waarde wordt opgegeven, wordt er een standaardnetwerkbeveiligingsgroep met dezelfde naam als de schaalset gemaakt en toegepast op de schaalset.

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

-SinglePlacementGroup

Gebruik dit om de schaalset in één plaatsingsgroep te maken, standaard meerdere groepen

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

-SubnetAddressPrefix

Het adresvoorvoegsel van het subnet dat door deze schaalset wordt gebruikt. Standaardsubnetinstellingen (192.168.1.0/24) worden toegepast als er geen waarde wordt opgegeven.

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

-SubnetName

De naam van het subnet dat moet worden gebruikt met deze schaalset. Er wordt een nieuw subnet gemaakt met dezelfde naam als de schaalset als er geen waarde is opgegeven.

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

-SystemAssignedIdentity

Als de parameter aanwezig is, worden aan de VM('s) in de schaalset een beheerde systeemidentiteit toegewezen die automatisch wordt gegenereerd.

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

-UpgradePolicyMode

De upgradebeleidsmodus voor VM-exemplaren in deze schaalset. Upgradebeleid kan automatische, handmatige of rolling upgrades opgeven.

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

-UserAssignedIdentity

De naam van een beheerde service-identiteit die moet worden toegewezen aan de VM('s) in de schaalset.

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

-VirtualMachineScaleSet

Hiermee geeft u het VirtualMachineScaleSet-object op dat de eigenschappen bevat van de VMSS die met deze cmdlet worden gemaakt.

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

-VirtualNetworkName

De naam van het virtuele netwerk dat moet worden gebruikt met deze schaalset. Als er geen waarde wordt opgegeven, wordt er een nieuw virtueel netwerk met dezelfde naam gemaakt als de schaalset.

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

-VMScaleSetName

Hiermee geeft u de naam op van de VMSS die met deze cmdlet wordt gemaakt.

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

-VmSize

De grootte van de VM-exemplaren in deze schaalset. Er wordt een standaardgrootte (Standard_DS1_v2) gebruikt als er geen grootte is opgegeven.

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

-VnetAddressPrefix

Het adresvoorvoegsel voor het virtuele netwerk dat met deze schaalset wordt gebruikt. Standaardinstellingen voor het adresvoorvoegsel van het virtuele netwerk (192.168.0.0/16) worden gebruikt als er geen waarde wordt opgegeven.

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

-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

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

-Zone

Een lijst met beschikbaarheidszones die het IP-adres aangeeft dat voor de resource is toegewezen, moet afkomstig zijn van.

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

Invoerwaarden

String

PSVirtualMachineScaleSet

Parameters: VirtualMachineScaleSet (ByValue)

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

Uitvoerwaarden

PSVirtualMachineScaleSet