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
Parameters: VirtualMachineScaleSet (ByValue)
List<T>[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]