Udostępnij za pośrednictwem


Jak utworzyć artefakty pakietu konfiguracji niestandardowej maszyny

Przed rozpoczęciem warto przeczytać stronę przeglądu konfiguracji maszyny.

Konfiguracja maszyny używa konfiguracji żądanego stanu (DSC) podczas inspekcji i konfigurowania systemów Windows i Linux. Konfiguracja platformy DSC definiuje stan, w jakim powinna być maszyna.

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 i wersji systemu Linux obsługiwanej na platformie Azure lub w usłudze Arc.

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

Nie używaj wpisów tajnych ani informacji poufnych w niestandardowych pakietach zawartości.

Wykonaj poniższe kroki, aby utworzyć własną konfigurację do zarządzania stanem platformy Azure lub maszyny spoza platformy Azure.

Instalowanie programu PowerShell 7 i wymaganych modułów programu PowerShell

Najpierw wykonaj kroki opisane w temacie Jak skonfigurować środowisko tworzenia konfiguracji maszyny. Te kroki ułatwiają zainstalowanie wymaganej wersji programu PowerShell dla systemu operacyjnego, modułu GuestConfiguration i modułu PSDesiredStateConfiguration.

Tworzenie konfiguracji

Przed utworzeniem pakietu konfiguracji utwórz i skompiluj konfigurację DSC. Przykładowe konfiguracje są dostępne dla systemów Windows i Linux.

Ważne

Podczas kompilowania konfiguracji dla systemu Windows użyj polecenia PSDesiredStateConfiguration w wersji 2.0.7 (stabilna wersja). Podczas kompilowania konfiguracji dla systemu Linux zainstaluj wersję wstępną 3.0.0.

Ta przykładowa konfiguracja dotyczy maszyn z systemem Windows. Konfiguruje maszynę w celu utworzenia zmiennej środowiskowej MC_ENV_EXAMPLE w Process zakresach i Machine . Wartość zmiennej ustawia wartość .'This was set by machine configuration'

Configuration MyConfig {
    Import-DscResource -Name 'Environment' -ModuleName 'PSDscResources'
    Environment MachineConfigurationExample {
        Name   = 'MC_ENV_EXAMPLE'
        Value  = 'This was set by machine configuration'
        Ensure = 'Present'
        Target = @('Process', 'Machine')
    }
}

MyConfig

Po zapisaniu tej definicji w pliku skryptu MyConfig.ps1 można uruchomić skrypt w celu skompilowania konfiguracji.

. .\MyConfig.ps1
    Directory: C:\dsc\MyConfig

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           5/16/2023 10:39 AM           1080 localhost.mof

Konfiguracja jest kompilowana do localhost.mof pliku w MyConfig folderze w bieżącym katalogu roboczym. Zmień nazwę localhost.mof na nazwę, której chcesz użyć jako nazwy pakietu, na przykład MyConfig.mof.

Rename-Item -Path .\MyConfig\localhost.mof -NewName MyConfig.mof -PassThru
    Directory: C:\dsc\MyConfig

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           5/16/2023 10:40 AM           1080 MyConfig.mof

Uwaga

W tym przykładzie pokazano, jak utworzyć i skompilować konfigurację dla maszyny z systemem Windows. W przypadku systemu Linux należy utworzyć niestandardowy moduł zasobów DSC przy użyciu klas programu PowerShell. Artykuł Pisanie niestandardowego zasobu DSC przy użyciu klas programu PowerShell zawiera pełny przykład niestandardowego zasobu i konfiguracji przetestowany przy użyciu konfiguracji maszyny.

Pozostała część tego artykułu dotyczy konfiguracji zdefiniowanych dla maszyn z systemami Linux i Windows, z wyjątkiem przypadków, w których wspomina o zagadnieniach specyficznych dla platformy.

Tworzenie artefaktu pakietu konfiguracji

Po skompilowaniu narzędzia MOF pliki pomocnicze muszą być spakowane razem. Ukończony pakiet jest używany przez konfigurację maszyny do tworzenia definicji usługi Azure Policy.

Polecenie New-GuestConfigurationPackage cmdlet tworzy pakiet. Moduły wymagane przez konfigurację muszą być dostępne w $Env:PSModulePath środowisku programistycznym, aby polecenia w module mogły je dodać do pakietu.

