Specifica delle dipendenze tra nodi
Si applica a: 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. Il comportamento di queste risorse è il seguente:
- WaitForAll: ha esito positivo se la risorsa specificata è nello stato desiderato in tutti i nodi di destinazione definiti nella proprietà NodeName.
- WaitForAny: ha esito positivo se la risorsa specificata è nello stato desiderato in almeno uno dei nodi di destinazione definiti nella proprietà NodeName.
- WaitForSome: specifica una proprietà NodeCount oltre alla proprietà NodeName. La risorsa ha esito positivo se si trova nello stato desiderato in un numero minimo di nodi, specificato in NodeCount, definito dalla proprietà NodeName.
Sintassi
Le risorse WaitForAll e WaitForAny condividono la stessa sintassi. Sostituire <ResourceType>
nell'esempio seguente con WaitForAny o WaitForAll. Come per la parola chiave DependsOn, sarà necessario formattare il nome come [ResourceType]ResourceName
. Se la risorsa appartiene a un oggetto Configuration separato, includere ConfigurationName nella stringa formattata [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]
. NodeName è il computer o il nodo su cui deve restare in attesa la risorsa corrente.
<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 deve restare in attesa la risorsa corrente.
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.
Proprietà | Descrizione |
---|---|
RetryIntervalSec | Il numero di secondi prima di riprovare. Il valore minimo è 1. |
RetryCount | Il numero massimo di tentativi. |
ThrottleLimit | Numero di computer da connettere contemporaneamente. Il valore predefinito è New-CimSession . |
DependsOn | Indica che prima di configurare la risorsa è necessario eseguire la configurazione di un'altra risorsa. Per altre informazioni, vedere DependsOn |
PsDscRunAsCredential | Vedere Esecuzione di DSC con le credenziali dell'utente |
Uso delle risorse WaitForXXXX
Ogni risorsa WaitForXXXX attende il completamento delle risorse specificate sul nodo specificato. Altre risorse nella stessa configurazione possono quindi dipendere dalla risorsa WaitForXXXX tramite la chiave DependsOn.
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.
Per impostazione predefinita, le risorse WaitForXXX eseguono un solo tentativo prima dell'esito negativo. Sebbene non sia obbligatorio, è consigliabile specificare 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 usando il cmdlet Start-DSCConfiguration
Nota
Le risorse WaitForXXX usano Gestione remota Windows per controllare lo stato degli altri nodi. Per altre informazioni sulla porta e sui requisiti di sicurezza per Gestione remota Windows, vedere Considerazioni sulla sicurezza della comunicazione remota di PowerShell.