Informationen zu Erweiterungen und Features für virtuelle Computer für LinuxVirtual machine extensions and features for Linux

Erweiterungen für virtuelle Azure-Computer sind kleine Anwendungen, die Konfigurations- und Automatisierungsaufgaben auf virtuellen Azure-Computern nach der Bereitstellung ermöglichen.Azure virtual machine (VM) extensions are small applications that provide post-deployment configuration and automation tasks on Azure VMs. Wenn z.B. Software auf einem virtuellen Computer (virtual machine, VM) installiert werden muss, Virenschutz oder die Ausführung eines Skripts erforderlich ist, kann eine VM-Erweiterung verwendet werden.For example, if a virtual machine requires software installation, anti-virus protection, or to run a script inside of it, a VM extension can be used. Azure-VM-Erweiterungen können mithilfe der Azure-Befehlszeilenschnittstelle, PowerShell, Azure Resource Manager-Vorlagen und dem Azure-Portal ausgeführt werden.Azure VM extensions can be run with the Azure CLI, PowerShell, Azure Resource Manager templates, and the Azure portal. Erweiterungen können mit einer neuen Bereitstellung für virtuelle Computer gebündelt oder für ein bestehendes System ausgeführt werden.Extensions can be bundled with a new VM deployment, or run against any existing system.

Dieser Artikel enthält eine Übersicht der VM-Erweiterungen, erläutert Voraussetzungen für die Verwendung von Azure-VM-Erweiterungen und bietet Hilfestellung beim Erkennen, Verwalten und Entfernen von VM-Erweiterungen.This article provides an overview of VM extensions, prerequisites for using Azure VM extensions, and guidance on how to detect, manage, and remove VM extensions. Dieser Artikel enthält verallgemeinerte Informationen, da eine Vielzahl von VM-Erweiterungen verfügbar ist, die alle eine potenziell eigene Konfiguration aufweisen.This article provides generalized information because many VM extensions are available, each with a potentially unique configuration. Erweiterungsspezifische Details finden Sie in der für die jeweilige Erweiterung spezifischen Dokumentation.Extension-specific details can be found in each document specific to the individual extension.

Anwendungsfälle und BeispieleUse cases and samples

Es sind verschiedene Azure VM-Erweiterungen für jeweils spezifische Anwendungsfälle verfügbar.Several different Azure VM extensions are available, each with a specific use case. Beispiele hierfür sind:Some examples include:

  • Anwenden von gewünschten Statuskonfigurationen mit PowerShell auf eine VM mithilfe der DSC-Erweiterung für Linux.Apply PowerShell Desired State configurations to a VM with the DSC extension for Linux. Weitere Informationen finden Sie unter Azure Desired State configuration extension (Azure-Erweiterung für die gewünschte Statuskonfiguration).For more information, see Azure Desired State configuration extension.
  • Konfigurieren der Überwachung einer VM mit der VM-Erweiterung „Microsoft Monitoring Agent“.Configure monitoring of a VM with the Microsoft Monitoring Agent VM extension. Weitere Informationen finden Sie unter Überwachen einer Linux-VM.For more information, see How to monitor a Linux VM.
  • Konfigurieren der Überwachung Ihrer Azure-Infrastruktur mit der Chef- oder Datadog-Erweiterung.Configure monitoring of your Azure infrastructure with the Chef or Datadog extension. Weitere Informationen finden Sie in der Chef-Dokumentation oder im Datadog-Blog.For more information, see the Chef docs or Datadog blog.

Über prozessspezifische Erweiterungen hinaus ist sowohl für virtuelle Windows- als auch für virtuelle Linux-Computer eine benutzerdefinierte Skripterweiterung verfügbar.In addition to process-specific extensions, a Custom Script extension is available for both Windows and Linux virtual machines. Die benutzerdefinierte Skripterweiterung für Linux ermöglicht die Ausführung beliebiger Bash-Skripts auf virtuellen Computern.The Custom Script extension for Linux allows any Bash script to be run on a VM. Benutzerdefinierte Skripts sind beim Entwerfen von Azure-Bereitstellungen nützlich, die Konfiguration über das Maß hinaus erfordern, das mithilfe von Azure-Tools erreicht werden kann.Custom scripts are useful for designing Azure deployments that require configuration beyond what native Azure tooling can provide. Weitere Informationen finden Sie unter Benutzerdefinierte Skripterweiterung für Linux-VMs.For more information, see Linux VM Custom Script extension.

