다음을 통해 공유


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

입력

PSVirtualMachineScaleSet

String

Nullable<T>[[System.Boolean, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]

AdditionalUnattendContent[]

WinRMListener[]

SshPublicKey[]

VaultSecretGroup[]

출력

PSVirtualMachineScaleSet