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:

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:

Installera tillägget för program mot skadlig programvara

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.

  1. Om du Windows gästagentloggen tittar du på aktiviteten när ditt tillägg etablerades i C:\WindowsAzure\Logs\WaAppAgent.log

  2. Mer information finns i de faktiska tilläggsloggarna i C:\WindowsAzure\Logs\Plugins\<extensionName>

  3. Se specifika felsökningsavsnitt för tillägg för felkoder, kända problem osv.

  4. 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

  1. 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.

  2. 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.

  3. 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:

  1. Välj en virtuell dator.
  2. Välj Tillägg.
  3. Välj önskat tillägg.
  4. 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.