Rozszerzenia i funkcje maszyn wirtualnych dla systemu Windows

Rozszerzenia maszyny wirtualnej platformy Azure to małe aplikacje, które zapewniają konfigurację po wdrożeniu i zadania automatyzacji na maszynach wirtualnych platformy Azure. Jeśli na przykład maszyna wirtualna wymaga instalacji oprogramowania, ochrony antywirusowej lub możliwości uruchamiania skryptu wewnątrz maszyny wirtualnej, możesz użyć rozszerzenia maszyny wirtualnej.

Rozszerzenia maszyn wirtualnych platformy Azure można uruchamiać przy użyciu interfejsu wiersza polecenia platformy Azure, programu PowerShell, szablonów usługi Azure Resource Manager (ARM) i witryny Azure Portal. Rozszerzenia można pakować przy użyciu nowego wdrożenia maszyny wirtualnej lub uruchamiać je w dowolnym istniejącym systemie.

Ten artykuł zawiera omówienie rozszerzeń maszyn wirtualnych platformy Azure, w tym wymagań wstępnych i wskazówek dotyczących wykrywania rozszerzeń, zarządzania nimi i usuwania ich. Ten artykuł zawiera uogólnione informacje, ponieważ dostępnych jest wiele rozszerzeń maszyn wirtualnych. Każde rozszerzenie ma potencjalnie unikatową konfigurację i własną dokumentację.

Przypadki użycia i przykłady

Każde rozszerzenie maszyny wirtualnej platformy Azure ma określony przypadek użycia. Oto kilka przykładów:

  • Zastosuj konfiguracje żądanego stanu programu PowerShell do maszyny wirtualnej przy użyciu rozszerzenia DSC dla systemu Windows.

  • Konfigurowanie monitorowania maszyny wirtualnej przy użyciu agenta usługi Azure Monitor i szczegółowych informacji o maszynie wirtualnej.

  • Konfigurowanie maszyny wirtualnej platformy Azure przy użyciu programu Chef.

  • Skonfiguruj monitorowanie infrastruktury platformy Azure przy użyciu rozszerzenia Datadog.

Oprócz rozszerzeń specyficznych dla procesu rozszerzenie niestandardowego skryptu jest dostępne dla maszyn wirtualnych z systemami Windows i Linux. Rozszerzenie niestandardowego skryptu dla systemu Windows umożliwia uruchamianie dowolnego skryptu programu PowerShell na maszynie wirtualnej. Skrypty niestandardowe są przydatne do projektowania wdrożeń platformy Azure, które wymagają konfiguracji poza możliwościami natywnego narzędzia platformy Azure.

Wymagania wstępne

Zapoznaj się z poniższymi wymaganiami wstępnymi dotyczącymi pracy z rozszerzeniami maszyn wirtualnych platformy Azure.

Agent maszyny wirtualnej platformy Azure

Do obsługi rozszerzeń na maszynie wirtualnej potrzebny jest agent maszyny wirtualnej platformy Azure dla systemu Windows . Ten agent jest również nazywany agentem maszyny wirtualnej platformy Azure lub agentem gościa systemu Windows. Podczas przygotowywania do instalowania rozszerzeń należy pamiętać, że niektóre rozszerzenia mają indywidualne wymagania wstępne, takie jak dostęp do zasobów lub zależności.

Agent maszyny wirtualnej platformy Azure zarządza interakcjami między maszyną wirtualną platformy Azure a kontrolerem sieci szkieletowej platformy Azure. Agent jest odpowiedzialny za wiele funkcjonalnych aspektów wdrażania maszyn wirtualnych platformy Azure i zarządzania nimi, w tym uruchamiania rozszerzeń maszyn wirtualnych.

Agent maszyny wirtualnej platformy Azure jest wstępnie zainstalowany na obrazach witryny Azure Marketplace. Agent można również zainstalować ręcznie w obsługiwanych systemach operacyjnych.

Agent działa w wielu systemach operacyjnych. Jednak struktura rozszerzeń ma limit dla systemów operacyjnych, które używają rozszerzeń. Niektóre rozszerzenia nie są obsługiwane we wszystkich systemach operacyjnych i mogą emitować kod błędu 51 ("Nieobsługiwany system operacyjny"). Zapoznaj się z dokumentacją poszczególnych rozszerzeń, aby uzyskać pomoc techniczną.

