Поделиться через


New-AzureRmVmss

Создает VMSS.

Предупреждение

Модуль AzureRM PowerShell официально устарел с 29 февраля 2024 г. Пользователям рекомендуется выполнить миграцию из AzureRM в модуль Az PowerShell, чтобы обеспечить постоянную поддержку и обновления.

Хотя модуль AzureRM по-прежнему может функционировать, он больше не поддерживается или не поддерживается, размещая любое постоянное использование на усмотрение и риск пользователя. Ознакомьтесь с нашими ресурсами миграции, чтобы получить рекомендации по переходу в модуль Az.

Синтаксис

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>]

Описание

Командлет New-AzureRmVmss создает масштабируемый набор виртуальных машин (VMSS) в Azure. Используйте простой набор параметров (SimpleParameterSet) для быстрого создания предварительно заданных vmSS и связанных ресурсов. Используйте набор параметров по умолчанию (DefaultParameter) для более сложных сценариев, если необходимо точно настроить каждый компонент VMSS и каждый связанный ресурс перед созданием.

Примеры

Пример 1. Создание vmSS с помощью **'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

Приведенная выше команда создает следующую команду с именем $vmssName :

  • Группа ресурсов
  • виртуальная сеть;
  • Подсистема балансировки нагрузки
  • общедоступный IP-адрес;
  • VMSS с 2 экземплярами

Образ по умолчанию, выбранный для виртуальных машин в VMSS, — это 2016-Datacenter Windows Server SKU. Standard_DS1_v2

Пример 2. Создание vmSS с помощью **'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;

Сложный пример, приведенный выше, создает vmSS, ниже приведено объяснение того, что происходит:

  • Первая команда создает группу ресурсов с указанным именем и расположением.
  • Вторая команда использует командлет New-AzureRm служба хранилища Account для создания учетной записи хранения.
  • Третья команда затем использует командлет Get-AzureRm служба хранилища Account, чтобы получить учетную запись хранения, созданную во второй команде, и сохраняет результат в переменной $STOAccount.
  • Пятая команда использует командлет New-AzureRmVirtualNetworkSubnetConfig для создания подсети и хранения результата в переменной с именем $SubNet.
  • Шестая команда использует командлет New-AzureRmVirtualNetwork для создания виртуальной сети и сохраняет результат в переменной с именем $VNet.
  • Седьмая команда использует Get-AzureRmVirtualNetwork для получения сведений о виртуальной сети, созданной в шестой команде, и сохраняет сведения в переменной с именем $VNet.
  • Восьмая и девятая команда используют New-AzureRmPublicIpAddress и Get-AzureRmPublicIpAddress для создания и получения сведений из этого общедоступного IP-адреса.
  • Команды хранят сведения в переменной с именем $PubIP.
  • Десятая команда использует командлет New-AzureRmLoadBalancerFrontendIpConfig для создания интерфейсного подсистемы балансировки нагрузки и сохраняет результат в переменной с именем $Frontend.
  • Одиннадцатая команда использует New-AzureRmLoadBalancerBackendAddressPoolConfig для создания конфигурации внутреннего пула адресов и сохраняет результат в переменной с именем $BackendAddressPool.
  • Двенадцатая команда использует New-AzureRmLoadBalancerProbeConfig для создания пробы и хранения сведений о пробе в переменной с именем $Probe.
  • Тринадцатая команда использует командлет New-AzureRmLoadBalancerInboundNatPoolConfig для создания конфигурации пула преобразования сетевых адресов (NAT) подсистемы балансировки нагрузки.
  • Четырнадцатая команда использует New-AzureRmLoadBalancerRuleConfig для создания конфигурации правила подсистемы балансировки нагрузки и сохраняет результат в переменной с именем $LBRule.
  • Пятнадцатая команда использует командлет New-AzureRmLoadBalancer для создания подсистемы балансировки нагрузки и хранения результата в переменной с именем $ActualLb.
  • Шестнадцатая команда использует Get-AzureRmLoadBalancer для получения сведений о подсистеме балансировки нагрузки, созданной в пятнадцатой команде, и сохраняет сведения в переменной с именем $ExpectedLb.
  • Семнадцатая команда использует командлет New-AzureRmVmssIPConfig для создания конфигурации IP-адресов VMSS и хранения сведений в переменной с именем $IPCfg.
  • Восемнадцатая команда использует командлет New-AzureRmVmssConfig для создания объекта конфигурации VMSS и сохраняет результат в переменной с именем $VMSS.
  • Девятнадцатая команда использует командлет New-AzureRmVmss для создания VMSS.

Параметры

-AllocationMethod

Метод выделения для общедоступного IP-адреса масштабируемого набора (статический или динамический). Если значение не указано, выделение будет статическим.

Тип:String
Допустимые значения:Static, Dynamic
Position:Named
Default value:Static
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AsJob

Запустите командлет в фоновом режиме и верните задание для отслеживания хода выполнения.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-BackendPoolName

Имя пула внутренних адресов для использования в подсистеме балансировки нагрузки для этого масштабируемого набора. Если значение не указано, создается новый внутренний пул с таким же именем, как и масштабируемый набор.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-BackendPort

Внутренние номера портов, используемые подсистемой балансировки нагрузки масштабируемого набора для взаимодействия с виртуальными машинами в масштабируемом наборе. Если значения не указаны, порты 3389 и 5985 будут использоваться для виртуальных машин Windows, а порт 22 будет использоваться для виртуальных машин Linux.

