게스트 정책 관리

게스트 정책을 만든 후 다음 절차에 따라 정책을 검토하고 관리할 수 있습니다.

OS 구성 에이전트는 10~15분마다 실행되므로 정책 업데이트 또는 삭제를 설정하면 적용하는 데 약 10~15분이 소요됩니다.

gcloud 명령줄 도구 또는 Cloud OS Config API를 사용하여 게스트 정책을 관리할 수 있습니다.

gcloud 명령줄 도구 및 Cloud OS Config API에서 게스트 정책의 이름을 policy-id라고 합니다.

시작하기 전에

게스트 정책 업데이트

게스트 정책을 업데이트하려면 다음 단계를 완료하세요.

  1. YAML 또는 JSON 파일을 업데이트합니다.
  2. update 또는 patch 명령을 실행합니다. update 프로세스는 동시성 및 일관성 제어를 허용하는 etag에 대한 지원이 추가된 create 프로세스와 유사합니다.

gcloud

os-config guest-policies update 명령어를 사용하여 게스트 정책을 업데이트합니다.

gcloud beta compute os-config guest-policies update policy-id \
     --file=file

다음을 바꿉니다.

  • policy-id: 업데이트할 게스트 정책의 이름입니다.
  • file: 업데이트된 게스트 정책 사양이 포함된 JSON 또는 YAML 파일입니다.

API

API에서 projects.guestPolicies.patch 메서드에 대한 PATCH 요청을 만듭니다.

PATCH https://osconfig.googleapis.com/v1beta/projects/project-id/guestPolicies/policy-id

{
  For more information, see Guest policy JSON
}

다음을 바꿉니다.

  • project-id: 프로젝트 ID입니다.
  • policy-id: 게스트 정책의 이름입니다.

게스트 정책 설명

gcloud

게스트 정책에 대한 세부정보를 보려면 os-config guest-policies describe 명령어를 실행합니다. policy-id를 설명하려는 게스트 정책의 이름으로 바꿉니다.

gcloud beta compute os-config guest-policies describe policy-id

API

API에서 projects.guestPolicies.get 메서드에 대한 GET 요청을 만듭니다.

GET https://osconfig.googleapis.com/v1beta/projects/project-id/guestPolicies/policy-id

다음을 바꿉니다.

  • project-id: 프로젝트 ID입니다.
  • policy-id: 게스트 정책의 이름입니다.

게스트 정책 나열

gcloud

프로젝트의 게스트 정책 목록을 보려면 os-config guest-policies list 명령어를 실행합니다.

gcloud beta compute os-config guest-policies list

API

API에서 projects.guestPolicies.list 메서드에 대한 GET 요청을 만듭니다. project-id를 프로젝트 ID로 바꿉니다.

GET https://osconfig.googleapis.com/v1beta/projects/project-id/guestPolicies

게스트 정책 삭제

OS Config 에이전트가 게스트 정책 삭제가 트리거된 것을 감지하면 시스템의 현재 상태는 유지되지만 해당 구성에 대한 추가 유지보수는 수행되지 않습니다. 예를 들어 게스트 정책이 있다고 가정하면 package-update- zone2bus- west2-b 영역의 모든 VM에서 my-package 패키지를 설치하고 UPDATED 패키지는 보관하도록 설정합니다.

package-update-zone2b 정책을 삭제하면 다음과 같은 변경사항이 적용됩니다.

  • my-package가 설치된 us-west2-b의 모든 VM은 my-package 설치를 유지합니다. 현재 시스템 상태는 되돌릴 수 없습니다.
  • OS 구성 에이전트의 이후 모든 실행에서 정책이 삭제되면 다음이 수행됩니다.

    • 새 VM이 us-west2-b에 추가되면 이 새 VM에 my-package가 설치되지 않습니다.
    • my-package가 설치된 인스턴스의 경우 패키지가 업데이트되지 않습니다.

gcloud

게스트 정책을 삭제하려면 os-config guest-policies delete 명령어를 사용합니다. policy-id를 삭제하려는 게스트 정책의 이름으로 바꿉니다.

gcloud beta compute os-config guest-policies delete policy-id

API

API에서 projects.guestPolicies.delete 메서드에 대한 DELETE 요청을 만듭니다.

DELETE https://osconfig.googleapis.com/v1beta/projects/project-id/guestPolicies/policy-id

다음을 바꿉니다.

  • project-id: 프로젝트 ID입니다.
  • policy-id: 게스트 정책의 이름입니다.

VM 인스턴스의 구성 보기

gcloud

단일 VM 인스턴스에 적용되는 정책을 확인하려면 os-config guest-policies lookup 명령어를 실행합니다.

gcloud beta compute os-config guest-policies lookup instance-name \
    --zone=zone

다음을 바꿉니다.

  • instance-name: 인스턴스 이름.
  • zone: 인스턴스의 영역입니다.

API

단일 VM 인스턴스에 적용되는 정책을 보려면 다음 POST 요청을 사용합니다.

