Specifica delle dipendenze tra nodi

Si applica a: Windows PowerShell 5.0

DSC fornisce risorse speciali, WaitForAll, WaitForAny e WaitForSome che possono essere usate nelle configurazioni per specificare le dipendenze dalle configurazioni in altri nodi. Il comportamento di queste risorse è il seguente:

  • WaitForAll: ha esito positivo se la risorsa specificata si trova nello stato desiderato in tutti i nodi di destinazione definiti nella proprietà NodeName .
  • WaitForAny: ha esito positivo se la risorsa specificata si trova nello stato desiderato in almeno uno dei nodi di destinazione definiti nella proprietà NodeName .
  • WaitForSome: specifica una proprietà NodeCount oltre a una proprietà NodeName . La risorsa ha esito positivo se si trova nello stato desiderato in un numero minimo di nodi (specificato da NodeCount) definito dalla proprietà NodeName .

Sintassi

Le risorse WaitForAll e WaitForAny condividono la stessa sintassi. Nell'esempio seguente sostituire <ResourceType> con WaitForAny o WaitForAll. Come per la parola chiave DependsOn , è necessario formattare il nome come [ResourceType]ResourceName. Se la risorsa appartiene a una configurazione separata, includere ConfigurationName nella stringa [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]formattata . NodeName è il computer, o nodo, su cui la risorsa corrente deve attendere.

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

La risorsa WaitForSome ha una sintassi simile all'esempio precedente, ma aggiunge la chiave NodeCount . NodeCount indica il numero di nodi su cui la risorsa corrente deve essere in attesa.

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

Tutti i WaitForXXXX condividono le seguenti chiavi di sintassi.

Proprietà Description
RetryIntervalSec Numero di secondi prima di un nuovo tentativo. Il valore minimo è 1.
RetryCount Numero massimo di tentativi ripetuti.
Limite di limitazione Numero di macchine da collegare contemporaneamente. Il valore predefinito è New-CimSession il valore predefinito.
DipendeSu Indica che la configurazione di un'altra risorsa deve essere eseguita prima di configurare questa risorsa. Per ulteriori informazioni, vedere DependsOn
PsDscRunAsCredential Vedere Utilizzo di DSC con le credenziali utente

Utilizzo delle risorse WaitForXXXX

Ogni risorsa WaitForXXXX attende il completamento delle risorse specificate nel nodo specificato. Altre risorse nella stessa configurazione possono quindi dipendere dalla risorsa WaitForXXXX utilizzando la chiave DependsOn .

Ad esempio, nella configurazione seguente, il nodo di destinazione è in attesa del completamento della risorsa xADDomain nel nodo MyDC con un numero massimo di 30 tentativi, a intervalli di 15 secondi, prima che il nodo di destinazione possa essere aggiunto al dominio.

Per impostazione predefinita, le risorse WaitForXXX tentano una volta e poi hanno esito negativo. Sebbene non sia obbligatorio, in genere si desidera specificare un RetryCount e 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'
        }
    }
}

Quando si compila la configurazione, vengono generati due file ".mof". Applicare entrambi i file ".mof" ai nodi di destinazione utilizzando il cmdlet Start-DSCConfiguration

Annotazioni

Le risorse WaitForXXX utilizzano la gestione remota di Windows per controllare lo stato di altri nodi. Per altre informazioni sui requisiti di porta e sicurezza per WinRM, vedere Considerazioni sulla sicurezza della comunicazione remota di PowerShell.

Vedere anche