수색…


소개

PowerShell 버전 5.0부터 PowerShell 클래스 정의를 사용하여 DSC (Desired State Configuration) 리소스를 만들 수 있습니다.

DSC 리소스 구축 돕기 위해,이 A의 [DscResource()] 클래스 정의에 적용된 특성 및 [DscProperty()] 자원은 DSC 리소스 사용자 설정 등의 속성을 지정할.

비고

클래스 기반 DSC 리소스는 다음을 수행해야합니다.

  • [DscResource()] 특성으로 장식하십시오.
  • [bool] 을 반환하는 Test() 메서드를 정의하십시오 [bool]
  • 자체 객체 유형을 반환하는 Get() 메서드를 정의합니다 (예 : [Ticket] ).
  • [void] 를 반환하는 Set() 메서드를 정의하십시오 [void]
  • 하나 이상의 Key DSC 속성

클래스 기반 PowerShell DSC 리소스를 만든 후에는 모듈 매니페스트 (.psd1) 파일을 사용하여 모듈에서 "내 보내야합니다". 모듈 매니페스트 내에서 DscResourcesToExport 해시 테이블 키는 DSC 리소스 (클래스 이름)의 배열을 모듈에서 "내보내기"로 선언하는 데 사용됩니다. 이를 통해 DSC 모듈의 소비자는 모듈 내부의 클래스 기반 리소스를 "볼"수 있습니다.

DSC 리소스 스켈레톤 클래스 만들기

[DscResource()]
class File {
}

이 예제는 DSC 리소스를 선언하는 PowerShell 클래스의 외부 섹션을 작성하는 방법을 보여줍니다. 클래스 정의의 내용을 채워야합니다.

Key 속성을 가진 DSC 자원 스켈레톤

[DscResource()]
class Ticket {
  [DscProperty(Key)]
  [string] $TicketId
}

DSC 자원은 최소한 하나의 키 특성을 선언해야합니다. 핵심 속성은 다른 리소스에서 리소스를 고유하게 식별하는 것입니다. 예를 들어 티켓 시스템에서 티켓을 나타내는 DSC 리소스를 작성한다고 가정 해 보겠습니다. 각 티켓은 티켓 ID로 고유하게 나타납니다.

DSC 자원의 사용자 에게 노출 될 각 속성은 [DscProperty()] 속성으로 장식되어야합니다. 이 애트리뷰트는 DSC 리소스의 키 애트리뷰트임을 나타내는 key 매개 변수를 받아 들인다.

필수 속성이있는 DSC 리소스

[DscResource()]
class Ticket {
  [DscProperty(Key)]
  [string] $TicketId

  [DscProperty(Mandatory)]
  [string] $Subject
}

DSC 리소스를 구축 할 때 모든 속성이 필수가 아닌 경우가 종종 있습니다. 그러나 DSC 리소스 사용자가 구성해야 할 몇 가지 핵심 속성이 있습니다. [DscResource()] 속성의 Mandatory 매개 변수를 사용하여 DSC 자원 사용자가 요구 한대로 속성을 선언합니다.

위 예제에서 Ticket 리소스에 Subject 속성을 추가했습니다. Ticket 리소스는 티켓 시스템의 고유 한 티켓을 나타내며 Mandatory 속성으로 지정되었습니다.

필수 메소드가있는 DSC 리소스

[DscResource()]
class Ticket {
  [DscProperty(Key)]
  [string] $TicketId

  # The subject line of the ticket
  [DscProperty(Mandatory)]
  [string] $Subject

  # Get / Set if ticket should be open or closed
  [DscProperty(Mandatory)]
  [string] $TicketState

  [void] Set() {
    # Create or update the resource
  }

  [Ticket] Get() {
    # Return the resource's current state as an object
    $TicketState = [Ticket]::new()
    return $TicketState
  }

  [bool] Test() {
    # Return $true if desired state is met
    # Return $false if desired state is not met
    return $false
  }
}

이것은 유효한 리소스를 구축하기위한 모든 핵심 요구 사항을 보여주는 완벽한 DSC 리소스입니다. 메소드 구현은 완전하지는 않지만 기본 구조를 보여주기위한 의도로 제공됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow