로컬 구성 관리자 구성
적용 대상: Windows Powershell 5.0
LCM(로컬 구성 관리자)은 DSC(필요한 상태 구성)의 엔진입니다. LCM은 모든 대상 노드에서 실행되며, 노드로 전송되는 구성을 구문 분석하고 시행하는 일을 담당합니다. 다음 작업을 포함하여 DSC의 수 많은 다른 측면을 담당하기도 합니다.
- 새로 고침 모드 결정(밀어넣기 또는 끌어오기)
- 노드가 구성을 끌어와서 시행하는 빈도 지정
- 노드를 풀 서비스와 연결
- 부분 구성 지정
특별한 형식의 구성을 사용하여 이러한 각각의 동작을 지정하도록 LCM을 구성합니다. 다음 섹션에서는 LCM을 구성하는 방법에 대해 설명합니다.
Windows PowerShell 5.0에는 로컬 구성 관리자를 관리하는 데 사용되는 새 설정이 도입되었습니다. Windows PowerShell 4.0에서 LCM을 구성하는 방법에 대한 자세한 내용은 이전 버전의 Windows PowerShell에서 로컬 구성 관리자 구성을 참조하세요.
LCM 구성 작성 및 시행
LCM을 구성하려면 LCM 설정을 적용하는 특수한 형식의 구성을 만들어 실행합니다. LCM 구성을 지정하려면 DscLocalConfigurationManager 특성을 사용합니다. 다음은 LCM을 밀어넣기 모드로 설정하는 간단한 구성을 보여 줍니다.
[DSCLocalConfigurationManager()]
configuration LCMConfig
{
Node localhost
{
Settings
{
RefreshMode = 'Push'
}
}
}
LCM에 설정을 적용하는 프로세스는 DSC 구성을 적용하는 프로세스와 비슷합니다. LCM 구성을 만들고 MOF 파일에 컴파일한 후 노드에 적용합니다. DSC 구성과 달리 Start-DscConfiguration cmdlet을 호출하여 LCM 구성을 시행하지 않습니다. 대신, LCM 구성 MOF 경로를 매개 변수로 제공하는 Set-DscLocalConfigurationManager를 호출합니다. LCM 구성 시행 후에는 Get-DscLocalConfigurationManager cmdlet을 호출하여 LCM의 속성을 확인할 수 있습니다.
LCM 구성은 제한된 리소스 집합에 대한 블록만 포함할 수 있습니다. 이전 예에서 유일하게 호출된 리소스는 Settings입니다. 다른 사용 가능한 리소스는 다음과 같습니다.
- ConfigurationRepositoryWeb: 구성에 대한 HTTP 풀 서비스를 지정합니다.
- ConfigurationRepositoryShare: 구성에 대한 SMB 공유를 지정합니다.
- ResourceRepositoryWeb: 모듈에 대한 HTTP 풀 서비스를 지정합니다.
- ResourceRepositoryShare: 모듈에 대한 SMB 공유를 지정합니다.
- ReportServerWeb: 보고서를 전송받을 HTTP 풀 서비스를 지정합니다.
- PartialConfiguration: 부분 구성을 사용하는 데이터를 제공합니다.
기본 설정
풀 서비스 엔드포인트/경로와 부분 구성을 지정하는 것 외에 LCM의 모든 속성은 Settings 블록에 구성되어 있습니다. Settings 블록에서는 다음 속성을 사용할 수 있습니다.
속성 | 형식 | Description |
---|---|---|
ActionAfterReboot | 문자열 | 구성을 적용하는 동안 다시 부팅하면 어떤 일이 일어나는지 지정합니다. 가능한 값은 "ContinueConfiguration" 및 "StopConfiguration" 입니다.
|
AllowModuleOverwrite | bool | 풀 서비스에서 다운로드한 새 구성이 대상 노드에 있는 이전 구성을 덮어쓰도록 허용되는 경우 $TRUE입니다. 그렇지 않으면 $FALSE입니다. |
CertificateID | 문자열 | 구성으로 전달된 자격 증명을 보호하는 데 사용되는 인증서의 지문입니다. 자세한 내용은 Want to secure credentials in Windows PowerShell Desired State Configuration?(Windows PowerShell 필요한 상태 구성의 자격 증명 보호가 필요하세요?)을 참조하세요. 참고: Azure Automation DSC 풀 서비스를 사용하는 경우 자동으로 관리됩니다. |
ConfigurationDownloadManagers | CimInstance[] | 더 이상 사용되지 않습니다. 구성 풀 서비스 엔드포인트를 정의하려면 ConfigurationRepositoryWeb 및 ConfigurationRepositoryShare 블록을 사용합니다. |
ConfigurationID | 문자열 | 이전 풀 서비스 버전과의 호환성을 위해 사용합니다. 풀 서비스에서 가져올 구성 파일을 식별하는 GUID입니다. 구성 MOF의 이름이 ConfigurationID.mof로 지정된 경우 노드는 풀 서비스에서 구성을 끌어옵니다. 참고: 이 속성을 설정하는 경우 RegistrationKey를 사용하여 풀 서비스에서 노드가 등록되지 않습니다. 자세한 내용은 Setting up a pull client with configuration names(구성 이름을 사용하여 끌어오기 클라이언트 설정)를 참조합니다. |
ConfigurationMode | 문자열 | LCM이 구성을 실제로 대상 노드를 적용하는 방식을 지정합니다. 가능한 값은 “ApplyOnly” , “ApplyAndMonitor” , “ApplyAndAutoCorrect” 입니다.
|
ConfigurationModeFrequencyMins | UInt32 | 현재 구성이 확인 및 적용되는 분 단위 빈도입니다. 이 속성은 ConfigurationMode 속성이 ApplyOnly로 설정되어 있을 경우 무시됩니다. 기본값은 15입니다. |
DebugMode | 문자열 | 가능한 값은 None, ForceModuleImport 및 All입니다.
|
RebootNodeIfNeeded | bool | 이 값을 $true 로 설정하여 리소스가 $global:DSCMachineStatus 플래그를 사용하는 노드를 다시 부팅할 수 있습니다. 그렇지 않으면 다시 부팅해야 하는 구성에 대해 노드를 수동으로 다시 부팅해야 합니다. 기본값은 $false 입니다. DSC 이외의 다른 항목(예: Windows Installer)에서 재부팅 조건을 시행하는 경우 이 설정을 사용하려면 설정을 ComputerManagementDsc 모듈의 PendingReboot 리소스와 결합합니다. |
RefreshMode | 문자열 | LCM이 구성을 가져오는 방법을 지정합니다. 가능한 값은 "Disabled" , "Push" 및 "Pull" 입니다.
|
RefreshFrequencyMins | Uint32 | LCM이 업데이트된 구성을 가져오기 위해 풀 서비스를 확인하고 로컬 구성에서 드리프트 여부를 확인하는 분 단위 시간 간격입니다. 이 구성은 업데이트가 다운로드되었는지 여부에 관계없이 적용됩니다. 이 값은 LCM이 끌어오기 모드로 구성되지 않은 경우 무시됩니다. 기본값은 30입니다. |
ReportManagers | CimInstance[] | 더 이상 사용되지 않습니다. ReportServerWeb 블록을 사용하여 풀 서비스에 보고 데이터를 보낼 엔드포인트를 정의합니다. |
ResourceModuleManagers | CimInstance[] | 더 이상 사용되지 않습니다. ResourceRepositoryWeb 및 ResourceRepositoryShare 블록을 사용하여 풀 서비스 HTTP 엔드포인트 또는 SMB 경로를 각각 정의합니다. |
PartialConfigurations | CimInstance | 구현되지 않았습니다. 사용하지 마십시오. |
StatusRetentionTimeInDays | UInt32 | LCM에서 현재 구성의 상태를 유지하는 일 수입니다. |
참고
LCM은 다음에 따라 ConfigurationModeFrequencyMins 주기를 시작합니다.
Set-DscLocalConfigurationManager
를 사용하여 ConfigurationModeFrequencyMins의 변경된 내용이 포함된 새 메타 구성이 적용됩니다.- 머신 다시 시작
타이머 프로세스가 충돌하는 조건의 경우 해당 기능이 30초 내에 검색되고 주기가 다시 시작됩니다. 동시 실행 작업은 주기가 다시 시작되는 것을 지연시킬 수 있습니다. 이 작업의 기간이 구성된 주기 빈도를 초과하면 다음 타이머가 시작되지 않습니다. 예를 들어 메타 구성은 끌어오기 빈도 15분으로 구성되고 끌어오기는 T1에 발생합니다. 노드는 16분 동안 작업을 완료하지 않습니다. 첫 번째 15분 주기가 무시되고, 다음 끌어오기는 T1+15+15분에 발생합니다.
끌어오기 시나리오의 원래 의도는 RefreshFrequencyMins
이 ConfigurationModeFrequencyMins
보다 긴 시간으로 설정되는 것이었습니다. 로컬 구성은 구성 드리프트를 방지하기 위해 주로 ConfigurationModeFrequencyMins
를 통해 관리되고, RefreshFrequencyMins
는 관리자가 수행한 실제 구성 변경을 추적하는 데 사용됩니다.
풀 서비스
LCM 구성에서는 다음 형식의 풀 서비스 엔드포인트를 정의할 수 있습니다.
- 구성 서버: DSC 구성용 리포지토리입니다. ConfigurationRepositoryWeb(웹 기반 서버용) 및 ConfigurationRepositoryShare(SMB 기반 서버용) 블록을 사용하여 구성 서버를 정의합니다.
- 리소스 서버: PowerShell 모듈로서 패키지에 포함된 DSC 리소스용 리포지토리입니다. ResourceRepositoryWeb(웹 기반 서버용) 및 ResourceRepositoryShare(SMB 기반 서버용) 블록을 사용하여 리소스 서버를 정의합니다.
- 보고서 서버: DSC에서 보내는 보고서 데이터를 전송받는 서비스입니다. ReportServerWeb 블록을 사용하여 보고서 서버를 정의합니다. 보고서 서버는 웹 서비스여야 합니다.
끌어오기 서비스에 대한 자세한 내용은 원하는 상태 구성 끌어오기 서비스를 참조하세요.
구성 서버 블록
웹 기반 구성 서버를 정의하려면 ConfigurationRepositoryWeb 블록을 만듭니다. ConfigurationRepositoryWeb은 다음 속성을 정의합니다.
속성 | 형식 | Description |
---|---|---|
AllowUnsecureConnection | bool | 인증 없이 노드에서 서버에 연결할 수 있도록 하려면 $TRUE로 설정합니다. 인증을 요구하려면 $FALSE로 설정합니다. |
CertificateID | 문자열 | 서버를 인증하는 데 사용되는 인증서의 지문입니다. |
ConfigurationNames | String[] | 대상 노드에서 끌어올 일련의 구성 이름입니다. 이 이름들은 노드가 RegistrationKey를 사용하여 풀 서비스에 등록되어 있지 않은 경우에만 사용됩니다. 자세한 내용은 Setting up a pull client with configuration names(구성 이름을 사용하여 끌어오기 클라이언트 설정)를 참조합니다. |
RegistrationKey | 문자열 | 풀 서비스에 노드를 등록하는 GUID입니다. 자세한 내용은 Setting up a pull client with configuration names(구성 이름을 사용하여 끌어오기 클라이언트 설정)를 참조합니다. |
ServerURL | 문자열 | 구성 서비스의 URL입니다. |
ProxyURL* | 문자열 | 구성 서비스와 통신할 때 사용할 http 프록시의 URL입니다. |
ProxyCredential* | pscredential | Http 프록시에 사용할 자격 증명입니다. |
참고
Windows 버전 1809 이상에서 지원됩니다.
온-프레미스 노드에 대해 ConfigurationRepositoryWeb 값 구성을 간소화하는 예제 스크립트를 사용할 수 있습니다(DSC 메타 구성 생성 참조).
SMB 기반 구성 서버를 정의하려면 ConfigurationRepositoryShare 블록을 만듭니다. ConfigurationRepositoryShare는 다음 속성을 정의합니다.
속성 | 형식 | Description |
---|---|---|
자격 증명 | MSFT_Credential | SMB 공유에 인증하는 데 사용되는 자격 증명입니다. |
SourcePath | 문자열 | SMB 공유의 경로입니다. |
리소스 서버 블록
웹 기반 리소스 서버를 정의하려면 ResourceRepositoryWeb 블록을 만듭니다. ResourceRepositoryWeb은 다음 속성을 정의합니다.
속성 | 형식 | Description |
---|---|---|
AllowUnsecureConnection | bool | 인증 없이 노드에서 서버에 연결할 수 있도록 하려면 $TRUE로 설정합니다. 인증을 요구하려면 $FALSE로 설정합니다. |
CertificateID | 문자열 | 서버를 인증하는 데 사용되는 인증서의 지문입니다. |
RegistrationKey | 문자열 | 풀 서비스에 대해 노드를 식별하는 GUID입니다. |
ServerURL | 문자열 | 구성 서버의 URL입니다. |
ProxyURL* | 문자열 | 구성 서비스와 통신할 때 사용할 http 프록시의 URL입니다. |
ProxyCredential* | pscredential | Http 프록시에 사용할 자격 증명입니다. |
참고
Windows 버전 1809 이상에서 지원됩니다.
온-프레미스 노드에 대해 ResourceRepositoryWeb 값 구성을 간소화하는 예제 스크립트를 사용할 수 있습니다(DSC 메타 구성 생성 참조).
SMB 기반 리소스 서버를 정의하려면 ResourceRepositoryShare 블록을 만듭니다. ResourceRepositoryShare는 다음 속성을 정의합니다.
속성 | 형식 | Description |
---|---|---|
자격 증명 | MSFT_Credential | SMB 공유에 인증하는 데 사용되는 자격 증명입니다. 자격 증명 전달 예는 DSC SMB 끌어오기 서버 설정을 참조하세요. |
SourcePath | 문자열 | SMB 공유의 경로입니다. |
보고서 서버 블록
보고서 서버를 정의하려면, ReportServerWeb 블록을 만듭니다. 보고서 서버 역할은 SMB 기반 풀 서비스와 호환되지 않습니다. ReportServerWeb은 다음 속성을 정의합니다.
속성 | 형식 | Description |
---|---|---|
AllowUnsecureConnection | bool | 인증 없이 노드에서 서버에 연결할 수 있도록 하려면 $TRUE로 설정합니다. 인증을 요구하려면 $FALSE로 설정합니다. |
CertificateID | 문자열 | 서버를 인증하는 데 사용되는 인증서의 지문입니다. |
RegistrationKey | 문자열 | 풀 서비스에 대해 노드를 식별하는 GUID입니다. |
ServerURL | 문자열 | 구성 서버의 URL입니다. |
ProxyURL* | 문자열 | 구성 서비스와 통신할 때 사용할 http 프록시의 URL입니다. |
ProxyCredential* | pscredential | Http 프록시에 사용할 자격 증명입니다. |
참고
Windows 버전 1809 이상에서 지원됩니다.
온-프레미스 노드에 대해 ReportServerWeb 값 구성을 간소화하는 예제 스크립트를 사용할 수 있습니다(DSC 메타 구성 생성 참조).
부분 구성
부분 구성을 정의하려면 PartialConfiguration 블록을 만듭니다. 부분 구성에 대한 자세한 내용은 DSC Partial configurations(DSC 부분 구성)를 참조하세요. PartialConfiguration은 다음 속성을 정의합니다.
속성 | 형식 | Description |
---|---|---|
ConfigurationSource | string[] | 이전에 ConfiguratoinRepositoryWeb 및 ConfigurationRepositoryShare 블록에서 정의한 구성 서버 이름 배열입니다. 이러한 서버에서 부분 구성을 가져옵니다. |
DependsOn | string{} | 이 부분 구성을 적용하기 전에 먼저 완료해야 하는 다른 구성의 이름 목록입니다. |
Description | 문자열 | 부분 구성을 설명하는 데 사용되는 텍스트입니다. |
ExclusiveResources | string[] | 이 부분 구성에만 사용하는 일련의 리소스입니다. |
RefreshMode | 문자열 | LCM에서 이 부분 구성을 가져오는 방법을 지정합니다. 가능한 값은 "Disabled" , "Push" 및 "Pull" 입니다.
|
ResourceModuleSource | string[] | 이 부분 구성에 대해 다운로드할 필수 리소스가 있었던 일련의 리소스 서버 이름입니다. 이 이름들은 이전에 ResourceRepositoryWeb 및 ResourceRepositoryShare 블록에서 정의한 서비스 엔드포인트를 참조해야 합니다. |
참고
부분 구성은 Azure Automation DSC에서 지원되지만 각 자동화 계정에서 노드당 구성 하나만 가져올 수 있습니다.
참고 항목
개념
관련 자료
Set-DscLocalConfigurationManager
Setting up a pull client with configuration names(구성 이름을 사용하여 끌어오기 클라이언트 설정)