Aracılığıyla paylaş


WinGet Yapılandırma dosyası yazma

WinGet Yapılandırma dosyası oluşturmak için:

  1. WinGet Yapılandırması dosya adlandırma kuralından sonra bir YAML dosyası oluşturun.
  2. WinGet Yapılandırma dosyası biçimi hakkında bilgi edinin ve geçerli dosya şemasınıbağlayın.
  3. Onayları (gerekli önkoşullar) listesini ve Kaynaklar (makinenin geliştirme ortamını istenen duruma getirmek için gerekli yüklemelerin ve yapılandırma ayarlarının) dosyaya dahil etmek için belirleyin.
  4. İstediğiniz yapılandırma görevlerini gerçekleştirmek için gereken PowerShell modüllerini ve İstenen Durum Yapılandırması (DSC) Kaynaklarını belirleyin.
  5. Her yapılandırma kaynağı için gereken yönergeleri ve ayarları belirleyin.
  6. Her kaynağın bağımlılıklarını belirleyin.

WinGet yapılandırma komutunu kullanma hakkında daha fazla bilgi edinin.

Dosya biçimi

Windows Paket Yöneticisi, Windows kullanıcılarına yönelik paketleri bulmak ve yüklemek için bildirimleri (YAML dosyaları) kullanır. WinGet Yapılandırma dosyaları aynı YAML stil biçimini kullanır ve dosyanın yapısını ve doğrulamasını tanımlamaya yardımcı olmak için bir JSON şema belirtimi ekler. WinGet Yapılandırma dosyanızın biçiminin geçerli olup olmadığını algılamaya daha fazla yardımcı olmak için, düzgün söz dizimini desteklemek, biçimlendirme hatalarını algılamaya yardımcı olmak, vurgu desteği sağlamak ve otomatik tamamlama (JSON şema dosyasına bağlandığında) ve geçerli biçimlendirmeyi sağlamak için RedHat tarafından sunulan YAML uzantısıylaVisual Studio Code kullanmanızı öneririz.

Dosya adlandırma kuralı

WinGet Yapılandırma dosyasını adlandırma kuralı ".winget" dosya uzantısını (gibi configuration.winget) kullanmaktır. Git tabanlı projeler için varsayılan yapılandırma şu konumdaki ".config" dizininde depolanmalıdır. ./config/configuration.winget Bazı durumlarda, farklı araç zincirleri veya kullanıcı tercihleri göz önüne alındığında birden fazla yapılandırma dosyası uygun olabilir. Bu ek yapılandırma dosyaları da ".config" dizininde bulunmalıdır.

WinGet Yapılandırma dosyasının bölümleri

WinGet Yapılandırma dosyası iki birincil bölüme ayrılır:

  1. Onaylar: Yapılandırmayı çalıştırmak için gereken önkoşullar.
  2. Kaynaklar: Yüklenecek yazılım ve araçların listesi, bu yüklemelerin yapılandırma ayarları ve Windows işletim sisteminin yapılandırma ayarları.

Onaylar bölümü

Doğrulama listesi, bu WinGet Yapılandırma dosyasında listelenen kaynakların dosyayı çalıştıran makinede başarıyla çalışabilmesi için gereken önkoşulları kapsar. Onaylar paralel olarak tamamlanabilir ve sıralı bir sıralama gerektirmez.

Örnek bir onay:

  • İşletim sistemi sürümü: Makinede yüklü işletim sisteminin* en düşük sürümü. Özellikler zaman içinde işletim sistemine eklendikçe, bazıları önceki sürümleri desteklemek üzere geri aktarılır ve bazıları desteklenmez. Yapılandırma için gereken belirli bir aracın veya özelliğin desteklenip desteklenmediğini belirlemek için en düşük işletim sistemi sürümünü denetlemek her zaman yararlıdır. Örneğin, WinGet (Windows Paket Yöneticisi) için en az Windows 10, sürüm 1809 veya üzeri gerekir. Windows'un eski sürümleri WinGet'i desteklemez. * PowerShell DSC Kaynaklarının sistemin durumunu değiştirmesi mümkündür, ancak açık kaynak bir projenin proje yapılandırmasında Windows Update'i çağırmak ve işletim sistemi sürümünü değiştirmek uygun olmaz.