Dostęp do sieci

Pakiety rozszerzeń są pobierane z repozytorium rozszerzenia usługi Azure Storage. Przekazywanie stanu rozszerzenia jest publikowane w usłudze Azure Storage.

Jeśli używasz obsługiwanej wersji agenta maszyny wirtualnej platformy Azure, nie musisz zezwalać na dostęp do usługi Azure Storage w regionie maszyny wirtualnej. Agent maszyny wirtualnej umożliwia przekierowanie komunikacji z kontrolerem sieci szkieletowej platformy Azure na potrzeby komunikacji agenta (za pośrednictwem funkcji za pośrednictwem HostGAPlugin uprzywilejowanego kanału na prywatnym adresie IP 168.63.129.16). Jeśli korzystasz z nieobsługiwanej wersji agenta maszyny wirtualnej, musisz zezwolić na dostęp wychodzący do usługi Azure Storage w tym regionie z maszyny wirtualnej.

Ważne

Jeśli zablokujesz dostęp do adresu IP 168.63.129.16 przy użyciu zapory gościa lub za pośrednictwem serwera proxy, rozszerzenia kończą się niepowodzeniem. Awaria występuje nawet wtedy, gdy używasz obsługiwanej wersji agenta maszyny wirtualnej lub konfigurujesz dostęp wychodzący. Wymagane są porty 80 i 32526.

Agenci mogą służyć tylko do pobierania pakietów rozszerzeń i stanu raportu. Jeśli na przykład instalacja rozszerzenia musi pobrać skrypt z usługi GitHub (rozszerzenie niestandardowego skryptu) lub wymaga dostępu do usługi Azure Storage (Azure Backup), musisz otworzyć inne porty zapory lub sieciowej grupy zabezpieczeń. Różne rozszerzenia mają różne wymagania, ponieważ są aplikacjami we własnym zakresie. W przypadku rozszerzeń, które wymagają dostępu do usługi Azure Storage lub identyfikatora entra firmy Microsoft, możesz zezwolić na dostęp przy użyciu tagów usługi sieciowej grupy zabezpieczeń platformy Azure.

Agent maszyny wirtualnej platformy Azure nie zapewnia obsługi serwera proxy w celu włączenia przekierowywania żądań ruchu agenta. Agent maszyny wirtualnej korzysta z niestandardowego serwera proxy (jeśli masz go) w celu uzyskania dostępu do zasobów w Internecie lub na hoście za pośrednictwem adresu IP 168.63.129.16.

Odnajdywanie rozszerzeń maszyn wirtualnych

Wiele rozszerzeń maszyn wirtualnych jest dostępnych do użycia z maszynami wirtualnymi platformy Azure. Aby wyświetlić pełną listę, użyj Get-AzVMExtensionImage polecenia cmdlet programu PowerShell.

Następujące polecenie wyświetla listę wszystkich dostępnych rozszerzeń maszyn wirtualnych w lokalizacji regionu Zachodnie stany USA:

Get-AzVmImagePublisher -Location "West US" |
Get-AzVMExtensionImageType |
Get-AzVMExtensionImage | Select Type, Version

To polecenie udostępnia dane wyjściowe podobne do następującego przykładu:

Type                Version
----                -------
AcronisBackup       1.0.33
AcronisBackup       1.0.51
AcronisBackupLinux  1.0.33
AlertLogicLM        1.3.0.1
AlertLogicLM        1.3.0.0
AlertLogicLM        1.4.0.1

Uruchamianie rozszerzeń maszyn wirtualnych

Rozszerzenia maszyn wirtualnych platformy Azure działają na istniejących maszynach wirtualnych, co jest przydatne, gdy konieczne jest wprowadzenie zmian konfiguracji lub odzyskanie łączności na już wdrożonej maszynie wirtualnej. Rozszerzenia maszyn wirtualnych można również powiązać z wdrożeniami szablonów usługi ARM. Korzystając z rozszerzeń z szablonami usługi ARM, można wdrażać i konfigurować maszyny wirtualne platformy Azure bez interwencji po wdrożeniu.