VoraussetzungenPrerequisites

Der Azure Linux-Agent muss installiert sein, damit die Erweiterung auf der VM ausgeführt werden kann.To handle the extension on the VM, you need the Azure Linux Agent installed. Einige individuelle Erweiterungen haben Voraussetzungen, z.B. den Zugriff auf Ressourcen oder Abhängigkeiten.Some individual extensions have prerequisites, such as access to resources or dependencies.

Azure-VM-AgentAzure VM agent

Der Azure VM-Agent verwaltet Interaktionen zwischen einem virtuellen Azure-Computer und dem Azure Fabric Controller.The Azure VM agent manages interactions between an Azure VM and the Azure fabric controller. Der VM-Agent ist für viele funktionale Aspekte in Bezug auf die Bereitstellung und Verwaltung virtueller Azure-Computer verantwortlich. Dies umfasst auch das Ausführen von VM-Erweiterungen.The VM agent is responsible for many functional aspects of deploying and managing Azure VMs, including running VM extensions. Der Azure-VM-Agent ist in Azure Marketplace-Images vorinstalliert und kann manuell auf unterstützten Betriebssystemen installiert werden.The Azure VM agent is preinstalled on Azure Marketplace images, and can be installed manually on supported operating systems. Der Azure-VM-Agent für Linux wird als Linux-Agent bezeichnet.The Azure VM Agent for Linux is known as the Linux agent.

Informationen zu unterstützten Betriebssystemen und Installationshinweise finden Sie unter Informationen zum Agent und zu Erweiterungen für virtuelle Computer.For information on supported operating systems and installation instructions, see Azure virtual machine agent.

Unterstützte Agent-VersionenSupported agent versions

Es gibt Mindestversionen des Agents, um die bestmöglichen Ergebnisse zu erzielen.In order to provide the best possible experience, there are minimum versions of the agent. hier finden Sie weitere InformationenFor more information, see this article.

Unterstützte BetriebssystemeSupported OSes

Der Linux-Agent wird auf mehreren Betriebssystemen ausgeführt. Das Erweiterungsframework begrenzt jedoch die Anzahl der Betriebssysteme, die von Erweiterungen unterstützt werden.The Linux agent runs on multiple OSes, however the extensions framework has a limit for the OSes that extensions. hier finden Sie weitere InformationenFor more information, see this article.

Manche Erweiterung werden nicht auf allen Betriebssystemen unterstützt. In diesem Fall wird der Fehler Error Code 51, 'Unsupported OS' (Fehlercode 51, „Nicht unterstütztes Betriebssystem“) zurückgegeben.Some extensions are not supported across all OSes and may emit Error Code 51, 'Unsupported OS'. Überprüfen Sie die Dokumentation zu Erweiterungen auf Informationen zu Unterstützungsmöglichkeiten.Check the individual extension documentation for supportability.

NetzwerkzugriffNetwork access

Erweiterungspakete werden aus dem Azure Storage-Erweiterungsrepository heruntergeladen, und Uploads des Erweiterungsstatus werden in Azure Storage gepostet.Extension packages are downloaded from the Azure Storage extension repository, and extension status uploads are posted to Azure Storage. Wenn Sie unterstütze Versionen der Agents verwenden (siehe Minimum version support for virtual machine agents in Azure (Unterstütze Mindestversion für VM-Agents in Azure)), müssen Sie den Zugriff auf Azure Storage in der VM-Region nicht zulassen. Sie können den Agent verwenden, um die Kommunikation mit Agents an den Azure Fabric Controller umzuleiten.If you use supported version of the agents, you do not need to allow access to Azure Storage in the VM region, as can use the agent to redirect the communication to the Azure fabric controller for agent communications. Wenn Sie eine nicht unterstützte Version des Agents verwenden, müssen Sie in dieser Region den von der VM ausgehenden Zugriff auf Azure Storage zulassen.If you are on a non-supported version of the agent, you need to allow outbound access to Azure storage in that region from the VM.

