Azure Automation State Configuration 문제 해결

이 문서에서는 Azure Automation State Configuration에서 구성을 컴파일하거나 배포할 때 발생하는 문제를 해결하는 방법에 대한 정보를 제공합니다. State Configuration 기능에 대한 일반 정보는 Azure Automation State Configuration 개요를 참조하세요.

문제 진단

다음은 구성에 대한 컴파일 또는 배포 오류가 발생하는 경우 문제를 진단하는 데 도움이 되는 몇 가지 단계입니다.

1. 로컬 컴퓨터에서 구성이 성공적으로 컴파일되는지 확인

Azure Automation State Configuration은 PowerShell DSC(Desired State Configuration)를 기반으로 합니다. PowerShell DSC 문서에서 DSC 언어 및 구문에 대한 설명서를 찾을 수 있습니다.

로컬 컴퓨터에서 DSC 구성을 컴파일하면 다음과 같은 일반적인 오류를 검색하고 해결할 수 있습니다.

  • 모듈 없음
  • 구문 오류
  • 논리 오류

2. 노드의 DSC 로그 보기

구성이 성공적으로 컴파일되지만 노드에 적용될 때 실패하는 경우 DSC 로그에서 자세한 정보를 찾을 수 있습니다. 이러한 로그가 있는 위치에 대한 자세한 내용은 DSC 이벤트 로그의 위치를 참조하세요.

xDscDiagnostics 모듈은 DSC 로그에서 자세한 정보를 구문 분석하는 데 도움이 될 수 있습니다. 고객 지원팀에 문의하는 경우 문제를 진단하려면 이러한 로그가 필요합니다.

안정적인 버전 모듈 설치 지침에 따라 로컬 컴퓨터에 xDscDiagnostics 모듈을 설치할 수 있습니다.

Azure 컴퓨터에 xDscDiagnostics 모듈을 설치하려면 Invoke-AzVMRunCommand를 사용합니다. 실행 명령을 사용하여 Windows VM에서 PowerShell 스크립트 실행 단계에 따라 Azure Portal에서 명령 실행 옵션을 사용할 수도 있습니다.

xDscDiagnostics를 사용하는 방법에 대한 자세한 내용은 xDscDiagnostics를 사용하여 DSC 로그 분석을 참조하세요. xDscDiagnostics Cmdlet도 참조하세요.

3. 노드 및 Automation 작업 영역에 필수 모듈이 있는지 확인

DSC는 노드에 설치된 모듈에 종속됩니다. Azure Automation State Configuration을 사용하는 경우 모듈 가져오기의 단계를 수행하여 필요한 모듈을 Automation 계정으로 가져옵니다. 구성도 모듈의 특정 버전에 대한 종속성을 가질 수 있습니다. 자세한 내용은 모듈 문제 해결을 참조하세요.

시나리오: 특수 문자가 포함된 구성을 포털에서 삭제할 수 없음

문제

포털에서 DSC 구성을 삭제하려고 하면 다음과 같은 오류가 표시됩니다.

An error occurred while deleting the DSC configuration '<name>'.  Error-details: The argument configurationName with the value <name> is not valid.  Valid configuration names can contain only letters,  numbers, and underscores.  The name must start with a letter.  The length of the name must be between 1 and 64 characters.

원인

이 오류는 일시적인 문제이므로 곧 해결됩니다.

해결

Remove-AzAutomationDscConfiguration cmdlet을 사용하여 구성을 삭제합니다.

시나리오: DSC 에이전트를 등록하지 못함

문제

Set-DscLocalConfigurationManager 또는 다른 DSC cmdlet 사용 시 다음 오류가 표시됩니다.

Registration of the Dsc Agent with the server
https://<location>-agentservice-prod-1.azure-automation.net/accounts/00000000-0000-0000-0000-000000000000 failed. The
underlying error is: Failed to register Dsc Agent with AgentId 00000000-0000-0000-0000-000000000000 with the server htt
ps://<location>-agentservice-prod-1.azure-automation.net/accounts/00000000-0000-0000-0000-000000000000/Nodes(AgentId='00000000-0000-0000-0000-000000000000'). .
    + CategoryInfo          : InvalidResult: (root/Microsoft/...gurationManager:String) [], CimException
    + FullyQualifiedErrorId : RegisterDscAgentCommandFailed,Microsoft.PowerShell.DesiredStateConfiguration.Commands.Re
   gisterDscAgentCommand
    + PSComputerName        : <computerName>

