O cmdlet New-AzVmss cria um VMSS (Conjunto de Dimensionamento de Máquinas Virtuais) 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 precisamente cada componente do VMSS e cada recurso associado antes da criação.
Para o conjunto de parâmetros padrão, primeiro use o cmdlet New-AzVmssConfig para criar um objeto de conjunto de dimensionamento de máquinas virtuais.
Em seguida, use os seguintes cmdlets para definir propriedades diferentes do objeto do conjunto de dimensionamento de máquinas virtuais:
Get-AzComputeResourceSku também pode ser usado para descobrir os tamanhos de máquina virtual disponíveis para sua assinatura e região.
Veja outros cmdlets para o conjunto de dimensionamento de máquinas virtuais aqui.
A criação do VMSS será padrão para OrchestrationMode:Flexible. O conjunto de parâmetros padrão definirá propriedades em VirtualMachineScaleSetVMProfile por padrão. Para criar um VMSS com uma propriedade VirtualMachineScaleSetVMProfile vazia, use o conjunto de parâmetros simples criando primeiro um objeto VirtualMachineScaleSet com uma propriedade VirtualMachineScaleSetVMProfile vazia usando New-AzVmssConfig.
Consulte [Início Rápido: Criar um conjunto de dimensionamento de máquinas virtuais com o Azure PowerShell](https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/quick-create-powershell) para tutorial.
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 -String "****" -AsPlainText -Force
$vmCred = New-Object System.Management.Automation.PSCredential('USERNAME', $vmPassword)
$securityTypeStnd = "Standard"
#Create a VMSS using the default settings
New-AzVmss -Credential $vmCred -VMScaleSetName $vmssName -SecurityType $securityTypeStnd
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 o SKU é Standard_DS1_v2
Exemplo 2: criar um VMSS usando o DefaultParameterSet
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-AzStorageAccount para criar uma conta de armazenamento.
Em seguida, o terceiro comando usa o cmdlet Get-AzStorageAccount 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-AzVirtualNetworkSubnetConfig para criar uma sub-rede e armazena o resultado na variável chamada $SubNet.
O sexto comando usa o cmdlet New-AzVirtualNetwork para criar uma rede virtual e armazena o resultado na variável chamada $VNet.
O sétimo comando usa o Get-AzVirtualNetwork 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 comando usa New-AzPublicIpAddress 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 de front-end e armazena o resultado na variável chamada $Frontend.
O décimo primeiro comando usa o New-AzLoadBalancerBackendAddressPoolConfig 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-AzLoadBalancerProbeConfig para criar uma investigação e armazena as informações de investigação na variável chamada $Probe.
O décimo terceiro comando usa o cmdlet New-AzLoadBalancerInboundNatPoolConfig para criar uma configuração de pool de NAT (conversão de endereços de rede) de entrada do balanceador de carga.
O décimo quarto comando usa o New-AzLoadBalancerRuleConfig para criar uma configuração de regra do balanceador de carga e armazena o resultado na variável chamada $LBRule.
O décimo quinto comando usa o cmdlet New-AzLoadBalancer para criar um balanceador de carga e armazena o resultado na variável chamada $ActualLb.
O décimo sexto comando usa o Get-AzLoadBalancer 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-AzVmssIpConfig 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-AzVmssConfig 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-AzVmss para criar o VMSS.
Exemplo 3: criar um VMSS com um valor UserData
$ResourceGroupName = 'RESOURCE GROUP NAME';
$vmssName = 'VMSSNAME';
$domainNameLabel = "dnl" + $ResourceGroupName;
# 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 -String "****" -AsPlainText -Force;
$vmCred = New-Object System.Management.Automation.PSCredential('USERNAME', $vmPassword);
$text = "UserData value to encode";
$bytes = [System.Text.Encoding]::Unicode.GetBytes($text);
$userData = [Convert]::ToBase64String($bytes);
$securityTypeStnd = "Standard";
#Create a VMSS
New-AzVmss -ResourceGroupName $ResourceGroupName -Name $vmssName -Credential $vmCred -DomainNameLabel $domainNameLabel -Userdata $userData -SecurityType $securityTypeStnd;
$vmss = Get-AzVmss -ResourceGroupName $ResourceGroupName -VMScaleSetName $vmssName -InstanceView:$false -Userdata;
Criar um VMSS com um valor UserData
Exemplo 4: Criar uma Vmss com o tipo de segurança TrustedLaunch
Este exemplo cria um novo VMSS com o novo tipo de segurança 'TrustedLaunch' e os valores uefisettings necessários, VTpmEnabled e SecureBootEnabled são verdadeiros. Verifique a página de recursos de Inicialização Confiável para obter mais informações.
Exemplo 5: Criar uma VMss no Modo de Orquestração: Flexível por padrão
O conjunto de dimensionamento de máquinas virtuais acima tem o Início Confiável habilitado por padrão. Verifique a página de recursos de Inicialização Confiável para obter mais informações.
Parâmetros
-AddProxyAgentExtension
Especifica se a extensão ProxyAgent deve ser instalada implicitamente. No momento, essa opção é aplicável somente para o sistema operacional Linux.
Método de alocação para o endereço IP público do conjunto de dimensionamento (estático ou dinâmico). Se nenhum valor for fornecido, a alocação será estática.
O nome do pool de endereços de back-end a ser usado no balanceador de carga para este Conjunto de Dimensionamento. Se nenhum valor for fornecido, um novo pool de back-end será criado, com o mesmo nome do Conjunto de Dimensionamento.
Números de porta de back-end usados pelo balanceador de carga do Conjunto de Dimensionamento para se comunicar com VMs no Conjunto de Dimensionamento. 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.
As credenciais de administrador (nome de usuário e senha) para VMs neste Conjunto de Dimensionamento.
Nome de usuário Restrição:
Windows: Não é possível conter caracteres especiais /""[]:|<>+=;,?*@& ou terminar em "."
Linux: o nome de usuário deve conter apenas letras, números, hifens e sublinhados e pode não começar com um hífen ou número. valores não permitidos: "administrador", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Comprimento mínimo: 1 caractere Comprimento máximo: 20 caracteres para Windows, 64 caracteres para Linux Senha
Deve ter 3 dos seguintes: 1 caractere de maiúsculas e minúsculas, 1 caractere maiúsculo, 1 número e 1 caractere especial.
O valor deve ter entre 12 e 123 caracteres.
O rótulo de nome de domínio do FQDN (nome de domínio Fully-Qualified público) para este Conjunto de Dimensionamento. Esse é o primeiro componente do nome de domínio que é atribuído automaticamente ao Conjunto de Dimensionamento. 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>.
Se as atualizações do sistema operacional devem ser aplicadas automaticamente a instâncias de conjunto de dimensionamento de forma sem interrupção quando uma versão mais recente da imagem estiver disponível.
Esse parâmetro habilitará a criptografia para todos os discos, incluindo o disco Resource/Temp no próprio host.
Padrão: a criptografia no host será desabilitada, a menos que essa propriedade seja definida como verdadeira para o recurso.
A política de remoção do conjunto de dimensionamento de máquinas virtuais de baixa prioridade. Somente os valores com suporte são 'Desalocar' e 'Excluir'.
O nome do pool de endereços de front-end a ser usado no balanceador de carga do Conjunto de Dimensionamento. Se nenhum valor for fornecido, um novo Pool de Endereços front-end será criado, com o mesmo nome do conjunto de dimensionamento.
usado para tornar uma solicitação condicional para o PUT e outros métodos não seguros. O servidor só retornará os recursos solicitados se o recurso corresponder a um dos valores ETag listados. Omita esse valor para sempre substituir o recurso atual. Especifique o valor de ETag visto pela última vez para impedir a substituição acidental de alterações simultâneas.
Usado para tornar uma solicitação condicional para os métodos GET e HEAD. O servidor só retornará os recursos solicitados se nenhum dos valores ETag listados corresponder à entidade atual. Usado para tornar uma solicitação condicional para os métodos GET e HEAD. O servidor só retornará os recursos solicitados se nenhum dos valores ETag listados corresponder à entidade atual. Defina como '*' para permitir que um novo conjunto de registros seja criado, mas para impedir a atualização de um conjunto de registros existente. Outros valores resultarão em erro do servidor, pois não têm suporte.
O alias da imagem para VMs neste Conjunto de Dimensionamento. Se nenhum valor for fornecido, a imagem "Windows Server 2016 DataCenter" será usada. Os aliases disponíveis são: Win2022AzureEdition, Win2022AzureEditionCore, Win2019Datacenter, Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, UbuntuLTS, Ubuntu2204, CentOS85Gen2, Debian11, OpenSuseLeap154Gen2, RHELRaw8LVMGen2, SuseSles15SP3, FlatcarLinuxFreeGen2.
Especifica a ID exclusiva da imagem da galeria compartilhada para implantação de vmss. Isso pode ser buscado na chamada GET da imagem da galeria compartilhada.
O nome do balanceador de carga a ser usado com este Conjunto de Dimensionamento. Um novo balanceador de carga usando o mesmo nome que o Conjunto de Dimensionamento será criado se nenhum valor for especificado.
O local do Azure em que esse Conjunto de Dimensionamento será criado. Se nenhum valor for especificado, o local será inferido do local de outros recursos referenciados nos parâmetros.
Especifica o modo de orquestração para o conjunto de dimensionamento de máquinas virtuais. Valores possíveis: Uniforme, Flexível
A criação de um VMSS em OrchestrationMode:Flexible usando o conjunto de parâmetros padrão resultará na população do VirtualMachineScaleSetVMProfile por padrão.
Se você quiser criar um VMSS com um VirtualMachineScaleSetVMProfile vazio, primeiro crie um objeto VirtualMachineScaleSet com uma propriedade VMProfile vazia usando New-AzVmssConfig e crie o VMSS usando um conjunto de parâmetros simples.
A prioridade da máquina virtual no conjunto de dimensionamento. Somente os valores com suporte são 'Regular', 'Spot' e 'Low'.
'Regular' é para máquina virtual regular.
'Spot' é para máquina virtual spot.
'Low' também é para máquina virtual spot, mas é substituído por 'Spot'. Use 'Spot' em vez de 'Low'.
O nome do endereço IP público a ser usado com esse conjunto de dimensionamento. Um novo IPAddress público com o mesmo nome do Conjunto de Dimensionamento será criado se nenhum valor for fornecido.
Especifica o nome do grupo de recursos do VMSS. Se nenhum valor for especificado, um novo ResourceGroup será criado usando o mesmo nome que o Conjunto de Dimensionamento.
As regras a serem seguidas ao dimensionar um conjunto de dimensionamento de máquinas virtuais. Os valores possíveis são: 'Default', 'OldestVM' e 'NewestVM'. 'Padrão' quando um conjunto de dimensionamento de máquinas virtuais é dimensionado, o conjunto de dimensionamento será primeiro equilibrado entre zonas se for um conjunto de dimensionamento zonal. Em seguida, ele será equilibrado entre domínios de falha na medida do possível. Em cada Domínio de Falha, as máquinas virtuais escolhidas para remoção serão as mais recentes que não estão protegidas contra o scale-in. 'OldestVM' quando um conjunto de dimensionamento de máquinas virtuais está sendo dimensionado, as máquinas virtuais mais antigas que não estão protegidas contra o scale-in serão escolhidas para remoção. Para conjuntos de dimensionamento de máquinas virtuais zonais, o conjunto de dimensionamento será primeiro equilibrado entre zonas. Em cada zona, as máquinas virtuais mais antigas que não estão protegidas serão escolhidas para remoção. 'NewestVM' quando um conjunto de dimensionamento de máquinas virtuais está sendo dimensionado, as máquinas virtuais mais recentes que não estão protegidas contra o scale-in serão escolhidas para remoção. Para conjuntos de dimensionamento de máquinas virtuais zonais, o conjunto de dimensionamento será primeiro equilibrado entre zonas. Em cada zona, as máquinas virtuais mais recentes que não estão protegidas serão escolhidas para remoção.
O nome do grupo de segurança de rede a ser aplicado a este Conjunto de Dimensionamento. Se nenhum valor for fornecido, um grupo de segurança de rede padrão com o mesmo nome do Conjunto de Dimensionamento será criado e aplicado ao Conjunto de Dimensionamento.
A ID de referência de postura de segurança na forma de /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|mais recente
Especifica o SecurityType da máquina virtual. Ele deve ser definido como qualquer valor especificado para habilitar UefiSettings. UefiSettings não serão habilitados, a menos que essa propriedade esteja definida.
Especifica a ID exclusiva da imagem da galeria compartilhada para implantação de VM. Isso pode ser buscado na chamada GET da imagem da galeria compartilhada.
O prefixo de endereço da sub-rede que este ScaleSet usará. As configurações de sub-rede padrão (192.168.1.0/24) serão aplicadas se nenhum valor for fornecido.
O nome da sub-rede a ser usada com este Conjunto de Dimensionamento. Uma nova sub-rede será criada com o mesmo nome do Conjunto de Dimensionamento se nenhum valor for fornecido.
O modo de política de atualização para instâncias de VM neste Conjunto de Dimensionamento. A política de atualização pode especificar atualizações automáticas, manuais ou sem interrupção.
O nome da Rede Virtual a ser usada com esse conjunto de dimensionamento. Se nenhum valor for fornecido, uma nova rede virtual com o mesmo nome do Conjunto de Dimensionamento será criada.
O tamanho das instâncias de VM neste conjunto de dimensionamento.
Get-AzComputeResourceSku pode ser usado para descobrir os tamanhos disponíveis para sua assinatura e região. Um tamanho padrão (Standard_DS1_v2) será usado se nenhum Tamanho for especificado.
O prefixo de endereço para a rede virtual usada com este Conjunto de Dimensionamento. As configurações de prefixo de endereço de rede virtual padrão (192.168.0.0/16) serão usadas se nenhum valor for fornecido.
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.