VM-Konfiguration automatisieren? Desired State Configuration einrichten

Veröffentlicht am:

CloudTrips möchte Betriebssystemeinstellungen von VMs konsistent halten, ohne dass Administratoren jeden Server wiederholt ändern müssen. Desired State Configuration (DSC) beschreibt den gewünschten Zustand. Azure prüft die Maschine und korrigiert Abweichungen vom festgelegten Zustand.

Dieser Trip verwendet Azure Machine Configuration, den aktuellen Azure-Dienst zum Prüfen und Konfigurieren von Einstellungen innerhalb von Azure-VMs und Arc-fähigen Servern. Er ersetzt den älteren Workflow mit Azure Automation State Configuration, der am 30. September 2027 eingestellt wird.

Verstehe die Komponenten

Eine Azure Policy ist eine einzelne Regel, beispielsweise die Vorgabe einer bestimmten Windows-Zeitzone. Eine Initiative ist eine Sammlung zusammengehöriger Richtlinien, die gemeinsam zugewiesen werden. Die Voraussetzungsinitiative bündelt die Regeln, die unterstützte VMs für Machine Configuration vorbereiten.

Machine Configuration benötigt zwei Komponenten auf einer Azure-VM:

  • eine verwaltete Identität, mit der sich die VM ohne gespeicherte Anmeldedaten bei Azure authentifiziert;
  • die Machine-Configuration-Erweiterung, die Zuweisungen herunterlädt, Einstellungen im Gastbetriebssystem prüft, Änderungen anwendet und die Konformität meldet.

Die Initiative Enable Machine Configuration prerequisites stellt diese Komponenten bereit, wenn sie fehlen. Anschließend kann die separate Zeitzonenrichtlinie den eigentlichen gewünschten Zustand definieren und durchsetzen. Eine Remediation task führt die Bereitstellung oder Korrektur für vorhandene Ressourcen aus; eine Auswertung allein stellt nur fest, ob sie konform sind.

Azure Arc-enabled servers sind physische oder virtuelle Server außerhalb von Azure, beispielsweise lokal, in VMware, AWS oder einer anderen Cloud, auf denen der Azure Connected Machine Agent installiert ist. Arc macht sie in Azure verwaltbar. Die VM dieses Trips läuft bereits in Azure. Sie ist daher kein Arc-fähiger Server und Include Arc connected servers bleibt False.

Erstelle Ressourcengruppe und VM

Erstelle:

Subscription: CloudTrips TEST
Resource group: rg-cloudtrips-dsc-test-weu
Region: West Europe

Erstelle eine Azure virtual machine:

Virtual machine name: vm-cloudtrips-dsc01-test-weu
Availability options: No infrastructure redundancy required
Security type: Trusted launch virtual machines
Image: Windows Server 2022 Datacenter: Azure Edition - x64 Gen2
Size: Standard_D2s_v3
Username: azureadmin
Password: Starkes Kennwort erstellen
Confirm password: Dasselbe Kennwort erneut eingeben
Public inbound ports: None
OS disk type: Standard SSD LRS
Virtual network: vnet-cloudtrips-dsc-test-weu
Address range: 10.90.0.0/16
Subnet: snet-servers
Subnet range: 10.90.1.0/24
Public IP: None
NIC network security group: None
System-assigned managed identity: On

Wähle Review + create > Create. Die VM benötigt ausgehenden HTTPS-Zugriff, damit der Machine-Configuration-Agent Zuweisungen herunterladen und Ergebnisse melden kann.

Übersicht der laufenden Windows-VM mit aktivierter systemseitig zugewiesener verwalteter Identität

Stelle die Voraussetzungen bereit

Öffne Policy > Definitions und suche nach:

Deploy prerequisites to enable Guest Configuration policies on virtual machines

Öffne die integrierte Initiative und wähle Assign initiative:

Scope: rg-cloudtrips-dsc-test-weu
Assignment name: Enable Machine Configuration prerequisites
Managed identity: System assigned
Identity location: West Europe
Create a remediation task: Enabled

Wähle Review + create > Create. Dadurch wird die Machine-Configuration-Erweiterung bereitgestellt und die benötigte Identität sichergestellt. Diese Vorbereitung legt die Zeitzone noch nicht fest; das erledigt die separate Richtlinie im nächsten Abschnitt. In Richtliniennamen verwendet das Portal teilweise noch den älteren Begriff Guest Configuration.

Zuweisung der Initiative für Machine-Configuration-Voraussetzungen im Bereich der Labor-Ressourcengruppe

Weise die gewünschte Konfiguration zu

Kehre zu Policy > Definitions zurück, setze Category auf Guest Configuration und öffne:

Configure time zone on Windows machines.

Wähle Assign policy und konfiguriere:

Scope: rg-cloudtrips-dsc-test-weu
Assignment name: Configure Vienna time zone on Windows VMs
Time zone: (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
Include Arc connected servers: False
Managed identity: System assigned
Identity location: West Europe
Create a remediation task: Enabled

Wähle im Portal den Eintrag, der Wien enthält. Innerhalb von Windows wird die zugehörige Zeitzonen-ID als W. Europe Standard Time angezeigt. Wähle Review + create > Create.

Die Richtlinie erstellt eine Machine-Configuration-Zuweisung innerhalb der VM. Das DSC-Paket prüft die aktuelle Zeitzone und setzt sie auf den gewünschten Wert, wenn sie nicht übereinstimmt.

Zuweisung der Richtlinie Configure time zone on Windows machines mit Ressourcengruppenbereich und der Zeitzone Amsterdam, Berlin, Bern, Rom, Stockholm, Wien

Prüfe die Korrektur von Abweichungen

Richtlinienbereitstellung und Gastkonformität können mehrere Minuten dauern. Öffne die VM, wähle Run command > RunPowerShellScript und führe aus:

Get-TimeZone | Select-Object Id, DisplayName

Die ID sollte lauten:

W. Europe Standard Time

Erzeuge nun absichtlich eine Konfigurationsabweichung:

Set-TimeZone -Id 'UTC'
Get-TimeZone | Select-Object Id, DisplayName

Öffne Policy > Compliance, wähle die Zeitzonenzuweisung und warte, bis Ressourcenkonformität und Korrekturdetails erscheinen. Auswertungen durch Machine Configuration erfolgen asynchron und sind keine sofortige Befehlsausführung.

Führe nach der nächsten Auswertung und Korrektur erneut den ersten Befehl aus. Die Zeitzone sollte wieder W. Europe Standard Time sein. Das ist der Desired-State-Kreislauf: Zustand prüfen, Abweichung erkennen und die deklarierte Konfiguration erneut setzen.

Aufräumen

Lösche die isolierte Labor-Ressourcengruppe einschließlich VM und zugehöriger Richtlinienzuweisungen:

az group delete --name rg-cloudtrips-dsc-test-weu --yes

Bestätige, dass az group exists --name rg-cloudtrips-dsc-test-weu den Wert false zurückgibt.