Sdílet prostřednictvím


Určení závislostí mezi uzly

Platí pro: Windows PowerShell 5.0

DSC poskytuje speciální prostředky WaitForAll, WaitForAny a WaitForSome , které lze použít v konfiguracích k určení závislostí na konfiguracích na jiných uzlech. Chování těchto prostředků je následující:

  • WaitForAll: Je úspěšný, pokud je zadaný prostředek v požadovaném stavu na všech cílových uzlech definovaných ve vlastnosti NodeName .
  • WaitForAny: Je úspěšná, pokud je zadaný prostředek v požadovaném stavu alespoň na jednom z cílových uzlů definovaných ve vlastnosti NodeName .
  • WaitForSome: Kromě vlastnosti NodeName určuje vlastnost NodeCount. Prostředek je úspěšný, pokud je prostředek v požadovaném stavu na minimálním počtu uzlů (určených parametrem NodeCount) definovaných vlastností NodeName .

Syntaxe

Prostředky WaitForAll a WaitForAny sdílejí stejnou syntaxi. V následujícím příkladu nahraďte <ResourceType>buď WaitForAny , nebo WaitForAll. Podobně jako klíčové slovo DependsOn budete muset název naformátovat jako [ResourceType]ResourceName. Pokud prostředek patří do samostatné konfigurace, zahrňte do formátovaného řetězce [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]název konfigurace. NodeName je počítač nebo uzel, na kterém má aktuální prostředek čekat.

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

Prostředek WaitForSome má podobnou syntaxi jako výše uvedený příklad, ale přidává klíč NodeCount. NodeCount označuje, na kolik uzlů má aktuální prostředek čekat.

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

Všechny WaitForXXXX sdílejí následující klíče syntaxe.

Vlastnictví Description
IntervalSec opakování Počet sekund před opakováním pokusu. Minimum je 1.
RetryCount Maximální počet opakování pokusu.
Omezení omezení plynu Počet strojů, které se mají připojit současně. Výchozí je New-CimSession výchozí.
Závisí na Označuje, že před konfigurací tohoto prostředku musí být spuštěna konfigurace jiného prostředku. Další informace naleznete v tématu DependsOn
PsDscRunAsCredential Viz Použití DSC s přihlašovacími údaji uživatele.

Použití prostředků WaitForXXXX

Každý prostředek WaitForXXXX čeká na dokončení zadaných prostředků na určeném uzlu. Další prostředky ve stejné konfiguraci pak mohou záviset na prostředku WaitForXXXX pomocí klíče DependsOn .

Například v následující konfiguraci cílový uzel čeká na dokončení prostředku xADDomain na uzlu MyDC s maximálním počtem 30 opakování v 15sekundových intervalech, než se cílový uzel může připojit k doméně.

Ve výchozím nastavení se prostředky WaitForXXX pokusí o to jednou a pak selžou. I když to není nutné, obvykle budete chtít zadat RetryCount a RetryIntervalSec.

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

Při kompilaci Konfigurace jsou vygenerovány dva soubory ".mof". Použijte oba soubory ".mof" na cílové uzly pomocí rutiny Start-DSCConfiguration

Poznámka:

Prostředky WaitForXXX používají Vzdálenou správu systému Windows ke kontrole stavu ostatních uzlů. Další informace o požadavcích na port a zabezpečení pro WinRM najdete v tématu Důležité informace o zabezpečení vzdálené komunikace PowerShellu.

Viz také