Freigeben über


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

Hinweis

Die DSC-Erweiterung wird am 31. März 2028 eingestellt. Wechseln Sie zu Azure Machine Configuration bis zu diesem Datum. Weitere Informationen finden Sie in der Ankündigung des Blogbeitrags . Der Azure Machine Configuration-Dienst kombiniert bestimmte Features der DSC-Erweiterung, azure Automation State Configuration und häufig angeforderte Features aus Kundenfeedback. Die Azure-Computerkonfiguration umfasst auch die Unterstützung von Hybridcomputern über Arc-fähige Server.

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 DSC-Erweiterung pusht nur eine Konfiguration an die VM. Es ist keine fortlaufende Berichterstellung verfügbar, lediglich lokal in der VM.

Hinweis

Testen Sie die VM-Unterstützung für eine schnellere Diagnose. Es wird empfohlen, vm assist for Windows or VM assist for Linux auszuführen. Diese skriptbasierten Diagnosetools helfen Ihnen, häufige Probleme zu identifizieren, die sich auf den Azure VM-Gast-Agent und die allgemeine VM-Integrität auswirken.

Wenn Leistungsprobleme mit virtuellen Computern auftreten, führen Sie diese Tools aus, bevor Sie sich an den Support wenden.

Verfügbare DSC-Versionen

Die DSC-Erweiterung unterstützt Konfigurationen ab Version 1.1 der DSC-Plattform. Weitere Informationen finden Sie unter PSDesiredStateConfiguration V1.1.

Voraussetzungen

  • Entwicklerworkstation: Für die Interaktion mit der Azure DSC-Erweiterung müssen Sie das Azure-Portal oder das Azure PowerShell-/CLI-SDK 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.

Wenn die Erweiterung zum ersten Mal bereitgestellt wird, wird eine Version von WMF mithilfe der folgenden Logik installiert:

  • 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 automatisiert die Erweiterung den Download der .zip in der modulesUrl Eigenschaft angegebenen Datei, sofern angegeben. Wenn sich der Speicherort in Azure Blob Storage befindet, können Sie in der sasToken-Eigenschaft ein SAS-Token für den Dateizugriff angeben. Als Nächstes wird die in configurationFunction der Konfiguration definierte Konfigurationsfunktion ausgeführt, um eine MOF-Datei (Managed Object Format) (MOF) 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.

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.

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.

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

  • Das Cmdlet Publish-AzVMDscConfiguration verwendet eine Konfigurationsdatei, scannt sie nach abhängigen DSC-Ressourcen und erstellt dann eine .zip Datei. Die .zip Datei enthält die Konfigurations- und DSC-Ressourcen, die zum Ausführen der Konfiguration erforderlich sind. Mit dem Parameter -OutputArchivePath kann das Cmdlet das Paket auch lokal erstellen. Andernfalls veröffentlicht das Cmdlet die .zip Datei in Blob Storage und sichert sie dann mit einem 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 oder der Computerkonfiguration 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 iisInstall.ps1 Skript 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.

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

      Konfigurationsmodule und Skripts erfordern eine .ps1 Datei mit einem Konfigurationsskript oder einer .zip Datei mit einem .ps1 Konfigurationsskript im Stammverzeichnis. Wenn Sie eine .zip Datei verwenden, müssen alle abhängigen Ressourcen in Modulordner in der .zip Datei enthalten sein. Sie können die .zip Datei mithilfe des CmdletsPublish-AzureVMDscConfiguration -OutputArchivePath erstellen, das im Azure PowerShell SDK enthalten ist. Die .zip Datei wird in Ihren Benutzer blob Storage hochgeladen und durch ein SAS-Token gesichert.

    • Modulqualifizierter Konfigurationsname: (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 Konfigurationsskriptdatei .ps1 gefolgt von einem Schrägstrich \ und dann den Namen der Konfigurationsfunktion ein. Wenn die .ps1 Skriptdatei beispielsweise den Namen configuration.ps1 und der Konfigurationsname IisInstall ist, geben Sie den Wert configuration.ps1\IisInstall für die Einstellung 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.

    • Konfigurationsdaten-PSD1-Datei: Wenn Ihre Konfiguration eine Konfigurationsdatendatei im .psd1 Format erfordert, verwenden Sie diese Einstellung, um die Datendatei auszuwählen und in Den Benutzer-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