Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vytvoření konfiguračního souboru WinGet:
- Vytvořte soubor YAML podle zásad vytváření názvů konfiguračních souborů WinGet.
- Seznamte se s formátem konfiguračního souboru WinGet a propojte aktuální schéma souborů.
- Určete seznam výroků (požadované předpoklady) a Zdroje (seznam požadovaných instalací a konfigurací pro nastavení vývojového prostředí počítače do požadovaného stavu), které se mají zahrnout do souboru.
- Identifikujte moduly PowerShellu a prostředky DSC (Desired State Configuration) potřebné k provedení požadovaných úloh konfigurace.
- Určete direktivy a nastavení potřebná pro každý prostředek konfigurace.
- Určete závislosti pro každý prostředek.
Přečtěte si další informace o použití příkazu WinGet configure.
Formát souboru
Správce balíčků systému Windows používá manifesty (soubory YAML) k vyhledání a instalaci balíčků pro uživatele Windows. Konfigurační soubory WinGet používají stejný formát stylu YAML a přidávají specifikaci schématu JSON, která pomáhá definovat strukturu a ověření souboru. Pokud chcete dále pomoct při zjišťování, jestli je formát konfiguračního souboru WinGet platný, doporučujeme použít Visual Studio Code s příponou YAML od RedHat, která podporuje správnou syntaxi, pomáhá zjišťovat případné chyby formátování, poskytovat podporu přechodu myší a automatické dokončování (při propojení se souborem schématu JSON) a zajistit platné formátování.
Zásady vytváření názvů souborů
Konvence pro pojmenování konfiguračního souboru WinGet používá příponu souboru .winget (například configuration.winget). Pro projekty založené na Gitu by měla být výchozí konfigurace uložena v adresáři ".config" v: ./config/configuration.winget. V některých případech může být pro různé sady nástrojů nebo uživatelské předvolby vhodné více konfiguračních souborů. Tyto další konfigurační soubory by se také měly nacházet v adresáři ".config".
Oddíly konfiguračního souboru WinGet
Konfigurační soubor WinGet je rozdělený do dvou primárních částí:
- Asserce: Předpoklady potřebné ke spuštění konfigurace.
- Zdroje: Seznam softwaru a nástrojů, které se mají nainstalovat, nastavení konfigurace pro tyto instalace a nastavení konfigurací pro operační systém Windows.
Oddíl Prohlášení
Seznam tvrzení zahrnuje podmínky nezbytné pro úspěšné fungování prostředků uvedených v tomto konfiguračním souboru WinGet na počítači, kde je soubor spuštěn. Aserce mohou být prováděny paralelně a nevyžadují žádné konkrétní pořadí.
Příklad tvrzení
- Verze operačního systému: Minimální verze operačního systému* nainstalovaná na počítači. Vzhledem k tomu, že se do operačního systému přidávají funkce v průběhu času, některé se zase přeportují tak, aby podporovaly dřívější verze a některé ne. Vždy je užitečné zkontrolovat minimální verzi operačního systému, abyste zjistili, jestli je pro konfiguraci podporovaný konkrétní nástroj nebo funkce. Například WinGet (Správce balíčků systému Windows) vyžaduje minimálně Windows 10 verze 1809 nebo novější. Žádné starší verze Windows nepodporují WinGet. * Prostředky DSC PowerShellu můžou změnit stav systému, ale není vhodné volat službu Windows Update a upravit verzi operačního systému v konfiguraci projektu pro opensourcový projekt.
Pokud kontrolní výraz vrátí hodnotu „false“, což označuje, že systém není v požadovaném stavu, jakýkoli prostředek , který identifikoval tento kontrolní výraz jako závislost pomocí pole dependsOn, bude přeskočen a nepodaří se jej spustit. V tomto případě by se i v případě, že v prostředí Windows nebyly použity žádné změny konfigurace, považuje se tato konfigurace za úspěšný výsledek.
Oddíl Zdroje informací
Seznam prostředků zahrnuje veškerý software, nástroje, balíčky atd., které je potřeba nainstalovat, a nastavení konfigurace pro operační systém Windows nebo nainstalované aplikace. Každý prostředek bude muset mít název, popis direktivy, která se má provést, a modul PowerShellu, který bude zodpovědný za provedení této směrnice, a také všechna přidružená nastavení nebo závislosti.
Příklad konfiguračního souboru WinGet
Následuje příklad souboru s formátováním konfigurace configuration.winget 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
Součásti tohoto souboru se skládají z:
Schéma: První řádek v konfiguračním souboru by měl obsahovat následující komentář:
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/<most recent schema version #>pro vytvoření schématu DSC následovaného souborem. Nejnovější verzi schématu konfigurace WinGet najdete v části https://aka.ms/configuration-dsc-schema/. Nejnovější číslo schématu v době tohoto příkladu je0.2, takže schéma bylo zadáno jako:# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2.Vlastnosti: Kořenový uzel konfiguračního souboru musí
propertiesobsahovat verzi konfigurace (configurationVersion: 0.2.0v tomto příkladu). Tato verze by se měla aktualizovat v souladu s aktualizacemi konfiguračního souboru. Uzel vlastností by měl obsahovatassertionsuzel aresourcesuzel.Tvrzení: Uveďte předpoklady požadované pro tuto konfiguraci v této sekci.
Zdroje: Sekce seznamu
assertionsaresourcesse skládají z jednotlivýchresourceuzlů, které představují úkol nastavení. Měl by býtresourceoznačen názvem modulu PowerShell, po kterém následuje název prostředku DSC tohoto modulu, který bude vyvolán pro uplatnění požadovaného stavu:{ModuleName}/{DscResource}. Každý prostředek musí obsahovatdirectivesasettings. Volitelně může také obsahovatidhodnotu. Při použití konfigurace WinGet pozná, že má nainstalovat modul z PowerShell galerie a vyvolá zadaný prostředek DSC .Směrnice: Část
directivesposkytuje informace o modulu a prostředku. Tato část by měla obsahovatdescriptionhodnotu, která popisuje úlohu konfigurace, kterou modul provádí. HodnotaallowPrereleaseumožňuje zvolit, zda bude konfiguraci povoleno (true) používat moduly předběžné verze z Galerie PowerShell. Některé prostředky DSC můžou být potřeba spustit s oprávněními správce. PolesecurityContext: elevatedv oddílu direktiv zdroje označuje tento požadavek. Při nastaveníelevatedWinGet na začátku konfigurace vyzve k jednomu schválení UAC. WinGet pak spustí dva procesy: jeden, který spouští prostředky se zvýšenými oprávněními, a druhý, který spouští prostředky s oprávněními aktuálního uživatele.Nastavení: Hodnota
settingsprostředku představuje kolekci párů název-hodnota, které se předávají prostředku DSC PowerShellu. Nastavení může představovat cokoli z toho, jestli je povolený vývojářský režim, použití klíče reg nebo vytvoření konkrétního nastavení sítě.Závislosti: Hodnota
dependsOnzdroje určuje, zda musí být před zahájením tohoto úkolu dokončen nějaký jiný výrok nebo zdroj. Pokud závislost selhala, tento prostředek také automaticky selže.ID: Jedinečný identifikátor pro konkrétní instanci zdroje. Hodnotu
idlze použít, pokud jiný prostředek má nejprve závislost na tomto prostředku.
Uspořádání sekce Zdroje
Při určování způsobu uspořádání oddílu Prostředky konfiguračního souboru WinGet je potřeba vzít v úvahu několik přístupů. Seznam souborů můžete uspořádat podle:
- Pořadí provádění: Uspořádání seznamu prostředků podle logického pořadí, ve kterém se mají provést. Tento přístup může uživateli pomoct pochopit a postupovat podle kroků automatizace provedených po spuštění souboru – co je nainstalováno jako první, druhé, jaké nastavení se aktualizuje za třetí atd.
- Možnost selhání: Uspořádání seznamu prostředků podle pravděpodobnosti potenciálního selhání může uživatelům pomoct zachytit problémy včas v procesu konfigurace a pomoct jim pochopit, proč zbývající kroky nemusí selhat, což jim umožní identifikovat a provést potřebné změny dříve, než je mnoho času investováno.
- Seskupení podobných typů prostředků: Uspořádání seznamu prostředků seskupením podobných typů prostředků je běžný přístup v metodologiích softwarového inženýrství a může být pro vás nebo pro ostatní vývojáře, kteří využívají váš konfigurační soubor, běžný přístup.
Doporučujeme přidat soubor README.md s libovolným open source publikovaným konfiguračním souborem WinGet, který zahrnuje organizační přístup struktury souborů.
Použití proměnné ${WinGetConfigRoot}
Některé prostředky DSC mohou převzít parametr, který určuje cestu k souboru. Místo zadání úplné cesty můžete pomocí proměnné ${WinGetConfigRoot} definovat pracovní adresář, ve kterém winget configure se příkaz spouští, a připojit relativní cestu, která má odkazovat na tento soubor. To je užitečné pro generalizaci konfiguračního souboru tak, aby byl nezávislý na počítači. Zdroj Microsoft.VisualStudio.DSC/VSComponents v příkladu výše ukazuje tuto funkci tím, že využívá ${WinGetConfigRoot} k odkazování na soubor .vsconfig v kořenovém adresáři projektu. To také znamená, že uživatel by měl před spuštěním winget configure příkazu zajistit, aby cílový soubor existoval na relativní cestě na základě současného pracovního adresáře.
Kde lze najít moduly zdrojů PowerShell DSC
Podívejte se na seznam připravených k okamžitému použití („inbox“) prostředků konfigurace požadovaného stavu pro PowerShell, které podporuje společnost Microsoft, včetně:
- prostředí: Správa proměnné prostředí pro počítač nebo proces
- MsiPackage: Nainstalujte nebo odinstalujte balíček MSI.
- registru: Správa klíče nebo hodnoty registru
- Skript: Spusťte bloky skriptů PowerShellu.
- Služba: Správa služby systému Windows.
- WindowsFeature: Nainstalujte nebo odinstalujte roli nebo funkci Systému Windows.
- WindowsProcess: Spusťte nebo zastavte proces Systému Windows.
Moduly prostředků DSC PowerShellu najdete také v PowerShell galerii. Tato galerie hostuje stovky modulů PowerShellu obsahujících prostředky DSC (Desired State Configuration) odeslané komunitou uživatelů. Výsledky hledání můžete filtrovat použitím filtru "Prostředek DSC" v části Kategorie. Toto úložiště microsoft neověřuje a obsahuje prostředky od různých autorů a vydavatelů. Moduly PowerShellu by se měly před používáním libovolných skriptů vždy kontrolovat z hlediska zabezpečení a důvěryhodnosti. Další tipy k vytvoření důvěryhodného konfiguračního souboru WinGet najdete v tématu Jak zkontrolovat důvěryhodnost konfiguračního souboru WinGet .
Windows developer