Tillägg och funktioner för virtuella datorer för Windows
Azure-tillägg för virtuella datorer är små program som ger konfigurations- och automationsuppgifter på virtuella Azure-datorer efter distribution. Om en virtuell dator till exempel behöver programvaruinstallation, antivirusskydd eller körning av ett skript på den kan ett VM-tillägg användas. Azure VM-tillägg kan köras med Azure CLI, PowerShell, Azure Resource Manager-mallar och Azure-portalen. Tillägg kan paketeras med en ny VM-distribution eller köras mot valfritt befintligt system.
Den här artikeln innehåller en översikt över VM-tillägg, krav för att använda Azure VM-tillägg och vägledning om hur du identifierar, hanterar och tar bort VM-tillägg. Den här artikeln innehåller generaliserad information eftersom många VM-tillägg är tillgängliga, var och en med en potentiellt unik konfiguration. Tilläggsspecifik information finns i varje dokument som är specifikt för det enskilda tillägget.
Användningsfall och exempel
Det finns flera olika Azure VM-tillägg, var och en med ett specifikt användningsfall. Några exempel är:
- Tillämpa PowerShell Desired State-konfigurationer på en virtuell dator med DSC-tillägget för Windows. Mer information finns i Azure Desired State-konfigurationstillägget.
- Konfigurera övervakning av en virtuell dator med Log Analytics Agent VM-tillägget. Mer information finns i Anslut azure-datorer som ska Azure Monitor loggar.
- Konfigurera en virtuell Azure-dator med hjälp av Chef. Mer information finns i Automatisera distribution av virtuella Azure-datorer med Chef.
- Konfigurera övervakning av Azure-infrastrukturen med tillägget Datadog. Mer information finns i Datadog-bloggen.
Förutom processspecifika tillägg finns ett tillägg för anpassat skript tillgängligt för både Windows och virtuella Linux-datorer. Det anpassade skripttillägget för Windows tillåter att alla PowerShell-skript körs på en virtuell dator. Anpassade skript är användbara för att utforma Azure-distributioner som kräver konfiguration utöver vad inbyggda Azure-verktyg kan ge. Mer information finns i Windows VM Custom Script extension.
Förutsättningar
För att kunna hantera tillägget på den virtuella datorn måste Azure Windows agenten vara installerad. Vissa enskilda tillägg har förutsättningar, till exempel åtkomst till resurser eller beroenden.
Virtuell Azure-datoragent
Azure VM-agenten hanterar interaktioner mellan en virtuell Azure-dator och Azure-infrastrukturkontrollanten. VM-agenten ansvarar för många funktionella aspekter av distribution och hantering av virtuella Azure-datorer, inklusive att köra VM-tillägg. Azure VM-agenten är förinstallerad på Azure Marketplace-avbildningar och kan installeras manuellt på operativsystem som stöds. Azure VM-agenten för Windows kallas Windows gästagent.
Information om operativsystem som stöds och installationsinstruktioner finns i Agent för virtuell Azure-dator.
Agentversioner som stöds
För att ge bästa möjliga upplevelse finns det lägsta versioner av agenten. Mer information finns i den här artikeln.
O:er som stöds
Den Windows gästagenten körs på flera olika system, men tilläggsramverket har en gräns för de system som tilläggen gäller. Mer information finns i den här artikeln.
Vissa tillägg stöds inte i alla operativsystem och kan generera felkod 51, "OS stöds inte". Se dokumentationen för enskilda tillägg för support.
Nätverksåtkomst
Tilläggspaket laddas ned från lagringsplatsen Azure Storage och uppladdningar av tilläggsstatus publiceras till Azure Storage. Om du använder den version av agenterna som stöds behöver du inte tillåta åtkomst till Azure Storage i VM-regionen, och du kan också använda agenten för att omdirigera kommunikationen till Azure-infrastrukturkontrollanten för agentkommunikation (HostGAPlugin-funktionen via den privilegierade kanalen på privat IP-adress 168.63.129.16). Om du använder en version av agenten som inte stöds måste du tillåta utgående åtkomst till Azure Storage i den regionen från den virtuella datorn.
Viktigt
Om du har blockerat åtkomst till 168.63.129.16 med hjälp av gästbrandväggen eller med en proxy, misslyckas tilläggen oavsett ovanstående. Portarna 80, 443 och 32526 krävs.
Agenter kan bara användas för att ladda ned tilläggspaket och rapportera status. Om en tilläggsinstallation till exempel behöver ladda ned ett skript från GitHub (anpassat skript) eller behöver åtkomst till Azure Storage (Azure Backup) måste ytterligare portar för brandvägg/nätverkssäkerhetsgrupp öppnas. Olika tillägg har olika krav eftersom de är program på egen hand. För tillägg som kräver åtkomst till Azure Storage eller Azure Active Directory kan du tillåta åtkomst med hjälp av Azure NSG-tjänsttaggar för att Storage eller AzureActiveDirectory.
Gästagenten Windows har inte stöd för proxyserver för att omdirigera agenttrafikbegäranden via, vilket innebär att Windows-gästagenten förlitar sig på din anpassade proxy (om du har en sådan) för att få åtkomst till resurser på Internet eller på värden via IP-adressen 168.63.129.16.
Identifiera VM-tillägg
Det finns många olika VM-tillägg för användning med virtuella Azure-datorer. Om du vill se en fullständig lista använder du Get-AzVMExtensionImage. I följande exempel visas alla tillgängliga tillägg på platsen WestUS:
Get-AzVmImagePublisher -Location "WestUS" |
Get-AzVMExtensionImageType |
Get-AzVMExtensionImage | Select Type, Version
Köra VM-tillägg
Azure VM-tillägg körs på befintliga virtuella datorer, vilket är användbart när du behöver göra konfigurationsändringar eller återställa anslutningen på en redan distribuerad virtuell dator. VM-tillägg kan också paketeras med Azure Resource Manager malldistributioner. Med hjälp av tillägg med Resource Manager-mallar kan virtuella Azure-datorer distribueras och konfigureras utan åtgärder efter distributionen.
Följande metoder kan användas för att köra ett tillägg mot en befintlig virtuell dator.
PowerShell
Det finns flera PowerShell-kommandon för att köra enskilda tillägg. Om du vill se en lista använder du Get-Command och filtrerar på tillägget:
Get-Command Set-Az*Extension* -Module Az.Compute
Detta ger utdata som liknar följande:
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Set-AzVMAccessExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMADDomainExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMAEMExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMBackupExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMBginfoExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMChefExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMCustomScriptExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMDiagnosticsExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMDiskEncryptionExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMDscExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMExtension 4.5.0 Az.Compute
Cmdlet Set-AzVMSqlServerExtension 4.5.0 Az.Compute
Cmdlet Set-AzVmssDiskEncryptionExtension 4.5.0 Az.Compute
I följande exempel används tillägget Anpassat skript för att ladda ned ett skript från en GitHub till den virtuella måldatorn och sedan köra skriptet. Mer information om tillägget för anpassat skript finns i Översikt över tillägg för anpassat skript.
Set-AzVMCustomScriptExtension -ResourceGroupName "myResourceGroup" `
-VMName "myVM" -Name "myCustomScript" `
-FileUri "https://raw.githubusercontent.com/neilpeterson/nepeters-azure-templates/master/windows-custom-script-simple/support-scripts/Create-File.ps1" `
-Run "Create-File.ps1" -Location "West US"
I följande exempel används VM-åtkomsttillägget för att återställa det administrativa lösenordet för en virtuell Windows till ett tillfälligt lösenord. Mer information om VM-åtkomsttillägget finns i Återställa fjärrskrivbordstjänsten i en Windows virtuell dator. När du har kört det här bör du återställa lösenordet vid den första inloggningen:
$cred=Get-Credential
Set-AzVMAccessExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myVMAccess" `
-Location WestUS -UserName $cred.GetNetworkCredential().Username `
-Password $cred.GetNetworkCredential().Password -typeHandlerVersion "2.0"
Kommandot Set-AzVMExtension kan användas för att starta ett virtuellt datortillägg. Mer information finns i referensen för Set-AzVMExtension.
Azure Portal
VM-tillägg kan tillämpas på en befintlig virtuell dator via Azure Portal. Välj den virtuella datorn i portalen, välj Tillägg och välj sedan Lägg till. Välj det tillägg som du vill använda i listan över tillgängliga tillägg och följ anvisningarna i guiden.
I följande exempel visas installationen av Microsoft Antimalware-tillägget från Azure Portal:

Azure Resource Manager-mallar
VM-tillägg kan läggas till Azure Resource Manager en mall och köras med distributionen av mallen. När du distribuerar ett tillägg med en mall kan du skapa fullständigt konfigurerade Azure-distributioner. Följande JSON tas till exempel från en Resource Manager-mall som distribuerar en uppsättning belastningsutjämnade virtuella datorer och en Azure SQL Database och installerar sedan ett .NET Core-program på varje virtuell dator. VM-tillägget tar hand om programvaruinstallationen.
Mer information finns i den fullständiga Resource Manager mallen.
{
"apiVersion": "2015-06-15",
"type": "extensions",
"name": "config-app",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
"[variables('musicstoresqlName')]"
],
"tags": {
"displayName": "config-app"
},
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.9",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
]
},
"protectedSettings": {
"commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
}
}
}
Mer information om hur du skapar Resource Manager-mallar finns i Redigera Azure Resource Manager mallar med Windows VM-tillägg.
Skydda data för VM-tillägg
När du kör ett VM-tillägg kan det vara nödvändigt att inkludera känslig information, till exempel autentiseringsuppgifter, lagringskontonamn och åtkomstnycklar för lagringskonto. Många VM-tillägg innehåller en skyddad konfiguration som krypterar data och endast dekrypterar dem i den virtuella måldatorn. Varje tillägg har ett specifikt schema för skyddad konfiguration, och vart och ett beskrivs i tilläggsspecifik dokumentation.
I följande exempel visas en instans av tillägget för anpassat skript för Windows. Kommandot som ska köras innehåller en uppsättning autentiseringsuppgifter. I det här exemplet är kommandot som ska köras inte krypterat:
{
"apiVersion": "2015-06-15",
"type": "extensions",
"name": "config-app",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
"[variables('musicstoresqlName')]"
],
"tags": {
"displayName": "config-app"
},
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.9",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
],
"commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
}
}
}
Om du flyttar kommandot för att köra egenskapen till den skyddade konfigurationen skyddas körningssträngen, som du ser i följande exempel:
{
"apiVersion": "2015-06-15",
"type": "extensions",
"name": "config-app",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
"[variables('musicstoresqlName')]"
],
"tags": {
"displayName": "config-app"
},
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.9",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
]
},
"protectedSettings": {
"commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
}
}
}
På en virtuell Azure IaaS-dator som använder tillägg kan du i certifikatkonsolen se certifikat som har ämnet Windows Azure CRP Certificate Generator. På en klassisk virtuell RDFE-dator har dessa certifikat ämnesnamnet Windows Azure Service Management för tillägg.
Dessa certifikat skyddar kommunikationen mellan den virtuella datorn och dess värd under överföringen av skyddade inställningar (lösenord och andra autentiseringsuppgifter) som används av tillägg. Certifikaten skapas av Azure-infrastrukturkontrollanten och skickas till den virtuella datoragenten. Om du stoppar och startar den virtuella datorn varje dag kan ett nytt certifikat skapas av infrastrukturkontrollanten. Certifikatet lagras i datorns personliga certifikatarkiv. Dessa certifikat kan tas bort. VM-agenten skapar certifikat på nytt om det behövs.
Hur uppdateras agenter och tillägg?
Agenter och tillägg delar samma mekanism för automatisk uppdatering.
När en uppdatering är tillgänglig och automatiska uppdateringar har aktiverats installeras uppdateringen på den virtuella datorn först efter det att ett tillägg eller andra vm-modelländringar har ändrats, till exempel:
- Datadiskar
- Tillägg
- Startdiagnostikcontainer
- Hemligheter för gästoperativsystem
- Storlek på virtuell dator
- Nätverksprofil
Viktigt
Uppdateringen installeras först när den virtuella datormodellen har ändrats.
Utgivare gör uppdateringar tillgängliga för regioner vid olika tidpunkter, så det är möjligt att du kan ha virtuella datorer i olika regioner på olika versioner.
Anteckning
Vissa uppdateringar kan kräva ytterligare brandväggsregler. Se Nätverksåtkomst.
Visa en lista över tillägg som distribuerats till en virtuell dator
$vm = Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM"
$vm.Extensions | select Publisher, VirtualMachineExtensionType, TypeHandlerVersion
Publisher VirtualMachineExtensionType TypeHandlerVersion
--------- --------------------------- ------------------
Microsoft.Compute CustomScriptExtension 1.9
Agentuppdateringar
Gästagenten Windows bara tilläggshanteringskoden, Windows etableringskoden är separat. Du kan avinstallera Windows gästagenten. Du kan inte inaktivera den automatiska uppdateringen av Window-gästagenten.
Tilläggshanteringskoden ansvarar för att kommunicera med Azure-infrastrukturerna och hantera VM-tilläggsåtgärder som installationer, rapporteringsstatus, uppdatering av enskilda tillägg och borttagning av dem. Uppdateringar innehåller säkerhetskorrigeringar, felkorrigeringar och förbättringar av tilläggshanteringskoden.
Om du vill kontrollera vilken version du kör kan du läsa Identifiera Windows gästagent .
Tilläggsuppdateringar
När en tilläggsuppdatering är tillgänglig och automatiska uppdateringar har aktiverats, hämtar och uppgraderar Windows gästagenten tillägget efter att en ändring har inträffat.
Automatiska tilläggsuppdateringar är antingen Mindre eller Snabbkorrigering. Du kan välja att avanmäla dig från tillägg Mindre uppdateringar när du etablerar tillägget. I följande exempel visas hur du automatiskt uppgraderar mindre versioner i en Resource Manager mall med "autoUpgradeMinorVersion": true,:
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.9",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
]
},
För att få de senaste mindre felkorrigeringarna rekommenderar vi starkt att du alltid väljer automatisk uppdatering i dina tilläggsdistributioner. Snabbkorrigeringsuppdateringar som innehåller säkerhets- eller nyckelkorrigeringar kan inte väljas bort.
Om du inaktiverar automatiska uppdateringar av tillägg eller om du behöver uppgradera en huvudversion använder du Set-AzVMExtension och anger målversionen.
Så här identifierar du tilläggsuppdateringar
Identifiera om tillägget har angetts med autoUpgradeMinorVersion på en virtuell dator
Du kan se från VM-modellen om tillägget har etablerats med "autoUpgradeMinorVersion". Kontrollera genom att använda Get-AzVm och ange resursgruppen och namnet på den virtuella datorn på följande sätt:
$vm = Get-AzVm -ResourceGroupName "myResourceGroup" -VMName "myVM"
$vm.Extensions
Följande exempelutdata visar att autoUpgradeMinorVersion har angetts till true:
ForceUpdateTag :
Publisher : Microsoft.Compute
VirtualMachineExtensionType : CustomScriptExtension
TypeHandlerVersion : 1.9
AutoUpgradeMinorVersion : True
Identifiera när en autoUpgradeMinorVersion inträffade
Om du vill se när en uppdatering av tillägget inträffade granskar du agentloggarna på den virtuella datorn på C:\WindowsAzure\Logs\WaAppAgent.log
I följande exempel hade den virtuella datorn Microsoft.Compute.CustomScriptExtension 1.8 installerat. En snabbkorrigering var tillgänglig för version 1.9:
[INFO] Getting plugin locations for plugin 'Microsoft.Compute.CustomScriptExtension'. Current Version: '1.8', Requested Version: '1.9'
[INFO] Auto-Upgrade mode. Highest public version for plugin 'Microsoft.Compute.CustomScriptExtension' with requested version: '1.9', is: '1.9'
Agentbehörigheter
För att utföra sina uppgifter måste agenten köras som lokalt system.
Felsöka VM-tillägg
Varje VM-tillägg kan ha felsökningssteg som är specifika för tillägget. När du till exempel använder tillägget För anpassat skript kan skriptkörningsinformation hittas lokalt på den virtuella dator där tillägget har körts. Eventuella tilläggsspecifika felsökningssteg beskrivs i tilläggsspecifik dokumentation.
Följande felsökningssteg gäller för alla VM-tillägg.
Om du Windows gästagentloggen tittar du på aktiviteten när ditt tillägg etablerades i C:\WindowsAzure\Logs\WaAppAgent.log
Mer information finns i de faktiska tilläggsloggarna i
C:\WindowsAzure\Logs\Plugins\<extensionName>Se specifika felsökningsavsnitt för tillägg för felkoder, kända problem osv.
Titta på systemloggarna. Sök efter andra åtgärder som kan ha stört tillägget, till exempel en långvarig installation av ett annat program som krävde exklusiv pakethanteringsåtkomst.
Vanliga orsaker till tilläggsfel
Tillägg har 20 minuter att köra (undantag är CustomScript-tillägg, Chef och DSC som har 90 minuter). Om distributionen överskrider den här tiden markeras den som en tidsgräns. Orsaken till detta kan bero på att resurs-VM:ar, andra VM-konfigurationer/startaktiviteter förbrukar stora mängder resurser medan tillägget försöker etablera.
Minimikraven är inte uppfyllda. Vissa tillägg har beroenden på VM-SKU:er, till exempel HPC-avbildningar. Tillägg kan kräva vissa krav på nätverksåtkomst, till exempel kommunikation till Azure Storage eller offentliga tjänster. Andra exempel kan vara åtkomst till paketdatabaser, slut på diskutrymme eller säkerhetsbegränsningar.
Exklusiv åtkomst till pakethanteraren. I vissa fall kan du stöta på en långvarig VM-konfiguration och tilläggsinstallation som är i konflikt med varandra, där båda behöver exklusiv åtkomst till pakethanteraren.
Visa tilläggsstatus
När ett VM-tillägg har körts mot en virtuell dator använder du Get-AzVM för att returnera tilläggets status. Understatusar[0] visar att tilläggsetablering lyckades, vilket innebär att den har distribuerats till den virtuella datorn, men körningen av tillägget i den virtuella datorn misslyckades, understatusar[1].
Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM" -Status
Utdata liknar följande exempelutdata:
Extensions[0] :
Name : CustomScriptExtension
Type : Microsoft.Compute.CustomScriptExtension
TypeHandlerVersion : 1.9
Substatuses[0] :
Code : ComponentStatus/StdOut/succeeded
Level : Info
DisplayStatus : Provisioning succeeded
Message : Windows PowerShell \nCopyright (C) Microsoft Corporation. All rights reserved.\n
Substatuses[1] :
Code : ComponentStatus/StdErr/succeeded
Level : Info
DisplayStatus : Provisioning succeeded
Message : The argument 'cseTest%20Scriptparam1.ps1' to the -File parameter does not exist. Provide the path to an existing '.ps1' file as an argument to the
-File parameter.
Statuses[0] :
Code : ProvisioningState/failed/-196608
Level : Error
DisplayStatus : Provisioning failed
Message : Finished executing command
Tilläggskörningsstatus finns också i Azure Portal. Om du vill visa status för ett tillägg väljer du den virtuella datorn, tillägg och sedan önskat tillägg.
Köra VM-tillägg igen
Det kan finnas fall där ett VM-tillägg måste köras igen. Du kan köra ett tillägg igen genom att ta bort det och sedan köra tillägget igen med valfri körningsmetod. Om du vill ta bort ett tillägg använder du Remove-AzVMExtension på följande sätt:
Remove-AzVMExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myExtensionName"
Du kan också ta bort ett tillägg Azure Portal följande:
- Välj en virtuell dator.
- Välj Tillägg.
- Välj önskat tillägg.
- Välj Avinstallera.
Referens för vanliga VM-tillägg
| Tilläggsnamn | Description | Mer information |
|---|---|---|
| Anpassat skripttillägg för Windows | Köra skript mot en virtuell Azure-dator | Anpassat skripttillägg för Windows |
| DSC-tillägg för Windows | PowerShell DSC-tillägg (Desired State Configuration) | DSC-tillägg för Windows |
| Azure Diagnostics-tillägg | Hantera Azure Diagnostics | Azure Diagnostics tillägg |
| Åtkomsttillägg för virtuell Azure-dator | Hantera användare och autentiseringsuppgifter | VM-åtkomsttillägg för Linux |
Nästa steg
Mer information om VM-tillägg finns i Översikt över tillägg och funktioner för virtuella Azure-datorer.