Bir doğrulama, sistemin istenen durumda olmadığını belirtmek için "false" döndürürse, alanını kullanarak bu doğrulamayı bağımlılık olarak belirten dependsOn atlanacak ve çalıştırılamayacaktır. Bu durumda, Windows ortamına hiçbir yapılandırma değişikliği uygulanmamış olsa da, bu yapılandırma başarılı bir sonuç olarak kabul edilir.

Kaynaklar bölümü

Kaynaklar listesi, yüklenmesi gereken tüm yazılımları, araçları, paketleri ve Windows işletim sisteminiz veya yüklü uygulamalarınız için yapılandırma ayarlarını kapsar. Her kaynağa bir ad, gerçekleştirilecek yönergenin açıklaması ve bu yönergenin yürütülmesinden sorumlu olacak PowerShell modülünün yanı sıra ilişkili ayarlar veya bağımlılıklar verilmelidir.

Örnek WinGet Yapılandırma dosyası

Aşağıda örnek bir WinGet Yapılandırması configuration.winget biçimlendirilmiş dosyası verilmiştir:

# 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

Bu dosyanın bileşenleri şunlardan oluşur:

  1. şema: Yapılandırma dosyanızdaki ilk satır, dosyanın takip ettiği DSC şemasını belirtmek amacıyla şu yorumu içermelidir: . WinGet Yapılandırma şemasının en son sürümünü bulmak için adresine https://aka.ms/configuration-dsc-schema/gidin. Bu örneğin zamanı itibariyle en son şema numarası 0.2 olduğundan, şema şu şekilde girilmiştir: # yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2.

  2. Özellikler: Yapılandırma dosyasının kök düğümü, properties yapılandırma sürümünü (configurationVersion: 0.2.0 bu örnekte) içermelidir. Bu sürüm, yapılandırma dosyasındaki güncelleştirmelere uygun olarak güncelleştirilmelidir. Özellikler düğümü bir assertions düğüm ve bir resources düğüm içermelidir.

  3. Onaylar: Bu bölümde bu yapılandırma için gereken önkoşulları (veya önkoşulları) listeleyin.

  4. Kaynaklar: Hem assertions hem de resources liste bölümleri, kurulum görevini temsil eden tek tek resource düğümlerden oluşur. resource öğesine PowerShell modülünün adı ve ardından istenen durumunuzu uygulamak için çağrılacak modülün DSC kaynağının adı verilmelidir: {ModuleName}/{DscResource}. Her bir kaynak directives ve settings içermek zorundadır. İsteğe bağlı olarak, bir id değer de içerebilir. Yapılandırma uygulanırken, WinGet, modülü PowerShell Galerisi'nden yüklemeyi ve belirtilen DSC kaynağınıçalıştırmayı bilir.

  5. Yönergeler: directives bölümü modül ve kaynak hakkında bilgi sağlar. Bu bölüm, modül tarafından gerçekleştirilir yapılandırma görevini açıklayan bir description değer içermelidir. değeri, allowPrerelease yapılandırmanın (true) PowerShell Galerisi'nden "Ön sürüm" modüllerini kullanmasına izin verilip verilmeyeceğini seçmenizi sağlar. Bazı DSC kaynaklarının yönetici ayrıcalıklarıyla çalıştırılması gerekebilir. Kaynağın securityContext: elevated yönergeler bölümünün altındaki alan bu gereksinimi gösterir. olarak ayarlandığında elevated, WinGet yapılandırmanın başlangıcında bir UAC onayı ister. WinGet daha sonra iki işlem başlatır: biri yükseltilmiş ayrıcalıklara sahip kaynakları, diğeri ise geçerli kullanıcının ayrıcalıklarıyla kaynakları çalıştıran bir işlem.

  6. Ayarlar: Kaynağın settings değeri, PowerShell DSC Kaynağına geçirilen ad-değer çiftleri koleksiyonunu temsil eder. Ayarlar, Geliştirici Modu'nu etkinleştirip etkinleştirmeme, bir reg anahtarı uygulamaya veya belirli bir ağ ayarı oluşturmaya kadar her şeyi temsil edebilir.

  7. Bağımlılıklar: Kaynağın dependsOn değeri, bu göreve başlamadan önce başka bir onay veya kaynağın tamamlanıp tamamlanmayacağını belirler. Bağımlılık başarısız olursa, bu kaynak da otomatik olarak başarısız olur.

  8. Kimlik: Belirli bir kaynak örneğinin benzersiz tanımlayıcısı. Bu id değeri, başka bir kaynağın bu kaynak uygulanmadan önce bu kaynağa bağımlılığı varsa kullanılabilir.

