Partager via


New-AzureRmVmss

Crée un vmSS.

Avertissement

Le module AzureRM PowerShell a été officiellement déconseillé depuis le 29 février 2024. Les utilisateurs sont invités à migrer d’AzureRM vers le module Az PowerShell afin de s’assurer d’une prise en charge et des mises à jour continues.

Bien que le module AzureRM puisse toujours fonctionner, il n’est plus conservé ou pris en charge, plaçant toute utilisation continue à la discrétion et au risque de l’utilisateur. Consultez nos ressources sur la migration pour obtenir des conseils sur la transition vers le module Az.

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

L’applet de commande New-AzureRmVmss crée un groupe de machines virtuelles identiques (VMSS) dans Azure. Utilisez l’ensemble de paramètres simple (SimpleParameterSet) pour créer rapidement un vmSS et des ressources associées. Utilisez l’ensemble de paramètres par défaut (DefaultParameter) pour des scénarios plus avancés lorsque vous devez configurer précisément chaque composant de VMSS et chaque ressource associée avant la création.

Exemples

Exemple 1 : Créer un service VMSS à l’aide 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

La commande ci-dessus crée ce qui suit avec le nom $vmssName :

  • Un groupe de ressources
  • Un réseau virtuel
  • Un équilibrage de charge
  • Une adresse IP publique
  • VMSS avec 2 instances

L’image par défaut choisie pour les machines virtuelles dans vmSS est 2016-Datacenter Windows Server et la référence SKU est Standard_DS1_v2

Exemple 2 : Créer un vmSS à l’aide 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;

L’exemple complexe ci-dessus crée un VMSS, voici une explication de ce qui se passe :

  • La première commande crée un groupe de ressources avec le nom et l’emplacement spécifiés.
  • La deuxième commande utilise l’applet de commande New-AzureRm Stockage Account pour créer un compte de stockage.
  • La troisième commande utilise ensuite l’applet de commande Get-AzureRm Stockage Account pour obtenir le compte de stockage créé dans la deuxième commande et stocke le résultat dans la variable $STOAccount.
  • La cinquième commande utilise l’applet de commande New-AzureRmVirtualNetworkSubnetConfig pour créer un sous-réseau et stocke le résultat dans la variable nommée $SubNet.
  • La sixième commande utilise l’applet de commande New-AzureRmVirtualNetwork pour créer un réseau virtuel et stocke le résultat dans la variable nommée $VNet.
  • La septième commande utilise Get-AzureRmVirtualNetwork pour obtenir des informations sur le réseau virtuel créé dans la sixième commande et stocke les informations dans la variable nommée $VNet.
  • La huitième et neuvième commande utilise New-AzureRmPublicIpAddress et Get- AzureRmPublicIpAddress pour créer et obtenir des informations à partir de cette adresse IP publique.
  • Les commandes stockent les informations dans la variable nommée $PubIP.
  • La dixième commande utilise l’applet de commande New-AzureRmLoadBalancerFrontendIpConfig pour créer un équilibreur de charge front-end et stocke le résultat dans la variable nommée $Frontend.
  • La onzee commande utilise new-AzureRmLoadBalancerBackendAddressPoolConfig pour créer une configuration de pool d’adresses back-end et stocke le résultat dans la variable nommée $BackendAddressPool.
  • La douzième commande utilise New-AzureRmLoadBalancerProbeConfig pour créer une sonde et stocker les informations de la sonde dans la variable nommée $Probe.
  • La treizeème commande utilise l’applet de commande New-AzureRmLoadBalancerInboundNatPoolConfig pour créer une configuration de pool NAT (Load Balancer inbound Network Address Translation).
  • La quatorzeème commande utilise New-AzureRmLoadBalancerRuleConfig pour créer une configuration de règle d’équilibreur de charge et stocke le résultat dans la variable nommée $LBRule.
  • La quinzeième commande utilise l’applet de commande New-AzureRmLoadBalancer pour créer un équilibreur de charge et stocke le résultat dans la variable nommée $ActualLb.
  • La sixième commande utilise Get-AzureRmLoadBalancer pour obtenir des informations sur l’équilibreur de charge créé dans la quinzeième commande et stocke les informations dans la variable nommée $ExpectedLb.
  • La dix-septième commande utilise l’applet de commande New-AzureRmVmssIPConfig pour créer une configuration IP VMSS et stocke les informations dans la variable nommée $IPCfg.
  • La dix-huitième commande utilise l’applet de commande New-AzureRmVmssConfig pour créer un objet de configuration VMSS et stocke le résultat dans la variable nommée $VMSS.
  • La dix-neuvième commande utilise l’applet de commande New-AzureRmVmss pour créer le service VMSS.

