DSC 리소스
적용 대상: Windows PowerShell 4.0 이상
개요
DSC(필요한 상태 구성) 리소스에서는 DSC 구성에 대한 구성 요소를 제공합니다. 리소스는 구성할 수 있는 속성(스키마)을 노출하고 LCM(로컬 구성 관리자)이 "그대로 수행"하기 위해 호출하는 PowerShell 스크립트 함수를 포함합니다.
리소스는 파일만큼 일반적이거나 IIS 서버만큼 특별한 것을 모델링할 수 있습니다. 같은 리소스들의 그룹은 모든 필수 파일을 이식 가능한 구조로 정리하고, 리소스를 사용하려고 한 방법을 식별하는 메타데이터를 포함하는 DSC 모듈에 결합됩니다.
각 리소스에는 구성에서 리소스를 사용하는 데 필요한 구문을 결정하는 *스키마가 있습니다. 리소스 스키마는 다음 방법으로 정의할 수 있습니다.
Schema.Mof
파일: 대부분의 리소스는 Managed Object Format을 사용하여schema.mof
파일에서 해당 ‘스키마’를 정의합니다.<Resource Name>.schema.psm1
파일: 복합 리소스는 매개 변수 블록을 사용하여<ResourceName>.schema.psm1
파일에서 해당 ‘스키마’를 정의합니다.<Resource Name>.psm1
파일: 클래스 기반 DSC 리소스는 클래스 정의에서 해당 ‘스키마’를 정의합니다. 구문 항목은 클래스 속성으로 표시됩니다. 자세한 내용은 about_Classes를 참조하세요.
DSC 리소스의 구문을 검색하려면 Get-DSCResource cmdlet과 함께 Syntax 매개 변수를 사용합니다. 이 사용법은 Get-Command와 함께 Syntax 매개 변수를 사용하여 cmdlet 구문을 가져오는 것과 비슷합니다. 표시되는 출력은 지정하는 리소스의 리소스 블록에 사용되는 템플릿을 보여 줍니다.
Get-DscResource -Syntax Service
표시되는 출력은 아래 출력과 비슷하지만, 이 리소스의 구문은 나중에 변경될 수 있습니다. cmdlet 구문과 같이 대괄호 안에 표시되는 ‘키’는 선택 사항입니다. 형식은 각 키에 필요한 데이터 형식을 지정합니다.
참고
Ensure 키는 기본적으로 "Present"로 설정되므로 선택 사항입니다.
Service [String] #ResourceName
{
Name = [string]
[BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
[Credential = [PSCredential]]
[Dependencies = [string[]]]
[DependsOn = [string[]]]
[Description = [string]]
[DisplayName = [string]]
[Ensure = [string]{ Absent | Present }]
[Path = [string]]
[PsDscRunAsCredential = [PSCredential]]
[StartupType = [string]{ Automatic | Disabled | Manual }]
[State = [string]{ Running | Stopped }]
}
참고
7\.0 이전 PowerShell 버전에서 Get-DscResource
는 클래스 기반 DSC 리소스를 찾지 않습니다.
구성 내부에 있는 Service 리소스 블록은 Spooler 서비스가 실행 중인지 확인하기 위해 이와 같이 표시될 수 있습니다.
참고
구성에서 리소스를 사용하기 전에 Import-DSCResource를 사용하여 리소스를 가져와야 합니다.
Configuration TestConfig
{
# It is best practice to always directly import resources, even if the
# resource is a built-in resource.
Import-DSCResource -Name Service
Node localhost
{
# The name of this resource block, can be anything you choose, as l
# ong as it is of type [String] as indicated by the schema.
Service "Spooler - Running"
{
Name = "Spooler"
State = "Running"
}
}
}
구성에는 동일한 리소스 종류의 여러 인스턴스가 포함될 수 있습니다. 각 인스턴스의 이름은 고유해야 합니다. 다음 예제에서는 "DHCP" 서비스를 구성하는 두 번째 Service 리소스 블록이 추가됩니다.
Configuration TestConfig
{
# It is best practice to always directly import resources, even if the
# resource is a built-in resource.
Import-DSCResource -Name Service
Node localhost
{
# The name of this resource block, can be anything you choose, as
# long as it is of type [String] as indicated by the schema.
Service "Spooler - Running"
{
Name = "Spooler"
State = "Running"
}
# To configure a second service resource block, add another Service
# resource block and use a unique name.
Service "DHCP - Running"
{
Name = "DHCP"
State = "Running"
}
}
}
참고
PowerShell 5.0부터, IntelliSense가 DSC용으로 추가되었습니다. 이 새로운 기능을 통해 TAB 및 Ctr+Space 를 사용하여 키 이름을 자동 완성할 수 있습니다.
리소스 유형
Windows에는 기본 제공 리소스가 제공되며 Linux에는 OS 관련 리소스가 있습니다. 노드 간 종속성 리소스, 패키지 관리 리소스뿐만 아니라 커뮤니티 소유 및 유지 관리 리소스도 제공됩니다. 위의 단계를 사용하여 이 리소스의 구문 및 리소스 사용 방법을 확인할 수 있습니다. 이 리소스를 제공하는 페이지는 참조아래에 보관되었습니다.
Windows 기본 제공 리소스
- 보관 리소스
- 환경 리소스
- 파일 리소스
- 그룹 리소스
- GroupSet 리소스
- 로그 리소스
- 패키지 리소스
- ProcessSet 리소스
- 레지스트리 리소스
- 스크립트 리소스
- 서비스 리소스
- ServiceSet 리소스
- 사용자 리소스
- WindowsFeature 리소스
- WindowsFeatureSet 리소스
- WindowsOptionalFeature 리소스
- WindowsOptionalFeatureSet 리소스
- WindowsPackageCabResource 리소스
- WindowsProcess 리소스
노드 간 종속성 리소스
패키지 관리 리소스
Linux 리소스
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기