Kaynaklar bölümünü düzenleme

WinGet Yapılandırma dosyanızın Kaynaklar bölümünü düzenlemeyi belirlerken göz önünde bulundurmanız gereken birden çok yaklaşım vardır. Dosya listenizi şu şekilde düzenleyebilirsiniz:

  • Yürütme sırası: Kaynak listenizi yürütülmeleri gereken mantıksal sıraya göre düzenleme. Bu yaklaşım, kullanıcının dosya çalıştırıldıktan sonra gerçekleştirilen otomasyon adımlarını anlamasına ve izlemesine yardımcı olabilir. İlk yüklenen, ikinci, üçüncü olarak hangi ayarın güncelleştirildiği vb.
  • Hata olasılığı: Kaynak listenizi olası bir hata olasılığına göre düzenlemek, kullanıcıların yapılandırma sürecinin erken aşamalarında sorunları yakalamalarına ve kalan adımların neden başarısız olabileceğini anlamalarına yardımcı olarak, çok fazla zaman harcamadan önce gerekli değişiklikleri belirlemelerine ve yapmalarına yardımcı olabilir.
  • Benzer kaynak türlerini gruplandırma: Kaynak listenizi benzer kaynak türlerini birlikte gruplandırarak düzenlemek, yazılım mühendisliği yöntemlerinde yaygın bir yaklaşımdır ve yapılandırma dosyanızı kullanan diğer geliştiriciler veya sizin için en tanıdık olabilir.

Dosya yapısının kuruluş yaklaşımını içeren açık kaynak yayımlanmış winget yapılandırma dosyalarına bir README.md dosyası eklemenizi öneririz.

${WinGetConfigRoot} değişkenini kullanma

Bazı DSC kaynakları, dosyanın yolunu belirten bir parametre alabilir. Tam yolu belirtmek yerine, komutunun yürütüldüğü çalışma dizinini tanımlamak için değişkenini ${WinGetConfigRoot}winget configure kullanabilir ve ilgili dosyayı işaret etmek için göreli yolu ekleyebilirsiniz. Bu, bir yapılandırma dosyasını makineden bağımsız olacak şekilde genelleştirmek için kullanışlıdır. Microsoft.VisualStudio.DSC/VSComponents Yukarıdaki örnekteki kaynak, bir projenin kök dizinindeki .vsconfig dosyasına işaret etmek için ${WinGetConfigRoot} kullanarak bu işlevi gösterir. Bu, kullanıcının komutu yürütmeden önce geçerli çalışma dizinine göre hedef dosyanın göreli yolda bulunduğundan winget configureemin olması gerektiği anlamına da gelir.

PowerShell DSC Kaynak modülleri nerede bulunur?

Microsoft tarafından desteklenen PowerShell İstenen Durum Yapılandırma Kaynakları kullanıma hazır ("gelen kutusu") listesine göz atın:

  • Ortam: Bir makine veya işlem için ortam değişkenlerini yönetme.
  • MsiPackage: MSI paketini yükleyin veya kaldırın.
  • Kayıt defteri: Kayıt defteri anahtarını veya değerini yönetin.
  • Komut Dosyası: PowerShell komut dosyası bloklarını çalıştırın.
  • Hizmet: Bir Windows hizmetini yönetin.
  • WindowsFeature: Bir Windows rolünü veya özelliğini yükleyin veya kaldırın.
  • Windowsprocess: Bir Windows işlemini başlatın veya durdurun.

PowerShell DSC Kaynak modüllerini PowerShell Galerisi'nde de bulabilirsiniz. Bu galeri, kullanıcı topluluğu tarafından gönderilen İstenen Durum Yapılandırması (DSC) kaynaklarını içeren yüzlerce PowerShell Modülünü barındırıyor. "Kategoriler" altında "DSC Kaynağı" filtresini uygulayarak arama sonuçlarını filtreleyebilirsiniz. Bu depo Microsoft tarafından doğrulanmaz ve çeşitli yazarların ve yayımcıların kaynaklarını içerir. Herhangi bir rastgele betik eklenebileceği için kullanılmadan önce PowerShell modülleri her zaman güvenlik ve güvenilirlik açısından gözden geçirilmelidir. Güvenilir bir WinGet Yapılandırma dosyası oluşturma hakkında daha fazla ipucu için bkz. WinGet Yapılandırma dosyasının güvenilirliğini denetleme.