Çapraz düğüm bağımlılıklarını belirtme
Şunun için geçerlidir: Windows PowerShell 5.0
DSC, diğer düğümlerdeki yapılandırmalara bağımlılıkları belirtmek için yapılandırmalarda kullanılabilen WaitForAll, WaitForAny ve WaitForSome özel kaynakları sağlar. Bu kaynakların davranışı aşağıdaki gibidir:
- WaitForAll: NodeName özelliğinde tanımlanan tüm hedef düğümlerde belirtilen kaynak istenen durumdaysa başarılı olur.
- WaitForAny: NodeName özelliğinde tanımlanan hedef düğümlerden en az birinde belirtilen kaynak istenen durumdaysa başarılı olur.
- WaitForSome: NodeName özelliğine ek olarak nodecount özelliğini belirtir. Kaynak, NodeName özelliği tarafından tanımlanan en az sayıda düğümde (NodeCount tarafından belirtilen) istenen durumdaysa başarılı olur.
Syntax
WaitForAll ve WaitForAny kaynakları aynı söz dizimini paylaşır. Aşağıdaki örnekteki değerini WaitForAny veya WaitForAll ile değiştirin<ResourceType>
. DependsOn anahtar sözcüğü gibi, adı olarak [ResourceType]ResourceName
biçimlendirmeniz gerekir. Kaynak ayrı bir Yapılandırmaya aitse, biçimlendirilmiş dizeye [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]
ConfigurationName değerini ekleyin. NodeName, geçerli kaynağın beklemesi gereken bilgisayar veya Node'dur.
<ResourceType> [string] #ResourceName
{
ResourceName = [string]
NodeName = [string]
[ DependsOn = [string[]] ]
[ PsDscRunAsCredential = [PSCredential]]
[ RetryCount = [Uint32] ]
[ RetryIntervalSec = [Uint64] ]
[ ThrottleLimit = [Uint32]]
}
WaitForSome kaynağı yukarıdaki örneğe benzer bir söz dizimine sahiptir, ancak NodeCount anahtarını ekler. NodeCount, geçerli kaynağın kaç Düğümde beklemesi gerektiğini gösterir.
WaitForSome [String] #ResourceName
{
NodeCount = [UInt32]
NodeName = [string[]]
ResourceName = [string]
[DependsOn = [string[]]]
[PsDscRunAsCredential = [PSCredential]]
[RetryCount = [UInt32]]
[RetryIntervalSec = [UInt64]]
[ThrottleLimit = [UInt32]]
}
Tüm WaitForXXXXX aşağıdaki söz dizimi anahtarlarını paylaşır.
Özellik | Açıklama |
---|---|
RetryIntervalSec | Yeniden denemeden önceki saniye sayısı. Minimum is 1. |
RetryCount | Yeniden deneme sayısı üst sınırı. |
ThrottleLimit | Aynı anda bağlanacak makine sayısı. Varsayılan varsayılandır New-CimSession . |
Dependson | Bu kaynak yapılandırılmadan önce başka bir kaynağın yapılandırmasının çalıştırılması gerektiğini gösterir. Daha fazla bilgi için bkz . DependsOn |
PsDscRunAsCredential | Bkz . Kullanıcı Kimlik Bilgileriyle DSC Kullanma |
WaitForXXXX kaynaklarını kullanma
Her WaitForXXXX kaynağı, belirtilen düğümde belirtilen kaynakların tamamlanmasını bekler. Daha sonra aynı Yapılandırmadaki diğer kaynaklar DependsOn anahtarını kullanarak WaitForXXXX kaynağına bağımlı olabilir.
Örneğin, aşağıdaki yapılandırmada hedef düğüm, hedef düğümün etki alanına katılmadan önce 15 saniyelik aralıklarla 30 yeniden deneme sayısı üst sınırına sahip MyDC düğümünde xADDomain kaynağının tamamlanabilmesini bekler.
Varsayılan olarak WaitForXXX kaynakları bir kez dener ve sonra başarısız olur. Gerekli olmasa da, genellikle RetryCount ve RetryIntervalSec belirtmek istersiniz.
Configuration JoinDomain
{
Import-DSCResource -ModuleName xComputerManagement, xActiveDirectory
Node myDC
{
WindowsFeature InstallAD
{
Ensure = 'Present'
Name = 'AD-Domain-Services'
}
xADDomain NewDomain
{
DomainName = 'Contoso.com'
DomainAdministratorCredential = (Get-Credential)
SafemodeAdministratorPassword = (Get-Credential)
DatabasePath = "C:\Windows\NTDS"
LogPath = "C:\Windows\NTDS"
SysvolPath = "C:\Windows\Sysvol"
}
}
Node myDomainJoinedServer
{
WaitForAll DC
{
ResourceName = '[xADDomain]NewDomain'
NodeName = 'MyDC'
RetryIntervalSec = 15
RetryCount = 30
}
xComputer JoinDomain
{
Name = 'myPC'
DomainName = 'Contoso.com'
Credential = (Get-Credential)
DependsOn ='[WaitForAll]DC'
}
}
}
Yapılandırmayı derlediğinizde iki ".mof" dosyası oluşturulur. Start-DSCConfiguration cmdlet'ini kullanarak hedef Düğümlere her iki ".mof" dosyasını da uygulayın
Not
WaitForXXX kaynakları, diğer Düğümlerin durumunu denetlemek için Windows Uzaktan Yönetimi'ni kullanır. WinRM'nin bağlantı noktası ve güvenlik gereksinimleri hakkında daha fazla bilgi için bkz. PowerShell Uzaktan İletişim Güvenlik Konuları.