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-AzureRmStorageAccount для создания учетной записи хранения.
- Третья команда затем использует командлет Get-AzureRmStorageAccount для получения учетной записи хранения, созданной во второй команде, и сохраняет результат в переменной $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 |
Входные данные
Параметры: VirtualMachineScaleSet (ByValue)
List<T>[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]