Share via


컴퓨터 구성 패키지 아티팩트를 테스트하는 방법

PowerShell 모듈 GuestConfiguration에는 Azure 외부에서 구성 패키지 테스트를 자동화하는 도구가 포함되어 있습니다. 이러한 도구를 사용하여 Azure 또는 Arc 연결 환경에서 테스트를 진행하기 전에 문제를 찾고 빠르게 반복합니다.

테스트를 시작하기 전에 작성 환경을 설정하고 사용자 지정 컴퓨터 구성 패키지 아티팩트를 만들어야 합니다.

Important

환경의 상태를 감사하고 구성을 적용하는 사용자 지정 패키지는 GA(일반 공급) 지원 상태입니다. 그러나 다음 제한 사항이 적용됩니다.

구성을 적용하는 컴퓨터 구성 패키지를 사용하려면 Azure VM 게스트 구성 확장 버전 1.26.24 이상 또는 Arc 에이전트 1.10.0 이상이 필요합니다.

GuestConfiguration 모듈은 Ubuntu 18 이상에서만 사용할 수 있습니다. 그러나 모듈에서 생성된 패키지 및 정책은 Azure 또는 Arc에서 지원되는 모든 Linux Distro/버전에서 사용할 수 있습니다.

macOS에서 패키지를 테스트할 수 없습니다.

워크스테이션 또는 CI/CD 환경(연속 통합 및 지속적인 배포)에서 패키지를 테스트할 수 있습니다. GuestConfiguration 모듈에는 Azure 또는 Arc 지원 컴퓨터 내에서 사용되는 것과 동일한 개발 환경용 에이전트가 포함되어 있습니다. 에이전트에는 Windows용 PowerShell 7.1.3 및 Linux용 7.2.0-preview.7의 독립 실행형 인스턴스가 포함되어 있습니다. 독립 실행형 인스턴스는 패키지가 테스트되는 스크립트 환경이 컴퓨터 구성을 사용하여 관리하는 컴퓨터와 일치하는지 확인합니다.

Azure 및 Arc 지원 컴퓨터의 에이전트 서비스는 Windows에서는 LocalSystem 계정으로, Linux에서는 루트로 실행됩니다. 최상의 결과를 얻으려면 권한 있는 보안 컨텍스트에서 이 문서의 명령을 실행합니다.

Windows에서 PowerShell을 LocalSystem으로 실행하려면 SysInternals 도구 PSExec을 사용합니다.

Linux에서 루트로 PowerShell을 실행하려면 sudo 명령을 사용합니다.

구성 패키지가 요구 사항을 충족하는지 확인

우선 Get-GuestConfigurationPackageComplianceStatus를 사용하여 구성 패키지가 기본 요구 사항을 충족하는지 테스트합니다. 명령은 다음 패키지 요구 사항을 확인합니다.

  • MOF는 올바른 위치에 있으며 유효합니다.
  • 필요한 모듈/종속성은 중복 없이 올바른 버전으로 존재합니다.
  • 패키지가 서명되었는지 확인(선택 사항)
  • TestGet이 규정 준수 상태 정보를 반환하는지 테스트합니다.

Get-GuestConfigurationPackageComplianceStatus cmdlet의 매개 변수는 다음과 같습니다.

  • 경로: 컴퓨터 구성 패키지의 파일 경로 또는 URI입니다.
  • 매개 변수: 해시 테이블로 제공되는 정책 매개 변수입니다.

이 명령을 처음 실행하는 경우 컴퓨터 구성 에이전트는 Windows의 C:\ProgramData\GuestConfig\bin 및 Linux의 /var/lib/GuestConfig/bin 경로에 있는 테스트 컴퓨터에 설치됩니다. 이 경로는 사용자 계정에서 액세스할 수 없으므로 명령에 권한 상승이 필요합니다.

다음 명령을 실행하여 패키지를 테스트합니다.

Windows의 경우 권한 상승된 PowerShell 7 세션에서 실행합니다.

# Get the current compliance results for the local machine
Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip

Linux의 경우 sudo를 통해 PowerShell을 실행하여 실행합니다.

# Get the current compliance results for the local machine
sudo pwsh -command 'Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip'

명령은 리소스별로 규정 준수 상태 및 세부 정보를 포함하는 개체를 출력합니다.

  complianceStatus  resources
  ----------------  ---------
  True              @{BuiltInAccount=localSystem; ConfigurationName=MyConfig; …

구성 패키지가 구성을 적용하는지 테스트

마지막으로 구성 패키지 모드가 AuditandSet인 경우 Start-GuestConfigurationPackageRemediation 명령을 사용하여 Set 메서드를 통해 로컬 머신에 설정을 적용할 수 있는지 테스트할 수 있습니다.

Important

이 명령은 실행되는 로컬 환경에서 변경 내용을 만들려고 시도합니다.

Start-GuestConfigurationPackageRemediation cmdlet의 매개 변수는 다음과 같습니다.

  • 경로: 컴퓨터 구성 패키지의 전체 경로입니다.

Windows의 경우 권한 상승된 PowerShell 7 세션에서 실행합니다.

# Test applying the configuration to local machine
Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip

Linux의 경우 sudo를 통해 PowerShell을 실행하여 실행합니다.

# Test applying the configuration to local machine
sudo pwsh -command 'Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip'

이 명령은 오류가 발생한 경우에만 출력을 반환합니다. Set 중에 발생하는 이벤트에 대한 세부 정보 문제를 해결하려면 -verbose 매개 변수를 사용합니다.

Start-GuestConfigurationPackageRemediation 명령을 실행한 후에는 다시 Get-GuestConfigurationComplianceStatus 명령을 실행하여 이제 머신이 올바른 상태에 있음을 확인합니다.

다음 단계