Aby uruchomić rozszerzenie dla istniejącej maszyny wirtualnej, można użyć następujących metod.

Uwaga

Niektóre z poniższych przykładów używają "<placeholder>" wartości parametrów w poleceniach. Przed uruchomieniem każdego polecenia pamiętaj, aby zastąpić wszystkie "<placeholder>" wartości określonymi wartościami konfiguracji.

PowerShell

Istnieje kilka poleceń programu PowerShell do uruchamiania poszczególnych rozszerzeń. Aby wyświetlić listę, użyj polecenia Get-Command i filtruj dla rozszerzenia:

Get-Command Set-Az*Extension* -Module Az.Compute

To polecenie udostępnia dane wyjściowe podobne do następującego przykładu:

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

W poniższym przykładzie użyto rozszerzenia niestandardowego skryptu, aby pobrać skrypt z repozytorium GitHub na docelową maszynę wirtualną, a następnie uruchomić skrypt.

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 "<myVMregion>"

W poniższym przykładzie użyto rozszerzenia VMAccess, aby zresetować hasło administracyjne maszyny wirtualnej z systemem Windows do tymczasowego hasła. Po uruchomieniu tego kodu należy zresetować hasło podczas pierwszego logowania.

$cred=Get-Credential

Set-AzVMAccessExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myVMAccess" `
    -Location "myVMregion" -UserName $cred.GetNetworkCredential().Username `
    -Password $cred.GetNetworkCredential().Password -typeHandlerVersion "2.0"

Aby uruchomić dowolne rozszerzenie maszyny wirtualnej, możesz użyć polecenia Set-AzVMExtension .

Azure Portal

Rozszerzenia maszyn wirtualnych można zastosować do istniejącej maszyny wirtualnej za pośrednictwem witryny Azure Portal. Wybierz maszynę wirtualną w portalu, wybierz pozycję Rozszerzenia i aplikacje, a następnie wybierz pozycję + Dodaj. Wybierz żądane rozszerzenie z listy dostępnych rozszerzeń i postępuj zgodnie z instrukcjami w kreatorze.

W poniższym przykładzie pokazano instalację rozszerzenia Microsoft Antimalware z witryny Azure Portal:

Screenshot of the dialog for installing the Microsoft Antimalware extension.

Szablony usługi Azure Resource Manager

Rozszerzenia maszyn wirtualnych można dodawać do szablonu usługi ARM i uruchamiać je przy użyciu wdrożenia szablonu. Podczas wdrażania rozszerzenia przy użyciu szablonu można utworzyć w pełni skonfigurowane wdrożenia platformy Azure.

Poniższy przykład JSON pochodzi z szablonu usługi ARM, który wdraża zestaw maszyn wirtualnych o zrównoważonym obciążeniu i bazy danych Azure SQL Database, a następnie instaluje aplikację platformy .NET Core na każdej maszynie wirtualnej. Rozszerzenie maszyny wirtualnej zajmuje się instalacją oprogramowania.

{
    "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')]"
    }
    }
}

Aby uzyskać więcej informacji na temat tworzenia szablonów usługi ARM, zobacz Maszyny wirtualne w szablonie usługi ARM.

Zabezpieczanie danych rozszerzenia maszyny wirtualnej

Po uruchomieniu rozszerzenia maszyny wirtualnej może być konieczne uwzględnienie poufnych informacji, takich jak poświadczenia, nazwy kont magazynu i klucze dostępu. Wiele rozszerzeń maszyn wirtualnych obejmuje konfigurację chronioną, która szyfruje dane i odszyfrowuje je tylko wewnątrz docelowej maszyny wirtualnej. Każde rozszerzenie ma określony schemat konfiguracji chronionej, a każdy schemat jest szczegółowo opisany w dokumentacji specyficznej dla rozszerzenia.

Poniższy przykład JSON przedstawia wystąpienie rozszerzenia niestandardowego skryptu dla systemu Windows. Polecenie do uruchomienia zawiera zestaw poświadczeń. W tym przykładzie polecenie do uruchomienia nie jest szyfrowane.

{
    "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')]"
    }
    }
}

commandToExecute Przeniesienie właściwości do konfiguracji pomaga zabezpieczyć protected ciąg wykonywania, jak pokazano w poniższym przykładzie:

{
    "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')]"
    }
    }
}

Na maszynie wirtualnej infrastruktury jako usługi (IaaS) platformy Azure korzystającej z rozszerzeń w konsoli certyfikatów mogą być widoczne certyfikaty, które mają podmiot Generator certyfikatów CRP platformy Windows Azure. Na klasycznej maszynie wirtualnej frontonu reddog (RDFE) te certyfikaty mają nazwę podmiotu Windows Azure Service Management for Extensions.

Te certyfikaty zabezpieczają komunikację między maszyną wirtualną a hostem podczas transferu ustawień chronionych (hasła i innych poświadczeń), które używają rozszerzeń. Kontroler sieci szkieletowej platformy Azure tworzy certyfikaty i przekazuje je do agenta maszyny wirtualnej platformy Azure. Jeśli co dzień zatrzymasz i uruchomisz maszynę wirtualną, kontroler sieci szkieletowej może utworzyć nowy certyfikat. Certyfikat jest przechowywany w osobistym magazynie certyfikatów komputera. Te certyfikaty można usunąć. W razie potrzeby agent maszyny wirtualnej platformy Azure ponownie tworzy certyfikaty.

Jak są aktualizowani agenci i rozszerzenia

Agenci i rozszerzenia mają ten sam mechanizm automatycznej aktualizacji.

Po udostępnieniu aktualizacji i włączeniu aktualizacji automatycznych aktualizacja jest instalowana na maszynie wirtualnej dopiero po zmianie rozszerzenia lub innego modelu maszyny wirtualnej. Zmiany mogą obejmować:

  • Dyski danych
  • Rozszerzenia
  • Tagi rozszerzeń
  • Kontener diagnostyki rozruchu
  • Wpisy tajne systemu operacyjnego gościa
  • Rozmiar maszyny wirtualnej
  • Profil sieci

Wydawcy udostępniają aktualizacje regionom w różnych momentach. Istnieje możliwość, że maszyny wirtualne mogą znajdować się w różnych regionach w różnych wersjach.

Uwaga

Niektóre aktualizacje mogą wymagać dodatkowych reguł zapory. Aby uzyskać więcej informacji, zobacz Dostęp sieciowy.

Wyświetlanie listy rozszerzeń wdrożonych na maszynie wirtualnej

Aby wyświetlić listę rozszerzeń wdrożonych na maszynie wirtualnej, możesz użyć następującego polecenia:

$vm = Get-AzVM -ResourceGroupName "<myResourceGroup>" -VMName "<myVM>"
$vm.Extensions | select Publisher, VirtualMachineExtensionType, TypeHandlerVersion

To polecenie generuje dane wyjściowe podobne do następującego przykładu:

Publisher             VirtualMachineExtensionType          TypeHandlerVersion
---------             ---------------------------          ------------------
Microsoft.Compute     CustomScriptExtension                1.9

Aktualizacje agenta

Agent maszyny wirtualnej platformy Azure zawiera tylko kod obsługujący rozszerzenia. Kod aprowizacji systemu Windows jest oddzielny. Agenta maszyny wirtualnej platformy Azure można odinstalować. Nie można wyłączyć automatycznej aktualizacji agenta maszyny wirtualnej platformy Azure.

Kod obsługi rozszerzeń jest odpowiedzialny za następujące zadania:

  • Komunikacja z siecią szkieletową platformy Azure.
  • Obsługa operacji rozszerzenia maszyny wirtualnej, takich jak instalacje, stan raportowania, aktualizowanie poszczególnych rozszerzeń i usuwanie rozszerzeń. Aktualizacje zawierają poprawki zabezpieczeń, poprawki błędów i ulepszenia kodu obsługującego rozszerzenia.

Aby sprawdzić, jaka wersja jest uruchomiona, zobacz Wykrywanie agenta maszyny wirtualnej platformy Azure.

Aktualizacje rozszerzeń

Jeśli aktualizacja rozszerzenia jest dostępna, a aktualizacje automatyczne są włączone, jeśli model maszyny wirtualnej ulegnie zmianie, agent maszyny wirtualnej platformy Azure pobiera i uaktualnia rozszerzenie.

Aktualizacje rozszerzeń automatycznych są pomocnicze lub poprawki. Możesz zrezygnować z aktualizacji pomocniczych lub zrezygnować z tych aktualizacji podczas aprowizacji rozszerzenia. W poniższym przykładzie pokazano, jak automatycznie uaktualnić wersje pomocnicze w szablonie usługi ARM przy użyciu parametru "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"
        ]
    },

Aby uzyskać najnowsze poprawki błędów wersji pomocniczej, zdecydowanie zalecamy wybranie automatycznej aktualizacji we wdrożeniach rozszerzeń. Nie można zrezygnować z aktualizacji poprawek, które niosą poprawki zabezpieczeń lub kluczowych usterek.

Jeśli wyłączysz aktualizacje automatyczne lub musisz uaktualnić wersję główną, użyj polecenia Set-AzVMExtension i określ wersję docelową.

Jak identyfikować aktualizacje rozszerzeń

Istnieje kilka sposobów identyfikowania aktualizacji rozszerzenia.

Określ, czy rozszerzenie jest ustawione za pomocą funkcji autoUpgradeMinorVersion na maszynie wirtualnej

Model maszyny wirtualnej można wyświetlić, aby określić, czy rozszerzenie jest aprowizowane za pomocą parametru autoUpgradeMinorVersion . Aby sprawdzić model maszyny wirtualnej, użyj polecenia Get-AzVm i podaj grupę zasobów i nazwę maszyny wirtualnej w następujący sposób:

 $vm = Get-AzVm -ResourceGroupName "myResourceGroup" -VMName "myVM"
 $vm.Extensions

Następujące przykładowe dane wyjściowe pokazują, że autoUpgradeMinorVersion parametr jest ustawiony na truewartość :

ForceUpdateTag              :
Publisher                   : Microsoft.Compute
VirtualMachineExtensionType : CustomScriptExtension
TypeHandlerVersion          : 1.9
AutoUpgradeMinorVersion     : True

Identyfikowanie wystąpienia zdarzenia autoUpgradeMinorVersion

Aby sprawdzić, kiedy wystąpiła aktualizacja rozszerzenia, możesz przejrzeć dzienniki agenta na maszynie wirtualnej pod adresem C:\WindowsAzure\Logs\WaAppAgent.log.

W poniższym przykładzie przedstawiono maszynę wirtualną z zainstalowaną Microsoft.Compute.CustomScriptExtension wersją 1.8 oraz poprawkę dostępną dla wersji 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'

Uprawnienia agenta

Aby wykonać swoje zadania, agent maszyny wirtualnej platformy Azure musi działać jako system lokalny.

Rozwiązywanie problemów z rozszerzeniami maszyn wirtualnych

Każde rozszerzenie maszyny wirtualnej może mieć określone kroki rozwiązywania problemów. Na przykład w przypadku korzystania z rozszerzenia niestandardowego skryptu można znaleźć szczegóły wykonywania skryptu lokalnie na maszynie wirtualnej, na której jest uruchamiane rozszerzenie.

Następujące akcje rozwiązywania problemów dotyczą wszystkich rozszerzeń maszyn wirtualnych:

  • Aby sprawdzić dziennik agenta maszyny wirtualnej platformy Azure, sprawdź działanie podczas aprowizowania rozszerzenia w folderze C:\WindowsAzure\Logs\WaAppAgent.log.

  • Sprawdź dzienniki rozszerzeń, aby uzyskać więcej szczegółów w folderze C:\WindowsAzure\Logs\Plugins<extensionName>.

  • Zapoznaj się z sekcjami rozwiązywania problemów w dokumentacji specyficznej dla rozszerzenia, aby zapoznać się z kodami błędów, znanymi problemami i innymi informacjami specyficznymi dla rozszerzenia.

  • Przyjrzyj się dziennikom systemu. Sprawdź inne operacje, które mogły zakłócać działanie rozszerzenia, takie jak długotrwała instalacja innej aplikacji, która wymagała wyłącznego dostępu do menedżera pakietów.

  • Jeśli na maszynie wirtualnej istnieje istniejące rozszerzenie ze stanem nieudanej aprowizacji, nie można zainstalować żadnego innego nowego rozszerzenia.

Typowe przyczyny błędów rozszerzeń

Poniżej przedstawiono niektóre typowe przyczyny niepowodzenia rozszerzenia:

  • Rozszerzenia mają 20 minut do uruchomienia. (Wyjątki to Skrypt niestandardowy, Chef i DSC, które mają 90 minut). Jeśli wdrożenie przekroczy ten czas, zostanie ono oznaczone jako limit czasu. Przyczyną tego problemu mogą być maszyny wirtualne o niskim zasobie lub inne konfiguracje maszyn wirtualnych lub zadania uruchamiania zużywają duże ilości zasobów podczas próby aprowizacji rozszerzenia.

  • Minimalne wymagania wstępne nie są spełnione. Niektóre rozszerzenia mają zależności od jednostek SKU maszyn wirtualnych, takich jak obrazy HPC. Rozszerzenia mogą mieć pewne wymagania dotyczące dostępu do sieci, takie jak komunikacja z usługą Azure Storage lub usługami publicznymi. Inne przykłady mogą być dostępem do repozytoriów pakietów, wyczerpania miejsca na dysku lub ograniczeń zabezpieczeń.

  • Dostęp menedżera pakietów jest wyłączny. W niektórych przypadkach długotrwała konfiguracja maszyny wirtualnej i instalacja rozszerzenia mogą powodować konflikt, ponieważ oba te elementy wymagają wyłącznego dostępu do menedżera pakietów.

Wyświetlanie stanu rozszerzenia

Po uruchomieniu rozszerzenia maszyny wirtualnej na maszynie wirtualnej użyj polecenia Get-AzVM , aby zwrócić stan rozszerzenia. Wynik Substatuses[0] pokazuje, że aprowizacja rozszerzenia powiodła się, co oznacza, że pomyślnie wdrożono ją na maszynie wirtualnej. Jeśli zobaczysz Substatuses[1] wynik, wykonanie rozszerzenia wewnątrz maszyny wirtualnej nie powiodło się.

Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM" -Status

Dane wyjściowe są podobne do poniższego przykładu:

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

Stan wykonywania rozszerzenia można również znaleźć w witrynie Azure Portal. Wybierz maszynę wirtualną, wybierz pozycję Rozszerzenia, a następnie wybierz odpowiednie rozszerzenie.

Ponowne uruchamianie rozszerzenia maszyny wirtualnej

W niektórych przypadkach może być konieczne ponowne uruchomienie rozszerzenia maszyny wirtualnej. Możesz ponownie uruchomić rozszerzenie, usuwając rozszerzenie, a następnie ponownie uruchamiając rozszerzenie przy użyciu wybranej metody wykonywania. Aby usunąć rozszerzenie, użyj polecenia Remove-AzVMExtension w następujący sposób:

Remove-AzVMExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myExtensionName"

Możesz również usunąć rozszerzenie w witrynie Azure Portal. Wybierz maszynę wirtualną, wybierz pozycję Rozszerzenia, a następnie wybierz odpowiednie rozszerzenie. Wybierz Odinstaluj.

Dokumentacja typowego rozszerzenia maszyny wirtualnej

Poniższa tabela zawiera kilka typowych odwołań dla rozszerzeń maszyn wirtualnych.

Nazwa rozszerzenia opis
Rozszerzenie niestandardowego skryptu dla systemu Windows Uruchamianie skryptów na maszynie wirtualnej platformy Azure.
Rozszerzenie DSC dla systemu Windows Zastosuj konfiguracje żądanego stanu programu PowerShell do maszyny wirtualnej.
rozszerzenie Diagnostyka Azure Zarządzanie Diagnostyka Azure.
Rozszerzenie VMAccess Zarządzanie użytkownikami i poświadczeniami.

Następne kroki

Aby uzyskać więcej informacji na temat rozszerzeń maszyn wirtualnych, zobacz Rozszerzenia i funkcje maszyn wirtualnych platformy Azure.