Тип:Int32[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Confirm

Запрос подтверждения перед выполнением командлета.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Credential

Учетные данные администратора (имя пользователя и пароль) для виртуальных машин в этом масштабируемом наборе.

Тип:PSCredential
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DataDiskSizeInGb

Указывает размеры дисков данных в ГБ.

Тип:Int32[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DefaultProfile

Учетные данные, учетная запись, клиент и подписка, используемые для обмена данными с Azure.

Тип:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DomainNameLabel

Метка доменного имени для общедоступного полного доменного имени (FQDN) для этого масштабируемого набора. Это первый компонент доменного имени, который автоматически назначается масштабируемой группе. Автоматически назначенные доменные имена используют форму (<DomainNameLabel>.<Location>.cloudapp.azure.com). Если значение не задано, метка доменного имени по умолчанию будет объединением <ScaleSetName> и <ResourceGroupName>.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-FrontendPoolName

Имя пула внешних адресов для использования в подсистеме балансировки нагрузки масштабируемого набора. Если значение не задано, создается новый пул адресов внешнего интерфейса с таким же именем, что и масштабируемый набор.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ImageName

Имя образа для виртуальных машин в этом масштабируемом наборе. Если значение не указано, будет использоваться образ Windows Server 2016 DataCenter.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InstanceCount

Количество образов виртуальных машин в масштабируемом наборе. Если значение не указано, будет создано 2 экземпляра.

Тип:Int32
Position:Named
Default value:2
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-LoadBalancerName

Имя подсистемы балансировки нагрузки, используемой с этим масштабируемым набором. Новый балансировщик нагрузки, использующий то же имя, что и масштабируемый набор, будет создан, если значение не указано.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Location

Расположение Azure, в котором будет создан этот масштабируемый набор. Если значение не указано, расположение будет выводиться из расположения других ресурсов, на которые ссылаются параметры.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-NatBackendPort

Внутренний порт для перевода входящих сетевых адресов.

Тип:Int32[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-PublicIpAddressName

Имя общедоступного IP-адреса, используемого с этим масштабируемым набором. Новый общедоступный IP-адресAddress с тем же именем, что и масштабируемый набор, будет создан, если значение не указано.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ResourceGroupName

Указывает имя группы ресурсов виртуальной машины. Если значение не указано, новая группа ресурсов будет создана с тем же именем, что и масштабируемый набор.

Тип:String
Position:1
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-SecurityGroupName

Имя группы безопасности сети, применяемой к этому масштабируемой группе. Если значение не указано, группа безопасности сети по умолчанию с тем же именем, что и масштабируемый набор, будет создана и применена к масштабируемой группе.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SinglePlacementGroup

Это позволяет создать масштабируемый набор в одной группе размещения, по умолчанию используется несколько групп.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SubnetAddressPrefix

Префикс адреса подсети, используемой этим масштабируемым набором. Параметры подсети по умолчанию (192.168.1.0/24) будут применяться, если значение не указано.

Тип:String
Position:Named
Default value:192.168.1.0/24
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SubnetName

Имя подсети, используемой с этим масштабируемым набором. Новая подсеть будет создана с тем же именем, что и масштабируемый набор, если значение не указано.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SystemAssignedIdentity

Если параметр присутствует, то виртуальные машины в масштабируемом наборе присваиваются управляемому системному удостоверению, созданному автоматически.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UpgradePolicyMode

Режим политики обновления для экземпляров виртуальных машин в этом масштабируемом наборе. Политика обновления может указывать автоматическое, ручное или последовательное обновление.

Тип:UpgradeMode
Допустимые значения:Automatic, Manual, Rolling
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UserAssignedIdentity

Имя управляемого удостоверения службы, которое должно быть назначено виртуальным машинам в масштабируемом наборе.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-VirtualMachineScaleSet

Указывает объект VirtualMachineScaleSet , содержащий свойства vmSS, создаваемые этим командлетом.

Тип:PSVirtualMachineScaleSet
Position:3
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-VirtualNetworkName

Имя виртуальная сеть, используемое с этим масштабируемым набором. Если значение не задано, будет создана новая виртуальная сеть с тем же именем, что и масштабируемый набор.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-VMScaleSetName

Указывает имя виртуальной машины, создаваемой этим командлетом.

Тип:String
Aliases:Name
Position:2
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-VmSize

Размер экземпляров виртуальных машин в этом масштабируемом наборе. Размер по умолчанию (Standard_DS1_v2) будет использоваться, если размер не указан.

Тип:String
Position:Named
Default value:Standard_DS1_v2
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-VnetAddressPrefix

Префикс адреса для виртуальной сети, используемой с этим масштабируемым набором. Параметры префикса адресов виртуальной сети по умолчанию (192.168.0.0/16) будут использоваться, если значение не задано.

Тип:String
Position:Named
Default value:192.168.0.0/16
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Zone

Список зон доступности, обозначающих IP-адрес, выделенный для ресурса, должен поступать из.

Тип:List<T>[String]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

Входные данные

String

PSVirtualMachineScaleSet

Параметры: VirtualMachineScaleSet (ByValue)

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

Выходные данные

PSVirtualMachineScaleSet