Aracılığıyla paylaş


Özel makine yapılandırma paketi yapıtları oluşturma

Başlamadan önce makine yapılandırmasına yönelik genel bakış sayfasını okumak iyi bir fikirdir.

Makine yapılandırması, hem Windows hem de Linux'ı denetlerken ve yapılandırırken Desired State Configuration (DSC) kullanır. DSC yapılandırması makinenin olması gereken durumu tanımlar.

Önemli

Bir ortamın durumunu denetleen ve yapılandırmaları uygulayan özel paketler Genel Kullanılabilir (GA) destek durumundadır. Ancak aşağıdaki sınırlamalar geçerlidir:

Yapılandırmaları uygulayan makine yapılandırma paketlerini kullanmak için Azure VM konuk yapılandırma uzantısı sürüm 1.26.24 veya üzeri ya da Arc aracısı 1.10.0 veya üzeri gereklidir.

GuestConfiguration modülü yalnızca Ubuntu 18 ve sonraki sürümlerde kullanılabilir. Ancak modül tarafından üretilen paket ve ilkeler, Azure veya Arc'ta desteklenen herhangi bir Linux dağıtımında ve sürümünde kullanılabilir.

macOS'ta test paketleri kullanılamaz.

Özel içerik paketlerinde gizli dizileri veya gizli bilgileri kullanmayın.

Azure veya Azure dışı bir makinenin durumunu yönetmek için kendi yapılandırmanızı oluşturmak için aşağıdaki adımları kullanın.

PowerShell 7 ve gerekli PowerShell modüllerini yükleme

İlk olarak, Makine yapılandırması yazma ortamını ayarlama bölümünde yer alan adımları izleyin. Bu adımlar işletim sisteminiz, GuestConfiguration modülü ve PSDesiredStateConfiguration modülü için gerekli PowerShell sürümünü yüklemenize yardımcı olur.

Yapılandırma yazma

Bir yapılandırma paketi oluşturmadan önce bir DSC yapılandırması yazın ve derleyin. Örnek yapılandırmalar Windows ve Linux için kullanılabilir.

Önemli

Windows için yapılandırmaları derlerken PSDesiredStateConfiguration sürüm 2.0.7'yi (kararlı sürüm) kullanın. Linux için yapılandırmaları derlerken yayın öncesi sürüm 3.0.0'ı yükleyin.

Bu örnek yapılandırma, Windows makineleri içindir. Ve kapsamlarında ortam değişkenini MC_ENV_EXAMPLEProcessMachine oluşturmak için makineyi yapılandırıyor. değişkeninin değeri olarak 'This was set by machine configuration'ayarlır.

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

Bu tanım betik dosyasına kaydedildikten MyConfig.ps1 sonra, yapılandırmayı derlemek için betiği çalıştırabilirsiniz.

. .\MyConfig.ps1
    Directory: C:\dsc\MyConfig

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           5/16/2023 10:39 AM           1080 localhost.mof

Yapılandırma, geçerli çalışma dizinindeki MyConfig klasöründeki dosyaya derlenmişlocalhost.mof. Paket adı olarak kullanmak istediğiniz adı (örneğinMyConfig.mof) olarak yeniden adlandırınlocalhost.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

Not

Bu örnekte, Bir Windows makinesi için yapılandırma yazma ve derleme gösterilmektedir. Linux için PowerShell sınıflarını kullanarak özel bir DSC kaynak modülü oluşturmanız gerekir. PowerShell sınıfları ile özel bir DSC kaynağı yazma makalesi, makine yapılandırmasıyla test edilen özel bir kaynak ve yapılandırmanın tam örneğini içerir.

Bu makalenin geri kalanı, platforma özgü konuların belirtildiği durumlar dışında Linux ve Windows makineleri için tanımlanan yapılandırmalar için geçerlidir.

Yapılandırma paketi yapıtı oluşturma

MOF derlendiğinde, destekleyici dosyaların birlikte paketlenmesi gerekir. Tamamlanan paket, Azure İlkesi tanımlarını oluşturmak için makine yapılandırması tarafından kullanılır.