원인

이 오류는 일반적으로 방화벽, 프록시 서버 뒤에 있는 컴퓨터 또는 기타 네트워크 오류로 인해 발생합니다.

해결

컴퓨터에 DSC의 적절한 엔드포인트에 대한 액세스 권한이 있는지 확인하고 다시 시도합니다. 필요한 포트 및 주소 목록은 네트워크 계획을 참조하세요.

시나리오: 상태 보고서가 권한 없음 응답 코드를 반환함

문제

Azure Automation State Configuration을 사용하여 노드를 등록하면 다음 오류 메시지 중 하나가 표시됩니다.

The attempt to send status report to the server https://{your Automation account URL}/accounts/xxxxxxxxxxxxxxxxxxxxxx/Nodes(AgentId='xxxxxxxxxxxxxxxxxxxxxxxxx')/SendReport returned unexpected response code Unauthorized.
VM has reported a failure when processing extension 'Microsoft.Powershell.DSC / Registration of the Dsc Agent with the server failed.

원인

가능한 원인은 다음과 같습니다.

  • 잘못되었거나 만료된 인증서입니다. 노드 다시 등록을 참조하세요.

  • *.azure-automation.net에 대한 액세스를 허용하지 않는 프록시 구성입니다. 자세한 내용은 개인 네트워크 구성을 참조하세요.

  • Azure Automation에서 로컬 인증을 사용하지 않도록 설정하는 경우 로컬 인증 사용 안 함을 참조하세요. 이 문제를 해결하려면 로컬 인증 다시 사용을 참조하세요.

  • 클라이언트 컴퓨터 시간은 실제 시간과 몇 분 정도 차이가 납니다. (사용 시간을 확인하는 방법: w32tm /stripchart /computer:time.windows.com /samples:6).

해결

다음 단계를 사용하여 실패한 DSC 노드를 다시 등록합니다.

1단계: 노드 등록 취소

  1. Azure Portal에서 >Automation 계정>(사용자의 Automation 계정) >State Configuration(DSC)으로 이동합니다.
  2. 노드를 선택하고 문제가 있는 노드를 선택합니다.
  3. 등록 취소를 선택하여 노드 등록을 취소합니다.

2단계: 노드에서 DSC 확장 제거

  1. Azure Portal에서 >Virtual Machine>(실패한 노드) >확장으로 이동합니다.
  2. PowerShell DSC 확장인 Microsoft.Powershell.DSC를 선택합니다.
  3. 제거를 선택하여 확장을 제거합니다.

3단계: 노드에서 잘못되었거나 만료된 모든 인증서 제거

승격된 PowerShell 프롬프트에서 실패한 노드에 대해 다음 명령을 실행합니다.

$certs = @()
$certs += dir cert:\localmachine\my | ?{$_.FriendlyName -like "DSC"}
$certs += dir cert:\localmachine\my | ?{$_.FriendlyName -like "DSC-OaaS Client Authentication"}
$certs += dir cert:\localmachine\CA | ?{$_.subject -like "CN=AzureDSCExtension*"}
"";"== DSC Certificates found: " + $certs.Count
$certs | FL ThumbPrint,FriendlyName,Subject
If (($certs.Count) -gt 0)
{
    ForEach ($Cert in $certs)
    {
        RD -LiteralPath ($Cert.Pspath)
    }
}

4단계: 실패한 노드 다시 등록

  1. Azure Portal에서 >Automation 계정>(사용자의 Automation 계정) >State Configuration(DSC)으로 이동합니다.
  2. 노드를 선택합니다.
  3. 추가를 선택합니다.
  4. 실패한 노드를 선택합니다.
  5. 연결을 선택하고 원하는 옵션을 선택합니다.

시나리오: 노드가 "찾을 수 없음" 오류로 실패한 상태임

문제

노드에 실패 상태의 보고서가 있으며 오류가 포함되어 있습니다.

The attempt to get the action from server https://<url>//accounts/<account-id>/Nodes(AgentId=<agent-id>)/GetDscAction failed because a valid configuration <guid> cannot be found.

