Einführung in den Handler der Azure-Erweiterung zum Konfigurieren des gewünschten Zustands

Die Azure VM-Erweiterung für Azure-VMs (Virtuelle Maschinen) und die zugehörigen Erweiterungen sind Teil der Microsoft Azure-Infrastrukturdienste. Azure VM-Erweiterungen sind Softwarekomponenten, die die VM-Funktionalität erweitern und verschiedene Verwaltungsvorgänge für VMs vereinfachen.

Die primäre Anwendung der Azure DSC-Erweiterung (Desired State Configuration) für Windows PowerShell besteht im Bootstrap einer VM zum Azure Automation DSC-Dienst. Dieser Dienst bietet Vorteile wie die fortlaufende Verwaltung der VM-Konfiguration und die Integration mit anderen Betriebstools wie Azure Monitor. Sie können die Erweiterung verwenden, um Ihre VMs beim Dienst zu registrieren. Sie bietet Ihnen eine flexible Lösung, die für alle Azure-Abonnements funktioniert.

Sie können die DSC-Erweiterung unabhängig vom Automation DSC-Dienst ausführen, aber mit dieser Methode wird nur eine Konfiguration auf die VM gepusht. Es ist keine fortlaufende Berichterstellung verfügbar, lediglich lokal in der VM. Bevor Sie die DSC-Erweiterung aktivieren, überprüfen Sie die verfügbaren DSC-Versionen, und wählen Sie die Version aus, die Ihre Konfigurationsanforderungen unterstützt.

In diesem Artikel wird beschrieben, wie Sie die DSC-Erweiterung für das Automation-Onboarding verwenden oder wie Sie sie als Tool nutzen, um VMs Konfigurationen mit dem Azure-SDK zuzuweisen.

Verfügbare DSC-Versionen

Mehrere Versionen von Desired State Configuration stehen für die Implementierung zur Verfügung. Bevor Sie die DSC-Erweiterung aktivieren, wählen Sie die DSC-Version aus, die Ihre Konfigurations- und Geschäftsziele am besten unterstützt.

Version Verfügbarkeit BESCHREIBUNG
2.0 Allgemeine Verfügbarkeit Desired State Configuration 2.0 wird für die Verwendung mit der Azure Automanage-Funktion Computerkonfiguration unterstützt. Die Funktion „Computerkonfiguration“ kombiniert Funktionen des DSC-Erweiterungshandlers, der Azure Automation State Configuration und die am häufigsten in Kundenfeedback angeforderten Funktionen. Die Computerkonfiguration umfasst auch die Unterstützung von Hybridcomputern über Arc-fähige Server.
1.1 Allgemeine Verfügbarkeit Wenn die Azure Automanage-Funktion „Computerkonfiguration“ in Ihrer Implementierung nicht verwendet wird, sollten Sie „Desired State Configuration 1.1“ auswählen. Weitere Informationen finden Sie unter PSDesiredStateConfiguration V1.1.
3.0 Public Preview Desired State Configuration 3.0 ist als öffentliche Betaversion verfügbar. Diese Version sollte nur mit der Azure-Computerkonfiguration oder für Nichtproduktionsumgebungen verwendet werden, um die Migration von Desired State Configuration 1.1 zu testen.

Voraussetzungen

  • Lokaler Computer: Für die Interaktion mit der Azure DSC-Erweiterung müssen Sie das Azure-Portal oder das Azure PowerShell-SDK auf dem lokalen Computer verwenden.

  • Gast-Agent: Die mit der DSC-Konfiguration vorbereitete Azure-VM muss über ein Betriebssystem verfügen, das Windows Management Framework (WMF) 4.0 oder höher unterstützt. Die vollständige Liste der unterstützten Betriebssystemversionen finden Sie im Versionsverlauf der Azure DSC-Erweiterung.

Begriffe und Konzepte

In diesem Artikel wird vorausgesetzt, dass Sie mit den folgenden Konzepten vertraut sind:

  • Konfiguration bezieht sich auf ein DSC-Konfigurationsdokument.

  • Knoten ist ein Ziel für die DSC-Konfiguration. In diesem Artikel bezieht sich Knoten immer auf eine Azure-VM.

  • Konfigurationsdaten werden in einer PowerShell DSC-Formatdatei (.psd1) gespeichert, die Umgebungsdaten für eine Konfiguration enthält.

Aufbau

Die Azure DSC-Erweiterung nutzt das VM-Erweiterungsframework von Azure zur Übermittlung und Inkraftsetzung von DSC-Konfigurationen auf virtuellen Azure-Computern sowie zur Erstellung entsprechender Berichte. Die DSC-Erweiterung nimmt ein Konfigurationsdokument und einen Satz von Parametern entgegen. Wird keine Datei angegeben, wird ein Standardkonfigurationsskript in die Erweiterung eingebettet. Dieses wird ausschließlich zum Festlegen von Metadaten im lokalen Konfigurations-Manager verwendet.

