So testen Sie Artefakte des Computerkonfigurationspakets

Das PowerShell-Modul GuestConfiguration enthält Tools zum Automatisieren des Testens eines Konfigurationspakets außerhalb von Azure. Verwenden Sie diese Tools, um Probleme zu finden und schnell zu durchlaufen, bevor Sie mit dem Testen in einer mit Azure oder Arc verbundenen Umgebung fortfahren.

Bevor Sie mit dem Testen beginnen können, müssen Sie Ihre Erstellungsumgebung einrichten und ein benutzerdefiniertes Paket für die Computerkonfiguration erstellen.

Wichtig

Benutzerdefinierte Pakete, die den Zustand einer Umgebung überwachen und Konfigurationen anwenden, haben den Supportstatus „Allgemeine Verfügbarkeit (GA)“. Es gelten jedoch die folgenden Einschränkungen:

Zur Verwendung von Maschinenkonfigurationspaketen, die Konfigurationen anwenden, ist Version 1.26.24 oder höher der Azure-VM-Gastkonfigurationserweiterung oder Arc-Agent 1.10.0 oder höher erforderlich.

Das Modul GuestConfiguration ist nur unter Ubuntu 18 und höher verfügbar. Aber das vom Modul erstellte Paket und die Richtlinien können für jede Linux-Distribution/-Version genutzt werden, die von Azure oder Arc unterstützt wird.

Das Testen von Paketen unter macOS ist nicht möglich.

Sie können das Paket über Ihre Arbeitsstation oder CI/CD-Umgebung (Continuous Integration/Continuous Deployment) testen. Das Modul GuestConfiguration enthält den gleichen Agent für Ihre Entwicklungsumgebung, der auf Azure- oder Arc-fähigen Computern verwendet wird. Der Agent enthält eine eigenständige Instanz von PowerShell 7.1.3 für Windows und 7.2.0-preview.7 für Linux. Die eigenständige Instanz stellt sicher, dass die Skriptumgebung, in der das Paket getestet wird, mit den Computern konsistent ist, die Sie mithilfe der Computerkonfiguration verwalten.

Der Agent-Dienst auf Azure- und Arc-fähigen Computern wird unter Windows als LocalSystem-Konto und unter Linux als Root ausgeführt. Führen Sie die Befehle in diesem Artikel in einem privilegierten Sicherheitskontext aus, um optimale Ergebnisse zu erzielen.

Um PowerShell unter Windows als LocalSystem auszuführen, verwenden Sie das SysInternals-Tool PSExec.

Um PowerShell unter Linux als Root auszuführen, verwenden Sie den Befehl sudo.

Überprüfen, ob das Konfigurationspaket die Anforderungen erfüllt

Testen Sie zunächst mithilfe von Get-GuestConfigurationPackageComplianceStatus, ob das Konfigurationspaket die grundlegenden Anforderungen erfüllt. Der Befehl überprüft die folgenden Paketanforderungen.

  • MOF ist am richtigen Speicherort vorhanden und gültig
  • Erforderliche Module/Abhängigkeiten sind mit der richtigen Version vorhanden, ohne Duplikate
  • Überprüfen, ob das Paket signiert ist (optional)
  • Testen, ob Test und Get Informationen zum Konformitätsstatus zurückgeben

Parameter des Cmdlets Get-GuestConfigurationPackageComplianceStatus:

  • Pfad: Dateipfad oder URI des Maschinenkonfigurationspakets.
  • Parameter: Richtlinienparameter, die als Hashtabelle bereitgestellt werden.

Wenn dieser Befehl zum ersten Mal ausgeführt wird, wird der Maschinenkonfigurationsagent auf der Testmaschine unter dem Pfad C:\ProgramData\GuestConfig\bin unter Windows und /var/lib/GuestConfig/bin unter Linux installiert. Auf diesen Pfad kann ein Benutzerkonto nicht zugreifen, sodass für den Befehl eine Rechteerweiterung erforderlich ist.

Führen Sie zum Testen des Pakets folgenden Befehl aus:

In Windows aus einer PowerShell 7-Sitzung mit erhöhten Rechten.

# Get the current compliance results for the local machine
Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip

In Linux durch Ausführen von PowerShell mit „sudo“.

# Get the current compliance results for the local machine
sudo pwsh -command 'Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip'

Der Befehl gibt ein Objekt aus, das den Konformitätsstatus und die Details pro Ressource enthält.

  complianceStatus  resources
  ----------------  ---------
  True              @{BuiltInAccount=localSystem; ConfigurationName=MyConfig; …

Testen, ob das Konfigurationspaket eine Konfiguration anwenden kann

Wenn der Konfigurationspaketmodus AuditandSet ist, können Sie schließlich mit dem Befehl Start-GuestConfigurationPackageRemediation testen, ob die Set-Methode Einstellungen auf einen lokalen Computer anwenden kann.

Wichtig

Dieser Befehl versucht, Änderungen in der lokalen Umgebung vorzunehmen, in der er ausgeführt wird.

Parameter des Cmdlets Start-GuestConfigurationPackageRemediation:

  • Pfad: Vollständiger Pfad des Maschinenkonfigurationspakets.

In Windows aus einer PowerShell 7-Sitzung mit erhöhten Rechten.

# Test applying the configuration to local machine
Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip

In Linux durch Ausführen von PowerShell mit „sudo“.

# Test applying the configuration to local machine
sudo pwsh -command 'Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip'

Der Befehl gibt nur dann eine Ausgabe zurück, wenn Fehler auftreten. Verwenden Sie zur Problembehandlung bei Details in Verbindung mit Ereignissen, die während der Ausführung von Set auftreten, den -verbose-Parameter.

Nachdem Sie den Befehl Start-GuestConfigurationPackageRemediation ausgeführt haben, können Sie den Befehl Get-GuestConfigurationComplianceStatus erneut ausführen, um zu bestätigen, dass sich der Computer jetzt im richtigen Zustand befindet.

Nächster Schritt