POST https://osconfig.googleapis.com/v1beta/projects/project-id/zones/zone/instances/instance-name:lookupEffectiveGuestPolicy

다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • zone: 인스턴스의 영역입니다.
  • instance-name: 인스턴스의 이름입니다.

게스트 정책 디버깅

VM 인스턴스 또는 프로젝트에서 메타데이터 osconfig-log-level=debug를 설정하여 디버그 로깅을 사용 설정할 수 있습니다. 인스턴스의 Cloud Logging 또는 직렬 포트(콘솔) 로그를 검토할 수 있습니다. OS Config 에이전트는 로그 항목을 두 위치에 작성합니다.

Cloud Logging 검사

Cloud Logging을 사용 설정하면 OS 구성 에이전트가 로그에 메시지를 게시합니다. 이러한 로그 항목은 다음과 같은 OS Config 에이전트의 정보를 추적합니다.

  • VM에 설치된 OS 구성 에이전트 버전
  • 이 VM에 적용 가능한 모든 게스트 정책에 대한 OS Config API 폴링
  • 이 VM 인스턴스에 적용 가능한 모든 게스트 정책 수신
  • 게스트 정책 단계 실행
  • 프로세스 도중 발생한 오류

Cloud Console 또는 gcloud 명령줄 도구를 사용하여 특정 VM 인스턴스에 해당하는 Cloud Logging 로그를 검사할 수 있습니다.

Console

  1. Cloud Console의 Logging > 로그(로그 뷰어) 페이지로 이동합니다.

    로그 뷰어 페이지로 이동

  2. 페이지 상단에서 기존 Google Cloud 프로젝트를 선택하거나 새 프로젝트를 만듭니다.

  3. 드롭다운 메뉴를 사용하여 GCE VM 인스턴스를 선택합니다.

  4. 보려는 VM을 클릭합니다.

  5. 모든 로그 드롭다운 메뉴에서 OSConfigAgent를 선택합니다.

  6. 최신 로그 로드를 클릭합니다.

gcloud

gcloud logging read 명령어를 사용하여 다음 조건을 충족하는 로그 메시지를 검사합니다.

  • OS Config 에이전트가 게시한 메시지
  • VM 인스턴스에서 발생한 메시지
  • 오류가 포함된 메일
gcloud logging read "resource.type=gce_instance AND logName=projects/${DEVSHELL_PROJECT_ID}/logs/OSConfigAgent AND severity=ERROR"

자세한 내용은 Cloud Logging 로그 보기를 참조하세요.

게스트 정책 검사

Cloud Console 또는 gcloud 명령줄 도구를 사용하여 프로젝트와 관련된 게스트 정책을 검사할 수 있습니다.

Console

  1. Google Cloud Console에서 OS 게스트 정책 페이지로 이동합니다.

    OS 게스트 정책 페이지로 이동

  2. 검사할 게스트 정책을 선택한 다음 세부정보 보기를 클릭합니다.

gcloud

  1. os-config guest-policies list 명령어를 사용하여 모든 게스트 정책을 나열합니다.

    gcloud beta compute os-config guest-policies list
    
  2. 게스트 정책 목록에서 검사할 게스트 정책의 ID를 복사한 후 다음 명령어를 실행하여 각 게스트 정책을 검사합니다. POLICY_ID를 검토할 정책 ID로 바꿉니다.

    gcloud beta compute os-config guest-policies describe POLICY_ID
    

특정 VM 인스턴스의 게스트 정책 검사

특정 인스턴스에 대해 lookup 명령어를 실행하여 이 VM 인스턴스에 적용되는 구성을 확인할 수도 있습니다.

VM 인스턴트에 예상 게스트 정책의 요구사항이 적용되지 않은 것처럼 보이면 특정 VM 인스턴스가 포함된 할당의 게스트 정책 목록을 검사하는 것이 좋습니다. 이렇게 하면 게스트 정책의 Assignment 필드가 이 특정한 VM과 일치하는지 확인할 수 있습니다.

os-config guest-policies lookup 명령어를 사용하여 특정 VM을 타겟팅할 수 있는 게스트 정책을 나열합니다. VM_NAME을 검사할 VM의 이름으로 바꿉니다.

gcloud beta compute os-config guest-policies lookup VM_NAME

자세한 내용은 VM 인스턴스의 구성 보기를 참조하세요.

명령어의 출력에서 VM이 게스트 정책의 VM 할당 속성에 실제로 타겟팅되지 않았음을 확인할 수 있습니다. 예를 들어 Labels 목록 또는 VM 이름 프리픽스 목록에 나열되지 않을 수 있습니다.

오류에서 복구

실패한 소프트웨어 레시피 설치는 재시도되지 않습니다. 이는 시스템이 실패한 소프트웨어 레시피의 상태를 알지 못하기 때문입니다. 실패한 소프트웨어 레시피를 디버깅할 때는 VM 인스턴스를 삭제하고 다시 만드는 것이 좋습니다.

다음 단계