Partilhar via


New-AzureRmVmss

Cria um VMSS.

Aviso

O módulo AzureRM do PowerShell foi oficialmente preterido a partir de 29 de fevereiro de 2024. Os usuários são aconselhados a migrar do AzureRM para o módulo Az PowerShell para garantir suporte e atualizações contínuos.

Embora o módulo AzureRM ainda possa funcionar, ele não é mais mantido ou suportado, colocando qualquer uso continuado a critério e risco do usuário. Consulte nossos recursos de migração para obter orientação sobre a transição para o módulo Az.

Sintaxe

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

O cmdlet New-AzureRmVmss cria um VMSS (Virtual Machine Scale set) no Azure. Use o conjunto de parâmetros simples (SimpleParameterSet) para criar rapidamente um VMSS predefinido e recursos associados. Use o conjunto de parâmetros padrão (DefaultParameter) para cenários mais avançados quando precisar configurar com precisão cada componente do VMSS e cada recurso associado antes da criação.

Exemplos

Exemplo 1: Criar um VMSS usando o **'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

O comando acima cria o seguinte com o nome $vmssName :

  • Um grupo de recursos
  • Uma rede virtual
  • Um balanceador de carga
  • Um IP público
  • o VMSS com 2 instâncias

A imagem padrão escolhida para as VMs no VMSS é 2016-Datacenter Windows Server e a SKU é Standard_DS1_v2

Exemplo 2: Criar um VMSS usando o **'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;

O exemplo complexo acima cria um VMSS, a seguir está uma explicação do que está acontecendo:

  • O primeiro comando cria um grupo de recursos com o nome e o local especificados.
  • O segundo comando usa o cmdlet New-AzureRmStorageAccount para criar uma conta de armazenamento.
  • Em seguida, o terceiro comando usa o cmdlet Get-AzureRmStorageAccount para obter a conta de armazenamento criada no segundo comando e armazena o resultado na variável $STOAccount.
  • O quinto comando usa o cmdlet New-AzureRmVirtualNetworkSubnetConfig para criar uma sub-rede e armazena o resultado na variável chamada $SubNet.
  • O sexto comando usa o cmdlet New-AzureRmVirtualNetwork para criar uma rede virtual e armazena o resultado na variável chamada $VNet.
  • O sétimo comando usa o Get-AzureRmVirtualNetwork para obter informações sobre a rede virtual criada no sexto comando e armazena as informações na variável chamada $VNet.
  • O oitavo e nono comandos usam New-AzureRmPublicIpAddress e Get- AzureRmPublicIpAddress para criar e obter informações desse endereço IP público.
  • Os comandos armazenam as informações na variável chamada $PubIP.
  • O décimo comando usa o cmdlet New- AzureRmLoadBalancerFrontendIpConfig para criar um balanceador de carga frontend e armazena o resultado na variável chamada $Frontend.
  • O décimo primeiro comando usa o New-AzureRmLoadBalancerBackendAddressPoolConfig para criar uma configuração de pool de endereços de back-end e armazena o resultado na variável chamada $BackendAddressPool.
  • O décimo segundo comando usa o New-AzureRmLoadBalancerProbeConfig para criar um teste e armazena as informações do teste na variável chamada $Probe.
  • O décimo terceiro comando usa o cmdlet New-AzureRmLoadBalancerInboundNatPoolConfig para criar uma configuração de pool NAT (conversão de endereços de rede) de entrada do balanceador de carga.
  • O décimo quarto comando usa o New-AzureRmLoadBalancerRuleConfig para criar uma configuração de regra de balanceador de carga e armazena o resultado na variável chamada $LBRule.
  • O décimo quinto comando usa o cmdlet New-AzureRmLoadBalancer para criar um balanceador de carga e armazena o resultado na variável chamada $ActualLb.
  • O décimo sexto comando usa o Get-AzureRmLoadBalancer para obter informações sobre o balanceador de carga que foi criado no décimo quinto comando e armazena as informações na variável chamada $ExpectedLb.
  • O décimo sétimo comando usa o cmdlet New-AzureRmVmssIPConfig para criar uma configuração de IP do VMSS e armazena as informações na variável chamada $IPCfg.
  • O décimo oitavo comando usa o cmdlet New-AzureRmVmssConfig para criar um objeto de configuração do VMSS e armazena o resultado na variável chamada $VMSS.
  • O décimo nono comando usa o cmdlet New-AzureRmVmss para criar o VMSS.

Parâmetros

-AllocationMethod

Método de alocação para o endereço IP público do conjunto de escala (estático ou dinâmico). Se nenhum valor for fornecido, a alocação será estática.

Tipo:String
Valores aceites:Static, Dynamic
Position:Named
Default value:Static
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-AsJob

Execute o cmdlet em segundo plano e retorne um Job para acompanhar o progresso.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-BackendPoolName

O nome do pool de endereços de back-end a ser usado no balanceador de carga para este Conjunto de Escala. Se nenhum valor for fornecido, um novo pool de back-end será criado, com o mesmo nome do Conjunto de Escalas.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-BackendPort

Números de porta de back-end usados pelo balanceador de carga Scale set para se comunicar com VMs no Scale set. Se nenhum valor for especificado, as portas 3389 e 5985 serão usadas para VMS do Windows e a porta 22 será usada para VMs Linux.

