원하는 상태로 머신 구성

Azure Automation 상태 구성을 사용하면 서버 구성을 지정하고 시간이 지남에 따라 해당 서버가 지정된 상태에 있는지 확인할 수 있습니다.

  • Azure Automation DSC에서 관리되는 VM 등록
  • Azure Automation에 구성 업로드
  • 노드 구성으로 구성 컴파일
  • 관리되는 노드에 노드 구성 할당
  • 관리되는 노드에 대한 준수 상태 확인

이 자습서에서는 IIS가 VM에 설치되도록 하는 간단한 DSC 구성을 사용합니다.

필수 조건

부분 구성 지원

Azure Automation State Configuration은 부분 구성을 사용하도록 지원합니다. 이 시나리오에서 DSC는 여러 구성을 독립적으로 관리하도록 구성되고 각 구성은 Azure Automation에서 검색됩니다. 그러나 Automation 계정마다 하나의 구성만 노드에 할당할 수 있습니다. 즉, 노드에 두 가지 구성을 사용하는 경우 두 개의 Automation 계정이 필요합니다.

끌어오기 서비스에서 부분 구성을 등록하는 방법에 대한 자세한 내용은 부분 구성 설명서를 참조하세요.

팀에서 구성을 코드로 사용하여 서버를 공동으로 관리할 수 있는 방법에 대한 자세한 내용은 CI/CD 파이프라인에서 DSC의 역할 이해를 참조하세요.

Azure에 로그인

Connect-AzAccount cmdlet을 사용하여 Azure 구독에 로그인하고 화면의 지시를 따릅니다.

Connect-AzAccount

Azure Automation에 구성 만들기 및 업로드

텍스트 편집기에서 다음을 입력하고 로컬에서 TestConfig.ps1로 저장합니다.

configuration TestConfig {
   Node WebServer {
      WindowsFeature IIS {
         Ensure               = 'Present'
         Name                 = 'Web-Server'
         IncludeAllSubFeature = $true
      }
   }
}

참고 항목

Azure Automation의 구성 이름은 100자 이하로 제한해야 합니다.

DSC 리소스를 제공하는 여러 모듈을 가져와야 하는 고급 시나리오에서는 각 모듈이 구성에서 고유한 Import-DscResource 줄을 사용하도록 해야 합니다.

Import-AzAutomationDscConfiguration cmdlet을 호출하여 구성을 Automation 계정에 업로드합니다.

 Import-AzAutomationDscConfiguration -SourcePath 'C:\DscConfigs\TestConfig.ps1' -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Published

노드 구성으로 구성 컴파일

DSC 구성을 노드에 할당하려면 먼저 노드 구성으로 컴파일해야 합니다. DSC 구성을 참조하세요.

Start-AzAutomationDscCompilationJob cmdlet 을 호출하여 TestConfig 구성을 Automation 계정의 TestConfig.WebServer라는 노드 구성에 컴파일합니다.

Start-AzAutomationDscCompilationJob -ConfigurationName 'TestConfig' -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount'

상태 구성에서 관리하려면 VM 등록

Azure Automation 상태 구성을 사용하여 Azure VM(클래식 및 Resource Manager), 온-프레미스 VM, Linux 머신, AWS VM 및 온-프레미스 물리적 머신을 관리할 수 있습니다. 이 항목에서는 Azure Resource Manager VM만 등록하는 방법에 대해 설명합니다. 다른 유형의 머신 등록에 대한 정보는 Azure Automation 상태 구성을 통한 관리용 머신 온보드를 참조하세요.

Register-AzAutomationDscNode cmdlet을 호출하여 VM을 Azure Automation State Configuration에 관리 노드로 등록합니다.

Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm'

구성 모드 설정 지정

Register-AzAutomationDscNode cmdlet을 사용하여 VM을 관리 노드로 등록하고 구성 속성을 지정합니다. 예를 들어 ConfigurationMode 속성 값으로 ApplyOnly를 지정하여 머신의 상태를 한 번만 적용하도록 지정할 수 있습니다. State Configuration이 초기 확인 이후 구성을 적용하지 않습니다.

Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm' -ConfigurationMode 'ApplyOnly'

ConfigurationModeFrequencyMins 속성을 사용하여 DSC에서 구성 상태를 확인하는 빈도를 지정할 수도 있습니다. DSC 구성 설정에 대한 자세한 내용은 로컬 구성 관리자 구성을 참조하세요.

# Run a DSC check every 60 minutes
Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm' -ConfigurationModeFrequencyMins 60

관리되는 노드에 노드 구성 할당

이제 구성하려는 VM에 컴파일된 노드 구성을 할당할 수 있습니다.

# Get the ID of the DSC node
$node = Get-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Name 'DscVm'

# Assign the node configuration to the DSC node
Set-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -NodeConfigurationName 'TestConfig.WebServer' -NodeId $node.Id

그러면 등록된 DSC 노드 DscVmTestConfig.WebServer라는 노드 구성이 할당됩니다. 기본적으로 DSC 노드에서는 30분마다 노드 구성이 준수되는지 확인합니다. 준수 확인 간격을 변경하는 방법에 대한 자세한 내용은 로컬 구성 관리자 구성을 참조하세요.

관리되는 노드에 대한 준수 상태 확인

Get-AzAutomationDscNodeReport cmdlet을 사용하여 관리 노드의 준수 상태에 대한 보고서를 가져올 수 있습니다.

# Get the ID of the DSC node
$node = Get-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Name 'DscVm'

# Get an array of status reports for the DSC node
$reports = Get-AzAutomationDscNodeReport -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -NodeId $node.Id

# Display the most recent report
$reports[0]

다음 단계