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,AuditandSet
czy konfiguracja powinna być inspekcja, czy też konfiguracja powinna zmienić stan maszyny, jeśli jest poza żądanym stanem. Wartość domyślna toAudit
. - FrequencyMinutes: częstotliwość oceny pakietu na maszynie w minutach.
- FilesToInclude: lista tablic ścieżek do dodatkowych plików do uwzględnienia w wygenerowanym pakiecie.
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
iversion
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.