Эта команда задает свойства профиля операционной системы для объекта $vmss.
Команда задает префикс имени компьютера для всех экземпляров виртуальных машин в VMSS для тестирования и предоставляет имя администратора и пароль.
Пример 2. Задайте свойства профиля операционной системы для виртуальных машин в гибком режиме с включенной функцией hotpatching.
# Setup variables.
$loc = "eastus";
$rgname = "<Resource Group Name>";
$vmssName = "myVmssSlb";
$vmNamePrefix = "vmSlb";
$vmssInstanceCount = 5;
$vmssSku = "Standard_DS1_v2";
$vnetname = "myVnet";
$vnetAddress = "10.0.0.0/16";
$subnetname = "default-slb";
$subnetAddress = "10.0.2.0/24";
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ("<Username>", $securePassword);
# VMSS Flex requires explicit outbound access.
# Create a virtual network.
$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetname -AddressPrefix $subnetAddress;
$virtualNetwork = New-AzVirtualNetwork -Name $vnetname -ResourceGroupName $rgname -Location $loc -AddressPrefix $vnetAddress -Subnet $frontendSubnet;
# Create a public IP address.
$publicIP = New-AzPublicIpAddress `
-ResourceGroupName $rgname `
-Location $loc `
-AllocationMethod Static `
-Sku "Standard" `
-IpAddressVersion "IPv4" `
-Name "myLBPublicIP";
# Create a frontend and backend IP pool.
$frontendIP = New-AzLoadBalancerFrontendIpConfig `
-Name "myFrontEndPool" `
-PublicIpAddress $publicIP;
$backendPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "myBackEndPool" ;
# Create the load balancer.
$lb = New-AzLoadBalancer `
-ResourceGroupName $rgname `
-Name "myLoadBalancer" `
-Sku "Standard" `
-Tier "Regional" `
-Location $loc `
-FrontendIpConfiguration $frontendIP `
-BackendAddressPool $backendPool;
# Create a load balancer health probe for TCP port 80.
Add-AzLoadBalancerProbeConfig -Name "myHealthProbe" `
-LoadBalancer $lb `
-Protocol TCP `
-Port 80 `
-IntervalInSeconds 15 `
-ProbeCount 2;
# Create a load balancer rule to distribute traffic on port TCP 80.
# The health probe from the previous step is used to make sure that traffic is
# only directed to healthy VM instances.
Add-AzLoadBalancerRuleConfig `
-Name "myLoadBalancerRule" `
-LoadBalancer $lb `
-FrontendIpConfiguration $lb.FrontendIpConfigurations[0] `
-BackendAddressPool $lb.BackendAddressPools[0] `
-Protocol TCP `
-FrontendPort 80 `
-BackendPort 80 `
-DisableOutboundSNAT `
-Probe (Get-AzLoadBalancerProbeConfig -Name "myHealthProbe" -LoadBalancer $lb);
# Add outbound connectivity rule.
Add-AzLoadBalancerOutboundRuleConfig `
-Name "outboundrule" `
-LoadBalancer $lb `
-AllocatedOutboundPort '10000' `
-Protocol 'All' `
-IdleTimeoutInMinutes '15' `
-FrontendIpConfiguration $lb.FrontendIpConfigurations[0] `
-BackendAddressPool $lb.BackendAddressPools[0];
# Update the load balancer configuration.
Set-AzLoadBalancer -LoadBalancer $lb;
# Create IP address configurations.
# Instances will require explicit outbound connectivity, for example
# - NAT Gateway on the subnet (recommended)
# - Instances in backend pool of Standard LB with outbound connectivity rules
# - Public IP address on each instance
# See aka.ms/defaultoutboundaccess for more info.
$ipConfig = New-AzVmssIpConfig `
-Name "myIPConfig" `
-SubnetId $virtualNetwork.Subnets[0].Id `
-LoadBalancerBackendAddressPoolsId $lb.BackendAddressPools[0].Id `
-Primary;
# Create a config object.
# The Vmss config object stores the core information for creating a scale set.
$vmssConfig = New-AzVmssConfig `
-Location $loc `
-SkuCapacity $vmssInstanceCount `
-SkuName $vmssSku `
-OrchestrationMode 'Flexible' `
-PlatformFaultDomainCount 1;
# Reference a virtual machine image from the gallery.
Set-AzVmssStorageProfile $vmssConfig `
-OsDiskCreateOption "FromImage" `
-ImageReferencePublisher "MicrosoftWindowsServer" `
-ImageReferenceOffer "WindowsServer" `
-ImageReferenceSku "2022-datacenter-azure-edition-core-smalldisk" `
-ImageReferenceVersion "latest";
# Set up information for authenticating with the virtual machine.
Set-AzVmssOsProfile $vmssConfig `
-AdminUsername $cred.UserName `
-AdminPassword $cred.Password `
-ComputerNamePrefix $vmNamePrefix `
-WindowsConfigurationProvisionVMAgent $true `
-WindowsConfigurationPatchMode "AutomaticByPlatform" `
-EnableHotpatching;
# Attach the virtual network to the config object.
Add-AzVmssNetworkInterfaceConfiguration `
-VirtualMachineScaleSet $vmssConfig `
-Name "network-config" `
-Primary $true `
-IPConfiguration $ipConfig `
-NetworkApiVersion '2020-11-01';
# Define the Application Health extension properties.
$publicConfig = @{"protocol" = "http"; "port" = 80; "requestPath" = "/healthEndpoint"};
$extensionName = "myHealthExtension";
$extensionType = "ApplicationHealthWindows";
$publisher = "Microsoft.ManagedServices";
# Add the Application Health extension to the scale set model.
Add-AzVmssExtension -VirtualMachineScaleSet $vmssConfig `
-Name $extensionName `
-Publisher $publisher `
-Setting $publicConfig `
-Type $extensionType `
-TypeHandlerVersion "1.0" `
-AutoUpgradeMinorVersion $True;
# Create the virtual machine scale set.
$vmss = New-AzVmss `
-ResourceGroupName $rgname `
-Name $vmssName `
-VirtualMachineScaleSet $vmssConfig;
Задание свойств профиля операционной системы для виртуальных машин в гибком режиме с включенным hotpatching
Параметры
-AdditionalUnattendContent
Указывает объект автоматического содержимого.
Для создания объекта можно использовать Add-AzVMAdditionalUnattendContent.
Указывает имя учетной записи администратора, используемой для всех экземпляров виртуальных машин в VMSS. Ограничение:
Windows: не удается содержать специальные символы /"[]:|<>+=;,?*@& или конец "."
Linux: имя пользователя должно содержать только буквы, цифры, дефисы и знаки подчеркивания, а также не начинаться с дефиса или номера. Запрещенные значения: "администратор", "admin", "user1", "user1", "test2", "test1", "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". Минимальная длина: 1 символ Максимальная длина: 20 символов для Windows, 64 символов для Linux
Список встроенных системных пользователей в Linux, которые не должны использоваться в этом поле, см. в разделе "Выбор имен пользователей для Linux в Azure".
Задает строку в кодировке base-64 пользовательских данных.
Это декодируется в двоичный массив, сохраненный в виде файла на виртуальной машине.
Максимальная длина двоичного массива составляет 65535 байтов.
Сведения об использовании cloud-init для виртуальной машины см. в статье Об использовании cloud-init для настройки виртуальной машины Linux во время создания.
Позволяет клиентам исправлять свои виртуальные машины Azure, не требуя перезагрузки. Для включенияHotpatching для параметра provisionVMAgent должно быть задано значение true, а для patchMode должно быть задано значение AutomaticByPlatform.
Указывает режим гостевой исправления виртуальной машины на виртуальную машину IaaS или виртуальные машины, связанные с масштабируемым набором виртуальных машин с OrchestrationMode как гибкий.
Возможны следующие значения:
ImageDefault — используется конфигурация исправления по умолчанию виртуальной машины.
AutomaticByPlatform. Виртуальная машина будет автоматически обновляться платформой. Свойство provisionVMAgent должно иметь значение true
Указывает, следует ли подготовить агент виртуальной машины на виртуальной машине.
Если это свойство не указано в тексте запроса, поведение по умолчанию — задать для него значение true. Это обеспечит установку агента виртуальной машины на виртуальной машине, чтобы расширения можно было добавить на виртуальную машину позже.
Задает прослушиватели удаленного управления Windows (WinRM).
Это позволяет удаленно использовать Windows PowerShell.
Для создания прослушивателя можно использовать командлет Add-AzVmssWinRMListener.
Указывает объект секретов, содержащий ссылки на сертификаты, которые будут размещаться на виртуальной машине.
Для создания объекта секретов можно использовать командлет Add-AzVmssSecret.
Указывает часовой пояс виртуальной машины. Например, "Тихоокеанское стандартное время".
Возможные значения можно TimeZoneInfo.Id из часовых поясов, возвращаемых TimeZoneInfo.GetSystemTimeZones.
Указывает режим гостевой исправления виртуальной машины на виртуальную машину IaaS или виртуальные машины, связанные с масштабируемым набором виртуальных машин с OrchestrationMode как гибкий.
Возможны следующие значения:
вручную . Вы управляете применением исправлений к виртуальной машине. Это можно сделать, применяя исправления вручную внутри виртуальной машины. В этом режиме автоматические обновления отключены; Свойство WindowsConfiguration.enableAutomaticUpdates должно быть false
automaticByOS. Виртуальная машина автоматически обновляется ОС. Свойство WindowsConfiguration.enableAutomaticUpdates должно иметь значение true.
AutomaticByPlatform — виртуальная машина автоматически обновляется платформой. Свойства provisionVMAgent и WindowsConfiguration.enableAutomaticUpdates должны иметь значение true.
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.