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

String

PSVirtualMachineScaleSet

Parametri: VirtualMachineScaleSet (ByValue)

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

Output

PSVirtualMachineScaleSet