다음을 통해 공유


노드 간 종속성 지정

적용 대상: Windows PowerShell 5.0

DSC는 다른 노드에서 구성에 대한 종속성을 지정하기 위한 구성에 사용할 수 있는 특별한 리소스 WaitForAll, WaitForAnyWaitForSome을 제공합니다. 이러한 리소스의 동작은 다음과 같습니다.

  • WaitForAll: NodeName 속성에 정의된 모든 대상 노드에서 지정된 리소스가 원하는 상태이면 성공합니다.
  • WaitForAny: NodeName 속성에 정의된 대상 노드 중 최소 하나 이상에서 지정된 리소스가 원하는 상태이면 성공합니다.
  • WaitForSome: NodeName 속성과 더불어 NodeCount 속성을 지정합니다. NodeCount에서 지정되고 NodeName 속성에서 정의된 최소 숫자의 노드에서 리소스가 원하는 상태이면 리소스가 성공합니다.

Syntax

WaitForAllWaitForAny 리소스는 동일한 구문을 공유합니다. 아래 예제에서 <ResourceType>WaitForAny 또는 WaitForAll로 바꿉니다. DependsOn 키워드처럼 [ResourceType]ResourceName으로 이름 형식을 지정해야 합니다. 리소스가 별도 구성에 속하는 경우에는 ConfigurationName을 형식 문자열 [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]에 포함합니다. NodeName은 현재 리소스가 기다려야 하는 컴퓨터 또는 노드입니다.

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

WaitForSome 리소스에는 위의 예제와 비슷한 구문이 있지만, NodeCount 키가 추가됩니다. NodeCount는 현재 리소스가 기다려야 하는 노드 수를 나타냅니다.

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

모든 WaitForXXXX는 다음 구문 키를 공유합니다.

속성 설명
RetryIntervalSec 다시 시도할 때까지의 시간(초)입니다. 최소값은 1입니다.
RetryCount 최대 다시 시도 횟수입니다.
ThrottleLimit 동시에 연결하는 컴퓨터의 수입니다. 기본값은 New-CimSession 기본값입니다.
DependsOn 이 리소스를 구성하려면 먼저 다른 리소스의 구성을 실행해야 함을 나타냅니다. 자세한 내용은 DependsOn을 참조하세요.
PsDscRunAsCredential 사용자 자격 증명을 사용하여 DSC 실행 참조

WaitForXXXX 리소스 사용

WaitForXXXX 리소스는 지정된 리소스가 지정된 노드에서 완료될 때까지 기다립니다. 동일한 구성의 다른 리소스는 DependsOn 키를 사용하는 WaitForXXXX 리소스에 따라 ‘달라’질 수 있습니다.

예를 들어 다음 구성에서 대상 노드는 대상 노드가 도메인에 가입하기 전에 xADDomain 리소스가 MyDC 노드에서 최대 30번의 시도를 15초 간격으로 완료할 때까지 대기합니다.

기본적으로 WaitForXXX 리소스는 한 번 시도한 다음, 실패합니다. 필수는 아니지만 일반적으로 RetryCountRetryIntervalSec을 지정할 수 있습니다.

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

구성을 컴파일하면 두 개의 ".mof" 파일이 생성됩니다. Start-DSCConfiguration cmdlet을 사용하여 대상 노드에 ".mof" 파일을 적용합니다.

참고

WaitForXXX 리소스는 Windows 원격 관리를 사용하여 다른 노드의 상태를 확인합니다. WinRM에 대한 포트 및 보안 요구 사항에 대한 자세한 내용은 PowerShell Remoting 보안 고려 사항을 참조하세요.

참고 항목