Rozszerzenia i funkcje maszyny wirtualnej dla systemu Linux

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 w nim, 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 (szablonów usługi 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, wymagań wstępnych dotyczących ich używania oraz wskazówki dotyczące sposobu ich wykrywania, zarządzania i usuwania. Ten artykuł zawiera uogólnione informacje, ponieważ dostępnych jest wiele rozszerzeń maszyn wirtualnych. Każda z nich 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:

  • Konfigurowanie monitorowania maszyny wirtualnej przy użyciu rozszerzenia maszyny wirtualnej programu Microsoft Monitoring Agent.
  • Skonfiguruj monitorowanie infrastruktury platformy Azure przy użyciu rozszerzenia Chef lub 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 Linux umożliwia uruchamianie dowolnego skryptu powłoki Bash 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

Azure Linux Agent

Aby obsłużyć rozszerzenie na maszynie wirtualnej, musisz zainstalować agenta systemu Linux platformy Azure. Niektóre poszczególne rozszerzenia mają wymagania wstępne, takie jak dostęp do zasobów lub zależności.

Agent systemu Linux platformy Azure zarządza interakcjami między maszyną wirtualną platformy Azure i 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 systemu Linux platformy Azure jest wstępnie zainstalowany na obrazach witryny Azure Marketplace. Można go 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 systemu Linux platformy Azure, nie musisz zezwalać na dostęp do usługi Azure Storage w regionie maszyny wirtualnej. Agent może użyć do przekierowania komunikacji z kontrolerem sieci szkieletowej platformy Azure na potrzeby komunikacji agenta. Jeśli korzystasz z nieobsługiwanej wersji agenta, musisz zezwolić na dostęp wychodzący do usługi Azure Storage w tym regionie z maszyny wirtualnej.

Ważne

Jeśli zablokowano dostęp do prywatnego adresu IP 168.63.129.16 przy użyciu zapory gościa, rozszerzenia kończą się niepowodzeniem, nawet jeśli używasz obsługiwanej wersji agenta lub skonfigurowano dostęp wychodzący.

Agenci mogą służyć tylko do pobierania pakietów rozszerzeń i stanu raportowania. Jeśli na przykład instalacja rozszerzenia musi pobrać skrypt z usługi GitHub (rozszerzenie niestandardowego skryptu) lub musi mieć dostęp do usługi Azure Storage (Azure Backup), musisz otworzyć dodatkowe 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, możesz zezwolić na dostęp przy użyciu tagów usługi sieciowych grup zabezpieczeń platformy Azure.

Aby przekierować żądania ruchu agenta, agent systemu Linux platformy Azure ma obsługę serwera proxy. Jednak ta obsługa serwera proxy nie ma zastosowania rozszerzeń. Należy skonfigurować każde indywidualne rozszerzenie do pracy z serwerem proxy.

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 polecenia az vm extension image list. Poniższy przykład zawiera listę wszystkich dostępnych rozszerzeń w lokalizacji westus :

az vm extension image list --location westus --output table

Uruchamianie rozszerzeń maszyn wirtualnych

Rozszerzenia maszyn wirtualnych platformy Azure działają na istniejących maszynach wirtualnych. Jest to przydatne, gdy musisz wprowadzić zmiany konfiguracji lub odzyskać łączność 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.

Interfejs wiersza polecenia platformy Azure

Rozszerzenia maszyn wirtualnych platformy Azure można uruchamiać na istniejącej maszynie wirtualnej przy użyciu polecenia az vm extension set . Poniższy przykład uruchamia rozszerzenie niestandardowego skryptu względem maszyny wirtualnej o nazwie myVM w grupie zasobów o nazwie myResourceGroup. Zastąp przykładowa nazwa grupy zasobów, nazwa maszyny wirtualnej i skrypt do uruchomienia (https://raw.githubusercontent.com/me/project/hello.sh) własnymi informacjami.

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name customScript \
  --publisher Microsoft.Azure.Extensions \
  --settings '{"fileUris": ["https://raw.githubusercontent.com/me/project/hello.sh"],"commandToExecute": "./hello.sh"}'

Gdy rozszerzenie działa poprawnie, dane wyjściowe są podobne do następującego przykładu:

info:    Executing command vm extension set
+ Looking up the VM "myVM"
+ Installing extension "CustomScript", VM: "mvVM"
info:    vm extension set command OK

Azure PowerShell

Rozszerzenia maszyn wirtualnych platformy Azure można uruchamiać na istniejącej maszynie wirtualnej przy użyciu polecenia Set-AzVMExtension . Poniższy przykład uruchamia rozszerzenie niestandardowego skryptu względem maszyny wirtualnej o nazwie myVM w grupie zasobów o nazwie myResourceGroup. Zastąp przykładowa nazwa grupy zasobów, nazwa maszyny wirtualnej i skrypt do uruchomienia (https://raw.githubusercontent.com/me/project/hello.sh) własnymi informacjami.

$Params = @{
    ResourceGroupName  = 'myResourceGroup'
    VMName             = 'myVM'
    Name               = 'CustomScript'
    Publisher          = 'Microsoft.Azure.Extensions'
    ExtensionType      = 'CustomScript'
    TypeHandlerVersion = '2.1'
    Settings          = @{fileUris = @('https://raw.githubusercontent.com/me/project/hello.sh'); commandToExecute = './hello.sh'}
}
Set-AzVMExtension @Params

Gdy rozszerzenie działa poprawnie, dane wyjściowe są podobne do następującego przykładu:

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK

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, a następnie wybierz pozycję Dodaj. Wybierz żądane rozszerzenie z listy dostępnych rozszerzeń i postępuj zgodnie z instrukcjami w kreatorze.

Na poniższej ilustracji przedstawiono instalację rozszerzenia Custom Script dla systemu Linux w witrynie Azure Portal:

Screenshot of the dialog for installing the Custom Script extension for Linux.

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.

Na przykład poniższy kod JSON jest pobierany z pełnego szablonu usługi ARM, który wdraża zestaw maszyn wirtualnych z równoważeniem obciążenia i bazę 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/', concat(variables('vmName'),copyindex()))]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('sudo sh config-music.sh ',variables('musicStoreSqlName'), ' ', parameters('adminUsername'), ' ', parameters('sqlAdminPassword'))]"
    }
    }
}

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

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 z nich jest szczegółowo opisany w dokumentacji specyficznej dla rozszerzenia.

