Compartir a través de


New-AzureRmVmss

Crea un VMSS.

Advertencia

El módulo de PowerShell de AzureRM ha quedado en desuso oficialmente a partir del 29 de febrero de 2024. Se recomienda a los usuarios migrar de AzureRM al módulo Az PowerShell para seguir recibiendo soporte técnico y actualizaciones.

Aunque el módulo AzureRM puede seguir funcionando, ya no se mantiene ni se admite, colocando cualquier uso continuado a discreción y riesgo del usuario. Consulte nuestros recursos de migración para ver una guía sobre la transición al módulo Az.

Sintaxis

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

El cmdlet New-AzureRmVmss crea un conjunto de escalado de máquinas virtuales (VMSS) en Azure. Use el conjunto de parámetros simple (SimpleParameterSet) para crear rápidamente un VMSS preconfijo y los recursos asociados. Use el conjunto de parámetros predeterminado (DefaultParameter) para escenarios más avanzados cuando necesite configurar con precisión cada componente de VMSS y cada recurso asociado antes de la creación.

Ejemplos

Ejemplo 1: Creación de un VMSS mediante **'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

El comando anterior crea lo siguiente con el nombre $vmssName :

  • Un grupo de recursos
  • Una red virtual
  • Un equilibrador de carga
  • Una dirección IP pública
  • VMSS con 2 instancias

La imagen predeterminada elegida para las máquinas virtuales de VMSS es 2016-Datacenter Windows Server y la SKU es Standard_DS1_v2

Ejemplo 2: Creación de un VMSS mediante **'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;

En el ejemplo complejo anterior se crea un VMSS, a continuación se muestra una explicación de lo que sucede:

  • El primer comando crea un grupo de recursos con el nombre y la ubicación especificados.
  • El segundo comando usa el cmdlet New-AzureRmStorageAccount para crear una cuenta de almacenamiento.
  • A continuación, el tercer comando usa el cmdlet Get-AzureRmStorageAccount para obtener la cuenta de almacenamiento creada en el segundo comando y almacena el resultado en la variable $STOAccount.
  • El quinto comando usa el cmdlet New-AzureRmVirtualNetworkSubnetConfig para crear una subred y almacena el resultado en la variable denominada $SubNet.
  • El sexto comando usa el cmdlet New-AzureRmVirtualNetwork para crear una red virtual y almacena el resultado en la variable denominada $VNet.
  • El séptimo comando usa Get-AzureRmVirtualNetwork para obtener información sobre la red virtual creada en el sexto comando y almacena la información en la variable denominada $VNet.
  • El octavo y noveno comando usa New-AzureRmPublicIpAddress y Get- AzureRmPublicIpAddress para crear y obtener información de esa dirección IP pública.
  • Los comandos almacenan la información en la variable denominada $PubIP.
  • El décimo comando usa el cmdlet New- AzureRmLoadBalancerFrontendIpConfig para crear un equilibrador de carga de front-end y almacena el resultado en la variable denominada $Frontend.
  • El undécimo comando usa New-AzureRmLoadBalancerBackendAddressPoolConfig para crear una configuración del grupo de direcciones de back-end y almacena el resultado en la variable denominada $BackendAddressPool.
  • El duodécimo comando usa New-AzureRmLoadBalancerProbeConfig para crear un sondeo y almacena la información del sondeo en la variable denominada $Probe.
  • El decimotercer comando usa el cmdlet New-AzureRmLoadBalancerInboundNatPoolConfig para crear una configuración de grupo de traducción de direcciones de red entrantes (NAT).
  • El decimocuarto comando usa New-AzureRmLoadBalancerRuleConfig para crear una configuración de regla del equilibrador de carga y almacena el resultado en la variable denominada $LBRule.
  • El decimoquinto comando usa el cmdlet New-AzureRmLoadBalancer para crear un equilibrador de carga y almacena el resultado en la variable denominada $ActualLb.
  • El decimosexto comando usa Get-AzureRmLoadBalancer para obtener información sobre el equilibrador de carga que se creó en el decimoquinto comando y almacena la información en la variable denominada $ExpectedLb.
  • El diecisiete comando usa el cmdlet New-AzureRmVmssIPConfig para crear una configuración ip de VMSS y almacena la información en la variable denominada $IPCfg.
  • El decimoctavo comando usa el cmdlet New-AzureRmVmssConfig para crear un objeto de configuración de VMSS y almacena el resultado en la variable denominada $VMSS.
  • El decimonoveno comando usa el cmdlet New-AzureRmVmss para crear vmSS.

Parámetros

-AllocationMethod

Método de asignación para la dirección IP pública del conjunto de escalado (estático o dinámico). Si no se proporciona ningún valor, la asignación será estática.

Tipo:String
Valores aceptados:Static, Dynamic
Posición:Named
Valor predeterminado:Static
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-AsJob

Ejecute el cmdlet en segundo plano y devuelva un trabajo para realizar un seguimiento del progreso.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-BackendPoolName

Nombre del grupo de direcciones de back-end que se va a usar en el equilibrador de carga de este conjunto de escalado. Si no se proporciona ningún valor, se creará un nuevo grupo de back-end con el mismo nombre que el conjunto de escalado.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-BackendPort

Números de puerto de back-end usados por el equilibrador de carga del conjunto de escalado para comunicarse con las máquinas virtuales del conjunto de escalado. Si no se especifica ningún valor, los puertos 3389 y 5985 se usarán para vmS Windows y se usará el puerto 22 para las máquinas virtuales Linux.

