Ö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_EXAMPLE
Process
Machine
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.