Konuk yapılandırması için PowerShell Desired State Configuration davranış değişiklikleri
Başlamadan önce konuk yapılandırmasına genel bakışı okumak iyi bir fikirdir.
Bu belgenin videosunu izleyebilirsiniz.
Konuk yapılandırması makineleri Desired State Configuration yapılandırmak için Desired State Configuration (DSC) sürüm 3'ü kullanır. DSC yapılandırması, makinenin içinde olması gereken durumu tanımlar. DSC'nin konuk yapılandırmasında uygulanmasında birçok önemli fark vardır.
Konuk yapılandırması powershell 7 platformlar arası kullanır
Konuk yapılandırması, Linux ile Windows yönetme deneyiminin tutarlı olması için tasarlanmıştır. Her iki işletim sistemi ortamlarında da PowerShell DSC bilgisi olan biri betik oluşturma becerilerini kullanarak yapılandırmalar oluşturabilir ve yayımlar.
Konuk yapılandırması yalnızca PowerShell DSC sürüm 3'ü kullanır ve Linux için DSC'nin önceki uygulamasını veya bu depoya dahil edilen "nx" sağlayıcılarını kullanmaz.
Konuk yapılandırması, Windows için PowerShell 7.1.3 ve Linux için PowerShell 7.2 önizleme 6'da çalışır. Sürüm 7.2'den başlayarak, modül PowerShell yüklemesi kapsamından taşındı ve bunun yerine PSDesiredStateConfiguration PowerShell Galerisi.
Birden çok yapılandırma
Konuk yapılandırması, aynı makineye birden çok yapılandırma atamayı destekler. Konuk yapılandırma uzantısının işletim sisteminde özel adımlar gerekmez. Kısmi yapılandırmaları yapılandırmaya gerek yoktur.
Bağımlılıklar yapılandırma başına yönetilir
Kullanılabilir araçlar kullanılarak bir yapılandırma paketlenenin,yapılandırma için gerekli bağımlılıklar bir yapılandırma .zip dahil edilir.
Makineler, her yapılandırma için içeriği benzersiz bir klasöre ayıklar.
Konuk yapılandırma uzantısı tarafından teslim edilen aracı, otomatik modül yüklemesini yalnızca paketin ayıklanan yoluyla sınırlayan bir kullanarak her yapılandırma için ayrılmış bir PowerShell $Env:PSModulePath oturumu oluşturur.
Bu değişikliğin birden çok faydası vardır.
- Her yapılandırma için fark modülü sürümlerini aynı makinede kullanmak mümkündür.
- Bir yapılandırma artık bir makinede silinmediğinde, ayıklanan klasörün tamamı, yapılandırmalar arasında paylaşılan bağımlılıkları yönetmeye gerek kalmadan aracı tarafından güvenli bir şekilde silinir.
- Merkezi hizmette herhangi bir modülün birden çok sürümünü yönetmek gerekli değildir.
Artifacts paket olarak yönetilir
Bu Azure Otomasyonu State Configuration, modüller ve yapılandırma betikleri için yapıt yönetimini içerir. Her ikisi de hizmette yayımlandıktan sonra betik MOF biçiminde derlenmiş olabilir. Benzer şekilde, Windows Sunucusu için de web hizmeti örneğinde yapılandırmaların ve modüllerin yönetilmesi gerekir. Buna karşılık DSC uzantısı, tüm yapıtların birlikte paketlandığı ve hedef makineden erişilebilen bir konumda depolandığı basitleştirilmiş bir modele sahiptir (popüler seçenek Azure Blob Depolama'dır).
Konuk yapılandırması yalnızca tüm yapıtların birlikte paketlenin ve HTTPS üzerinden hedef makineden erişilen basitleştirilmiş modeli kullanır. Hizmette modül, betik veya derleme yayımlamaya gerek yoktur. Bir değişiklik, paketin her zaman derlenmiş bir MOF içermesi gerektiğidir. Pakete bir betik dosyası eklemek ve hedef makinede derlemek mümkün değildir.
Özel yapılandırma paketinin en büyük boyutu
Bu Azure Otomasyonu DSC yapılandırmaları boyutuyla sınırlıydı. Konuk yapılandırması, toplam paket boyutunun 100 MB 'sını destekler (sıkıştırmadan önce). Paket içindeki MOF dosyasının boyutuna yönelik belirli bir sınır yoktur.
Yapılandırma modu paket yapıt içinde ayarlanır
Yapılandırma paketi oluşturulurken mod aşağıdaki seçenekler kullanılarak ayarlanır:
- Denetim: Bir makinenin uyumluluğunu doğrular. Hiçbir değişiklik olmaz.
- AuditandSet: Makinenin uyumluluk durumunu doğrular ve düzelter. Makine uyumlu değilse değişiklikler yapılır.
Birden çok yapılandırma atandığı zaman yapılandırmaya göre farklı Yapılandırma Yöneticisi modu Local Yapılandırma Yöneticisi hizmet yerine pakette ayarlanır.
Azure Resource Manager aracılığıyla parametre desteği
Konuk yapılandırma atamalarında özellik dizisi tarafından ayarlanmış parametreler, dosya bir makinede depolandığı zaman yapılandırma MOF dosyasındaki configurationParameter statik metnin üzerine yazabilir. Parametreler, özelleştirme ve değişikliklerin makine içinde komut çalıştırmaya gerek kalmadan hizmet API'sini kullanan bir işleç tarafından denetlensine olanak sağlar.
Konuk Azure İlkesi atamalara değer iletir parametrelerin dize türü olması gerekir. DSC kaynağı dizileri desteklese bile dizileri parametrelerden geçmek mümkün değildir.
Tetikleyici Kümesi dış makineden
DSC'nin önceki sürümlerindeki bir zorluk, çok fazla özel kod olmadan ve WinRM uzak bağlantılarına bağlı kalmadan büyük ölçekte kaymayı düzeltmektir. Konuk yapılandırması bu sorunu çözer. Konuk yapılandırması kullanıcıları, Düzeltme On Demand aracılığıyla kayma düzeltmesi üzerinde denetime sahip olur.
Sıra Get yöntemini içerir
Konuk yapılandırması bir makineyi denetle veya yapılandırıyorsa, hem sanal makine hem de Linux için aynı Windows kullanılır. Davranışta önemli bir değişiklik, Get makinenin durumuyla ilgili ayrıntıların dönmek için hizmet tarafından çağrılarak yöntemin çağrıl olmasıdır.
- Aracı ilk olarak
Testyapılandırmanın doğru durumda olup olmadığını belirlemek için çalışır. - Paket olarak ayarlanırsa, işlev tarafından döndürülen Boole değeri Konuk
AuditAtaması'nın Azure Resource Manager/Uyumlu Değil olması gerektiğini belirler. - Paket olarak ayarlanırsa Boole değeri, yöntemini kullanarak yapılandırmayı uygulayarak
AuditandSetmakineyi düzeltmeye kararSetverir. YöntemTestFalseSetdöndürürse, çalıştırdır. TrueTestdöndürürseSetçalıştır değildir. - Son olarak sağlayıcı, her ayarın geçerli durumunu iade etmek için çalışır; böylece ayrıntıların hem makinenin neden uyumlu olup olmadığını hem de geçerli durumu
Getdoğrular.
Get için özel gereksinimler
İşlev Get yönteminin, Azure İlkesi için gerekli Azure İlkesi yapılandırma için özel gereksinimleri Windows PowerShell Desired State Configuration.
- Döndürülen karma tablosu, Reasons adlı bir özellik içermeli.
- Reasons özelliğinin bir dizi olması gerekir.
- Dizide yer alan her öğe, Kod ve Tümcecik adlı anahtarlara sahip bir karma tablosu olması gerekir.
- Hashtable dışında başka değer döndürülebilir.
Reasons özelliği, uyumluluk bilgilerini standart hale getirerek hizmet tarafından kullanılır. Nedenler'de her öğeyi kaynağın uyumlu olup olmadığını "neden" olarak düşünebilirsiniz. Bir kaynağın birden fazla nedenden dolayı uyumluluğun dışında olması nedeniyle özelliği bir dizidir.
Hizmet, Kod ve Tümcecik özelliklerini beklemektedir. Özel bir kaynak yazarken, kaynağın Tümcecik değeri olarak uyumlu olmadığının nedeni olarak göstermek istediğiniz metni (genellikle stdout) ayarlayın. Raporlamanın denetimi yapmak için kullanılan kaynakla ilgili bilgileri net bir şekilde görüntüley used ( ) için kodda belirli biçimlendirme gereksinimleri vardır. Bu çözüm konuk yapılandırmasının genişletilebilir olduğunu gösterir. Çıktı Tümcecik özelliği için dize değeri olarak döndürülene kadar herhangi bir komut çalıştırabilirsiniz.
- Kod (dize): Kaynağın adı tekrarlanır ve ardından nedeni tanımlayıcı olarak boşluklar yer almadan kısa bir ad kullanılır. Bu üç değer boşluk olmayan iki nokta üst üste ile ayrılmıştır.
- Örneğin:
registry:registry:keynotpresent
- Örneğin:
- Tümcecik (dize): Ayarın neden uyumlu olmadığını açıklayan okunabilir metin.
- Örneğin:
The registry key $key isn't present on the machine.
- Örneğin:
$reasons = @()
$reasons += @{
Code = 'Name:Name:ReasonIdentifer'
Phrase = 'Explain why the setting is not compliant'
}
return @{
reasons = $reasons
}
Get işlevinde döndürecek bilgileri almak için komut satırı araçlarını kullanırken, aracının beklediğiniz çıkışı döndürtebilirsiniz. Çıkışı PowerShell'de yakalasanız bile, çıkış standart hataya da yazılmış olabilir. Bu sorunu önlemek için çıkışı null olarak yeniden yönlendirmeyi göz önünde bulundurarak.
Reasons özelliği embedded sınıfı
Betik tabanlı kaynaklarda (Windows), Reasons sınıfı şema MOF dosyasına aşağıdaki gibi dahil edilir.
[ClassVersion("1.0.0.0")]
class Reason
{
[Read] String Phrase;
[Read] String Code;
};
[ClassVersion("1.0.0.0"), FriendlyName("ResourceName")]
class ResourceName : OMI_BaseResource
{
[Key, Description("Example description")] String Example;
[Read, EmbeddedInstance("Reason")] String Reasons[];
};
Sınıf tabanlı kaynaklara (Windows ve Linux), sınıfı Reason PowerShell modülüne aşağıdaki gibi dahil edilir. Linux büyük/küçük harfe duyarlıdır, bu nedenle Kodda "C" ve Tümcecik'te "P" büyük harfe sahip olması gerekir.
enum ensure {
Absent
Present
}
class Reason {
[DscProperty()]
[string] $Code
[DscProperty()]
[string] $Phrase
}
[DscResource()]
class Example {
[DscProperty(Key)]
[ensure] $ensure
[DscProperty()]
[Reason[]] $Reasons
[Example] Get() {
# return current current state
}
[void] Set() {
# set the state
}
[bool] Test() {
# check whether state is correct
}
}
Kaynağın gerekli özellikleri varsa, bu özellikler sınıfıyla paralel Get olarak Reason döndürüldü. Dahil değilse, hizmet ile değer girişini ve tarafından döndürülen değerleri karşılaştıran ve olarak ayrıntılı bir karşılaştırma sağlayan Reason bir "hepsini yakala" Get davranışı Get Reason içerir.
Yapılandırma adları
Özel yapılandırmanın adı her yerde tutarlı olmalıdır. İçerik paketinin dosyasının adı, MOF dosyasındaki yapılandırma adı ve Azure Resource Manager şablonunda konuk atama .zip adı aynı olması gerekir.
Konuk yapılandırması genel önizlemesi sırasında mevcut olan yaygın DSC özellikleri
Genel önizleme sırasında, konuk yapılandırması "WaitFor*" kaynaklarını kullanarak makineler arası bağımlılıkları belirtmeyi desteklemez. Bir makinenin ilerlemeden önce başka bir makinenin durumunu izlemesi ve beklemesi mümkün değildir.
Yeniden başlatma işleme, dahil olmak üzere konuk yapılandırmasının genel önizleme $global:DSCMachineStatus yayında kullanılamaz. Yapılandırmalar, yapılandırma sırasında veya sonunda bir düğümü yeniden başlatamaz.
Desteklenen modüllerle ilgili bilinen uyumluluk sorunları
PowerShell Galerisi modülü ve Windows microsoft tarafından desteklemektedir ve DSC için yaygın olarak kullanılan bir kaynak PsDscResources PSDesiredStateConfiguration kümesidir. PSDscResourcesDSCv3 modülü güncelleştirilene kadar, aşağıdaki bilinen uyumluluk sorunlarına dikkat edin.
- Modülde yer alan ve
PSDesiredStateConfigurationkaynaklarla birlikte gelen kaynakları Windows. Bunun yerine, 'aPSDscResourcesgeçiş. - içinde ,
WindowsFeature,WindowsFeatureSetve kaynaklarınıWindowsOptionalFeatureWindowsOptionalFeatureSetPsDscResourceskullanmayın. ModülüDISMPowerShell 7.1.3'te Windows Server'a yüklerken güncelleştirme gerektiren bilinen bir sorun var.
Linux için DSC'ye dahil edilen Linux için "nx" kaynakları, C ve Python dillerinin bir birleşimiyle yazılmıştır. Linux'ta DSC'ye giden yol PowerShell kullanmak olduğundan, mevcut "nx" kaynakları DSCv3 ile uyumlu değildir. Linux için desteklenen kaynakları içeren yeni bir modül kullanılabilir olana kadar özel kaynaklar yazmanız gerekir.
DSC sürüm 3 ve önceki sürümlerle birlikte kullanılabilirlik
Konuk yapılandırmasında DSC sürüm 3, Windows Linux'ta yüklü eski sürümlerle birlikte kullanılabilir. Uygulamalar ayrıdır. Ancak DSC sürümlerinde çakışma algılama özelliği yoktur, bu nedenle aynı ayarları yönetmeye çalışmayın.
Sonraki adımlar
- Konuk yapılandırmasına genel bakışı okuyun.
- Özel konuk yapılandırma paketi geliştirme ortamını ayarlayın.
- Konuk yapılandırması için bir paket yapıtı oluşturun.
- Geliştirme ortamınızdan paket yapıtını test edin.
- Ortamınızın büyük ölçekte yönetimi için
GuestConfigurationmodülünü kullanarak bir Azure İlkesi tanımı oluşturun. - Azure portalı kullanarak özel ilke tanımınızı atayın.
- Konuk yapılandırması ilke atamaları için uyumluluk ayrıntılarını görüntülemeyi öğrenin.