DSC 구성
적용 대상: PowerShell 7, Azure Automanage의 컴퓨터 구성 기능
DSC 구성은 특수한 종류의 명령을 정의하는 PowerShell 스크립트입니다. 구성을 정의하려면 PowerShell 키워드(keyword) configuration
사용합니다.
Configuration MyDscConfiguration {
Environment FirstEnvironmentVariable {
Ensure = 'Present'
Name = 'Foo'
Value = 'Example'
}
Environment SecondEnvironmentVariable {
Ensure = 'Present'
Name = 'Bar'
Value = 'Another'
}
}
MyDscConfiguration
스크립트를 .ps1
파일로 저장합니다.
구성 구문
DSC 구성 스크립트는 다음 부분으로 구성됩니다.
- 블록입니다
Configuration
. 가장 바깥쪽 스크립트 블록입니다. 키워드(keyword) 사용하여Configuration
정의하고 이름을 제공합니다. 이 경우 DSC 구성의 이름은 입니다MyDscConfiguration
. - 하나 이상의 DSC 리소스 블록. 여기서 DSC 구성은 구성 중인 구성 요소에 대한 설정을 정의합니다. 이 경우 두 개의 DSC 리소스 블록이 있습니다. 둘 다 DSC 리소스를
Environment
사용합니다.
구성 컴파일
DSC 구성을 사용하려면 MOF 문서로 컴파일해야 합니다. PowerShell 함수를 호출하는 것처럼 DSC 구성을 호출하여 이 작업을 수행합니다. DSC 구성의 이름만 포함하는 예제의 마지막 줄은 DSC 구성을 실행합니다.
참고
DSC 구성을 호출하려면 다른 PowerShell 함수와 마찬가지로 현재 scope 로드해야 합니다. 스크립트를 "점 소싱"하거나 F5 키를 사용하여 스크립트를 실행하거나 VS Code에서 스크립트 실행 단추를 클릭하여 이 작업을 수행할 수 있습니다. 스크립트를 dot-source하려면 명령을 . .\myConfig.ps1
실행합니다. 여기서 myConfig.ps1
은 DSC 구성을 포함하는 스크립트 파일의 이름입니다.
DSC 구성을 호출할 때 다음을 수행합니다.
- DSC 구성과 이름이 같은 현재 디렉터리에 폴더를 만듭니다.
- 새 디렉터리에 라는
localhost.mof
파일을 만듭니다.
참고
MOF 파일에는 시스템에 대한 모든 구성 정보가 포함됩니다. 이 때문에 안전하게 유지해야 합니다.
DSC 구성에서 새 DSC 리소스 사용
앞의 예제를 실행했다면 명시적으로 가져오지 않고 리소스를 사용하고 있다는 경고가 표시된 것을 보았을 수 있습니다.
Get-DscResource cmdlet을 사용하여 시스템에 설치되고 사용할 수 있는 리소스를 확인할 수 있습니다. 모듈이 에 배치되고 에서 $env:PSModulePath
인식되는 Get-DscResource
경우에도 DSC 구성 내에서 로드해야 합니다.
Import-DscResource
는 블록 내에서 Configuration
만 인식할 수 있는 동적 키워드(keyword). cmdlet이 아닙니다. Import-DscResource
에서는 다음 두 매개 변수를 지원합니다.
- ModuleName 은 를 사용하는
Import-DscResource
권장 방법입니다. 가져올 리소스를 포함하는 모듈의 이름을 받습니다(모듈 이름으로 이루어진 문자열 배열도 받음). - Name은 가져올 리소스의 이름입니다. 이 이름은 의 반환 개체의
Get-DscResource
Name 속성으로 반환되는 이름이 아니라 리소스 스키마(에서 반환Get-DscResource
된 개체의 ResourceType 속성)를 정의할 때 사용되는 클래스 이름입니다.
Import-DSCResource
사용에 대한 자세한 내용은 Import-DSCResource 사용을 참조하세요.
중요
컴퓨터 구성에는 DSC 리소스가 PowerShell 자체 또는 PowerShell 갤러리 모듈에 포함되지 않은 PowerShell cmdlet을 사용하지 못하도록 하는 제한 사항이 있습니다. 하나 이상의 Windows 모듈 에서 cmdlet을 사용하는 DSC 리소스는 컴퓨터 구성에서 작동하지 않습니다.