Egyéni gép konfigurációs csomagjának összetevőinek létrehozása

Mielőtt hozzákezdene, érdemes elolvasni a gépkonfiguráció áttekintési oldalát.

A gépkonfiguráció a Kívánt állapotkonfigurációt (DSC) használja a Windows és a Linux naplózása és konfigurálása során. A DSC-konfiguráció határozza meg a gép kívánt állapotát.

Fontos

A környezet állapotát naplózható és konfigurációkat alkalmazó egyéni csomagok általánosan elérhető (GA) támogatási állapotban vannak. A következő korlátozások azonban érvényesek:

A konfigurációkat alkalmazó gépkonfigurációs csomagok használatához az Azure-beli virtuális gép vendégkonfigurációs bővítményének 1.26.24-es vagy újabb verziójára vagy az Arc-ügynök 1.10.0-s vagy újabb verziójára van szükség.

A GuestConfiguration modul csak az Ubuntu 18-on és újabb verziókban érhető el. A modul által létrehozott csomag és szabályzatok azonban bármely Linux-disztribúción és az Azure-ban vagy az Arcban támogatott verzión használhatók.

A csomagok tesztelése macOS rendszeren nem érhető el.

Ne használjon titkos kulcsokat vagy bizalmas információkat egyéni tartalomcsomagokban.

Az alábbi lépésekkel saját konfigurációt hozhat létre egy Azure-beli vagy nem Azure-beli gép állapotának kezeléséhez.

A PowerShell 7 és a szükséges PowerShell-modulok telepítése

Először kövesse a Gépkonfiguráció szerzői környezet beállításának lépéseit. Ezek a lépések segítenek telepíteni az operációs rendszerhez szükséges PowerShell-verziót, a GuestConfiguration modult és a PSDesiredStateConfiguration modult .

Konfiguráció létrehozása

A konfigurációs csomag létrehozása előtt hozzon létre és állítson össze egy DSC-konfigurációt. Példakonfigurációk érhetők el Windowshoz és Linuxhoz.

Fontos

A Windows konfigurációinak összeállításakor használja a PSDesiredStateConfiguration 2.0.7-es verzióját (a stabil kiadást). A linuxos konfigurációk összeállításakor telepítse a 3.0.0-s verziót.

Ez a példakonfiguráció Windows rendszerű gépekre vonatkozik. Úgy konfigurálja a gépet, hogy létrehozza a MC_ENV_EXAMPLE környezeti változót a hatókörökben és Machine a Process hatókörökben. A változó értéke a következőre 'This was set by machine configuration'van adva: .

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

A szkriptfájlba MyConfig.ps1 mentett definícióval futtathatja a szkriptet a konfiguráció fordításához.

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

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

A konfiguráció az localhost.mof aktuális munkakönyvtár mappájában MyConfig lévő fájlba lesz lefordítva. Nevezze át localhost.mof a csomagnévként használni kívánt nevet, például 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

Feljegyzés

Ez a példa bemutatja, hogyan hozhat létre és állíthat össze konfigurációt windowsos gépekhez. Linux esetén egyéni DSC-erőforrásmodult kell létrehoznia PowerShell-osztályok használatával. Az egyéni DSC-erőforrások PowerShell-osztályokkal való írása című cikk teljes körű példát tartalmaz egy egyéni erőforrásra és konfigurációra, amely gépkonfigurációval van tesztelve.

A cikk további része a Linux és Windows rendszerű gépekhez definiált konfigurációkra vonatkozik, kivéve, ha platformspecifikus szempontokat említ.

Konfigurációs csomag összetevőjének létrehozása

Az MOF fordítása után a támogató fájlokat össze kell csomagolni. Az elkészült csomagot a gép konfigurációja használja az Azure Policy-definíciók létrehozásához.

A New-GuestConfigurationPackage parancsmag létrehozza a csomagot. A konfigurációhoz szükséges moduloknak elérhetőnek $Env:PSModulePath kell lenniük a fejlesztési környezetben, hogy a modul parancsai hozzáadhassák őket a csomaghoz.

A parancsmag paraméterei Windows-tartalom New-GuestConfigurationPackage létrehozásakor:

  • Név: gépkonfigurációs csomag neve.
  • Konfiguráció: Lefordított DSC-konfigurációs dokumentum teljes elérési útja.
  • Elérési út: Kimeneti mappa elérési útja. Ez a paraméter nem kötelező. Ha nincs megadva, a csomag az aktuális könyvtárban jön létre.
  • Típus: (Audit, ) Meghatározza, AuditandSethogy a konfiguráció csak naplózást végez,vagy ha a konfigurációnak módosítania kell a gép állapotát, ha az nem a kívánt állapot. Az alapértelmezett érték Audit.

Ez a lépés nem igényel jogosultságszint-emelést. A Force paraméter a meglévő csomagok felülírására szolgál, ha többször futtatja a parancsot.

A következő parancsok létrehoznak egy csomagösszetevőt:

# 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

Egy objektum a létrehozott csomag nevével és elérési útjával lesz visszaadva.

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

Gépkonfigurációs összetevő várt tartalma

Az elkészült csomagot a gép konfigurációja használja az Azure Policy-definíciók létrehozásához. A csomag a következőkből áll:

  • A lefordított DSC-konfiguráció MOF-ként
  • Modulok mappa
    • GuestConfiguration modul
    • DscNativeResources modul
    • Az MOF által igényelt DSC-erőforrásmodulok
  • A csomagot type tároló metakonfigurációs fájl, version

A PowerShell-parancsmag létrehozza a csomagfájlt .zip . Nincs szükség gyökérszintű mappára vagy verziómappára. A csomagformátumnak fájlnak kell lennie .zip , és tömörítetlen állapotban nem haladhatja meg a 100 MB-ot.

A parancsmaggal kibonthatja az archívumot az Expand-Archive ellenőrzéshez.

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

A tömörítetlen csomag teljes méretét a PowerShell használatával szerezheti be.

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

A gépkonfiguráció kiterjesztése külső eszközökkel

A gépkonfiguráció összetevőcsomagjai kiterjeszthetők külső eszközökre is. A gépkonfiguráció kiterjesztése két összetevő fejlesztését igényli.

  • Célállapot-konfigurációs erőforrás, amely a külső eszköz kezelésével kapcsolatos összes tevékenységet kezeli
    • Telepítés
    • Meghívás
    • Kimenet konvertálása
  • Az eszköz natív felhasználásához megfelelő formátumú tartalom

A DSC-erőforrás egyéni fejlesztést igényel, ha még nem létezik közösségi megoldás. A közösségi megoldások a vendégkonfiguráció címkéjének PowerShell-galéria keresésével deríthetők fel.

Feljegyzés

A gépkonfiguráció bővíthetősége egy "saját licenc használata" forgatókönyv. A használat előtt győződjön meg arról, hogy megfelelt a külső eszközökre vonatkozó feltételeknek.

Miután telepítette a DSC-erőforrást a fejlesztői környezetben, használja a FilesToInclude paramétert New-GuestConfigurationPackage , hogy a tartalomösszetevőbe belefoglalja a külső platform tartalmát.

Következő lépés