Megosztás:


WinGet-konfigurációs fájl létrehozása

WinGet-konfigurációs fájl létrehozása:

  1. Hozzon létre egy YAML-fájlt a WinGet-konfigurációs fájl elnevezési konvencióját követve.
  2. Ismerkedjen meg a WinGet-konfigurációs fájl formátumával, és kapcsolja össze az aktuális fájlséma számával.
  3. 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.
  4. 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.
  5. Határozza meg az egyes konfigurációs erőforrásokhoz szükséges irányelveket és beállításokat.
  6. 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:

  1. Assertionok: A konfiguráció futtatásához szükséges előfeltételek.
  2. 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:

  1. 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.

  2. Tulajdonságok: A konfigurációs fájl gyökércsomópontjának properties tartalmaznia kell egy konfigurációs verziót (configurationVersion: 0.2.0 ebben 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ópontot assertions és egy csomópontot resources .

  3. Állítások: Az ebben a szakaszban felsorolt konfigurációhoz szükséges előfeltételek felsorolása.

  4. Erőforrások: A listaszakaszok és a assertionsresources listaszakaszok is különálló resource csomópontokból állnak, amelyek a beállított feladatot jelölik. A resource PowerShell-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 tartalmaznia directives kell és settings. Opcionálisan egy értéket is tartalmazhat id . 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.

  5. Irányelvek: A directives szakasz információkat tartalmaz a modulról és az erőforrásról. Ennek a szakasznak tartalmaznia kell egy description értéket a modul által végrehajtandó konfigurációs feladat leírásához. Az allowPrerelease é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. Az securityContext: elevated erőforrás irányelvek szakaszában lévő mező jelzi ezt a követelményt. Amikor a elevated be 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.

  6. Beállítások: Az settings erő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.

  7. Függőségek: Egy dependsOn erő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.

  8. 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 .