New-AzureRmVmss
Crea un set di scalabilità di macchine virtuali.
Avviso
Il modulo AzureRM PowerShell è stato ufficialmente deprecato a partire dal 29 febbraio 2024. È consigliabile eseguire la migrazione da AzureRM al modulo Az PowerShell per garantire il supporto e gli aggiornamenti continui.
Anche se il modulo AzureRM può ancora funzionare, non è più gestito o supportato, posizionando qualsiasi uso continuo a discrezione e rischio dell'utente. Per indicazioni sulla transizione al modulo Az, vedere le risorse di migrazione.
Sintassi
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>]
Descrizione
Il cmdlet New-AzureRmVmss crea un set di scalabilità di macchine virtuali (VMSS) in Azure.
Usare il set di parametri semplice (SimpleParameterSet
) per creare rapidamente un set di macchine virtuali preconfigurato e le risorse associate. Usare il set di parametri predefinito (DefaultParameter
) per scenari più avanzati quando è necessario configurare con precisione ogni componente del set di scalabilità di macchine virtuali e ogni risorsa associata prima della creazione.
Esempio
Esempio 1: Creare un set di scalabilità di macchine virtuali con **'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
Il comando precedente crea il codice seguente con il nome $vmssName
:
- Un gruppo di risorse
- Una rete virtuale
- Un servizio di bilanciamento del carico
- Un indirizzo IP pubblico
- set di scalabilità di macchine virtuali con 2 istanze
L'immagine predefinita scelta per le macchine virtuali nel set di scalabilità di macchine virtuali è 2016-Datacenter Windows Server
e lo SKU è Standard_DS1_v2
Esempio 2: Creare un set di scalabilità di macchine virtuali con **'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;
L'esempio complesso precedente crea un set di scalabilità di macchine virtuali, di seguito è riportata una spiegazione di ciò che accade:
- Il primo comando crea un gruppo di risorse con il nome e la posizione specificati.
- Il secondo comando usa il cmdlet New-AzureRm Archiviazione Account per creare un account di archiviazione.
- Il terzo comando usa quindi il cmdlet Get-AzureRm Archiviazione Account per ottenere l'account di archiviazione creato nel secondo comando e archivia il risultato nella variabile $STOAccount.
- Il quinto comando usa il cmdlet New-AzureRmVirtualNetworkSubnetConfig per creare una subnet e archivia il risultato nella variabile denominata $SubNet.
- Il sesto comando usa il cmdlet New-AzureRmVirtualNetwork per creare una rete virtuale e archivia il risultato nella variabile denominata $VNet.
- Il settimo comando usa Get-AzureRmVirtualNetwork per ottenere informazioni sulla rete virtuale creata nel sesto comando e archivia le informazioni nella variabile denominata $VNet.
- L'ottavo e il nono comando usano New-AzureRmPublicIpAddress e Get- AzureRmPublicIpAddress per creare e ottenere informazioni da tale indirizzo IP pubblico.
- I comandi archiviano le informazioni nella variabile denominata $PubIP.
- Il decimo comando usa il cmdlet New- AzureRmLoadBalancerFrontendIpConfig per creare un servizio di bilanciamento del carico front-end e archivia il risultato nella variabile denominata $Frontend.
- L'undicesimo comando usa New-AzureRmLoadBalancerBackendAddressPoolConfig per creare una configurazione del pool di indirizzi back-end e archivia il risultato nella variabile denominata $BackendAddressPool.
- Il dodicesimo comando usa New-AzureRmLoadBalancerProbeConfig per creare un probe e archivia le informazioni del probe nella variabile denominata $Probe.
- Il tredicesimo comando usa il cmdlet New-AzureRmLoadBalancerInboundNatPoolConfig per creare una configurazione del pool NAT (Network Address Translation) del servizio di bilanciamento del carico.
- Il quattordicesimo comando usa New-AzureRmLoadBalancerRuleConfig per creare una configurazione della regola di bilanciamento del carico e archivia il risultato nella variabile denominata $LBRule.
- Il quindicesimo comando usa il cmdlet New-AzureRmLoadBalancer per creare un servizio di bilanciamento del carico e archivia il risultato nella variabile denominata $ActualLb.
- Il sedicesimo comando usa Get-AzureRmLoadBalancer per ottenere informazioni sul servizio di bilanciamento del carico creato nel quindicesimo comando e archivia le informazioni nella variabile denominata $ExpectedLb.
- Il diciassettesimo comando usa il cmdlet New-AzureRmVmssIPConfig per creare una configurazione IP del set di scalabilità di macchine virtuali e archivia le informazioni nella variabile denominata $IPCfg.
- Il settecento comando usa il cmdlet New-AzureRmVmssConfig per creare un oggetto di configurazione VMSS e archivia il risultato nella variabile denominata $VMSS.
- Il diciannovesimo comando usa il cmdlet New-AzureRmVmss per creare il set di scalabilità di macchine virtuali.
Parametri
-AllocationMethod
Metodo di allocazione per l'indirizzo IP pubblico del set di scalabilità (statico o dinamico). Se non viene specificato alcun valore, l'allocazione sarà statica.
Type: | String |
Accepted values: | Static, Dynamic |
Position: | Named |
Default value: | Static |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AsJob
Eseguire il cmdlet in background e restituire un processo per tenere traccia dello stato di avanzamento.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BackendPoolName
Nome del pool di indirizzi back-end da usare nel servizio di bilanciamento del carico per questo set di scalabilità. Se non viene specificato alcun valore, verrà creato un nuovo pool back-end con lo stesso nome del set di scalabilità.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BackendPort
Numeri di porta back-end usati dal servizio di bilanciamento del carico del set di scalabilità per comunicare con le macchine virtuali nel set di scalabilità. Se non vengono specificati valori, verranno usate le porte 3389 e 5985 per le macchine virtuali Windows e la porta 22 verrà usata per le macchine virtuali Linux.
Type: | Int32[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Credenziali di amministratore (nome utente e password) per le macchine virtuali in questo set di scalabilità.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DataDiskSizeInGb
Specifica le dimensioni dei dischi dati in GB.
Type: | Int32[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultProfile
Credenziali, account, tenant e sottoscrizione usati per la comunicazione con Azure.
Type: | IAzureContextContainer |
Aliases: | AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DomainNameLabel
Etichetta del nome di dominio per il nome di dominio completo pubblico (FQDN) per questo set di scalabilità. Si tratta del primo componente del nome di dominio assegnato automaticamente al set di scalabilità. I nomi di dominio assegnati automaticamente usano il modulo (<DomainNameLabel>.<Location>.cloudapp.azure.com
). Se non viene specificato alcun valore, l'etichetta del nome di dominio predefinita sarà la concatenazione di <ScaleSetName>
e <ResourceGroupName>
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FrontendPoolName
Nome del pool di indirizzi front-end da usare nel servizio di bilanciamento del carico del set di scalabilità. Se non viene specificato alcun valore, verrà creato un nuovo pool di indirizzi front-end con lo stesso nome del set di scalabilità.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ImageName
Nome dell'immagine per le macchine virtuali in questo set di scalabilità. Se non viene specificato alcun valore, verrà usata l'immagine "Windows Server 2016 DataCenter".
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InstanceCount
Numero di immagini di macchine virtuali nel set di scalabilità. Se non viene specificato alcun valore, verranno create 2 istanze.
Type: | Int32 |
Position: | Named |
Default value: | 2 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LoadBalancerName
Nome del servizio di bilanciamento del carico da usare con questo set di scalabilità. Se non viene specificato alcun valore, verrà creato un nuovo servizio di bilanciamento del carico con lo stesso nome del set di scalabilità.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Location
Percorso di Azure in cui verrà creato questo set di scalabilità. Se non viene specificato alcun valore, la posizione verrà dedotta dalla posizione di altre risorse a cui si fa riferimento nei parametri.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NatBackendPort
Porta back-end per la conversione degli indirizzi di rete in ingresso.
Type: | Int32[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PublicIpAddressName
Nome dell'indirizzo IP pubblico da usare con questo set di scalabilità. Se non viene specificato alcun valore, verrà creato un nuovo indirizzo IP pubblico con lo stesso nome del set di scalabilità.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ResourceGroupName
Specifica il nome del gruppo di risorse del set di scalabilità di macchine virtuali. Se non viene specificato alcun valore, verrà creato un nuovo gruppo di risorse con lo stesso nome del set di scalabilità.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SecurityGroupName
Nome del gruppo di sicurezza di rete da applicare a questo set di scalabilità. Se non viene specificato alcun valore, verrà creato e applicato un gruppo di sicurezza di rete predefinito con lo stesso nome del set di scalabilità.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SinglePlacementGroup
Usare questa opzione per creare il set di scalabilità in un singolo gruppo di posizionamento, il valore predefinito è costituito da più gruppi
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SubnetAddressPrefix
Prefisso dell'indirizzo della subnet che verrà usato da questo set di scalabilità. Le impostazioni subnet predefinite (192.168.1.0/24) verranno applicate se non viene specificato alcun valore.
Type: | String |
Position: | Named |
Default value: | 192.168.1.0/24 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SubnetName
Nome della subnet da usare con questo set di scalabilità. Se non viene specificato alcun valore, verrà creata una nuova subnet con lo stesso nome del set di scalabilità.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SystemAssignedIdentity
Se il parametro è presente, alle macchine virtuali nel set di scalabilità viene assegnata un'identità del sistema gestita generata automaticamente.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UpgradePolicyMode
Modalità dei criteri di aggiornamento per le istanze di macchine virtuali in questo set di scalabilità. I criteri di aggiornamento possono specificare aggiornamenti automatici, manuali o in sequenza.
Type: | UpgradeMode |
Accepted values: | Automatic, Manual, Rolling |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserAssignedIdentity
Nome di un'identità del servizio gestita che deve essere assegnata alle macchine virtuali nel set di scalabilità.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VirtualMachineScaleSet
Specifica l'oggetto VirtualMachineScaleSet che contiene le proprietà del set di scalabilità di macchine virtuali creato da questo cmdlet.
Type: | PSVirtualMachineScaleSet |
Position: | 3 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VirtualNetworkName
Nome del Rete virtuale da usare con questo set di scalabilità. Se non viene specificato alcun valore, verrà creata una nuova rete virtuale con lo stesso nome del set di scalabilità.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VMScaleSetName
Specifica il nome del set di scalabilità di macchine virtuali creato da questo cmdlet.
Type: | String |
Aliases: | Name |
Position: | 2 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VmSize
Dimensioni delle istanze di macchina virtuale in questo set di scalabilità. Se non viene specificata alcuna dimensione, verrà utilizzata una dimensione predefinita (Standard_DS1_v2).
Type: | String |
Position: | Named |
Default value: | Standard_DS1_v2 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VnetAddressPrefix
Prefisso dell'indirizzo per la rete virtuale usata con questo set di scalabilità. Le impostazioni predefinite del prefisso dell'indirizzo di rete virtuale (192.168.0.0/16) verranno usate se non viene fornito alcun valore.
Type: | String |
Position: | Named |
Default value: | 192.168.0.0/16 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Zone
Elenco delle zone di disponibilità che denota l'INDIRIZZO IP allocato per la risorsa da cui deve provenire.
Type: | List<T>[String] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Input
Parametri: VirtualMachineScaleSet (ByValue)
List<T>[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]