Jak przetestować artefakty pakietu konfiguracji maszyny

Moduł Programu PowerShell GuestConfiguration zawiera narzędzia do automatyzowania testowania pakietu konfiguracji poza platformą Azure. Użyj tych narzędzi, aby szybko znaleźć problemy i wykonać iterację przed przejściem do testowania w środowisku połączonym z platformą Azure lub usługą Arc.

Przed rozpoczęciem testowania należy skonfigurować środowisko tworzenia i utworzyć niestandardowy artefakt pakietu konfiguracji maszyny.

Ważne

Pakiety niestandardowe, które przeprowadzają inspekcję stanu środowiska i stosują konfiguracje, są w stanie pomocy technicznej ogólnie dostępnej. Obowiązują jednak następujące ograniczenia:

Aby użyć pakietów konfiguracji maszyny, które stosują konfiguracje, wymagane jest rozszerzenie konfiguracji gościa maszyny wirtualnej platformy Azure w wersji 1.26.24 lub nowszej albo agent usługi Arc 1.10.0 lub nowszej.

Moduł GuestConfiguration jest dostępny tylko w systemie Ubuntu 18 lub nowszym. Jednak pakiet i zasady utworzone przez moduł mogą być używane w dowolnej dystrybucji/wersji systemu Linux obsługiwanej na platformie Azure lub w usłudze Arc.

Testowanie pakietów w systemie macOS nie jest dostępne.

Pakiet można przetestować ze środowiska stacji roboczej lub ciągłej integracji i ciągłego wdrażania (CI/CD). Moduł GuestConfiguration zawiera tego samego agenta dla środowiska deweloperskiego, który jest używany na maszynach z obsługą usługi Azure lub Arc. Agent zawiera autonomiczne wystąpienie programu PowerShell 7.1.3 dla systemów Windows i 7.2.0-preview.7 dla systemu Linux. Wystąpienie autonomiczne zapewnia środowisko skryptu, w którym testowany jest pakiet, jest zgodne z maszynami zarządzanymi przy użyciu konfiguracji maszyny.

Usługa agenta na maszynach z obsługą platformy Azure i usługi Arc jest uruchomiona jako LocalSystem konto w systemach Windows i Root w systemie Linux. Uruchom polecenia w tym artykule w kontekście zabezpieczeń uprzywilejowanych, aby uzyskać najlepsze wyniki.

Aby uruchomić program PowerShell jak LocalSystem w systemie Windows, użyj narzędzia SysInternals PSExec.

Aby uruchomić program PowerShell jako katalog główny w systemie Linux, użyj polecenia sudo.

Sprawdzanie, czy pakiet konfiguracji spełnia wymagania

Najpierw przetestuj, czy pakiet konfiguracji spełnia podstawowe wymagania przy użyciu polecenia Get-GuestConfigurationPackageComplianceStatus. Polecenie weryfikuje następujące wymagania dotyczące pakietu.

  • MoF jest obecny i prawidłowy w odpowiedniej lokalizacji
  • Wymagane moduły/zależności są obecne w odpowiedniej wersji bez duplikatów
  • Sprawdzanie, czy pakiet jest podpisany (opcjonalnie)
  • Przetestuj te Test informacje i Get zwróć informacje o stanie zgodności

Get-GuestConfigurationPackageComplianceStatus Parametry polecenia cmdlet:

  • Ścieżka: ścieżka pliku lub identyfikator URI pakietu konfiguracji maszyny.
  • Parametr: Parametry zasad podane jako tabela skrótów.

Po pierwszym uruchomieniu tego polecenia agent konfiguracji maszyny zostanie zainstalowany na maszynie testowej na ścieżce w systemie C:\ProgramData\GuestConfig\bin Windows i /var/lib/GuestConfig/bin w systemie Linux. Ta ścieżka nie jest dostępna dla konta użytkownika, dlatego polecenie wymaga podniesienia uprawnień.

Uruchom następujące polecenie, aby przetestować pakiet:

W systemie Windows z sesji programu PowerShell 7 z podwyższonym poziomem uprawnień.

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

W systemie Linux, uruchamiając program PowerShell przy użyciu programu sudo.

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

Polecenie zwraca obiekt zawierający stan zgodności i szczegóły dla zasobu.

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

Testowanie pakietu konfiguracji może zastosować konfigurację

Na koniec, jeśli tryb pakietu konfiguracji jest AuditandSet można przetestować, że Set metoda może zastosować ustawienia do komputera lokalnego przy użyciu polecenia Start-GuestConfigurationPackageRemediation.

Ważne

To polecenie próbuje wprowadzić zmiany w środowisku lokalnym, w którym jest uruchamiany.

Start-GuestConfigurationPackageRemediation Parametry polecenia cmdlet:

  • Ścieżka: pełna ścieżka pakietu konfiguracji maszyny.

W systemie Windows z sesji programu PowerShell 7 z podwyższonym poziomem uprawnień.

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

W systemie Linux, uruchamiając program PowerShell przy użyciu programu sudo.

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

Polecenie zwraca dane wyjściowe tylko wtedy, gdy wystąpią błędy. Aby rozwiązać problemy ze szczegółowymi informacjami na temat zdarzeń występujących podczas , Setużyj parametru -verbose .

Po uruchomieniu polecenia Start-GuestConfigurationPackageRemediationmożna ponownie uruchomić polecenie Get-GuestConfigurationComplianceStatus , aby potwierdzić, że maszyna jest teraz w poprawnym stanie.

Następny krok