Tipo:Int32[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Tipo:SwitchParameter
Alias:cf
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Credential

Las credenciales de administrador (nombre de usuario y contraseña) de las máquinas virtuales de este conjunto de escalado.

Tipo:PSCredential
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-DataDiskSizeInGb

Especifica los tamaños de los discos de datos en GB.

Tipo:Int32[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-DefaultProfile

Las credenciales, la cuenta, el inquilino y la suscripción que se usan para la comunicación con Azure.

Tipo:IAzureContextContainer
Alias:AzureRmContext, AzureCredential
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-DomainNameLabel

Etiqueta de nombre de dominio para el nombre de dominio completo (FQDN) público para este conjunto de escalado. Este es el primer componente del nombre de dominio que se asigna automáticamente al conjunto de escalado. Los nombres de dominio asignados automáticamente usan el formulario (<DomainNameLabel>.<Location>.cloudapp.azure.com). Si no se proporciona ningún valor, la etiqueta de nombre de dominio predeterminada será la concatenación de <ScaleSetName> y <ResourceGroupName>.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-FrontendPoolName

Nombre del grupo de direcciones de front-end que se va a usar en el equilibrador de carga del conjunto de escalado. Si no se proporciona ningún valor, se creará un nuevo grupo de direcciones de front-end, con el mismo nombre que el conjunto de escalado.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-ImageName

Nombre de la imagen de las máquinas virtuales de este conjunto de escalado. Si no se proporciona ningún valor, se usará la imagen "Windows Server 2016 DataCenter".

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-InstanceCount

Número de imágenes de máquina virtual en el conjunto de escalado. Si no se proporciona ningún valor, se crearán 2 instancias.

Tipo:Int32
Posición:Named
Valor predeterminado:2
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-LoadBalancerName

Nombre del equilibrador de carga que se va a usar con este conjunto de escalado. Se creará un nuevo equilibrador de carga con el mismo nombre que el conjunto de escalado si no se especifica ningún valor.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Location

Ubicación de Azure donde se creará este conjunto de escalado. Si no se especifica ningún valor, la ubicación se deducirá de la ubicación de otros recursos a los que se hace referencia en los parámetros.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-NatBackendPort

Puerto back-end para la traducción de direcciones de red entrantes.

Tipo:Int32[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-PublicIpAddressName

Nombre de la dirección IP pública que se va a usar con este conjunto de escalado. Se creará una nueva dirección IP pública con el mismo nombre que el conjunto de escalado si no se proporciona ningún valor.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-ResourceGroupName

Especifica el nombre del grupo de recursos de VMSS. Si no se especifica ningún valor, se creará un nuevo ResourceGroup con el mismo nombre que el conjunto de escalado.

Tipo:String
Posición:1
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-SecurityGroupName

Nombre del grupo de seguridad de red que se va a aplicar a este conjunto de escalado. Si no se proporciona ningún valor, se creará un grupo de seguridad de red predeterminado con el mismo nombre que el conjunto de escalado y se aplicará al conjunto de escalado.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-SinglePlacementGroup

Úselo para crear el conjunto de escalado en un único grupo de selección de ubicación, el valor predeterminado es varios grupos.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-SubnetAddressPrefix

Prefijo de dirección de la subred que usará este Conjunto de escalado. La configuración predeterminada de subred (192.168.1.0/24) se aplicará si no se proporciona ningún valor.

Tipo:String
Posición:Named
Valor predeterminado:192.168.1.0/24
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-SubnetName

Nombre de la subred que se va a usar con este conjunto de escalado. Se creará una nueva subred con el mismo nombre que el conjunto de escalado si no se proporciona ningún valor.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-SystemAssignedIdentity

Si el parámetro está presente, a las máquinas virtuales del conjunto de escalado se les asigna una identidad del sistema administrada que se genera automáticamente.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-UpgradePolicyMode

Modo de directiva de actualización para las instancias de máquina virtual en este conjunto de escalado. La directiva de actualización podría especificar actualizaciones automáticas, manuales o graduales.

Tipo:UpgradeMode
Valores aceptados:Automatic, Manual, Rolling
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-UserAssignedIdentity

Nombre de una identidad de servicio administrada que se debe asignar a las máquinas virtuales del conjunto de escalado.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-VirtualMachineScaleSet

Especifica el objeto VirtualMachineScaleSet que contiene las propiedades del VMSS que crea este cmdlet.

Tipo:PSVirtualMachineScaleSet
Posición:3
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-VirtualNetworkName

Nombre de la red virtual que se va a usar con este conjunto de escalado. Si no se proporciona ningún valor, se creará una nueva red virtual con el mismo nombre que el conjunto de escalado.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-VMScaleSetName

Especifica el nombre del VMSS que crea este cmdlet.

Tipo:String
Alias:Name
Posición:2
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-VmSize

Tamaño de las instancias de máquina virtual de este conjunto de escalado. Se usará un tamaño predeterminado (Standard_DS1_v2) si no se especifica Size.

Tipo:String
Posición:Named
Valor predeterminado:Standard_DS1_v2
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-VnetAddressPrefix

Prefijo de dirección de la red virtual que se usa con este conjunto de escalado. Se usará la configuración predeterminada del prefijo de dirección de red virtual (192.168.0.0/16) si no se proporciona ningún valor.

Tipo:String
Posición:Named
Valor predeterminado:192.168.0.0/16
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

Tipo:SwitchParameter
Alias:wi
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Zone

Una lista de zonas de disponibilidad de las que se indica la dirección IP asignada para el recurso debe proceder.

Tipo:List<T>[String]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

Entradas

String

PSVirtualMachineScaleSet

Parámetros: VirtualMachineScaleSet (ByValue)

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

Salidas

PSVirtualMachineScaleSet