Wenn die Erweiterung das erste Mal aufgerufen wird, installiert sie mit der folgenden Logik eine Version von Windows Management Framework (WMF):

  • Wenn auf der Azure-VM das Betriebssystem Windows Server 2016 installiert ist, wird keine Aktion ausgeführt. Unter Windows Server 2016 ist bereits die neueste Version von PowerShell installiert.

  • Wenn die wmfVersion-Eigenschaft angegeben ist, wird die angegebene WMF-Version installiert, es sei denn, die angegebene Version ist mit dem Betriebssystem auf der VM nicht kompatibel.

  • Ohne Angabe der Eigenschaft wmfVersion wird die neueste geeignete WMF-Version installiert.

Die WMF-Installation erfordert einen Neustart. Nach dem Neustart lädt die Erweiterung die in der modulesUrl-Eigenschaft angegebene ZIP-Datei herunter (falls vorhanden). Wenn sich der Speicherort in Azure Blob Storage befindet, können Sie in der sasToken-Eigenschaft ein SAS-Token für den Dateizugriff angeben. Nachdem die ZIP-Datei heruntergeladen und entpackt wurde, wird die in configurationFunction definierte Konfigurationsfunktion ausgeführt, um eine MOF-Datei (Managed Object Format) zu generieren. Anschließend führt die Erweiterung anhand der generierten MOF-Datei den Befehl Start-DscConfiguration -Force aus. Die Erweiterung erfasst die Ausgabe und schreibt sie in den Azure-Statuskanal.

Standardkonfigurationsskript

Die Azure DSC-Erweiterung enthält ein Standardkonfigurationsskript, das für das Onboarding einer VM in den Azure Automation State Configuration-Dienst vorgesehen ist. Die Skriptparameter sind an den konfigurierbaren Eigenschaften des lokalen Konfigurations-Managers ausgerichtet. Informationen zu Skriptparametern finden Sie im Abschnitt Standardkonfigurationsskript unter Desired State Configuration-Erweiterung mit ARM-Vorlagen (Azure Resource Manager). Das vollständige Skript finden Sie in der Azure-Schnellstartvorlage in GitHub.

Registrierung für Azure Automation State Configuration

Wenn Sie die Azure DSC-Erweiterung verwenden, um einen Knoten beim Azure Automation State Configuration-Dienst zu registrieren, geben Sie die folgenden Werte an:

  • RegistrationUrl: die HTTPS-Adresse des Azure Automation-Kontos.
  • RegistrationKey: ein gemeinsamer geheimer Schlüssel, mit dem Knoten beim Dienst registriert werden.
  • NodeConfigurationName: der Name der Knotenkonfiguration (MOF), die vom Dienst abgerufen werden soll, um die Serverrolle zu konfigurieren. Der Wert ist der Name der Knotenkonfiguration, nicht der Name der Konfiguration.

Sie können diese Werte aus dem Azure-Portal abrufen oder die folgenden Befehle in Windows PowerShell ausführen:

(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).Endpoint
(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).PrimaryKey

Name der Knotenkonfiguration

Geben Sie für den Parameter NodeConfigurationName den Namen der Knotenkonfiguration an, nicht den Namen der Konfiguration.

Die Konfiguration ist in einem Skript definiert, das zum Kompilieren der Knotenkonfiguration (MOF-Datei) verwendet wird. Der Name der Knotenkonfiguration ist immer der Name der Konfiguration, gefolgt von einem Punkt . und entweder localhost oder einem bestimmten Computernamen.

Warnung

Stellen Sie sicher, dass die Knotenkonfiguration in Azure Automation State Configuration vorhanden ist. Wenn dieser Wert nicht vorhanden ist, wird bei der Bereitstellung der Erweiterung ein Fehler zurückgegeben.

ARM-Vorlagenbereitstellung

Die üblichste Methode zum Bereitstellen der DSC-Erweiterung ist die Verwendung von Azure Resource Manager-Vorlagen. Weitere Informationen und Beispiele zum Einschließen der DSC-Erweiterung in ARM-Vorlagen finden Sie unter Desired State Configuration-Erweiterung mit ARM-Vorlagen.

PowerShell-Cmdlet-Bereitstellung

PowerShell-Cmdlets zum Verwalten der DSC-Erweiterung eignen sich ideal für die interaktive Problembehandlung und zum Sammeln von Informationen. Sie können die Cmdlets zum Verpacken, Veröffentlichen und Überwachen der Bereitstellung der DSC-Erweiterung verwenden. Cmdlets für die DSC-Erweiterung wurden noch nicht für die Verwendung mit dem Standardkonfigurationsskript aktualisiert.