cmdlet'i New-GuestConfigurationPackage paketi oluşturur. Modüldeki komutların bunları pakete ekleyebilmesi için, yapılandırma tarafından gereken modüllerin geliştirme ortamı için içinde kullanılabilir $Env:PSModulePath olması gerekir.

Windows içeriği oluştururken cmdlet'in New-GuestConfigurationPackage parametreleri:

  • Ad: makine yapılandırma paketi adı.
  • Yapılandırma: Derlenmiş DSC yapılandırma belgesi tam yolu.
  • Yol: Çıkış klasörü yolu. Bu parametre isteğe bağlıdır. Belirtilmezse, paket geçerli dizinde oluşturulur.
  • Tür: (Audit, AuditandSet) Yapılandırmanın yalnızca denetlenip denetlenmeyeceğini veya istenen durumun dışındaysa yapılandırmanın makinenin durumunu değiştirmesi gerekip gerekmediğini belirler. Varsayılan değer: Audit.

Bu adım yükseltme gerektirmez. Komutu birden çok kez çalıştırırsanız, varolan paketlerin üzerine yazmak için Force parametresi kullanılır.

Aşağıdaki komutlar bir paket yapıtı oluşturur:

# 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

Oluşturulan paketin Adı ve Yolu ile bir nesne döndürülür.

Name     Path
----     ----
MyConfig C:\dsc\MyConfig.zip

Makine yapılandırma yapıtı beklenen içeriği

Tamamlanan paket, Azure İlkesi tanımlarını oluşturmak için makine yapılandırması tarafından kullanılır. Paket şunlardan oluşur:

  • MOF olarak derlenmiş DSC yapılandırması
  • Modules klasörü
    • GuestConfiguration modülü
    • DscNativeResources modülü
    • MOF tarafından gereken DSC kaynak modülleri
  • ve paketini type depolayan bir meta yapılandırma dosyası version

PowerShell cmdlet'i paket .zip dosyasını oluşturur. Kök düzeyinde klasör veya sürüm klasörü gerekmez. Paket biçimi bir .zip dosya olmalıdır ve sıkıştırılmadığında toplam boyutu 100 MB'ı aşamaz.

Cmdlet'ini kullanarak Expand-Archive arşivi genişleterek inceleyebilirsiniz.

Expand-Archive -Path .\MyConfig.zip -DestinationPath MyConfigZip

PowerShell ile sıkıştırılmamış paketin toplam boyutunu alabilirsiniz.

Get-ChildItem -Recurse -Path .\MyConfigZip |
    Measure-Object -Sum Length |
    ForEach-Object -Process {
        $Size = [math]::Round(($_.Sum / 1MB), 2)
        "$Size MB"
    }

Makine yapılandırmasını üçüncü taraf araçlarla genişletme

Makine yapılandırması için yapıt paketleri üçüncü taraf araçları içerecek şekilde genişletilebilir. Makine yapılandırmasını genişletmek için iki bileşenin geliştirilmesi gerekir.

  • Üçüncü taraf aracını yönetmeyle ilgili tüm etkinlikleri işleyen İstenen Durum Yapılandırması kaynağı
    • Yükleme
    • Çağır
    • Çıkışı dönüştür
  • Aracın yerel olarak tüketmesi için doğru biçimde içerik

DSC kaynağı, bir topluluk çözümü yoksa özel geliştirme gerektirir. Topluluk çözümleri, PowerShell Galerisi GuestConfiguration etiketi için aranarak bulunabilir.

Not

Makine yapılandırması genişletilebilirliği bir "kendi lisansını getir" senaryosudur. Kullanmadan önce herhangi bir üçüncü taraf aracının hüküm ve koşullarını karşıladığınızdan emin olun.

DSC kaynağı geliştirme ortamına yüklendikten sonra, üçüncü taraf platformun içeriğini içerik yapıtına eklemek için New-GuestConfigurationPackage için FilesToInclude parametresini kullanın.

Sonraki adım