Sdílet prostřednictvím


Vytvoření artefaktů vlastního balíčku konfigurace počítače

Než začnete, je vhodné si přečíst stránku s přehledem konfigurace počítače.

Konfigurace počítače při auditování a konfiguraci systému Windows i Linux používá konfiguraci DSC (Desired State Configuration ). Konfigurace DSC definuje stav, ve kterém by počítač měl být.

Důležité

Vlastní balíčky, které auditují stav prostředí a používají konfigurace, jsou ve stavu obecné dostupnosti (GA). Platí však následující omezení:

Pokud chcete používat balíčky konfigurace počítače, které používají konfigurace, vyžaduje se rozšíření konfigurace hosta virtuálního počítače Azure verze 1.26.24 nebo novější nebo agent Arc 1.10.0 nebo novější.

Modul GuestConfiguration je k dispozici pouze v Ubuntu 18 a novějších verzích. Balíček a zásady vytvořené modulem se ale dají použít v libovolné distribuci a verzi Linuxu podporované v Azure nebo Arc.

Testovací balíčky v systému macOS nejsou k dispozici.

Nepoužívejte tajné kódy ani důvěrné informace v balíčcích vlastního obsahu.

Pomocí následujících kroků vytvořte vlastní konfiguraci pro správu stavu počítače Azure nebo počítače mimo Azure.

Instalace PowerShellu 7 a požadovaných modulů PowerShellu

Nejprve postupujte podle kroků v tématu Jak nastavit prostředí pro vytváření konfigurace počítače. Tyto kroky vám pomůžou nainstalovat požadovanou verzi PowerShellu pro váš operační systém, modul GuestConfiguration a modul PSDesiredStateConfiguration .

Vytvoření konfigurace

Před vytvořením konfiguračního balíčku vytvořte a zkompilujte konfiguraci DSC. Ukázkové konfigurace jsou k dispozici pro Windows a Linux.

Důležité

Při kompilaci konfigurací pro Windows použijte PSDesiredStateConfiguration verze 2.0.7 (stabilní verze). Při kompilaci konfigurací pro Linux se nainstaluje předběžná verze 3.0.0.

Tato ukázková konfigurace je určená pro počítače s Windows. Nakonfiguruje počítač tak, aby vytvořil proměnnou MC_ENV_EXAMPLE prostředí v Process oborech a Machine rozsahech. Hodnota proměnné se nastaví na 'This was set by machine configuration'hodnotu .

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

S danou definicí uloženou MyConfig.ps1 v souboru skriptu můžete skript spustit a zkompilovat konfiguraci.

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

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

Konfigurace je zkompilována do localhost.mof souboru ve MyConfig složce v aktuálním pracovním adresáři. Přejmenujte localhost.mof na název, který chcete použít jako název balíčku, například 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

Poznámka:

Tento příklad ukazuje, jak vytvořit a zkompilovat konfiguraci pro počítač s Windows. Pro Linux je potřeba vytvořit vlastní modul prostředků DSC pomocí tříd PowerShellu. Článek Zápis vlastního prostředku DSC s třídami PowerShellu obsahuje úplný příklad vlastního prostředku a konfigurace testované s konfigurací počítače.

Zbytek tohoto článku se týká konfigurací definovaných pro počítače s Linuxem a Windows s výjimkou případů, kdy se uvádí aspekty specifické pro platformu.

Vytvoření artefaktu konfiguračního balíčku

Jakmile je MOF zkompilován, musí se podpůrné soubory zabalit dohromady. Hotový balíček se používá v konfiguraci počítače k vytvoření definic Azure Policy.

Rutina New-GuestConfigurationPackage vytvoří balíček. Moduly vyžadované konfigurací musí být dostupné ve $Env:PSModulePath vývojovém prostředí, aby je příkazy v modulu mohly přidat do balíčku.

Parametry rutiny New-GuestConfigurationPackage při vytváření obsahu systému Windows:

  • Název: název konfiguračního balíčku počítače.
  • Konfigurace: Úplná cesta zkompilovaného dokumentu konfigurace DSC
  • Cesta: Cesta k výstupní složce. Tento parametr je volitelný. Pokud není zadaný, balíček se vytvoří v aktuálním adresáři.
  • Typ: (Audit, ) Určuje, AuditandSetzda má konfigurace auditovat, nebo jestli má konfigurace změnit stav počítače, pokud je mimo požadovaný stav. Výchozí hodnota je Audit.

Tento krok nevyžaduje zvýšení oprávnění. Pokud příkaz spustíte vícekrát, použije se parametr Force k přepsání existujících balíčků.

Následující příkazy vytvoří artefakt balíčku:

# 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

Objekt se vrátí s názvem a cestou vytvořeného balíčku.

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

Očekávaný obsah artefaktu konfigurace počítače

Hotový balíček se používá v konfiguraci počítače k vytvoření definic Azure Policy. Balíček se skládá z:

  • Zkompilovaná konfigurace DSC jako MOF
  • Složka Modulů
    • Modul GuestConfiguration
    • Modul DscNativeResources
    • Moduly prostředků DSC vyžadované MOF
  • Soubor metakonfiguru, který ukládá balíček type a version

Rutina PowerShellu vytvoří soubor balíčku .zip . Není vyžadována žádná složka kořenové úrovně ani složka verze. Formát balíčku musí být .zip soubor a při nekomprimování nesmí překročit celkovou velikost 100 MB.

Archiv můžete rozbalit a zkontrolovat ho pomocí rutiny Expand-Archive .

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

Pomocí PowerShellu můžete získat celkovou velikost nekomprimovaného balíčku.

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

Rozšíření konfigurace počítače pomocí nástrojů třetích stran

Balíčky artefaktů pro konfiguraci počítače je možné rozšířit tak, aby zahrnovaly nástroje třetích stran. Rozšíření konfigurace počítače vyžaduje vývoj dvou komponent.

  • Prostředek Desired State Configuration, který zpracovává všechny aktivity související se správou nástroje třetí strany
    • Instalace
    • Vyvolání
    • Převod výstupu
  • Obsah ve správném formátu, který nástroj nativně využívá

Pokud komunitní řešení ještě neexistuje, prostředek DSC vyžaduje vlastní vývoj. Komunitní řešení je možné zjistit vyhledáním Galerie prostředí PowerShell značky GuestConfiguration.

Poznámka:

Rozšiřitelnost konfigurace počítače je scénář "Přineste si vlastní licenci". Před použitím se ujistěte, že jste splnili podmínky všech nástrojů třetích stran.

Po instalaci prostředku DSC ve vývojovém prostředí použijte parametr FilesToInclude k New-GuestConfigurationPackage zahrnutí obsahu pro platformu třetí strany do artefaktu obsahu.

Další krok