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
Parâmetros: VirtualMachineScaleSet (ByValue)
List<T>[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]