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,AuditandSet
hogy 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ékAudit
.
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.