Set-AzVmssOsProfile
VMSS 운영 체제 프로필 속성을 설정합니다.
구문
Set-AzVmssOsProfile
[-VirtualMachineScaleSet] <PSVirtualMachineScaleSet>
[[-ComputerNamePrefix] <String>]
[[-AdminUsername] <String>]
[[-AdminPassword] <String>]
[[-CustomData] <String>]
[[-WindowsConfigurationProvisionVMAgent] <Boolean>]
[-LinuxConfigurationProvisionVMAgent <Boolean>]
[[-WindowsConfigurationEnableAutomaticUpdate] <Boolean>]
[[-TimeZone] <String>]
[[-AdditionalUnattendContent] <AdditionalUnattendContent[]>]
[[-Listener] <WinRMListener[]>]
[[-LinuxConfigurationDisablePasswordAuthentication] <Boolean>]
[[-PublicKey] <SshPublicKey[]>]
[[-Secret] <VaultSecretGroup[]>]
[-WindowsConfigurationPatchMode <String>]
[-LinuxConfigurationPatchMode <String>]
[-EnableHotpatching]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Set-AzVmssOsProfile cmdlet은 Virtual Machine Scale Set 운영 체제 프로필 속성을 설정합니다.
예제
예제 1: VMSS에 대한 운영 체제 프로필 속성 설정
$vmss = New-AzVmssConfig -Location $Loc -SkuCapacity 2 -SkuName "Standard_A0" -UpgradePolicyMode "Automatic" -NetworkInterfaceConfiguration $NetCfg
Set-AzVmssOsProfile -VirtualMachineScaleSet $vmss -ComputerNamePrefix "Test" -AdminUsername $AdminUsername -AdminPassword $AdminPassword
이 명령은 $vmss 개체에 대한 운영 체제 프로필 속성을 설정합니다. 이 명령은 VMSS의 모든 가상 머신 인스턴스에 대한 컴퓨터 이름 접두사를 테스트로 설정하고 관리자 사용자 이름과 암호를 제공합니다.
예제 2: 핫패칭을 사용하도록 설정된 유연한 모드의 VM에 대한 운영 체제 프로필 속성을 설정합니다.
# 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;
핫패칭을 사용하도록 설정된 유연한 모드에서 VM에 대한 운영 체제 프로필 속성 설정
매개 변수
-AdditionalUnattendContent
무인 콘텐츠 개체를 지정합니다. Add-AzVMAdditionalUnattendContent를 사용하여 개체를 만들 수 있습니다.
형식: | AdditionalUnattendContent[] |
Position: | 8 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-AdminPassword
VMSS의 모든 가상 머신 인스턴스에 사용할 관리자 암호를 지정합니다.
형식: | String |
Position: | 3 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-AdminUsername
VMSS의 모든 가상 머신 인스턴스에 사용할 관리자 계정 이름을 지정합니다.
제한:
Windows: 특수 문자를 포함할 수 없음 /""[]:|<>+=;,?*@> 또는 ""로 끝납니다.
Linux: 사용자 이름은 문자, 숫자, 하이픈 및 밑줄만 포함해야 하며 하이픈 또는 숫자로 시작할 수 없습니다.
허용되지 않는 값: "administrator", "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".
최소 길이: 1자
최대 길이: Windows의 경우 20자, Linux의 경우 64자
이 필드에 사용되지 않아야 하는 Linux의 기본 제공 시스템 사용자 목록은 Azure에서 Linux에 대한 사용자 이름 선택을 참조하세요.
형식: | String |
Position: | 2 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-ComputerNamePrefix
VMSS의 모든 가상 머신 인스턴스에 대한 컴퓨터 이름 접두사를 지정합니다. 컴퓨터 이름은 1~15자여야 합니다.
형식: | String |
Position: | 1 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Confirm
cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-CustomData
사용자 지정 데이터의 base-64로 인코딩된 문자열을 지정합니다.
가상 머신에 파일로 저장된 이진 배열로 디코딩됩니다.
이진 배열의 최대 길이는 65535바이트입니다.
VM 에 cloud-init를 사용하려면 cloud-init를 사용하여 만드는 동안 Linux VM을 사용자 지정합니다.
형식: | String |
Position: | 4 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-DefaultProfile
Azure와의 통신에 사용되는 자격 증명, 계정, 테넌트 및 구독입니다.
형식: | IAzureContextContainer |
별칭: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-EnableHotpatching
고객이 다시 부팅하지 않고도 Azure Vm을 패치할 수 있습니다. enableHotpatching의 경우 'provisionVMAgent'를 true로 설정하고 'patchMode'를 'AutomaticByPlatform'으로 설정해야 합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-LinuxConfigurationDisablePasswordAuthentication
이 cmdlet은 암호 인증을 사용하지 않도록 설정함을 나타냅니다.
형식: | Nullable<T>[Boolean] |
Position: | 10 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-LinuxConfigurationPatchMode
OrchestrationMode를 유연한 것으로 사용하여 가상 머신 확장 집합에 연결된 IaaS 가상 머신 또는 가상 머신에 대한 VM 게스트 패치 모드를 지정합니다.
가능한 값은 다음과 같습니다.
ImageDefault - 가상 머신의 기본 패치 구성이 사용됩니다.
AutomaticByPlatform - 가상 머신이 플랫폼에 의해 자동으로 업데이트됩니다. provisionVMAgent 속성은 true여야 합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-LinuxConfigurationProvisionVMAgent
가상 머신 에이전트를 가상 머신에 프로비전해야 하는지 여부를 나타냅니다.
이 속성이 요청 본문에 지정되지 않은 경우 기본 동작은 true로 설정하는 것입니다. 이렇게 하면 나중에 VM에 확장을 추가할 수 있도록 VM 에이전트가 VM에 설치됩니다.
형식: | Nullable<T>[Boolean] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Listener
WinRM(Windows 원격 관리) 수신기를 지정합니다. 이렇게 하면 원격 Windows PowerShell을 사용할 수 있습니다. Add-AzVmssWinRMListener cmdlet을 사용하여 수신기를 만들 수 있습니다.
형식: | WinRMListener[] |
Position: | 9 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-PublicKey
SSH(Secure Shell) 공개 키 개체를 지정합니다. Add-AzVMSshPublicKey cmdlet을 사용하여 개체를 만들 수 있습니다.
형식: | SshPublicKey[] |
Position: | 11 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Secret
가상 머신에 배치할 인증서 참조를 포함하는 비밀 개체를 지정합니다. Add-AzVmssSecret cmdlet을 사용하여 비밀 개체를 만들 수 있습니다.
형식: | VaultSecretGroup[] |
Position: | 12 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-TimeZone
가상 머신의 표준 시간대를 지정합니다. 예: "태평양 표준시".
가능한 값은 TimeZoneInfo.GetSystemTimeZones에서 반환된 표준 시간대의 값을 TimeZoneInfo.Id 수 있습니다.
형식: | String |
Position: | 7 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-VirtualMachineScaleSet
VMSS 개체를 지정합니다. New-AzVmssConfig cmdlet을 사용하여 개체를 만들 수 있습니다.
형식: | PSVirtualMachineScaleSet |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-WhatIf
cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-WindowsConfigurationEnableAutomaticUpdate
VMSS의 가상 머신이 자동 업데이트를 사용하도록 설정되어 있는지 여부를 나타냅니다.
형식: | Nullable<T>[Boolean] |
Position: | 6 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-WindowsConfigurationPatchMode
OrchestrationMode를 유연한 것으로 사용하여 가상 머신 확장 집합에 연결된 IaaS 가상 머신 또는 가상 머신에 대한 VM 게스트 패치 모드를 지정합니다.
가능한 값은 다음과 같습니다.
수동 - 가상 머신에 대한 패치 애플리케이션을 제어합니다. VM 내에서 수동으로 패치를 적용하여 이 작업을 수행합니다. 이 모드에서는 자동 업데이트를 사용할 수 없습니다. WindowsConfiguration.enableAutomaticUpdates 속성은 false여야 합니다.
AutomaticByOS - 가상 머신이 OS에 의해 자동으로 업데이트됩니다. WindowsConfiguration.enableAutomaticUpdates 속성은 true여야 합니다.
AutomaticByPlatform - 가상 머신이 플랫폼에서 자동으로 업데이트됩니다. provisionVMAgent 및 WindowsConfiguration.enableAutomaticUpdates 속성은 true여야 합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-WindowsConfigurationProvisionVMAgent
VMSS의 가상 머신에서 가상 머신 에이전트를 프로비전해야 하는지 여부를 나타냅니다.
형식: | Nullable<T>[Boolean] |
Position: | 5 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
입력
Nullable<T>[[System.Boolean, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
출력
관련 링크
Azure PowerShell