Tipo:Int32[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Confirm

Solicita a sua confirmação antes de executar o cmdlet.

Tipo:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Credential

As credenciais de administrador (nome de usuário e senha) para VMs neste Conjunto de Escala.

Tipo:PSCredential
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DataDiskSizeInGb

Especifica os tamanhos dos discos de dados em GB.

Tipo:Int32[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DefaultProfile

As credenciais, a conta, o locatário e a assinatura usados para comunicação com o azure.

Tipo:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DomainNameLabel

O rótulo de nome de domínio para o FQDN (nome de domínio totalmente qualificado) público para este conjunto de escala. Este é o primeiro componente do nome de domínio que é atribuído automaticamente ao Conjunto de Escalas. Os nomes de domínio atribuídos automaticamente usam o formulário (<DomainNameLabel>.<Location>.cloudapp.azure.com). Se nenhum valor for fornecido, o rótulo de nome de domínio padrão será a concatenação de <ScaleSetName> e <ResourceGroupName>.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-FrontendPoolName

O nome do pool de endereços de front-end a ser usado no balanceador de carga Scale set. Se nenhum valor for fornecido, um novo Pool de Endereços Frontend será criado, com o mesmo nome do conjunto de escala.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-ImageName

O nome da imagem para VMs neste Conjunto de Escala. Se nenhum valor for fornecido, a imagem "Windows Server 2016 DataCenter" será usada.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-InstanceCount

O número de imagens VM no Conjunto de Escala. Se nenhum valor for fornecido, 2 instâncias serão criadas.

Tipo:Int32
Position:Named
Default value:2
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-LoadBalancerName

O nome do balanceador de carga a ser usado com este Conjunto de Escala. Um novo balanceador de carga usando o mesmo nome do Conjunto de Escala será criado se nenhum valor for especificado.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Location

O local do Azure onde esse Conjunto de Escala será criado. Se nenhum valor for especificado, o local será inferido a partir do local de outros recursos referenciados nos parâmetros.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-NatBackendPort

Porta de back-end para conversão de endereços de rede de entrada.

Tipo:Int32[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-PublicIpAddressName

O nome do endereço IP público a ser usado com esse conjunto de escala. Um novo endereço IPAddress público com o mesmo nome do Conjunto de Escalas será criado se nenhum valor for fornecido.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-ResourceGroupName

Especifica o nome do grupo de recursos do VMSS. Se nenhum valor for especificado, um novo ResourceGroup será criado usando o mesmo nome do Conjunto de Escalas.

Tipo:String
Position:1
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-SecurityGroupName

O nome do grupo de segurança de rede a ser aplicado a este Conjunto de Escalas. Se nenhum valor for fornecido, um grupo de segurança de rede padrão com o mesmo nome do Conjunto de Escala será criado e aplicado ao Conjunto de Escalas.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-SinglePlacementGroup

Use isso para criar o conjunto Escala em um único grupo de posicionamento, o padrão é vários grupos

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-SubnetAddressPrefix

O prefixo de endereço da Sub-rede que este ScaleSet usará. As configurações padrão de sub-rede (192.168.1.0/24) serão aplicadas se nenhum valor for fornecido.

Tipo:String
Position:Named
Default value:192.168.1.0/24
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-SubnetName

O nome da sub-rede a ser usada com este Conjunto de Escalas. Uma nova Sub-rede será criada com o mesmo nome do Conjunto de Escala se nenhum valor for fornecido.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-SystemAssignedIdentity

Se o parâmetro estiver presente, a(s) VM(s) no conjunto de escala é(são) atribuída(s) a uma identidade de sistema gerenciado que é gerada automaticamente.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-UpgradePolicyMode

O modo de política de atualização para instâncias de VM neste Conjunto de Escala. A política de atualização pode especificar atualizações automáticas, manuais ou contínuas.

Tipo:UpgradeMode
Valores aceites:Automatic, Manual, Rolling
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-UserAssignedIdentity

O nome de uma identidade de serviço gerenciado que deve ser atribuída à(s) VM(s) no conjunto de escala.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-VirtualMachineScaleSet

Especifica o objeto VirtualMachineScaleSet que contém as propriedades do VMSS criado por esse cmdlet.

Tipo:PSVirtualMachineScaleSet
Position:3
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-VirtualNetworkName

O nome da Rede Virtual a ser usada com esse conjunto de escalas. Se nenhum valor for fornecido, uma nova rede virtual com o mesmo nome do Conjunto de Escala será criada.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-VMScaleSetName

Especifica o nome do VMSS que esse cmdlet cria.

Tipo:String
Aliases:Name
Position:2
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-VmSize

O tamanho das instâncias de VM neste conjunto de escala. Um tamanho padrão (Standard_DS1_v2) será usado se nenhum Tamanho for especificado.

Tipo:String
Position:Named
Default value:Standard_DS1_v2
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-VnetAddressPrefix

O prefixo de endereço para a rede virtual usada com este Conjunto de Escala. As configurações padrão de prefixo de endereço de rede virtual (192.168.0.0/16) serão usadas se nenhum valor for fornecido.

Tipo:String
Position:Named
Default value:192.168.0.0/16
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-WhatIf

Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Zone

Uma lista de zonas de disponibilidade denotando o IP alocado para o recurso precisa vir.

Tipo:List<T>[String]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

Entradas

String

PSVirtualMachineScaleSet

Parâmetros: VirtualMachineScaleSet (ByValue)

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

Saídas

PSVirtualMachineScaleSet