Im Folgenden werden einige verfügbare PowerShell-Cmdlets aufgeführt:

  • Mit dem Cmdlet Publish-AzVMDscConfiguration wird eine Konfigurationsdatei nach abhängigen DSC-Ressourcen durchsucht und eine ZIP-Datei erstellt. Die ZIP-Datei enthält die Konfiguration und die erforderlichen Ressourcen für deren Inkraftsetzung. Mit dem Parameter -OutputArchivePath kann das Cmdlet das Paket auch lokal erstellen. Andernfalls veröffentlicht das Cmdlet die ZIP-Datei in Blob Storage und schützt sie dann durch ein SAS-Token.

    Das vom Cmdlet erstellte PowerShell-Konfigurationsskript (.ps1) befindet sich in der ZIP-Datei im Stammverzeichnis des Archivordners. Der Modulordner wird im Archivordner in den Ressourcen platziert.

  • Mit dem Cmdlet Set-AzVMDscExtension werden die für die PowerShell DSC-Erweiterung erforderlichen Einstellungen in einem VM-Konfigurationsobjekt eingefügt.

  • Mit dem Cmdlet Get-AzVMDscExtension wird der DSC-Erweiterungsstatus eines bestimmten virtuellen Computers abgerufen.

  • Mit dem Cmdlet Get-AzVMDscExtensionStatus wird der Status der DSC-Konfiguration abgerufen, die vom DSC-Erweiterungshandler durchgeführt wird. Diese Aktion kann auf einer einzelnen VM oder einer VM-Gruppe ausgeführt werden.

  • Mit dem Cmdlet Remove-AzVMDscExtension wird der Erweiterungshandler von einem bestimmten virtuellen Computer entfernt. Beachten Sie, dass dieses Cmdlet weder die Konfiguration entfernt noch WMF deinstalliert oder die angewendeten Einstellungen auf der VM ändert. Das Cmdlet entfernt lediglich den Erweiterungshandler.

Wichtige Hinweise

Bei der Arbeit mit Azure Resource Manager-Cmdlets müssen mehrere Aspekte berücksichtigt werden.

  • Azure Resource Manager-Cmdlets sind synchron.

  • Mehrere Parameter sind erforderlich, darunter ResourceGroupName, VMName, ArchiveStorageAccountName, Version und Location.

  • ArchiveResourceGroupName ist ein optionaler Parameter. Geben Sie diesen Parameter an, wenn Ihr Speicherkonto nicht der Ressourcengruppe angehört, in der die VM erstellt wurde.

  • Der Schalter AutoUpdate ermöglicht die automatische Aktualisierung des Erweiterungshandlers auf die neueste Version, sobald diese verfügbar ist. Durch diesen Parameter wird die VM unter Umständen neu gestartet, wenn eine neue WMF-Version veröffentlicht wird.

Konfiguration mit PowerShell-Cmdlets

Die Azure-DSC-Erweiterung kann DSC-Konfigurationsdokumente zum Konfigurieren von virtuellen Azure-Computern während der Bereitstellung verwenden. Bei diesem Schritt wird der Knoten nicht bei Azure Automation registriert. Beachten Sie, dass der Knoten nicht zentral verwaltet wird.

Der folgende Code zeigt eine einfache Beispielkonfiguration. Um mit diesem Beispiel zu arbeiten, speichern Sie diese Konfiguration lokal als iisInstall.ps1-Skriptdatei.