Wichtig

Wenn Sie den Zugriff auf 168.63.129.16 mit der Gastfirewall blockiert haben, schlagen die Erweiterungen unabhängig von den gerade beschriebenen Szenarios fehl.If you have blocked access to 168.63.129.16 using the guest firewall, then extensions fail irrespective of the above.

Agents können nur zum Herunterladen von Erweiterungspaketen und für Statusberichte verwendet werden.Agents can only be used to download extension packages and reporting status. Wenn z.B. bei der Installation einer Erweiterung ein Skript aus GitHub heruntergeladen werden muss (Custom Script) oder Zugriff auf Azure Storage (Azure Backup) notwendig ist, müssen zusätzliche Firewallports/Netzwerksicherheitsgruppen-Ports geöffnet werden.For example, if an extension install needs to download a script from GitHub (Custom Script) or needs access to Azure Storage (Azure Backup), then additional firewall/Network Security Group ports need to be opened. Verschiedene Erweiterungen haben verschiedene Voraussetzungen, da es sich bei ihnen um eigenständige Anwendungen handelt.Different extensions have different requirements, since they are applications in their own right. Für Erweiterungen, die Zugriff auf Azure Storage benötigen, können Sie den Zugriff über Azure-NSG-Diensttags für Storage gewähren.For extensions that require access to Azure Storage, you can allow access using Azure NSG Service Tags for Storage.

Für Anfragen zum Umleiten von Datenverkehr verfügt der Linux-Agent über Proxyserverunterstützung.To redirect agent traffic requests, the Linux Agent has proxy server support. Diese Proxyserverunterstützung gilt jedoch nicht für Erweiterungen.However, this proxy server support does not apply extensions. Sie müssen jede einzelne Erweiterung für die Arbeit mit einem Proxy konfigurieren.You must configure each individual extension to work with a proxy.

Ermitteln von VM-ErweiterungenDiscover VM extensions

Für die Verwendung mit virtuellen Azure-Computern stehen viele verschiedene VM-Erweiterungen zur Verfügung.Many different VM extensions are available for use with Azure VMs. Um eine vollständige Liste anzuzeigen, verwenden Sie az vm extension image list.To see a complete list, use az vm extension image list. Im folgenden Beispiel werden alle verfügbaren Erweiterungen am Standort westus (USA, Westen) aufgelistet:The following example lists all available extensions in the westus location:

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

Ausführen von VM-ErweiterungenRun VM extensions

Azure-VM-Erweiterungen können auf vorhandenen VMs ausgeführt werden, was nützlich ist, um Konfigurationsänderungen vorzunehmen oder die Konnektivität für eine bereits bereitgestellte VM wiederherzustellen.Azure VM extensions run on existing VMs, which is useful when you need to make configuration changes or recover connectivity on an already deployed VM. VM-Erweiterungen können darüber hinaus mit der Bereitstellung von Azure Resource Manager-Vorlagen gekoppelt werden.VM extensions can also be bundled with Azure Resource Manager template deployments. Durch die Verwendung von Erweiterungen mit Resource Manager-Vorlagen können virtuelle Azure-Computer bereitgestellt und konfiguriert werden, ohne dass Eingriffe nach der Bereitstellung erforderlich werden.By using extensions with Resource Manager templates, Azure VMs can be deployed and configured without post-deployment intervention.

Die folgenden Methoden können verwendet werden, um eine Erweiterung für eine vorhandene VM auszuführen.The following methods can be used to run an extension against an existing VM.

Azure CLIAzure CLI

