Specifica delle dipendenze tra nodiSpecifying cross-node dependencies

Si applica a: Windows PowerShell 5.0Applies To: Windows PowerShell 5.0

DSC fornisce risorse speciali quali WaitForAll , WaitForAny e WaitForSome che possono essere usate nelle configurazioni per specificare le dipendenze nelle configurazioni di altri nodi.DSC provides special resources, WaitForAll , WaitForAny , and WaitForSome that can be used in configurations to specify dependencies on configurations on other nodes. Il comportamento di queste risorse è il seguente:The behavior of these resources is as follows:

  • WaitForAll : ha esito positivo se la risorsa specificata è nello stato desiderato in tutti i nodi di destinazione definiti nella proprietà NodeName.WaitForAll : Succeeds if the specified resource is in the desired state on all target nodes defined in the NodeName property.
  • WaitForAny : ha esito positivo se la risorsa specificata è nello stato desiderato in almeno uno dei nodi di destinazione definiti nella proprietà NodeName.WaitForAny : Succeeds if the specified resource is in the desired state on at least one of the target nodes defined in the NodeName property.
  • WaitForSome : specifica una proprietà NodeCount oltre alla proprietà NodeName.WaitForSome : Specifies a NodeCount property in addition to a NodeName property. La risorsa ha esito positivo se si trova nello stato desiderato in un numero minimo di nodi, specificato in NodeCount , definito dalla proprietà NodeName.The resource succeeds if the resource is in the desired state on a minimum number of nodes (specified by NodeCount ) defined by the NodeName property.

SintassiSyntax

Le risorse WaitForAll e WaitForAny condividono la stessa sintassi.The WaitForAll and WaitForAny resources share the same syntax. Sostituire <ResourceType> nell'esempio seguente con WaitForAny o WaitForAll.Replace <ResourceType> in the example below with either WaitForAny or WaitForAll. Come per la parola chiave DependsOn , sarà necessario formattare il nome come [ResourceType]ResourceName.Like the DependsOn keyword, you will need to format the name as [ResourceType]ResourceName. Se la risorsa appartiene a un oggetto Configuration separato, includere ConfigurationName nella stringa formattata [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName].If the resource belongs to a separate Configuration, include the ConfigurationName in the formatted string [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]. NodeName è il computer o il nodo su cui deve restare in attesa la risorsa corrente.The NodeName is the computer, or Node, on which the current resource should wait.

<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.The WaitForSome resource has a similar syntax to the example above, but adds the NodeCount key. NodeCount indica il numero di nodi su cui deve restare in attesa la risorsa corrente.The NodeCount indicates how many Nodes the current resource should wait on.

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

Tutte le risorse WaitForXXXX condividono le chiavi di sintassi seguenti.All WaitForXXXX share the following syntax keys.

ProprietàProperty DescrizioneDescription
RetryIntervalSecRetryIntervalSec Il numero di secondi prima di riprovare.The number of seconds before retrying. Il valore minimo è 1.Minimum is 1.
RetryCountRetryCount Il numero massimo di tentativi.The maximum number of times to retry.
ThrottleLimitThrottleLimit Numero di computer da connettere contemporaneamente.Number of machines to connect simultaneously. Il valore predefinito è New-CimSession.Default is New-CimSession default.
DependsOnDependsOn Indica che prima di configurare la risorsa è necessario eseguire la configurazione di un'altra risorsa.Indicates that the configuration of another resource must run before this resource is configured. Per altre informazioni, vedere DependsOnFor more information, see DependsOn
PsDscRunAsCredentialPsDscRunAsCredential Vedere Esecuzione di DSC con le credenziali dell'utenteSee Using DSC with User Credentials

Uso delle risorse WaitForXXXXUsing WaitForXXXX resources

Ogni risorsa WaitForXXXX attende il completamento delle risorse specificate sul nodo specificato.Each WaitForXXXX resource waits for the specified resources to complete on the specified Node. Altre risorse nella stessa configurazione possono quindi dipendere dalla risorsa WaitForXXXX tramite la chiave DependsOn.Other resources in the same Configuration can then depend on the WaitForXXXX resource using the DependsOn key.

Nella configurazione seguente, ad esempio, 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.For example, in the following configuration, the target node is waiting for the xADDomain resource to finish on the MyDC node with maximum number of 30 retries, at 15-second intervals, before the target node can join the domain.

Per impostazione predefinita, le risorse WaitForXXX eseguono un solo tentativo prima dell'esito negativo.By default the WaitForXXX resources try one time and then fail. Sebbene non sia obbligatorio, è consigliabile specificare RetryCount e RetryIntervalSec.Although it is not required, you will typically want to specify a RetryCount and RetryIntervalSec.

Configuration JoinDomain
{
    Import-DscResource -Module 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".When you compile the Configuration, two ".mof" files are generated. Applicare entrambi i file "MOF" ai nodi di destinazione usando il cmdlet Start-DSCConfigurationApply both ".mof" files to the target Nodes using the Start-DSCConfiguration cmdlet

Nota

Le risorse WaitForXXX usano Gestione remota Windows per controllare lo stato degli altri nodi.WaitForXXX resources use Windows Remote Management to check the state of other Nodes. Per altre informazioni sulla porta e sui requisiti di sicurezza per Gestione remota Windows, vedere Considerazioni sulla sicurezza della comunicazione remota di PowerShell.For more information about port and security requirements for WinRM, see PowerShell Remoting Security Considerations.

Vedere ancheSee Also