DSC'de yapılandırma verilerini kullanma
Şunlar için geçerlidir: Windows PowerShell 4.0, Windows PowerShell 5.0
Yerleşik DSC ConfigurationData parametresini kullanarak, bir yapılandırma içinde kullanılabilecek verileri tanımlayabilirsiniz. Bu, birden çok düğüm veya farklı ortamlar için kullanılabilecek tek bir yapılandırma oluşturmanıza olanak tanır. Örneğin, bir uygulama geliştiriyorsanız, hem geliştirme hem de üretim ortamları için tek bir yapılandırma kullanabilir ve yapılandırma verilerini kullanarak her ortam için veri belirtebilirsiniz.
Bu konuda ConfigurationData karma tablosu yapısı açıklanmaktadır. Yapılandırma verilerinin nasıl kullanılacağına ilişkin örnekler için bkz. Yapılandırma ve ortam verilerini ayırma.
ConfigurationData ortak parametresi
DSC yapılandırması, yapılandırmayı derlerken belirttiğiniz ortak bir ConfigurationData parametresini alır. Yapılandırmaları derleme hakkında bilgi için bkz. DSC yapılandırmaları.
ConfigurationData parametresi, AllNodes adlı en az bir anahtara sahip olması gereken bir karma tablodur. Ayrıca bir veya daha fazla tuşa da sahip olabilir.
Not
Bu konudaki örneklerde adlı tek bir ek anahtar ( adlandırılmış AllNodes anahtarı dışında) NonNodeData
kullanılır, ancak istediğiniz sayıda ek anahtar ekleyebilir ve istediğiniz şekilde adlandırabilirsiniz.
$MyData =
@{
AllNodes = @()
NonNodeData = ""
}
AllNodes anahtarının değeri bir dizidir. Bu dizinin her öğesi aynı zamanda NodeName adlı en az bir anahtara sahip olması gereken bir karma tablodur:
$MyData =
@{
AllNodes =
@(
@{
NodeName = "VM-1"
},
@{
NodeName = "VM-2"
},
@{
NodeName = "VM-3"
}
);
NonNodeData = ""
}
Her karma tablosuna başka anahtarlar da ekleyebilirsiniz:
$MyData =
@{
AllNodes =
@(
@{
NodeName = "VM-1"
Role = "WebServer"
},
@{
NodeName = "VM-2"
Role = "SQLServer"
},
@{
NodeName = "VM-3"
Role = "WebServer"
}
);
NonNodeData = ""
}
Tüm düğümlere bir özellik uygulamak için, NodeName'i olan AllNodes dizisinin *
bir üyesini oluşturabilirsiniz. Örneğin, her düğüme bir LogPath
özellik vermek için şunları yapabilirsiniz:
$MyData =
@{
AllNodes =
@(
@{
NodeName = "*"
LogPath = "C:\Logs"
},
@{
NodeName = "VM-1"
Role = "WebServer"
SiteContents = "C:\Site1"
SiteName = "Website1"
},
@{
NodeName = "VM-2"
Role = "SQLServer"
},
@{
NodeName = "VM-3"
Role = "WebServer"
SiteContents = "C:\Site2"
SiteName = "Website3"
}
);
}
Bu, diğer bloklarınVM-1
(, VM-2
ve VM-3
) her birine değerine "C:\Logs"
sahip bir ada LogPath
sahip bir özellik eklemenin eşdeğeridir.
ConfigurationData karma tablosu tanımlama
ConfigurationData'yi yapılandırmayla aynı betik dosyasındaki bir değişken olarak (önceki örneklerimizde olduğu gibi) veya ayrı .psd1
bir dosyada tanımlayabilirsiniz. Bir .psd1
dosyada ConfigurationData'yı tanımlamak için yalnızca yapılandırma verilerini temsil eden karma tablo içeren bir dosya oluşturun.
Örneğin, aşağıdaki içeriklere sahip adlı MyData.psd1
bir dosya oluşturabilirsiniz:
@{
AllNodes =
@(
@{
NodeName = 'VM-1'
FeatureName = 'Web-Server'
},
@{
NodeName = 'VM-2'
FeatureName = 'Hyper-V'
}
)
}
Yapılandırma verileriyle yapılandırma derleme
Yapılandırma verilerini tanımladığınız bir yapılandırmayı derlemek için yapılandırma verilerini ConfigurationData parametresinin değeri olarak geçirirsiniz.
Bu, AllNodes dizisindeki her giriş için bir MOF dosyası oluşturur. Her MOF dosyası, karşılık gelen dizi girişinin özelliğiyle NodeName
adlandırılır.
Örneğin, yapılandırma verilerini yukarıdaki dosyada MyData.psd1
olduğu gibi tanımlarsanız, bir yapılandırma derlenmesi hem hem de VM-1.mof
VM-2.mof
dosyaları oluşturur.
Değişken kullanarak yapılandırma verilerini yapılandırmayla derleme
Yapılandırmayla aynı .ps1
dosyada değişken olarak tanımlanan yapılandırma verilerini kullanmak için, yapılandırmayı derlerken configurationData parametresinin değeri olarak değişken adını geçirirsiniz:
MyDscConfiguration -ConfigurationData $MyData
Veri dosyası kullanarak yapılandırma verilerini yapılandırmayla derleme
Bir .psd1 dosyasında tanımlanan yapılandırma verilerini kullanmak için, yapılandırmayı derlerken configurationData parametresinin değeri olarak bu dosyanın yolunu ve adını geçirirsiniz:
MyDscConfiguration -ConfigurationData .\MyData.psd1
Yapılandırmada ConfigurationData değişkenlerini kullanma
DSC, bir yapılandırma betiğinde kullanılabilecek aşağıdaki özel değişkenleri sağlar:
- $AllNodesConfigurationData'da tanımlanan düğüm koleksiyonunun tamamını ifade eder. Kullanarak AllNodes koleksiyonunu filtreleyebilirsiniz. Where() ve . ForEach().
- ConfigurationData , bir yapılandırma derlenirken parametre olarak geçirilen karma tablosunun tamamını ifade eder.
- MyTypeName değişkenin kullanıldığı yapılandırma adını içerir. Örneğin, yapılandırmasında
MyDscConfiguration
değeri$MyTypeName
olacaktırMyDscConfiguration
. - Node , kullanılarak filtrelendikten sonra AllNodes koleksiyonundaki belirli bir girdiye başvurur . Where() veya . ForEach().
- Bu yöntemler hakkında daha fazla bilgiyi about_arrays
Düğüm olmayan verileri kullanma
Önceki örneklerde gördüğümüz gibi ConfigurationData karma tablosu, gerekli AllNodes anahtarına ek olarak bir veya daha fazla anahtara sahip olabilir. Bu konudaki örneklerde yalnızca tek bir ek düğüm kullandık ve adını verdik NonNodeData
. Ancak, istediğiniz sayıda ek anahtar tanımlayabilir ve istediğiniz her şeyi adlandırabilirsiniz.
Düğüm olmayan verileri kullanma örneği için bkz. Yapılandırma ve ortam verilerini ayırma.