Einführung in den Handler der Azure-Erweiterung zum Konfigurieren des gewünschten Zustands
Hinweis
Bevor Sie die DSC-Erweiterung aktivieren, sollten Sie wissen, dass jetzt eine neuere Version von DSC allgemein verfügbar ist, die als Azure-Computerkonfiguration bezeichnet wird. Der Azure-Computerkonfigurationsdienst enthält Features der DSC-Erweiterung 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.
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 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.
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:
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
undLocation
.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 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:
Wechseln Sie zu einem virtuellen Computer.
Wählen Sie unter Einstellungen die Option Erweiterungen und Anwendungen aus.
Klicken Sie unter Erweiterungen auf + Hinzufügen.
Wählen Sie PowerShell Desired State Configuration und dann Weiter aus.
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 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 Wertconfiguration.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.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.
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
- Weitere Informationen zu PowerShell DSC finden Sie im PowerShell-Dokumentationscenter.
- Sehen Sie sich die ARM-Vorlage für die Azure DSC-Erweiterung an.
- Durchsuchen Sie für mehr Funktionalität, die Sie mithilfe von PowerShell DSC verwalten können, und für weitere DSC-Ressourcen den PowerShell-Katalog.
- Informationen zur Weitergabe von sensiblen Parametern an Konfigurationen finden Sie unter Sicheres Verwalten von Anmeldeinformationen mit dem Azure DSC-Erweiterungshandler.