管理修补作业

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

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

准备工作

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

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

权限

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

  • 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。

后续步骤