Paramètres

-AllocationMethod

Méthode d’allocation pour l’adresse IP publique du groupe identique (statique ou dynamique). Si aucune valeur n’est fournie, l’allocation est statique.

Type:String
valeurs acceptées:Static, Dynamic
Position:Named
valeur par défaut:Static
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-AsJob

Exécutez l’applet de commande en arrière-plan et retournez un travail pour suivre la progression.

Type:SwitchParameter
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-BackendPoolName

Nom du pool d’adresses back-end à utiliser dans l’équilibreur de charge pour ce groupe identique. Si aucune valeur n’est fournie, un nouveau pool principal est créé, avec le même nom que le groupe identique.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-BackendPort

Numéros de port principaux utilisés par l’équilibreur de charge du groupe identique pour communiquer avec les machines virtuelles dans le groupe identique. Si aucune valeur n’est spécifiée, les ports 3389 et 5985 sont utilisés pour les machines virtuelles Windows, et le port 22 est utilisé pour les machines virtuelles Linux.

Type:Int32[]
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Aliases:cf
Position:Named
valeur par défaut:False
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Informations d’identification de l’administrateur (nom d’utilisateur et mot de passe) pour les machines virtuelles de ce groupe identique.

Type:PSCredential
Position:Named
valeur par défaut:None
Obligatoire:True
Accept pipeline input:False
Accept wildcard characters:False

-DataDiskSizeInGb

Spécifie les tailles des disques de données en Go.

Type:Int32[]
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure.

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-DomainNameLabel

Étiquette de nom de domaine pour le nom de domaine complet public (FQDN) pour ce groupe identique. Il s’agit du premier composant du nom de domaine qui est automatiquement affecté au groupe identique. Les noms de domaine attribués automatiquement utilisent le formulaire (<DomainNameLabel>.<Location>.cloudapp.azure.com). Si aucune valeur n’est fournie, l’étiquette de nom de domaine par défaut est la concaténation et <ScaleSetName><ResourceGroupName>.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-FrontendPoolName

Nom du pool d’adresses front-end à utiliser dans l’équilibreur de charge du groupe identique. Si aucune valeur n’est fournie, un nouveau pool d’adresses front-end est créé, avec le même nom que le groupe identique.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-ImageName

Nom de l’image pour les machines virtuelles dans ce groupe identique. Si aucune valeur n’est fournie, l’image « Windows Server 2016 DataCenter » est utilisée.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-InstanceCount

Nombre d’images de machine virtuelle dans le groupe identique. Si aucune valeur n’est fournie, 2 instances sont créées.

Type:Int32
Position:Named
valeur par défaut:2
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-LoadBalancerName

Nom de l’équilibreur de charge à utiliser avec ce groupe identique. Un nouvel équilibreur de charge portant le même nom que le groupe identique est créé si aucune valeur n’est spécifiée.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-Location

Emplacement Azure où ce groupe identique sera créé. Si aucune valeur n’est spécifiée, l’emplacement est déduit à partir de l’emplacement d’autres ressources référencées dans les paramètres.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-NatBackendPort

Port principal pour la traduction d’adresses réseau entrantes.