W poniższym przykładzie pokazano wystąpienie rozszerzenia Niestandardowego skryptu dla systemu Linux. 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/', concat(variables('vmName'),copyindex()))]"
  ],
  "tags": {
    "displayName": "config-app"
  },
  "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
      ],
      "commandToExecute": "[concat('sudo sh config-music.sh ',variables('musicStoreSqlName'), ' ', parameters('adminUsername'), ' ', parameters('sqlAdminPassword'))]"
    }
  }
}

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/', concat(variables('vmName'),copyindex()))]"
  ],
  "tags": {
    "displayName": "config-app"
  },
  "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
      ]
    },
    "protectedSettings": {
      "commandToExecute": "[concat('sudo sh config-music.sh ',variables('musicStoreSqlName'), ' ', parameters('adminUsername'), ' ', parameters('sqlAdminPassword'))]"
    }
  }
}

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 po zmianie innego modelu maszyny wirtualnej, na przykład:

  • 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, dzięki czemu można mieć maszyny wirtualne w różnych regionach w różnych wersjach.

Uwaga

Niektóre aktualizacje mogą wymagać dodatkowych reguł zapory. Zobacz Dostęp sieciowy.

Aktualizacje agenta

Agent maszyny wirtualnej z systemem Linux zawiera kod agenta aprowizacji i kod obsługi rozszerzeń w jednym pakiecie. Nie można ich oddzielić.

Agent aprowizacji można wyłączyć, gdy chcesz aprowizować na platformie Azure przy użyciu pakietu cloud-init.

Obsługiwane wersje agentów mogą używać aktualizacji automatycznych. Jedynym kodem, który można zaktualizować, jest kod obsługi rozszerzeń, a nie kod agenta aprowizacji. Kod agenta aprowizacji jest uruchamiany raz.

Kod obsługi rozszerzeń jest odpowiedzialny za:

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

Po zainstalowaniu agenta zostanie utworzony demon nadrzędny. Ten element nadrzędny następnie powoduje zduplikowania procesu podrzędnego używanego do obsługi rozszerzeń. Jeśli aktualizacja jest dostępna dla agenta, zostanie pobrana. Element nadrzędny zatrzymuje proces podrzędny, uaktualnia go, a następnie uruchamia go ponownie. Jeśli wystąpił problem z aktualizacją, proces nadrzędny zostanie wycofany do poprzedniej wersji podrzędnej.

Nie można automatycznie zaktualizować procesu nadrzędnego. Element nadrzędny może być aktualizowany tylko przez aktualizację pakietu dystrybucji.

Aby sprawdzić, jaka wersja jest uruchomiona, sprawdź waagent w następujący sposób:

waagent --version

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

WALinuxAgent-2.2.45 running on <Linux Distro>
Python: 3.6.9
Goal state agent: 2.7.1.0

W poprzednich przykładowych danych wyjściowych element nadrzędny (lub wdrożona wersja pakietu) to WALinuxAgent-2.2.45. Wartość Goal state agent to wersja automatycznej aktualizacji.

Zdecydowanie zalecamy, aby zawsze włączać automatyczną aktualizację agenta: AutoUpdate.Enabled=y. Jeśli nie włączysz automatycznej aktualizacji, musisz zachować ręczne aktualizowanie agenta i nie otrzymasz poprawek błędów i zabezpieczeń.