원인

이 오류는 일반적으로 노드가 노드 구성(MOF 파일) 이름(예: ABC.WebServer) 대신 구성 이름(예: ABC)에 할당된 경우에 발생합니다.

해결

  • 구성 이름이 아니라 노드 구성 이름으로 노드를 할당해야 합니다.

  • Azure Portal 또는 PowerShell cmdlet을 사용하여 노드 구성을 노드에 할당할 수 있습니다.

    • Azure Portal에서 >Automation 계정>(사용자의 Automation 계정) >State Configuration(DSC)으로 이동합니다. 그런 다음 노드를 선택하고 노드 구성 할당을 선택합니다.
    • Set-AzAutomationDscNode cmdlet을 사용합니다.

시나리오: 구성이 컴파일될 때 생성된 노드 구성(MOF 파일)이 없음

문제

DSC 컴파일 작업이 오류로 인해 중단됩니다.

Compilation completed successfully, but no node configuration **.mof** files were generated.

원인

DSC 구성에서 Node 키워드 다음에 오는 식이 $null로 평가되면 노드 구성이 생성되지 않습니다.

해결

다음 해결 방법 중 하나를 사용하여 문제를 해결합니다.

  • 구성 정의에서 Node 키워드 옆의 식이 Null로 계산되지 않는지 확인합니다.
  • 구성을 컴파일할 때 ConfigurationData를 전달하는 경우 구성 데이터에서 구성에 필요한 값을 전달해야 합니다.

시나리오: DSC 노드 보고서가 진행 중 상태로 중단됨

문제

DSC 에이전트 출력:

No instance found with given property values

원인

WMF(Windows Management Framework) 버전을 업그레이드하고 WMI(Windows Management Instrumentation)가 손상되었습니다.

해결

DSC 알려진 문제 및 제한 사항의 지침을 따릅니다.

시나리오: DSC 구성에서 자격 증명을 사용할 수 없습니다.

문제

DSC 컴파일 작업이 다음 오류로 인해 중단됨:

System.InvalidOperationException error processing property 'Credential' of type <some resource name>: Converting and storing an encrypted password as plaintext is allowed only if PSDscAllowPlainTextPassword is set to true.

원인

구성에서 자격 증명을 사용하지만 각 노드 구성에 대해 PSDscAllowPlainTextPassword를 true로 설정하는 데 적절한 ConfigurationData를 제공하지 않았습니다.

해결

적절한 ConfigurationData를 전달하여 구성에서 언급한 각 노드의 구성에 대해 PSDscAllowPlainTextPassword를 true로 설정하도록 합니다. Azure Automation State Configuration에서 DSC 구성 컴파일을 참조하세요.

시나리오: DSC 확장에서 컴퓨터를 사용하도록 설정하는 경우 "확장 프로그램 처리 실패" 오류 발생

문제

DSC 확장을 사용하여 컴퓨터를 사용하도록 설정할 때 오류가 발생합니다.

VM has reported a failure when processing extension 'Microsoft.Powershell.DSC'. Error message: \"DSC COnfiguration 'RegistrationMetaConfigV2' completed with error(s). Following are the first few: Registration of the Dsc Agent with the server <url> failed. The underlying error is: The attempt to register Dsc Agent with Agent Id <ID> with the server <url> return unexpected response code BadRequest. .\".

원인

일반적으로 이 오류는 서비스에 없는 노드 구성 이름이 노드에 할당될 때 발생합니다.

해결

  • 서비스의 이름과 정확히 일치하는 이름을 사용하여 노드를 할당해야 합니다.
  • 노드 구성 이름을 포함하지 않도록 선택할 수 있습니다. 그러면 노드가 사용하도록 설정되지만 노드 구성은 할당되지 않습니다.

시나리오: PowerShell을 사용하여 노드를 등록할 때 "하나 이상의 오류가 발생함" 오류 발생

문제

Register-AzAutomationDSCNode 또는 Register-AzureRMAutomationDSCNode를 사용하여 노드를 등록하면 다음과 같은 오류가 표시됩니다.

One or more errors occurred.

원인

이 오류는 Automation 계정에서 사용하는 것과 다른 구독에서 노드를 등록하려고 할 때 발생합니다.