New-GuestConfigurationPackage Parametry polecenia cmdlet podczas tworzenia zawartości systemu Windows:

  • Nazwa: nazwa pakietu konfiguracji maszyny.
  • Konfiguracja: pełna ścieżka skompilowanego dokumentu konfiguracji DSC.
  • Ścieżka: ścieżka folderu wyjściowego. Ten parametr jest opcjonalny. Jeśli nie zostanie określony, pakiet zostanie utworzony w bieżącym katalogu.
  • Typ: (Audit, ) Określa, AuditandSetczy konfiguracja powinna być inspekcja, czy też konfiguracja powinna zmienić stan maszyny, jeśli jest poza żądanym stanem. Wartość domyślna to Audit.

Ten krok nie wymaga podniesienia uprawnień. Parametr Force służy do zastępowania istniejących pakietów, jeśli uruchamiasz polecenie więcej niż raz.

Następujące polecenia tworzą artefakt pakietu:

# Create a package that will only audit compliance
$params = @{
    Name          = 'MyConfig'
    Configuration = './MyConfig/MyConfig.mof'
    Type          = 'Audit'
    Force         = $true
}
New-GuestConfigurationPackage @params
# Create a package that will audit and apply the configuration (Set)
$params = @{
    Name          = 'MyConfig'
    Configuration = './MyConfig/MyConfig.mof'
    Type          = 'AuditAndSet'
    Force         = $true
}
New-GuestConfigurationPackage @params

Obiekt jest zwracany z nazwą i ścieżką utworzonego pakietu.

Name     Path
----     ----
MyConfig C:\dsc\MyConfig.zip

Oczekiwana zawartość artefaktu konfiguracji maszyny

Ukończony pakiet jest używany przez konfigurację maszyny do tworzenia definicji usługi Azure Policy. Pakiet składa się z następujących elementów:

  • Skompilowana konfiguracja DSC jako moF
  • Folder Modules
    • Moduł GuestConfiguration
    • Moduł DscNativeResources
    • Moduły zasobów DSC wymagane przez moF
  • Plik metakonfiguracji, który przechowuje pakiet type i version

Polecenie cmdlet programu PowerShell tworzy plik pakietu .zip . Nie jest wymagany folder lub folder wersji na poziomie głównym. Format pakietu musi być plikiem .zip i nie może przekraczać całkowitego rozmiaru 100 MB w przypadku braku kompresji.

Możesz rozwinąć archiwum, aby go sprawdzić przy użyciu Expand-Archive polecenia cmdlet .

Expand-Archive -Path .\MyConfig.zip -DestinationPath MyConfigZip

Łączny rozmiar nieskompresowanego pakietu można uzyskać za pomocą programu PowerShell.

Get-ChildItem -Recurse -Path .\MyConfigZip |
    Measure-Object -Sum Length |
    ForEach-Object -Process {
        $Size = [math]::Round(($_.Sum / 1MB), 2)
        "$Size MB"
    }

Rozszerzanie konfiguracji maszyny za pomocą narzędzi innych firm

Pakiety artefaktów dla konfiguracji maszyny można rozszerzyć w celu uwzględnienia narzędzi innych firm. Rozszerzanie konfiguracji maszyny wymaga opracowania dwóch składników.

  • Zasób Desired State Configuration, który obsługuje wszystkie działania związane z zarządzaniem narzędziem innej firmy
    • Instalowanie
    • Wywołanie
    • Konwertowanie danych wyjściowych
  • Zawartość w poprawnym formacie narzędzia do natywnego korzystania

Zasób DSC wymaga tworzenia niestandardowego, jeśli rozwiązanie społeczności jeszcze nie istnieje. Rozwiązania społeczności można odnaleźć, wyszukując Galeria programu PowerShell pod kątem tagu GuestConfiguration.

Uwaga

Rozszerzalność konfiguracji maszyny jest scenariuszem "przynieś własną licencję". Przed rozpoczęciem korzystania upewnij się, że zostały spełnione warunki i postanowienia wszystkich narzędzi innych firm.

Po zainstalowaniu zasobu DSC w środowisku projektowym użyj parametru New-GuestConfigurationPackage FilesToInclude, aby uwzględnić zawartość dla platformy innej firmy w artefaktie zawartości.

Następny krok