New-AzureRmVmss
Crée un vmSS.
Avertissement
Le module AzureRM PowerShell a été officiellement déprécié 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.
Il est possible que le module AzureRM fonctionne encore, mais il ne fait plus l’objet de maintenance ni de support. L’utilisateur peut continuer à s’en servir s’il le souhaite, à ses propres risques. Consultez nos ressources sur la migration pour obtenir des conseils sur la transition vers le module Az.
Syntaxe
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-AzureRmStorageAccount pour créer un compte de stockage.
- La troisième commande utilise ensuite l’applet de commande Get-AzureRmStorageAccount 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Confirm
Vous demande une confirmation avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-DataDiskSizeInGb
Spécifie les tailles des disques de données en Go.
Type: | Int32[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-DefaultProfile
Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure.
Type: | IAzureContextContainer |
Alias: | AzureRmContext, AzureCredential |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-NatBackendPort
Port principal pour la traduction d’adresses réseau entrantes.
Type: | Int32[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-VMScaleSetName
Spécifie le nom du service VMSS créé par cette applet de commande.
Type: | String |
Alias: | Name |
Position: | 2 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Alias: | wi |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
Entrées
Paramètres : VirtualMachineScaleSet (ByValue)
List<T>[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]