configuration IISInstall
{
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

Mit den folgenden PowerShell-Befehlen wird das Skript „iisInstall.ps1“ auf der angegebenen VM platziert. Mit den Befehlen führen Sie auch die Konfiguration aus und melden anschließend den Status.

$resourceGroup = 'dscVmDemo'
$vmName = 'myVM'
$storageName = 'demostorage'
#Publish the configuration script to user storage
Publish-AzVMDscConfiguration -ConfigurationPath .\iisInstall.ps1 -ResourceGroupName $resourceGroup -StorageAccountName $storageName -force
#Set the VM to run the DSC configuration
Set-AzVMDscExtension -Version '2.76' -ResourceGroupName $resourceGroup -VMName $vmName -ArchiveStorageAccountName $storageName -ArchiveBlobName 'iisInstall.ps1.zip' -AutoUpdate -ConfigurationName 'IISInstall'

Bereitstellung mithilfe der Azure-Befehlszeilenschnittstelle

Die Azure CLI kann verwendet werden, um die DSC-Erweiterung auf einer vorhandenen VM bereitzustellen. Die folgenden Beispiele zeigen, wie eine VM unter Windows bereitgestellt wird.

Verwenden Sie für eine VM unter Windows den folgenden Befehl:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name DSC \
  --publisher Microsoft.Powershell \
  --version 2.77 --protected-settings '{}' \
  --settings '{}'

Azure-Portal-Bereitstellung

Führen Sie die folgenden Schritte aus, um die DSC-Erweiterung im Azure-Portal einzurichten:

  1. Wechseln Sie zu einem virtuellen Computer.

  2. Wählen Sie unter Einstellungen die Option Erweiterungen und Anwendungen aus.

  3. Klicken Sie unter Erweiterungen auf + Hinzufügen.

  4. Wählen Sie PowerShell Desired State Configuration und dann Weiter aus.

  5. Konfigurieren Sie die folgenden Parameter für die DSC-Erweiterung.

    Hinweis

    Wenn Sie mit einem Standardkonfigurationsskript arbeiten, denken Sie daran, dass die meisten der folgenden Parameter direkt im Azure-Portal und nicht über das Skript definiert werden müssen.

    • Konfigurationsmodule oder Skript: (Erforderlich) Geben Sie die Konfigurationsmodule oder die Skriptdatei für Ihre VM an.

      Konfigurationsmodule und Skripts benötigen eine PS1-Datei, die ein Konfigurationsskript oder eine ZIP-Datei mit einer ps1-Konfigurationsskript auf der Stammebene aufweist. Wenn Sie eine ZIP-Datei verwenden, müssen alle abhängigen Ressourcen in Modulordnern in der ZIP-Datei enthalten sein. Sie können die ZIP-Datei mit dem im Azure PowerShell SDK enthaltenen Cmdlet Publish-AzureVMDscConfiguration -OutputArchivePath erstellen. Die ZIP-Datei wird in Ihren Blob Storage hochgeladen und durch ein SAS-Token geschützt.

    • Qualifizierter Modulname der Konfiguration: (Erforderlich) Geben Sie diese Einstellung an, um mehrere Konfigurationsfunktionen in eine einzelne .ps1-Skriptdatei einzuschließen. Geben Sie für diese Einstellung den Namen der .ps1-Konfigurationsskriptdatei ein, gefolgt von einem Schrägstrich \ und dann dem Namen der Konfigurationsfunktion. Wenn die .ps1-Skriptdatei beispielsweise den Namen configuration.ps1 hat und der Konfigurationsname IisInstall lautet, geben Sie für die Einstellung den Wert configuration.ps1\IisInstall ein.

    • Konfigurationsargumente: Falls die Konfigurationsfunktion Argumente akzeptiert, geben Sie die Werte im Format argumentName1=value1,argumentName2=value2 ein. Dieses Format unterscheidet sich von dem Format, mit dem Konfigurationsargumente in PowerShell-Cmdlets oder ARM-Vorlagen angegeben werden.

      Hinweis

      Die Konfigurationsargumente können in einem Standardkonfigurationsskript definiert werden.

    • PSD1-Datei mit Konfigurationsdaten: Wenn Ihre Konfiguration eine Konfigurationsdatendatei im .psd1-Format erfordert, verwenden Sie diese Einstellung, um die Datendatei auszuwählen und in Ihren Blob Storage hochzuladen. Die Konfigurationsdatendatei wird durch ein SAS-Token im Blob Storage geschützt.

    • WMF-Version: Geben Sie die Version von Windows Management Framework an, die auf Ihrer VM installiert werden soll. Wenn Sie den Standardwert latest auswählen, wird die neueste WMF-Version installiert. Andere mögliche Werte sind 4.0, 5.0 und 5.1. Die möglichen Werte können sich gelegentlich ändern.

    • Datensammlung: Aktivieren Sie diese Einstellung, wenn die DSC-Erweiterung Telemetriedaten zu Ihrer VM sammeln soll. Weitere Informationen finden Sie unter Azure DSC extension data collection (Datensammlung mit der Azure DSC-Erweiterung).

    • Version: (Erforderlich) Geben Sie die Version der zu installierenden DSC-Erweiterung an. Informationen zu Versionen finden Sie unter Versionsverlauf der Azure DSC-Erweiterung.

    • Automatisches Upgrade für Nebenversion: Diese Einstellung wird dem Schalter AutoUpdate in den Cmdlets zugeordnet. Konfigurieren Sie diese Einstellung, damit die DSC-Erweiterung während der Installation automatisch auf die neueste Version aktualisiert werden kann. Ja weist den DSC-Erweiterungshandler an, die neueste verfügbare Version zu verwenden. Nein (Standard) erzwingt die Installation der Version, die Sie in der Einstellung Version angeben.

  6. Nachdem Sie die Parameter konfiguriert haben, wählen Sie Überprüfen und Erstellen und dann Erstellen aus.

DSC-Erweiterungsprotokolle

Sie können Protokolle für die Azure DSC-Erweiterung auf der VM unter C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\<version number> anzeigen.

Nächste Schritte