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: Proběhne ú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: Proběhne ú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: Určuje vlastnost NodeCount kromě vlastnosti NodeName . Prostředek bude úspěšný, pokud je v požadovaném stavu na minimálním počtu uzlů (určeném hodnotou NodeCount) definovaném vlastností NodeName .

Syntax

Prostředky WaitForAll a WaitForAny mají stejnou syntaxi. V následujícím příkladu nahraďte <ResourceType> buď textem WaitForAny , nebo WaitForAll. Stejně jako klíčové slovo DependsOn budete muset název naformátovat jako [ResourceType]ResourceName. Pokud prostředek patří do samostatné konfigurace, zahrňte ConfigurationName do formátovaného řetězce [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]. NodeName je počítač neboli Uzel, na kterém by měl 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 . Počet uzlů určuje, na kolik uzlů by měl 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 položky WaitForXXXX sdílejí následující klíče syntaxe.

Vlastnost Popis
RetryIntervalSec Počet sekund před opakováním. Minimum je 1.
Počet opakování Maximální počet opakování.
ThrottleLimit Počet počítačů, které se mají připojit současně Výchozí hodnota je New-CimSession výchozí.
DependsOn Označuje, že konfigurace jiného prostředku musí běžet před konfigurací tohoto prostředku. Další informace najdete 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 zadaném uzlu. Další prostředky ve stejné konfiguraci pak můžou 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 jednou pokusí a pak selžou. I když to není povinné, 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 se vygenerují dva soubory ".mof". Použití obou souborů ".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 jiných uzlů. Další informace o požadavcích na porty a zabezpečení pro WinRM najdete v tématu Aspekty zabezpečení vzdálené komunikace PowerShellu.

Viz také