Aktualizacje rozszerzeń

Po udostępnieniu aktualizacji rozszerzenia i włączeniu aktualizacji automatycznych po zmianie modelu maszyny wirtualnej agent systemu Linux 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 polecenia "autoUpgradeMinorVersion": true,:

    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
        ]
    },

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 az vm extension set lub Set-AzVMExtension i określ wersję docelową.

Jak identyfikować aktualizacje rozszerzeń

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

Model maszyny wirtualnej można zobaczyć, czy rozszerzenie zostało aprowidowane za pomocą autoUpgradeMinorVersionpolecenia . Aby to sprawdzić, użyj polecenia az vm show i podaj nazwę grupy zasobów i maszyny wirtualnej w następujący sposób:

az vm show --resource-group myResourceGroup --name myVM

Następujące przykładowe dane wyjściowe pokazują, że autoUpgradeMinorVersion ustawiono wartość true:

  "resources": [
    {
      "autoUpgradeMinorVersion": true,
      "forceUpdateTag": null,
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM/extensions/customScript",

Identyfikowanie, kiedy wystąpiło zdarzenie autoUpgradeMinorVersion

Aby sprawdzić, kiedy wystąpiła aktualizacja rozszerzenia, przejrzyj dzienniki agenta na maszynie wirtualnej pod adresem /var/log/waagent.log.

W poniższym przykładzie maszyna wirtualna została Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025 zainstalowana. Poprawka była dostępna dla Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027programu .

INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Expected handler state: enabled
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Decide which version to use
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Use version: 2.3.9027
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Current handler state is: NotInstalled
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Download extension package
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Unpack extension package
INFO Event: name=Microsoft.OSTCExtensions.LinuxDiagnostic, op=Download, message=Download succeeded
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Initialize extension directory
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Update settings file: 0.settings
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025] Disable extension.
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025] Launch command:diagnostic.py -disable
...
INFO Event: name=Microsoft.OSTCExtensions.LinuxDiagnostic, op=Disable, message=Launch command succeeded: diagnostic.py -disable
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Update extension.
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Launch command:diagnostic.py -update
2017/08/14 20:21:57 LinuxAzureDiagnostic started to handle.

Uprawnienia agenta

Aby wykonać swoje zadania, agent musi działać jako główny.

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 uruchomiono rozszerzenie.

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

  • Aby sprawdzić dziennik agenta systemu Linux platformy Azure, sprawdź działanie podczas aprowizowania rozszerzenia w pliku /var/log/waagent.log.

  • Sprawdź dzienniki rozszerzeń, aby uzyskać więcej szczegółów w pliku /var/log/azure/<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.

Typowe przyczyny błędów rozszerzeń

  • Rozszerzenia mają 20 minut do uruchomienia. (Wyjątki to Skrypt niestandardowy i Chef, które mają 90 minut). Jeśli wdrożenie przekroczy ten czas, zostanie ono oznaczone jako limit czasu. Przyczyną 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 az vm get-instance-view , aby zwrócić stan rozszerzenia w następujący sposób:

az vm get-instance-view \
    --resource-group myResourceGroup \
    --name myVM \
    --query "instanceView.extensions"

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

  {
    "name": "customScript",
    "statuses": [
      {
        "code": "ProvisioningState/failed/0",
        "displayStatus": "Provisioning failed",
        "level": "Error",
        "message": "Enable failed: failed to execute command: command terminated with exit status=127\n[stdout]\n\n[stderr]\n/bin/sh: 1: ech: not found\n",
        "time": null
      }
    ],
    "substatuses": null,
    "type": "Microsoft.Azure.Extensions.CustomScript",
    "typeHandlerVersion": "2.1.6"
  }

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

Mogą wystąpić przypadki, w których należy ponownie uruchomić rozszerzenie maszyny wirtualnej. Możesz ponownie uruchomić rozszerzenie, usuwając je, a następnie ponownie uruchamiając rozszerzenie przy użyciu wybranej metody wykonywania.

Aby usunąć rozszerzenie, użyj polecenia az vm extension delete w następujący sposób:

az vm extension delete \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --name customScript

Możesz również usunąć rozszerzenie w witrynie Azure Portal:

  1. Wybierz maszynę wirtualną.
  2. Wybierz pozycję Rozszerzenia.
  3. Wybierz rozszerzenie.
  4. Wybierz Odinstaluj.

Dokumentacja typowego rozszerzenia maszyny wirtualnej

Nazwa rozszerzenia opis
Rozszerzenie niestandardowego skryptu dla systemu Linux Uruchamianie skryptów na maszynie wirtualnej platformy Azure.
Rozszerzenie VMAccess Odzyskaj dostęp do maszyny wirtualnej platformy Azure. Można go również użyć do zarządzania użytkownikami i poświadczeniami.
rozszerzenie Diagnostyka Azure Zarządzanie Diagnostyka Azure.

Następne kroki

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