Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
WinGet-konfigurációs fájl létrehozása:
- Hozzon létre egy YAML-fájlt a WinGet-konfigurációs fájl elnevezési konvencióját követve.
- Ismerkedjen meg a WinGet-konfigurációs fájl formátumával, és kapcsolja össze az aktuális fájlséma számával.
- Határozza meg az Állítások (kötelező előfeltételek) és Erőforrások (a szükséges telepítések és beállítási konfigurációk listájának, amelyek a gép fejlesztési környezetét a kívánt állapotba hozzák) belefoglalni kívánt listáját a fájlba.
- Azonosítsa a kívánt konfigurációs feladatok elvégzéséhez szükséges PowerShell-modulokat és A kívánt állapotkonfigurációs (DSC) erőforrásokat.
- Határozza meg az egyes konfigurációs erőforrásokhoz szükséges irányelveket és beállításokat.
- Határozza meg az egyes erőforrások függőségeit.
További információ a WinGet-konfigurálási parancs használatáról.
Fájlformátum
A Windows Package Manager jegyzékfájlokat (YAML-fájlokat) használ a Windows-felhasználók csomagjainak megkereséséhez és telepítéséhez. A WinGet-konfigurációs fájlok ugyanazt a YAML-stílusformátumot használják, és hozzáadnak egy JSON-sémaspecifikációt a fájl szerkezetének és érvényesítésének meghatározásához. Annak megállapításához, hogy a WinGet-konfigurációs fájl formátuma érvényes-e, javasoljuk, hogy a Visual Studio Code és a RedHat YAML-bővítménye segítségével támogassa a megfelelő szintaxist, segítsen a formázási hibák észlelésében, a rámutatás támogatásában és az automatikus kiegészítésben (a JSON-sémafájlhoz csatolva), és biztosítsa az érvényes formázást.
Fájlelnevezési konvenció
A WinGet-konfigurációs fájlok elnevezésének konvenciója a ".winget" fájlkiterjesztést használja (például configuration.winget). Git-alapú projektek esetén az alapértelmezett konfigurációt egy ".config" könyvtárban kell tárolni a következő helyen: ./config/configuration.winget. Bizonyos esetekben több konfigurációs fájl is megfelelő lehet különböző eszközláncok vagy felhasználói beállítások alapján. Ezeknek a további konfigurációs fájloknak a ".config" könyvtárban kell lenniük.
WinGet-konfigurációs fájl szakaszai
A WinGet-konfigurációs fájl két elsődleges szakaszra van elválasztva:
- Assertionok: A konfiguráció futtatásához szükséges előfeltételek.
- Erőforrások: A telepíteni kívánt szoftverek és eszközök listája, a telepítések konfigurációs beállításai, valamint a Windows operációs rendszer konfigurációs beállításai.
Állítások szakasz
Az állítások listája tartalmazza azokat az előfeltételeket (vagy előfeltételeket), amelyek szükségesek ahhoz, hogy az ebben a WinGet-konfigurációs fájlban felsorolt erőforrások sikeresek lehessenek a fájlt futtató gépen. Az állítások párhuzamosan is elvégezhetők, és nem igényelnek szekvenciális sorrendet.
Példa állítás:
- Operációs rendszer verziója: A gépen telepített operációs rendszer* minimális verziója. Az operációs rendszerhez idővel hozzáadott funkciók közül néhányat visszaportolnak a korábbi verziók támogatására, míg másokat nem. Az operációs rendszer minimális verziójának ellenőrzése mindig hasznos annak megállapításához, hogy támogatott-e egy adott eszköz vagy szolgáltatás, amely a konfigurációhoz szükséges. A WinGet (Windows Package Manager) használatához például legalább Windows 10, 1809-es vagy újabb verzió szükséges. A Windows régebbi verziói nem támogatják a WinGetet. * A PowerShell DSC-erőforrások módosíthatják a rendszer állapotát, de nem lenne helyénvaló meghívni a Windows Update-et, és módosítani az operációs rendszer verzióját egy nyílt forráskódú projekt projektkonfigurációjában.
Ha egy állítás "hamis" értéket ad vissza, amely azt jelzi, hogy a rendszer nem a kívánt állapotban van, a rendszer kihagyja az mezőt használó függőségként azonosító dependsOn, és nem fut. Ebben az esetben annak ellenére, hogy nem alkalmaztak konfigurációmódosításokat a Windows-környezetben, ez a konfiguráció sikeres eredménynek minősül.
Erőforrások szakasz
Az erőforrások listája tartalmazza a telepíteni kívánt összes szoftvert, eszközt, csomagot stb., valamint a Windows operációs rendszer vagy a telepített alkalmazások konfigurációs beállításait. Minden erőforrásnak nevet, a végrehajtandó irányelv leírását és az irányelv végrehajtásáért felelős PowerShell-modult, valamint a kapcsolódó beállításokat vagy függőségeket kell megadnia.
Példa WinGet-konfigurációs fájlra
Az alábbiakban egy példafájlt mutatunk be, amely formázva van, mint a WinGet Configuration configuration.winget.
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
properties:
assertions:
- resource: Microsoft.Windows.Developer/OsVersion
directives:
description: Verify min OS version requirement
allowPrerelease: true
settings:
MinVersion: '10.0.22000'
resources:
- resource: Microsoft.Windows.Settings/WindowsSettings
directives:
description: Enable Developer Mode
allowPrerelease: true
securityContext: elevated
settings:
DeveloperMode: true
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: vsPackage
directives:
description: Install Visual Studio 2022 Community
securityContext: elevated
settings:
id: Microsoft.VisualStudio.2022.Community
source: winget
- resource: Microsoft.VisualStudio.DSC/VSComponents
dependsOn:
- vsPackage
directives:
description: Install required VS workloads from vsconfig file
allowPrerelease: true
securityContext: elevated
settings:
productId: Microsoft.VisualStudio.Product.Community
channelId: VisualStudio.17.Release
vsConfigFile: '${WinGetConfigRoot}\..\.vsconfig'
includeRecommended: true
configurationVersion: 0.2.0
A fájl összetevői a következők:
Séma: A konfigurációs fájl első sorának tartalmaznia kell a következő megjegyzést:
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/<most recent schema version #>a fájl által követett DSC-séma létrehozásához. A WinGet-konfigurációs séma legújabb verziójának megkereséséhez nyissa meg a következőt https://aka.ms/configuration-dsc-schema/: . A példa idején a legutóbbi sémaszám a következő0.2volt, így a séma a következőképpen lett beírva:# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2.Tulajdonságok: A konfigurációs fájl gyökércsomópontjának
propertiestartalmaznia kell egy konfigurációs verziót (configurationVersion: 0.2.0ebben a példában). Ezt a verziót a konfigurációs fájl frissítésével összhangban kell frissíteni. A tulajdonságok csomópontjának tartalmaznia kell egy csomópontotassertionsés egy csomópontotresources.Állítások: Az ebben a szakaszban felsorolt konfigurációhoz szükséges előfeltételek felsorolása.
Erőforrások: A listaszakaszok és a
assertionsresourceslistaszakaszok is különállóresourcecsomópontokból állnak, amelyek a beállított feladatot jelölik. AresourcePowerShell-modul nevét, majd a modul DSC-erőforrásának nevét kell megadni, amelyet a rendszer meghív a kívánt állapot alkalmazásához:{ModuleName}/{DscResource}. Minden erőforrásnak tartalmazniadirectiveskell éssettings. Opcionálisan egy értéket is tartalmazhatid. Konfiguráció alkalmazásakor a WinGet tudni fogja, hogy telepíti a modult a PowerShell-katalógusból , és meghívja a megadott DSC-erőforrást.Irányelvek: A
directivesszakasz információkat tartalmaz a modulról és az erőforrásról. Ennek a szakasznak tartalmaznia kell egydescriptionértéket a modul által végrehajtandó konfigurációs feladat leírásához. AzallowPrereleaseérték lehetővé teszi annak kiválasztását, hogy a konfiguráció engedélyezve lesz-e (true) a "Prerelease" modulok használatához a PowerShell-gyűjteményből. Előfordulhat, hogy egyes DSC-erőforrásoknak rendszergazdai jogosultságokkal kell futniuk. AzsecurityContext: elevatederőforrás irányelvek szakaszában lévő mező jelzi ezt a követelményt. Amikor aelevatedbe van állítva, a WinGet a konfiguráció elején egy UAC jóváhagyást kér majd. A WinGet ezután két folyamatot indít el: egyet, amely emelt szintű jogosultságokkal rendelkező erőforrásokat futtat, a másik pedig az aktuális felhasználó jogosultságaival rendelkező erőforrásokat futtat.Beállítások: Az
settingserőforrás értéke a PowerShell DSC-erőforrásnak átadott név-érték párok gyűjteményét jelöli. A beállítások bármit jelenthetnek attól függően, hogy a fejlesztői mód engedélyezve van-e, egy reg kulcs alkalmazásától vagy egy adott hálózati beállítás beállításától.Függőségek: Egy
dependsOnerőforrás értéke határozza meg, hogy a tevékenység megkezdése előtt minden más állításnak vagy erőforrásnak teljesnek kell-e lennie. Ha a függőség nem sikerült, ez az erőforrás is automatikusan meghiúsul.Azonosító: Az adott erőforráspéldány egyedi azonosítója. Az
idérték akkor használható, ha egy másik erőforrás függőséget alkalmaz az erőforrásra.
Az Erőforrások szakasz rendszerezése
A WinGet-konfigurációs fájl Erőforrások szakaszának rendszerezése során több módszert is figyelembe kell venni. A fájlok listáját a következővel rendszerezheti:
- Végrehajtási sorrend: Az erőforrások listájának rendszerezése annak a logikai sorrendnek megfelelően, amelyben azokat végre kell hajtani. Ez a megközelítés segíthet a felhasználónak megérteni és követni a fájl futtatása után végrehajtandó automatizálási lépéseket – mi az első, a második, a harmadik frissítési beállítás stb.
- A hiba lehetősége: Az erőforrások listájának a lehetséges meghibásodás valószínűségének megfelelően történő rendszerezése segíthet a felhasználóknak abban, hogy a konfigurációs folyamat korai szakaszában elkapják a problémákat, és segítsék őket megérteni, hogy a fennmaradó lépések miért hiúsulhatnak meg, lehetővé téve számukra a szükséges módosítások azonosítását és módosítását, mielőtt sok időt fektetnek be.
- Hasonló erőforrástípusok csoportosítása: Az erőforrások listájának rendszerezése hasonló erőforrástípusok csoportosításával gyakori módszer a szoftvermérnöki módszerekben, és a konfigurációs fájlt használó más fejlesztők számára is ismerős lehet.
Javasoljuk, hogy egy README.md fájlt adjon hozzá bármely nyílt forráskódú közzétett WinGet-konfigurációs fájlhoz, amely tartalmazza a fájlstruktúra szervezeti megközelítését.
A ${WinGetConfigRoot} változó használata
Bizonyos DSC-erőforrások egy fájl elérési útját meghatározó paramétert is tartalmazhatnak. A teljes elérési út megadása helyett a változóval ${WinGetConfigRoot} meghatározhatja azt a munkakönyvtárat, amelyben a winget configure parancs végrehajtása folyamatban van, és hozzáfűzheti a relatív elérési utat a fájlhoz. Ez hasznos egy konfigurációs fájl általánosításához, hogy gépi agnosztikus legyen. A Microsoft.VisualStudio.DSC/VSComponents fenti példában szereplő erőforrás ezt a funkciót mutatja be, ha a ${WinGetConfigRoot} projekt gyökérkönyvtárában lévő .vsconfig fájlra mutat. Ez azt is jelenti, hogy a parancs végrehajtása winget configureelőtt a felhasználónak gondoskodnia kell arról, hogy a célfájl az aktuális munkakönyvtár alapján a relatív elérési úton legyen.
A PowerShell DSC erőforrásmoduljainak helye
Tekintse meg a Microsoft által támogatott, használatra kész ("alapértelmezett") PowerShell kívánt állapotkonfigurációs erőforrások listáját, beleértve a következőket:
- Környezet: Környezeti változó kezelése egy géphez vagy folyamathoz.
- MsiPackage: MSI-csomag telepítése vagy eltávolítása.
- Beállításjegyzék: Beállításkulcs vagy érték kezelése.
- Szkript: PowerShell-szkriptblokkok futtatása.
- Szolgáltatás: Windows-szolgáltatás kezelése.
- WindowsFeature: Windows-szerepkör vagy szolgáltatás telepítése vagy eltávolítása.
- WindowsProcess: Windows-folyamat indítása vagy leállítása.
A PowerShell DSC erőforrásmoduljait a PowerShell-katalógusban is megtalálhatja. Ez a gyűjtemény több száz PowerShell-modult tartalmaz, amelyek a felhasználói közösség által küldött kívánt állapotkonfigurációs (DSC-) erőforrásokat tartalmaznak. A keresési eredmények szűréséhez alkalmazza a "DSC-erőforrás" szűrőt a "Kategóriák" területen. Ezt az adattárat nincs ellenőrizve a Microsoft által, és különféle szerzőktől és kiadóktól származó erőforrásokat tartalmaz. A PowerShell-modulokat mindig ellenőrizni kell a biztonság és a hitelesség szempontjából, mielőtt bármilyen tetszőleges szkriptelést belefoglalnak. A Megbízható WinGet-konfigurációs fájl létrehozásával kapcsolatos további tippekért tekintse meg a WinGet-konfigurációs fájlok megbízhatóságának ellenőrzését .
Windows developer