Type:Int32[]
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-PublicIpAddressName

Nom de l’adresse IP publique à utiliser avec ce groupe identique. Une nouvelle adresse IP publique portant le même nom que le groupe identique est créée si aucune valeur n’est fournie.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceGroupName

Spécifie le nom du groupe de ressources de VMSS. Si aucune valeur n’est spécifiée, un nouveau Groupe de ressources est créé à l’aide du même nom que le groupe identique.

Type:String
Position:1
valeur par défaut:None
Obligatoire:True
Accept pipeline input:True
Accept wildcard characters:False

-SecurityGroupName

Nom du groupe de sécurité réseau à appliquer à ce groupe identique. Si aucune valeur n’est fournie, un groupe de sécurité réseau par défaut portant le même nom que le groupe identique est créé et appliqué au groupe identique.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-SinglePlacementGroup

Utilisez cette option pour créer le groupe identique dans un groupe de placement unique, la valeur par défaut est de plusieurs groupes.

Type:SwitchParameter
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-SubnetAddressPrefix

Préfixe d’adresse du sous-réseau que ce ScaleSet utilisera. Les paramètres de sous-réseau par défaut (192.168.1.0/24) sont appliqués si aucune valeur n’est fournie.

Type:String
Position:Named
valeur par défaut:192.168.1.0/24
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-SubnetName

Nom du sous-réseau à utiliser avec ce groupe identique. Un nouveau sous-réseau est créé avec le même nom que le groupe identique si aucune valeur n’est fournie.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-SystemAssignedIdentity

Si le paramètre est présent, la ou les machines virtuelles du groupe identique sont affectées à une identité système managée générée automatiquement.

Type:SwitchParameter
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-UpgradePolicyMode

Mode de stratégie de mise à niveau pour les instances de machine virtuelle dans ce groupe identique. La stratégie de mise à niveau peut spécifier des mises à niveau automatiques, manuelles ou propagées.

Type:UpgradeMode
valeurs acceptées:Automatic, Manual, Rolling
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-UserAssignedIdentity

Nom d’une identité de service managée qui doit être affectée aux machines virtuelles dans le groupe identique.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-VirtualMachineScaleSet

Spécifie l’objet VirtualMachineScaleSet qui contient les propriétés de VMSS que cette applet de commande crée.

Type:PSVirtualMachineScaleSet
Position:3
valeur par défaut:None
Obligatoire:True
Accept pipeline input:True
Accept wildcard characters:False

-VirtualNetworkName

Nom du Réseau virtuel à utiliser avec ce groupe identique. Si aucune valeur n’est fournie, un nouveau réseau virtuel portant le même nom que le groupe identique est créé.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-VMScaleSetName

Spécifie le nom du service VMSS créé par cette applet de commande.

Type:String
Aliases:Name
Position:2
valeur par défaut:None
Obligatoire:True
Accept pipeline input:True
Accept wildcard characters:False

-VmSize

Taille des instances de machine virtuelle dans ce groupe identique. Une taille par défaut (Standard_DS1_v2) est utilisée si aucune taille n’est spécifiée.

Type:String
Position:Named
valeur par défaut:Standard_DS1_v2
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-VnetAddressPrefix

Préfixe d’adresse du réseau virtuel utilisé avec ce groupe identique. Les paramètres de préfixe d’adresse de réseau virtuel par défaut (192.168.0.0/16) sont utilisés si aucune valeur n’est fournie.

Type:String
Position:Named
valeur par défaut:192.168.0.0/16
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Aliases:wi
Position:Named
valeur par défaut:False
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

-Zone

Liste des zones de disponibilité indiquant l’adresse IP allouée pour la ressource doit provenir.

Type:List<T>[String]
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:True
Accept wildcard characters:False

Entrées

String

PSVirtualMachineScaleSet

Paramètres : VirtualMachineScaleSet (ByValue)

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

Sorties

PSVirtualMachineScaleSet