해결

별도의 클라우드 또는 온-프레미스에 대해 정의된 것처럼 구독 간 노드를 처리합니다. 컴퓨터를 사용하도록 설정하는 다음 옵션 중 하나를 사용하여 노드를 등록합니다.

시나리오: "프로비저닝 실패" 오류 메시지

문제

노드를 등록하면 다음과 같은 오류가 표시됩니다.

Provisioning has failed

원인

이 메시지는 노드와 Azure 간의 연결에 문제가 있을 때 발생합니다.

해결

노드가 VPN(가상 사설망)에 있는지 또는 Azure에 연결 시 발생하는 다른 문제가 있는지 확인합니다. 기능 배포 문제 해결을 참조하세요.

시나리오: Linux에서 구성을 적용할 때 일반 오류로 인해 실패

문제

Linux에서 구성을 적용할 때 오류가 발생합니다.

This event indicates that failure happens when LCM is processing the configuration. ErrorId is 1. ErrorDetail is The SendConfigurationApply function did not succeed.. ResourceId is [resource]name and SourceInfo is ::nnn::n::resource. ErrorMessage is A general error occurred, not covered by a more specific error code..

원인

/tmp 위치가 noexec로 설정되어 있으면 현재 버전의 DSC에서 구성을 적용하지 못합니다.

해결

/tmp 위치에서 noexec 옵션을 제거합니다.

시나리오: 노드 구성 이름이 겹치면 오류가 발생할 수 있음

문제

단일 구성 스크립트를 사용하여 여러 노드 구성을 생성하고 일부 노드 구성 이름이 다른 이름의 하위 집합인 경우 컴파일 서비스에서 잘못된 구성을 할당할 수 있습니다. 이 문제는 단일 스크립트를 사용하여 노드당 구성 데이터가 있는 구성을 생성하는 경우에만 발생하며, 문자열의 시작 부분에서 이름이 겹치는 경우에만 발생합니다. 예를 들어 cmdlet을 사용하여 해시 테이블로 전달된 노드 데이터를 기반으로 구성을 생성하는 데 사용되는 단일 구성 스크립트가 있으며 노드 데이터에 server1server라는 이름의 서버가 포함되는 경우입니다.

원인

컴파일 서비스의 알려진 문제입니다.

해결

가장 좋은 해결 방법은 로컬로 또는 CI/CD 파이프라인에서 컴파일하고 노드 구성 MOF 파일을 서비스에 직접 업로드하는 것입니다. 서비스의 컴파일이 요구 사항인 경우 다음으로 가장 좋은 해결 방법은 이름이 겹치지 않도록 컴파일 작업을 분할하는 것입니다.

시나리오: DSC 구성 업로드 시 게이트웨이 시간 초과 오류

문제

DSC 구성을 업로드할 때 GatewayTimeout 오류가 표시됩니다.

원인

컴파일하는 데 시간이 오래 걸리는 DSC 구성으로 인해 이 오류가 발생할 수 있습니다.

해결

Import-DSCResource 호출에 ModuleName 매개 변수를 명시적으로 포함하여 DSC 구성을 더 빠르게 구문 분석할 수 있습니다.

시나리오: 머신을 온보딩하는 동안 오류 발생

문제

머신을 온보딩할 때 agent has a problem 오류가 발생합니다.

원인

이것은 알려진 문제입니다. 노드가 보류 중인 상태로 유지되므로 동일한 구성을 다시 할당할 수 없습니다.

해결

해결 방법은 다른 테스트 구성을 적용하고 원래 구성을 다시 적용하는 것입니다.

다음 단계

여기에 문제가 표시되지 않거나 문제를 해결할 수 없는 경우 다음 채널 중 하나를 통해 추가 지원을 받으세요.

  • Azure 포럼을 통해 Azure 전문가로부터 답변을 얻습니다.
  • 고객 환경을 개선하기 위한 공식 Microsoft Azure 계정인 @AzureSupport와 연결합니다. Azure 지원은 Azure 커뮤니티를 답변, 지원 및 전문가에게 연결합니다.
  • Azure 지원 인시던트 제출 Azure 지원 사이트로 이동하여 지원 받기를 선택합니다.