Csomópontok közötti függőségek megadása

A következőre vonatkozik: Windows PowerShell 5.0

A DSC olyan speciális erőforrásokat biztosít, mint a WaitForAll, a WaitForAny és a WaitForSome , amelyek a konfigurációkban más csomópontok konfigurációitól való függőségek megadására használhatók. Ezeknek az erőforrásoknak a viselkedése a következő:

  • WaitForAll: Sikeres, ha a megadott erőforrás a NodeName tulajdonságban meghatározott összes célcsomóponton a kívánt állapotban van.
  • WaitForAny: Akkor sikeres, ha a megadott erőforrás a NodeName tulajdonságban meghatározott célcsomópontok legalább egyikén a kívánt állapotban van.
  • WaitForSome: NodeCount tulajdonságot ad meg a NodeName tulajdonság mellett. Az erőforrás akkor sikeres, ha az erőforrás a NodeName tulajdonság által meghatározott (NodeCount által meghatározott) csomópontok minimális számán a kívánt állapotban van.

Syntax

A WaitForAll és a WaitForAny erőforrás ugyanazt a szintaxist használja. Cserélje le <ResourceType> az alábbi példában a WaitForAny vagy a WaitForAll értéket. A DependsOn kulcsszóhoz hasonlóan a nevet [ResourceType]ResourceNameis formáznia kell. Ha az erőforrás egy külön konfigurációhoz tartozik, adja meg a ConfigurationName értéket a formázott sztringben [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]. A NodeName az a számítógép vagy csomópont, amelyen az aktuális erőforrásnak várnia kell.

<ResourceType> [string] #ResourceName
{
    ResourceName = [string]
    NodeName = [string]
    [ DependsOn = [string[]] ]
    [ PsDscRunAsCredential = [PSCredential]]
    [ RetryCount = [Uint32] ]
    [ RetryIntervalSec = [Uint64] ]
    [ ThrottleLimit = [Uint32]]
}

A WaitForSome erőforrás szintaxisa hasonló a fenti példához, de hozzáadja a NodeCount kulcsot. A NodeCount azt jelzi, hogy az aktuális erőforrás hány csomópontot várjon.

WaitForSome [String] #ResourceName
{
    NodeCount = [UInt32]
    NodeName = [string[]]
    ResourceName = [string]
    [DependsOn = [string[]]]
    [PsDscRunAsCredential = [PSCredential]]
    [RetryCount = [UInt32]]
    [RetryIntervalSec = [UInt64]]
    [ThrottleLimit = [UInt32]]
}

Minden WaitForXXXX a következő szintaxiskulcsokat osztja meg.

Tulajdonság Leírás
RetryIntervalSec Az újrapróbálkozás előtti másodpercek száma. A minimum 1.
RetryCount Az újrapróbálkozás maximális száma.
ThrottleLimit Egyidejűleg csatlakozni kívánt gépek száma. Az alapértelmezett érték az New-CimSession alapértelmezett.
DependsOn Azt jelzi, hogy egy másik erőforrás konfigurációjának futnia kell az erőforrás konfigurálása előtt. További információ: DependsOn
PsDscRunAsCredential Lásd: A DSC használata felhasználói hitelesítő adatokkal

WaitForXXXX-erőforrások használata

Minden WaitForXXXX-erőforrás megvárja, amíg a megadott erőforrások befejeződnek a megadott csomóponton. Az ugyanabban a konfigurációban lévő egyéb erőforrások ezután a WaitForXXXXerőforrástól függhetnek a DependsOn kulccsal.

Az alábbi konfigurációban például a célcsomópont arra vár, hogy az xADDomain erőforrás befejeződjön a MyDC-csomóponton , és legfeljebb 30 újrapróbálkozással, 15 másodperces időközökkel fejezze be, mielőtt a célcsomópont csatlakozni tud a tartományhoz.

Alapértelmezés szerint a WaitForXXX-erőforrások egyszer próbálkoznak, majd sikertelenek. Bár ez nem kötelező, általában meg kell adnia a RetryCount és a RetryIntervalSec értéket.

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'
        }
    }
}

A konfiguráció lefordításakor két ".mof" fájl jön létre. Mindkét ".mof" fájl alkalmazása a célcsomópontokra a Start-DSCConfiguration parancsmaggal

Megjegyzés

A WaitForXXX-erőforrások a Windows Remote Management használatával ellenőrzik a többi csomópont állapotát. A WinRM port- és biztonsági követelményeivel kapcsolatos további információkért lásd: PowerShell – Biztonsági szempontok újraegyezése.

Lásd még: