패치 작업 관리


패치 작업을 만든 후 다음 절차에 따라 패치를 검토하고 관리할 수 있습니다.

Google Cloud 콘솔, Google Cloud CLI 또는 REST를 사용하여 패치 작업을 관리할 수 있습니다.

시작하기 전에

  • OS 구성 할당량을 검토합니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init

권한

프로젝트의 소유자는 패치 작업을 실행하고 관리할 수 있는 전체 액세스 권한을 갖습니다. 다른 모든 사용자에게는 권한 부여가 필요합니다. 다음 세분화된 역할 중 하나를 부여할 수 있습니다.

  • roles/osconfig.patchJobExecutor: 패치 작업을 실행하고 취소하고 가져오고 나열할 수 있는 권한이 포함됩니다. 또한 패치 작업의 인스턴스 세부정보를 볼 수 있는 권한도 포함됩니다.
  • roles/osconfig.patchJobViewer: 패치 작업을 가져오고 나열할 수 있는 읽기 전용 액세스 권한이 포함됩니다. 또한 패치 작업의 인스턴스 세부정보를 볼 수 있는 권한도 포함됩니다.

패치 작업 나열

활성 및 완료된 모든 작업 목록을 봅니다.

콘솔

  1. Google Cloud 콘솔에서 Compute Engine > VM Manager > 패치 페이지로 이동합니다.

    패치 페이지로 이동

  2. 패치 작업 탭을 선택합니다.

gcloud

os-config patch-jobs list 명령어를 사용하여 패치 작업을 나열합니다.

gcloud compute os-config patch-jobs list

Google Cloud CLI의 경우 기본 출력은 완료되었거나 활성 상태인 최신 패치 작업 10개를 반환합니다. --limit 플래그를 사용하여 이 설정을 재정의할 수 있습니다.

다음과 유사한 결과가 출력됩니다.

ID                                          NAME    DESCRIPTION               CREATE_TIME               UPDATE_TIME               STATE                  TARGETED_INSTANCES
23b0815e-1c94-4dc6-91b1-30a6da395cb9                                          2019-11-05T20:22:54.150Z  2019-11-06T19:40:08.641Z  COMPLETED_WITH_ERRORS  4
4116ad72-bd57-4e48-94dc-7a577dc707b6                                          2019-08-23T20:36:03.068Z  2019-08-23T20:36:15.984Z  CANCELED               2
06856cbe-9a7b-498e-9105-9ae4eb566511                                          2019-08-12T20:27:38.410Z  2019-08-12T20:28:37.583Z  SUCCEEDED              1
04a15964-9eaa-4282-96f5-9cd535352cf6                                          2019-08-12T17:48:22.938Z  2019-08-12T17:48:42.274Z  SUCCEEDED              0
21dc1e06-deee-4e3a-821e-8082a32abde5                testing patch job reboot  2019-07-24T22:45:07.451Z  2019-07-25T00:44:44.459Z  TIMED_OUT              1

더 많은 플래그를 사용하여 검색을 필터링, 정렬하고 형식을 지정할 수 있습니다. 예를 들어 위의 출력을 필터링하여 상태가 SUCCEEDED인 패치 작업의 URI만 생성 시간에 따라 오름차순으로 나열하려면 다음 명령어를 실행합니다.

gcloud compute os-config patch-jobs list \
   --filter="state=SUCCEEDED" \
   --sort-by="create_time" --uri

다음과 유사한 결과가 출력됩니다.

https://osconfig.googleapis.com/v1/projects/1234567/patchJobs/04a15964-9eaa-4282-96f5-9cd535352cf6
https://osconfig.googleapis.com/v1/projects/1234567/patchJobs/06856cbe-9a7b-498e-9105-9ae4eb566511

전체 플래그 목록을 확인하려면 os-config patch-jobs list 명령어를 실행합니다.

REST

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

GET https://osconfig.googleapis.com/v1/projects/project-id/patchJobs

특정 패치 작업의 모든 VM 인스턴스 세부정보 나열

OS 패치 관리를 사용하는 VM 인스턴스의 전체 목록은 패치 작업 상태를 검토하세요.

콘솔

  1. Google Cloud 콘솔에서 Compute Engine > VM Manager > 패치 페이지로 이동합니다.

    패치 페이지로 이동

  2. 패치 작업 탭을 선택합니다.
  3. 검토할 패치 작업의 이름을 클릭합니다.
  4. 업데이트된 VM 인스턴스까지 아래로 스크롤합니다.

gcloud

특정 패치 작업의 모든 VM에 대한 세부정보를 나열하려면 os-config patch-jobs list-instance-details 명령어를 사용합니다. patch-job-id를 패치 작업의 ID로 바꿉니다.

gcloud compute os-config patch-jobs list-instance-details patch-job-id

예를 들어 23b0815e-1c94-4dc6-91b1-30a6da395cb9 패치 작업에 포함된 모든 인스턴스의 세부정보를 보려면 다음 명령어를 실행합니다.

gcloud compute os-config patch-jobs list-instance-details 23b0815e-1c94-4dc6-91b1-30a6da395cb9

다음과 유사한 결과가 출력됩니다.

NAME                        ZONE           STATE      FAILURE_REASON
instance-1                  us-central1-a  SUCCEEDED
guest-policy-test-instance  us-east1-c     TIMED_OUT  Instance timed out while in state: APPLYING_PATCHES after PT1H2.225S
my-centos                   us-west1-b     SUCCEEDED
my-windows                  us-west1-b     FAILED     Error running pre-patch step: fork/exec /tmp/pre_patch_script.sh: no such file ..."

더 많은 플래그를 사용하여 검색을 필터링, 정렬하고 형식을 지정할 수 있습니다. 예를 들어 모든 비활성 VM의 세부정보를 인스턴스 이름을 기준으로 내림차순으로 나열하려면 다음 명령어를 실행합니다. patch-job-id를 패치 작업의 ID로 바꿉니다.

gcloud compute os-config patch-jobs list-instance-details patch-job-id \
   --filter="state=INACTIVE" \
   --sort-by="~name"

전체 플래그 목록을 확인하려면 os-config patch-jobs list-instance-details 명령어를 실행합니다.

REST

API에서 patchJobs.instanceDetails 메서드에 대한 GET 요청을 만듭니다.

GET https://osconfig.googleapis.com/v1/projects/project-id/patchJobs/patch-job-id/instanceDetails

다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • patch-job-id: 패치 작업 ID

패치 작업 설명

패치 작업에 대한 자세한 정보를 검토합니다.

콘솔

  1. Google Cloud 콘솔에서 Compute Engine > VM Manager > 패치 페이지로 이동합니다.

    패치 페이지로 이동

  2. 패치 작업 탭을 선택합니다.
  3. 검토할 패치 작업의 이름을 클릭합니다.
  4. 업데이트 정보 섹션을 검토합니다.

gcloud

os-config patch-jobs describe 명령어를 사용하여 패치 작업을 설명합니다. patch-job-id를 패치 작업의 ID로 바꿉니다.

gcloud compute os-config patch-jobs describe patch-job-id

예를 들어 23b0815e-1c94-4dc6-91b1-30a6da395cb9 패치 작업에 대한 정보를 보려면 다음 명령어를 실행합니다.

gcloud compute os-config patch-jobs describe 23b0815e-1c94-4dc6-91b1-30a6da395cb9

다음과 유사한 결과가 출력됩니다.

createTime: '2019-11-05T20:22:54.150Z'
errorMessage: Completed with 2 instance failure(s).
filter: id=*
instanceDetailsSummary:
  instancesFailed: '1'
  instancesSucceeded: '2'
  instancesTimedOut: '1'
instanceFilter: {}
name: projects/1234567/patchJobs/23b0815e-1c94-4dc6-91b1-30a6da395cb9
patchConfig: {}
percentComplete: 100.0
state: COMPLETED_WITH_ERRORS
updateTime: '2019-11-06T19:40:08.641Z'

REST

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

GET https://osconfig.googleapis.com/v1/projects/project-id/patchJobs/patch-job-id

다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • patch-job-id: 패치 작업 ID

패치 작업 취소

패치 작업을 취소하면 OS 구성 에이전트는 현재 수행 중인 하위 작업을 완료하지만 그 이후에는 진행하지 않습니다. 하위 작업은 쉽게 중단할 수 없는 에이전트에 의해 수행되는 작업을 의미합니다.

예를 들어 VM 인스턴스가 재부팅되는 동안 패치 작업이 취소되더라도 재부팅(및 재부팅 후의 잠재적인 자동 패치)은 완료될 때까지 실행되지만 에이전트는 해당 패치 작업에 대한 추가 작업을 시작하지 않습니다.

콘솔

  1. Google Cloud 콘솔에서 Compute Engine > VM Manager > 패치 페이지로 이동합니다.

    패치 페이지로 이동

    1. 패치 작업 탭을 선택합니다.
    2. 취소할 패치 작업의 작업 메뉴를 확장합니다.
    3. 취소를 선택합니다.

gcloud

os-config patch-jobs cancel 명령어를 사용하여 패치 작업을 취소합니다. patch-job-id를 패치 작업의 ID로 바꿉니다.

gcloud compute os-config patch-jobs cancel patch-job-id

REST

API에서 patchJobs.cancel 메서드에 대한 POST 요청을 만듭니다.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs/patch-job-id:cancel

다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • patch-job-id: 패치 작업 ID

다음 단계