管理修补作业


创建修补作业后,您可以按照以下步骤查看和管理您的补丁程序:

您可以使用 Google Cloud 控制台Google Cloud CLIREST 管理修补作业。

准备工作

  • 查看 OS Config 配额
  • 设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    选择标签页以了解您打算如何使用本页面上的示例:

    控制台

    当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。

    gcloud

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init
    2. 设置默认区域和可用区

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

      安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init

权限

项目的所有者拥有运行和管理修补作业的完整访问权限。 对于所有其他用户,您需要为其授予权限。您可以授予以下其中一种精细角色:

  • roles/osconfig.patchJobExecutor:包含运行、取消、获取和列出修补作业的权限。该角色还包含查看修补作业对应实例的详情的权限。
  • roles/osconfig.patchJobViewer:包含获取和列出修补作业的只读权限。该角色还包含查看修补作业对应实例的详情的权限。

列出修补作业

查看所有活跃作业和已完成作业的列表。

控制台

  1. 在 Google Cloud 控制台中,转到 Compute Engine > 虚拟机管理器 > 补丁页面。

    转到“补丁”页面

  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

列出特定修补作业的所有虚拟机实例详细信息

查看使用 OS Patch Management 的所有虚拟机实例的修补作业状态。

控制台

  1. 在 Google Cloud 控制台中,转到 Compute Engine > 虚拟机管理器 > 补丁页面。

    转到“补丁”页面

  2. 选择修补作业标签页。
  3. 点击要查看的修补作业的名称。
  4. 向下滚动到已更新的虚拟机实例

gcloud

使用 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 ..."

您可以使用更多标志来对搜索进行过滤和排序以及设置搜索格式。 例如,如需按实例名称降序列出所有非活跃虚拟机的详细信息,请运行以下命令。将 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 > 虚拟机管理器 > 补丁页面。

    转到“补丁”页面

  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 Config 代理会完成其所在的子任务,但此后不会继续执行修补作业。子任务是指由该代理执行且无法轻易停止的任务。

例如,如果在虚拟机实例重新启动期间取消修补作业,则“重新启动”操作(以及重新启动后可能执行的任何自动修补操作)会继续执行到完成为止,但该代理不会为该修补作业启动其他任务。

控制台

  1. 在 Google Cloud 控制台中,转到 Compute Engine > 虚拟机管理器 > 补丁页面。

    转到“补丁”页面

    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。

后续步骤