管理客户机政策(旧版)


创建访客政策后,您可以按照以下步骤查看和管理您的政策:

由于 OS Config 代理每 10-15 分钟运行一次,因此当您设置政策更新或删除时,大约需要 10-15 分钟才能生效。

您可以使用 Google Cloud CLIREST 来管理访客政策。

准备工作

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

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

    gcloud

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

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

    REST

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

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

      gcloud init

更新访客政策

如需更新访客政策,请完成以下步骤:

  1. 更新 YAML 或 JSON 文件。
  2. 运行 update 或 patch 命令。更新过程与创建过程类似,只是增加了对用于并发性和一致性控制的 ETag 的支持。

gcloud

使用 os-config guest-policies update 命令更新访客政策。

gcloud beta compute os-config guest-policies update POLICY_ID \
     --file=FILE

替换以下内容:

  • POLICY_ID:您要更新的访客政策的名称。
  • FILE:包含更新后的访客政策规范的 JSON 或 YAML 文件。

REST

在 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

REST

在 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

REST

在 API 中,创建对 projects.guestPolicies.list 方法的 GET 请求。将 PROJECT_ID 替换为您的项目 ID。

GET https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies

删除访客政策

当 OS Config 代理检测到触发了对某访客政策的删除操作时,系统会保持当前状态,但不会对配置进行进一步维护。例如,假设您设置了访客政策 package-update-zone2b,以在可用区 us-west2-b 中的所有虚拟机上安装软件包 my-package,并保留软件包 UPDATED

如果您删除 package-update-zone2b 政策,则会发生以下更改:

  • us-west2-b 中所有安装了 my-package 的虚拟机会保留 my-package 的安装状态。但当前系统状态不会还原。
  • 删除政策后,在以后运行 OS Config 代理时,将发生以下情况:

    • 如果向 us-west2-b 添加了新虚拟机,则 my-package 不会安装到这个新虚拟机上。
    • 对于安装了 my-package 的实例,该软件包不会更新。

gcloud

如需删除访客政策,请使用 os-config guest-policies delete 命令。将 POLICY_ID 替换为您要删除的访客政策的名称。

gcloud beta compute os-config guest-policies delete POLICY_ID

REST

在 API 中,创建对 projects.guestPolicies.delete 方法的 DELETE 请求。

DELETE https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies/POLICY_ID

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • POLICY_ID:您的访客政策的名称。

查看虚拟机实例的配置

gcloud

如需查看应用于单个虚拟机实例的政策,请使用 os-config guest-policies lookup 命令。

gcloud beta compute os-config guest-policies lookup VM_NAME \
    --zone=ZONE

替换以下内容:

  • VM_NAME:虚拟机实例的名称。
  • ZONE:虚拟机实例的可用区

REST

如需查看应用于单个虚拟机实例的政策,请使用以下 POST 请求。

POST https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:lookupEffectiveGuestPolicy

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • ZONE:虚拟机实例的可用区
  • VM_NAME:虚拟机实例的名称。

问题排查

检查访客政策

您可以使用 Google Cloud 控制台或 Google Cloud CLI 来检查与项目关联的客机政策。

控制台

  1. 在 Google Cloud 控制台中,转到操作系统访客政策页面。

    转到“操作系统访客政策”页面

  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
    

检查特定虚拟机的访客政策

您可以针对给定虚拟机运行 lookup 命令,以查看哪些配置应用于该虚拟机。

如果虚拟机似乎未遵循预期的访客政策要求,请检查其分配包含该特定虚拟机实例的访客政策列表。这有助于确定访客政策中的 Assignment 字段是否与该特定虚拟机匹配。

使用 os-config guest-policies lookup 命令列出可能针对某个特定虚拟机的访客政策。将 VM_NAME 替换为要检查的虚拟机的名称。

gcloud beta compute os-config guest-policies lookup VM_NAME

如需了解详情,请参阅查看虚拟机实例的配置

该命令的输出可能会显示访客政策的虚拟机分配属性实际未针对该虚拟机。例如,它可能未列在 Labels 列表或虚拟机名称前缀列表中。

从故障中恢复

系统不会重新尝试安装已安装失败的软件配方。这是因为系统不知道安装失败的软件配方所处的状态。

当调试安装失败的软件配方时,我们建议执行以下步骤:

  1. 重命名软件配方。
  2. 使用重命名的软件配方删除并重新创建客机政策。

如需了解更多问题排查步骤,请参阅虚拟机管理器问题排查

后续步骤