Azure VM-Erweiterungen können mit dem Befehl az vm extension set für einen vorhandenen virtuellen Computer ausgeführt werden.Azure VM extensions can be run against an existing VM with the az vm extension set command. Im folgenden Beispiel wird die Erweiterung für benutzerdefinierte Skripts für einen virtuellen Computer mit dem Namen myVM in der Ressourcengruppe myResourceGroup ausgeführt.The following example runs the Custom Script extension against a VM named myVM in a resource group named myResourceGroup. Ersetzen Sie den Ressourcengruppennamen, den VM-Namen und das auszuführende Skript (https://raw.githubusercontent.com/me/project/hello.sh) im Beispiel durch Ihre eigenen Informationen.Replace the example resource group name, VM name and script to run (https://raw.githubusercontent.com/me/project/hello.sh) with your own information.

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"}'

Wenn die Erweiterung ordnungsgemäß ausgeführt wird, ähnelt die Ausgabe dem folgenden Beispiel:When the extension runs correctly, the output is similar to the following example:

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

Azure-PortalAzure portal

VM-Erweiterungen können mithilfe des Azure-Portals auf eine vorhandene VM angewendet werden.VM extensions can be applied to an existing VM through the Azure portal. Wählen Sie im Azure-Portal Erweiterungen aus, und klicken Sie dann auf Hinzufügen.Select the VM in the portal, choose Extensions, then select Add. Wählen Sie die Erweiterung aus, die Sie aus der Liste verfügbarer Erweiterungen erhalten, und befolgen Sie die Anweisungen im Assistenten.Choose the extension you want from the list of available extensions and follow the instructions in the wizard.

Das folgende Bild zeigt die Installation der benutzerdefinierten Linux-Skripterweiterung aus dem Azure-Portal:The following image shows the installation of the Linux Custom Script extension from the Azure portal:

Installieren benutzerdefinierter Skripterweiterung

Azure-Ressourcen-Manager-VorlagenAzure Resource Manager templates

VM-Erweiterungen können einer Azure Resource Manager-Vorlage hinzugefügt und mit der Bereitstellung der Vorlage ausgeführt werden.VM extensions can be added to an Azure Resource Manager template and executed with the deployment of the template. Wenn Sie eine Erweiterung mithilfe einer Vorlage bereitstellen, können Sie vollständig konfigurierte Azure-Bereitstellungen erstellen.When you deploy an extension with a template, you can create fully configured Azure deployments. Beispielsweise stammt der folgende JSON-Code aus einer Resource Manager-Vorlage, die einen Satz von VMs mit Lastenausgleich und Azure SQL-Datenbank bereitstellt und dann auf jeder VM eine .NET Core-Anwendung installiert.For example, the following JSON is taken from a Resource Manager template that deploys a set of load-balanced VMs and Azure SQL Database, then installs a .NET Core application on each VM. Die VM-Erweiterung erledigt die Softwareinstallation.The VM extension takes care of the software installation.

Weitere Informationen finden Sie in der vollständigen Resource Manager-Vorlage.For more information, see the full Resource Manager template.

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

Weitere Informationen zum Erstellen von Resource Manager-Vorlagen finden Sie unter Erstellen von Azure Resource Manager-Vorlagen.For more information on creating Resource Manager templates, see Authoring Azure Resource Manager templates.

Schützen der Daten von VM-ErweiterungenSecure VM extension data

Beim Ausführen einer VM-Erweiterung ist es möglicherweise erforderlich, vertrauliche Informationen wie Anmeldeinformationen, Namen von Speicherkonten und Zugriffsschlüssel von Speicherkonten mit aufzunehmen.When you run a VM extension, it may be necessary to include sensitive information such as credentials, storage account names, and storage account access keys. Viele VM-Erweiterungen beinhalten eine geschützte Konfiguration, die Daten verschlüsselt und sie ausschließlich innerhalb des virtuellen Zielcomputers entschlüsselt.Many VM extensions include a protected configuration that encrypts data and only decrypts it inside the target VM. Jede Erweiterung weist ein spezifisches Schema für die geschützte Konfiguration auf, und jede wird in der erweiterungsspezifischen Dokumentation ausführlich erläutert.Each extension has a specific protected configuration schema, and each is detailed in extension-specific documentation.

Das folgende Beispiel zeigt eine Instanz der benutzerdefinierten Skripterweiterung für Linux.The following example shows an instance of the Custom Script extension for Linux. Der auszuführende Befehl enthält Anmeldeinformationen.The command to execute includes a set of credentials. In diesem Beispiel wird der auszuführende Befehl nicht verschlüsselt:In this example, the command to execute is not encrypted:

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

Durch Verschieben der Eigenschaft CommandToExecute in die protected-Konfiguration wird die Ausführungszeichenfolge, wie im folgenden Beispiel gezeigt, geschützt:Moving the command to execute property to the protected configuration secures the execution string, as shown in the following example:

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

Wie werden Agents und Erweiterungen aktualisiert?How do agents and extensions get updated?

Agents und Erweiterungen haben den gleichen Updatemechanismus.The Agents and Extensions share the same update mechanism. Einige Updates erfordern keine zusätzlichen Firewallregeln.Some updates do not require additional firewall rules.

Wenn ein Update verfügbar ist, wird es nur auf der VM installiert, auf der es eine Änderung der Erweiterungen oder andere Änderungen des VM-Modells gab, z.B.:When an update is available, it is only installed on the VM when there is a change to extensions, and other VM Model changes such as:

  • DatenträgerData disks
  • ErweiterungenExtensions
  • Container der StartdiagnoseBoot diagnostics container
  • Geheimnisse des GastbetriebssystemsGuest OS secrets
  • Größe des virtuellen ComputersVM size
  • NetzwerkprofilNetwork profile

Herausgeber stellen Updates in verschiedenen Regionen zu verschiedenen Zeiten zur Verfügung, d.h., möglicherweise haben Ihre VMs in verschiedenen Regionen unterschiedliche Versionen.Publishers make updates available to regions at different times, so it is possible you can have VMs in different regions on different versions.

Updates für AgentsAgent updates

Der Linux-VM-Agent enthält Bereitstellungs-Agent-Code und Code für die Behandlung von Erweiterungen in einem Paket, die nicht voneinander getrennt werden können.The Linux VM Agent contains Provisioning Agent Code and Extension Handling code in one package, which cannot be separated. Sie können den Bereitstellungs-Agent deaktivieren, wenn Sie die Bereitstellung in Azure mit cloud-init durchführen möchten.You can disable the Provisioning Agent when you want to provision on Azure using cloud-init. Informationen dazu finden Sie unter Verwenden von cloud-init.To do this, see using cloud-init.

Unterstützte Versionen der Agents können automatische Updates verwenden.Supported versions of the Agents can use automatic updates. Der einzige Code, der aktualisiert werden kann, ist die Erweiterung zur Behandlung von Code, nicht der Bereitstellungscode.The only code that can be updated is the Extension Handling code, not the provisioning code. Der Bereitstellungs-Agent-Code wird einmalig ausgeführt.The Provisioning Agent code is run-once code.

Der Code für die Behandlung von Erweiterungen ist für die Kommunikation mit dem Azure-Fabric und das Behandeln von Vorgängen für VM-Erweiterungen verantwortlich, z.B. Installationen, Statusberichte, Aktualisierungen und Entfernen einzelner Erweiterungen.The Extension Handling code is responsible for communicating with the Azure fabric, and handling the VM extensions operations such as installs, reporting status, updating the individual extensions, and removing them. Updates enthalten Sicherheitsfixes, Fehlerbehebungen und Verbesserungen für den Code für die Behandlung von Erweiterungen.Updates contain security fixes, bug fixes, and enhancements to the Extension Handling code.

Beim Installieren des Agents wird ein übergeordneter Daemon erstellt.When the agent is installed, a parent daemon is created. Dieses übergeordnete Element erzeugt dann einen untergeordneten Prozess, mit dem Erweiterungen behandelt werden.This parent then spawns a child process that is used to handle extensions. Wenn ein Update für den Agent verfügbar ist, wird es heruntergeladen und das übergeordnete Element beendet den untergeordneten Prozess, aktualisiert diesen und startet ihn dann neu.If an update is available for the agent, it is downloaded, the parent stops the child process, upgrades it, then restarts it. Falls ein Problem mit dem Update vorliegt, führt der übergeordnete Prozess ein Rollback auf die Vorgängerversion des untergeordneten Prozesses durch.Should there be a problem with the update, the parent process rolls back to the previous child version.

Der übergeordnete Prozess kann nicht automatisch aktualisiert werden.The parent process cannot be auto updated. Der übergeordnete Prozess kann nur durch ein Update des Distributionspakets aktualisiert werden.The parent can only be updated by a distro package update.

Um herauszufinden, welche Version ausgeführt wird, überprüfen Sie waagent wie folgt:To check what version you are running, check the waagent as follows:

waagent --version

Die Ausgabe sieht in etwa wie das folgende Beispiel aus:The output is similar to the following example:

WALinuxAgent-2.2.17 running on ubuntu 16.04
Python: 3.5.2
Goal state agent: 2.2.18

In der vorhergehenden Beispielausgabe ist die Version des übergeordneten Prozesses oder des bereitgestellten Pakets WALinuxAgent-2.2.17.In the preceding example output, the parent or 'package deployed version' is WALinuxAgent-2.2.17

Die Zielversion des Agents ist die automatisch aktualisierte Version.The 'Goal state agent' is the auto update version.

Es wird dringend empfohlen, die automatische Aktualisierung für den Agent immer zu aktivieren: AutoUpdate.Enabled=y.It is highly recommended that you always have auto update for the agent, AutoUpdate.Enabled=y. Ist diese Funktion nicht aktiviert, müssen Sie den Agent manuell aktualisieren und erhalten keine Fehlerbehebungen und Sicherheitsupdates.Not having this enabled means you need to keep manually updating the agent, and not get bug and security fixes.

Updates für ErweiterungenExtension updates

Wenn ein Update für eine Erweiterung verfügbar ist, lädt der Linux-Agent dieses herunter und aktualisiert die Erweiterung.When an extension update is available, the Linux Agent downloads and upgrades the extension. Automatische Updates für Erweiterungen sind entweder kleinere Updates oder Hotifxupdates.Automatic extension updates are either Minor or Hotfix. Sie können beim Bereitstellen der Erweiterung entscheiden, ob Sie kleinere Updates für Erweiterungen abonnieren wollen oder nicht.You can opt in or opt out of extensions Minor updates when you provision the extension. Im folgenden Beispiel sehen Sie, wie man Nebenversionen in einer Resource Manager-Vorlage automatisch mit autoUpgradeMinorVersion": true,' aktualisiert:The following example shows how to automatically upgrade minor versions in a Resource Manager template with autoUpgradeMinorVersion": true,':

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

Sie sollten in Ihren Bereitstellungen von Erweiterungen immer automatische Updates auswählen, um die neuesten Fehlerbehebungen für Nebenversionen zu erhalten.To get the latest minor release bug fixes, it is highly recommended that you always select auto update in your extension deployments. Das Abonnement für Hotfixupdates, die Sicherheitsfixes oder Hauptfehlerbehebungen enthalten, kann nicht gekündigt werden.Hotfix updates that carry security or key bug fixes cannot be opted out.

So identifizieren Sie Updates für ErweiterungenHow to identify extension updates

Erkennen, ob die Erweiterung auf „autoUpgradeMinorVersion“ auf einer VM festgelegt istIdentifying if the extension is set with autoUpgradeMinorVersion on a VM

Sie können am VM-Modell erkennen, ob die Erweiterung mit „autoUpgradeMinorVersion“ bereitgestellt wurde.You can see from the VM model if the extension was provisioned with 'autoUpgradeMinorVersion'. Um dies zu überprüfen, verwenden Sie az vm show, und geben Sie die Ressourcengruppe und den VM-Namen wie folgt an:To check, use az vm show and provide the resource group and VM name as follows:

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

Die Ausgabe des folgenden Beispiels zeigt, dass autoUpgradeMinorVersion auf TRUE festgelegt ist:The following example output shows that autoUpgradeMinorVersion is set to true:

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

Erkennen, wann „autoUpgradeMinorVersion“ aufgetreten istIdentifying when an autoUpgradeMinorVersion occurred

Um zu sehen, wann die Erweiterung aktualisiert wurde, überprüfen Sie die Protokolldatei des Agents auf der VM unter /var/log/waagent.log.To see when an update to the extension occurred, review the agent logs on the VM at /var/log/waagent.log.

Im folgenden Beispiel war auf dem virtuellen Computer Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025 installiert.In the example below, the VM had Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025 installed. Ein Hotfix auf Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027 war verfügbar:A hotfix was available to Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027:

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.

Berechtigungen für AgentsAgent permissions

Damit er seine Aufgaben ausführen kann, muss der Agent als root ausgeführt werden.To perform its tasks, the agent needs to run as root.

Problembehandlung bei VM-ErweiterungenTroubleshoot VM extensions

Jede VM-Erweiterung kann für die Erweiterung spezifische Schritte zur Problembehandlung aufweisen.Each VM extension may have troubleshooting steps specific to the extension. Wenn Sie beispielsweise die benutzerdefinierte Skripterweiterung verwenden, finden Sie Details zur Skriptausführung lokal auf der VM, auf der die Erweiterung ausgeführt wurde.For example, when you use the Custom Script extension, script execution details can be found locally on the VM where the extension was run. Alle erweiterungsspezifischen Schritte zur Problembehandlung sind ausführlich in der Dokumentation zur Erweiterung erläutert.Any extension-specific troubleshooting steps are detailed in extension-specific documentation.

Die folgenden Schritte zur Problembehandlung gelten für alle VM-Erweiterungen.The following troubleshooting steps apply to all VM extensions.

  1. Um das Protokoll des Linux-Agents zu überprüfen, sollten Sie die Aktivität bei der Bereitstellung der Erweiterung in /var/log/waagent.log untersuchen.To check the Linux Agent Log, look at the activity when your extension was being provisioned in /var/log/waagent.log

  2. Überprüfen Sie die Protokolle der eigentlichen Erweiterung in /var/log/azure/<extensionName> , um weitere Informationen zu erhalten.Check the actual extension logs for more details in /var/log/azure/<extensionName>

  3. Lesen Sie die Abschnitte zur Problembehandlung in der Dokumentation zu Erweiterungen für Fehlercodes, bekannten Problemen usw.Check extension-specific documentation troubleshooting sections for error codes, known issues etc.

  4. Sehen Sie sich die Systemprotokolle an.Look at the system logs. Überprüfen Sie, ob es andere Vorgänge gab, die möglicherweise die Erweiterung beeinträchtigt haben, z.B. eine lange Installation einer anderen Anwendung, für die exklusiver Zugriff auf den Paket-Manager notwendig war.Check for other operations that may have interfered with the extension, such as a long running installation of another application that required exclusive package manager access.

Häufige Ursachen für Fehler bei der ErweiterungCommon reasons for extension failures

  1. Erweiterungen sollen innerhalb von 20 Minuten ausgeführt werden (mit Ausnahme von benutzerdefinierten Erweiterungen, Chef und DSC, die 90 Minuten Zeit haben).Extensions have 20 mins to run (exceptions are the CustomScript extensions, Chef, and DSC that have 90 mins). Wenn Ihre Bereitstellung diese Zeit überschreitet, wird sie als Timeout markiert.If your deployment exceeds this time, it is marked as a timeout. Dies kann an VMs mit unzureichenden Ressourcen liegen, wenn andere VM-Konfigurationen/Starttasks hohe Mengen Ressourcen verbrauchen, während die Erweiterung bereitstellt.The cause of this can be due to low resource VMs, other VM configurations/start up tasks consuming high amounts of resource whilst the extension is trying to provision.

  2. Mindestvoraussetzungen nicht erfüllt.Minimum prerequisites not met. Einige Erweiterungen verfügen über VM-SKUs, z.B. HPC-Images.Some extensions have dependencies on VM SKUs, such as HPC images. Erweiterungen können bestimmte Voraussetzungen für den Netzwerkzugriff erfordern, z.B. die Kommunikation mit Azure Storage oder öffentlichen Diensten.Extensions may require certain networking access requirements, such as communicating to Azure Storage or public services. Andere Beispiele sind u.a. der Zugriff auf Paket-Repositorys, nahezu vollständig belegter Festplattenspeicher oder Sicherheitseinschränkungen.Other examples could be access to package repositories, running out of disk space, or security restrictions.

  3. Exklusiver Paket-Manager-Zugriff.Exclusive package manager access. In einigen Fällen können eine lange ausgeführte VM-Konfiguration und die Installation der Erweiterung in Konflikt stehen, wenn beide exklusiven Zugriff auf den Paket-Manager benötigen.In some cases, you may encounter a long running VM configuration and extension installation conflicting, where they both need exclusive access to the package manager.

Anzeigen des ErweiterungsstatusView extension status

Wenn eine VM-Erweiterung für eine VM ausgeführt wurde, können Sie mit az vm get-instance-view wie folgt zum Erweiterungsstatus zurückkehren:After a VM extension has been run against a VM, use az vm get-instance-view to return extension status as follows:

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

Die Ausgabe sieht in etwa wie das folgende Beispiel aus:The output is similar to the following example output:

  {
    "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.0.6"
  }

Der Ausführungsstatus von Erweiterungen findet sich ebenfalls im Azure-Portal.Extension execution status can also be found in the Azure portal. Um den Status einer Erweiterung anzuzeigen, klicken Sie auf die VM und wählen Sie Erweiterungen sowie die gewünschte Erweiterung aus.To view the status of an extension, select the VM, choose Extensions, then select the desired extension.

Erneutes Ausführen einer VM-ErweiterungRerun a VM extension

In manchen Fällen kann die erneute Ausführung einer VM-Erweiterung erforderlich sein.There may be cases in which a VM extension needs to be rerun. Sie können eine Erweiterung erneut ausführen, indem Sie sie entfernen und die Erweiterung dann mit einer Ausführungsmethode Ihrer Wahl erneut ausführen.You can rerun an extension by removing it, and then rerunning the extension with an execution method of your choice. Verwenden Sie zum Entfernen einer Erweiterung az vm extension delete wie folgt:To remove an extension, use az vm extension delete as follows:

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

Sie können eine Erweiterung auch im Azure-Portal wie folgt entfernen:You can also remove an extension in the Azure portal as follows:

  1. Wählen Sie einen virtuellen Computer aus.Select a VM.
  2. Wählen Sie Erweiterungen aus.Choose Extensions.
  3. Wählen Sie die gewünschte Erweiterung aus.Select the desired extension.
  4. Wählen Sie Deinstallieren aus.Choose Uninstall.

Allgemeine VM-ErweiterungsreferenzCommon VM extension reference

Name der ErweiterungExtension name BESCHREIBUNGDescription Weitere InformationenMore information
Benutzerdefinierte Skripterweiterung für LinuxCustom Script extension for Linux Ausführen von Skripts für virtuelle Azure-ComputerRun scripts against an Azure virtual machine Benutzerdefinierte Skripterweiterung für LinuxCustom Script extension for Linux
Erweiterungen für den Zugriff auf virtuelle ComputerVM Access extension Wiedererlangen des Zugriffs auf einen virtuellen Azure-ComputerRegain access to an Azure virtual machine Erweiterungen für den Zugriff auf virtuelle ComputerVM Access extension
Azure-DiagnoseerweiterungAzure Diagnostics extension Verwalten der Azure-DiagnoseManage Azure Diagnostics Azure-DiagnoseerweiterungAzure Diagnostics extension
Erweiterung für den Zugriff auf virtuelle Azure-ComputerAzure VM Access extension Verwalten von Benutzern und AnmeldeinformationenManage users and credentials Erweiterungen für den Zugriff auf virtuelle Computer für LinuxVM Access extension for Linux

Nächste SchritteNext steps

Weitere Informationen zu VM-Erweiterungen finden Sie unter Azure virtual machine extensions and features overview (Übersicht über Azure-VM-Erweiterungen und Features).For more information about VM extensions, see Azure virtual machine extensions and features overview.