Aracılığıyla paylaş


Ç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]ResourceNamebiç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ı.

Ayrıca Bkz.