Sdílet prostřednictvím


Set-AzVmssOsProfile

Nastaví vlastnosti profilu operačního systému VMSS.

Syntaxe

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

Rutina Set-AzVmssOsProfile nastaví vlastnosti profilu operačního systému škálovací sady virtuálních počítačů.

Příklady

Příklad 1: Nastavení vlastností profilu operačního systému pro 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

Tento příkaz nastaví vlastnosti profilu operačního systému pro objekt $vmss. Příkaz nastaví předponu názvu počítače pro všechny instance virtuálních počítačů ve službě VMSS k otestování a zadání uživatelského jména a hesla správce.

Příklad 2: Nastavte vlastnosti profilu operačního systému pro virtuální počítače v flexibilním režimu s povolenou chybou hotpatch.

# 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;

Nastavení vlastností profilu operačního systému pro virtuální počítače v flexibilním režimu s povolenou možností opravy za provozu

Parametry

-AdditionalUnattendContent

Určuje objekt bezobslužného obsahu. Objekt můžete vytvořit pomocí Add-AzVMAdditionalUnattendContent.

Typ:AdditionalUnattendContent[]
Position:8
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-AdminPassword

Určuje heslo správce, které se má použít pro všechny instance virtuálních počítačů ve VMSS.

Typ:String
Position:3
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-AdminUsername

Určuje název účtu správce, který se má použít pro všechny instance virtuálních počítačů ve VMSS.
Omezení :
Windows: Nesmí obsahovat speciální znaky /"[]:|<>+=;,?*@& nebo končí na "."
Linux: Uživatelské jméno musí obsahovat jenom písmena, číslice, pomlčky a podtržítka a nesmí začínat spojovníkem nebo číslem.
Nepovolené hodnoty: "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".
minimální délka: 1 znak
maximální délka: 20 znaků pro Windows, 64 znaků pro Linux
Seznam předdefinovaných systémových uživatelů v Linuxu, kteří by se v tomto poli neměli používat, najdete v tématu Výběr uživatelských jmen pro Linux v Azure.

Typ:String
Position:2
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-ComputerNamePrefix

Určuje předponu názvu počítače pro všechny instance virtuálních počítačů ve VMSS. Názvy počítačů musí mít délku 1 až 15 znaků.

Typ:String
Position:1
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Confirm

Před spuštěním rutiny vás vyzve k potvrzení.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CustomData

Určuje řetězec s kódováním base-64 vlastních dat. Dekóduje se do binárního pole, které se uloží jako soubor na virtuálním počítači. Maximální délka binárního pole je 65535 bajtů.
Informace o použití cloud-init pro virtuální počítač najdete v tématu Použití cloud-init k přizpůsobení virtuálního počítače s Linuxem během vytváření.

Typ:String
Position:4
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-DefaultProfile

Přihlašovací údaje, účet, tenant a předplatné používané ke komunikaci s Azure.

Typ:IAzureContextContainer
Aliasy:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-EnableHotpatching

Umožňuje zákazníkům opravovat virtuální počítače Azure bez nutnosti restartování. Pro enableHotpatching musí být provisionVMAgent nastaven na true a patchMode musí být nastaven na AutomaticByPlatform.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-LinuxConfigurationDisablePasswordAuthentication

Označuje, že tato rutina zakáže ověřování heslem.

Typ:Nullable<T>[Boolean]
Position:10
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-LinuxConfigurationPatchMode

Určuje režim oprav hosta virtuálního počítače na virtuální počítač IaaS nebo virtuální počítače přidružené ke škálovací sadě virtuálních počítačů s orchestrationMode jako flexibilní.

Možné hodnoty:

imageDefault – použije se výchozí konfigurace oprav virtuálního počítače.

AutomaticByPlatform – virtuální počítač se automaticky aktualizuje platformou. Vlastnost provisionVMAgent musí být pravdivá.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-LinuxConfigurationProvisionVMAgent

Určuje, jestli má být na virtuálním počítači zřízen agent virtuálního počítače.

Pokud tato vlastnost není zadána v textu požadavku, výchozí chování je nastavit ji na true. Tím zajistíte, že je na virtuálním počítači nainstalovaný agent virtuálního počítače, aby bylo možné rozšíření přidat do virtuálního počítače později.

Typ:Nullable<T>[Boolean]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Listener

Určuje naslouchací procesy vzdálené správy systému Windows (WinRM). To umožňuje vzdálené prostředí Windows PowerShell. K vytvoření naslouchacího procesu můžete použít rutinu Add-AzVmssWinRMListener.

Typ:WinRMListener[]
Position:9
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-PublicKey

Určuje objekt veřejného klíče SSH (Secure Shell). K vytvoření objektu můžete použít rutinu Add-AzVMSshPublicKey.

Typ:SshPublicKey[]
Position:11
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Secret

Určuje objekt tajných kódů, který obsahuje odkazy na certifikáty, které se mají umístit na virtuální počítač. K vytvoření objektu tajných kódů můžete použít rutinu Add-AzVmssSecret.

Typ:VaultSecretGroup[]
Position:12
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-TimeZone

Určuje časové pásmo virtuálního počítače. např. "Pacific Standard Time".
Možné hodnoty mohou být TimeZoneInfo.Id hodnoty z časových pásem vrácených TimeZoneInfo.GetSystemTimeZones.

Typ:String
Position:7
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-VirtualMachineScaleSet

Určuje objekt VMSS. K vytvoření objektu můžete použít rutinu New-AzVmssConfig.

Typ:PSVirtualMachineScaleSet
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-WhatIf

Ukazuje, co se stane, když se rutina spustí. Rutina se nespustí.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-WindowsConfigurationEnableAutomaticUpdate

Určuje, jestli jsou virtuální počítače ve VMSS povolené pro automatické aktualizace.

Typ:Nullable<T>[Boolean]
Position:6
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-WindowsConfigurationPatchMode

Určuje režim oprav hosta virtuálního počítače na virtuální počítač IaaS nebo virtuální počítače přidružené ke škálovací sadě virtuálních počítačů s orchestrationMode jako flexibilní.

Možné hodnoty:

Ruční – řídíte použití oprav na virtuální počítač. Provedete to ručním použitím oprav uvnitř virtuálního počítače. V tomto režimu jsou automatické aktualizace zakázány; Vlastnost WindowsConfiguration.enableAutomaticUpdates musí být false.

AutomaticByOS – operační systém automaticky aktualizuje virtuální počítač. Vlastnost WindowsConfiguration.enableAutomaticUpdates musí být true.

AutomaticByPlatform – virtuální počítač se automaticky aktualizuje platformou. Vlastnosti provisionVMAgent a WindowsConfiguration.enableAutomaticUpdates musí být pravdivé.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-WindowsConfigurationProvisionVMAgent

Určuje, jestli se má agent virtuálního počítače zřídit na virtuálních počítačích v sadě VMSS.

Typ:Nullable<T>[Boolean]
Position:5
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

Vstupy

PSVirtualMachineScaleSet

String

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

AdditionalUnattendContent[]

WinRMListener[]

SshPublicKey[]

VaultSecretGroup[]

Výstupy

PSVirtualMachineScaleSet