使用虚拟机扩展程序管理器政策管理 Ops Agent

您可以通过更新政策来更改政策管理 Ops Agent 的方式。更新政策时,虚拟机扩展程序管理器通常会在一分钟内将更改发布到所有适用的虚拟机。根据政策的更改方式,系统可能会在新虚拟机上安装 Ops Agent,或从现有虚拟机中卸载 Ops Agent。

准备工作

在开始使用虚拟机扩展程序管理器扩展程序政策之前,请执行以下操作:

  • 授予管理虚拟机扩展程序管理器政策所需的角色。

  • 如果您想使用命令行界面创建和管理扩展程序政策,并且尚未安装 Google Cloud CLI,请安装 gcloud。

    您可以使用Google Cloud 控制台或 Google Cloud CLI (gcloud) 创建和管理可用区级虚拟机扩展政策。您可以使用 gcloud 创建和管理全局虚拟机扩展程序政策。

授予管理虚拟机扩展程序管理器政策所需的角色

如需获得查看、修改和删除虚拟机扩展程序政策所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

这些预定义角色可提供查看、修改和删除虚拟机扩展程序政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

查看、修改和删除虚拟机扩展程序政策需要以下权限:

  • 查看扩展程序政策:compute.vmExtensionPolicies.list
  • 查看扩展程序政策的详细信息:compute.vmExtensionPolicies.get
  • 修改扩展程序政策:compute.vmExtensionPolicies.update
  • 删除扩展程序政策:compute.vmExtensionPolicies.delete

您也可以使用自定义角色或其他预定义角色来获取这些权限。

如需详细了解 Compute Engine 中的 IAM 角色和权限,请参阅 Compute Engine 角色和权限。

修改用于管理 Ops Agent 的扩展程序政策

如需更改政策管理 Ops Agent 的方式,请更新政策。更新政策时,虚拟机扩展程序管理器通常会在一分钟内将更改发布到所有适用的虚拟机。如果您修改了包含标签,则系统可能会在新虚拟机上安装 Ops Agent,或根据虚拟机是否与更新后的标签匹配,从现有虚拟机中卸载 Ops Agent。

以下各部分介绍了如何更改政策以执行以下操作:

更新可用区中所有虚拟机上的 Ops Agent 固定版本

如需更改可用区中所有虚拟机上 Ops Agent 的固定版本,请执行以下操作:

控制台

如需创建可用区级政策,您可以使用 Google Cloud 控制台。

  1. 在 Google Cloud 控制台中,前往扩展程序政策页面:

    前往扩展程序政策

    如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。

  2. 选择要更新的政策。
  3. 点击修改。
  4. 在管理扩展程序部分中,执行以下操作:
    1. 从扩展程序列表中,选择 Google Cloud's Extension for Ops Agent。
    2. 修改版本字段。使用 2.58.0 或更高版本。
    3. 点击完成。
  5. 点击保存。

gcloud

如需创建可用区级或全球级政策,您可以使用 gcloud CLI。

可用区级

使用带有 --version 选项的 gcloud compute zone-vm-extension-policies update 命令修改固定的代理版本。

使用 gcloud 更新政策时,请求会充当完整替换。因此,您在请求中省略的所有可选字段都会还原为默认值,而不是保留修改后的政策中的现有值。

如需通过政策更改可用区中所有虚拟机上安装的 Ops Agent 版本,请使用以下命令:

gcloud compute zone-vm-extension-policies update POLICY_NAME \
  --project=PROJECT_ID \
  --zone=ZONE \
  --extensions=ops-agent 
  --version=ops-agent=VERSION

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。
  • ZONE:目标可用区,例如 us-central1-f。
  • VERSION:要安装的 Ops Agent 版本。 使用 2.58.0 或更高版本。 如需查看版本列表,请参阅 GitHub 上的 Ops Agent 版本页面。

    如果您省略 --version 选项,则政策会安装最新版本,并在新版本发布时更新 Ops Agent,如安装最新版本的示例所示。

全球

使用带有 --version 选项的 gcloud compute global-vm-extension-policies update 命令修改固定的代理版本。

使用 gcloud 更新政策时,请求会充当完整替换。因此,您在请求中省略的所有可选字段都会还原为默认值,而不是保留修改后的政策中的现有值。

如需通过全局政策更改安装在所有虚拟机上的 Ops Agent 版本,请使用以下命令:

gcloud compute global-vm-extension-policies update POLICY_NAME \
  --project=PROJECT_ID \
  --extensions=ops-agent  \
  --rollout-predefined-plan=slow_rollout \
  --version=ops-agent=VERSION

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。
  • VERSION:要安装的 Ops Agent 版本。 使用 2.58.0 或更高版本。 如需查看版本列表,请参阅 GitHub 上的 Ops Agent 版本页面。

    如果您省略 --version 选项,则政策会安装最新版本,并在新版本发布时更新 Ops Agent,如安装最新版本的示例所示。

修改所有虚拟机上的 Ops Agent 配置

如需修改 Ops Agent 的配置,请执行以下操作:

控制台

如需创建可用区级政策,您可以使用 Google Cloud 控制台。

  1. 在 Google Cloud 控制台中,前往扩展程序政策页面:

    前往扩展程序政策

    如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。

  2. 选择要更新的政策。
  3. 点击修改。
  4. 在管理扩展程序部分中,执行以下操作:
    1. 从扩展程序列表中,选择 Google Cloud's Extension for Ops Agent。
    2. 在配置文件内容字段中,输入 Ops Agent 的 YAML 配置字符串。
    3. 点击完成。
  5. 点击保存。

gcloud

如需创建可用区级或全球级政策,您可以使用 gcloud CLI。

可用区级

使用带有 --config-from-file 选项或 --config 选项的 gcloud compute zone-vm-extension-policies update 命令来指定新配置。

使用 gcloud 更新政策时,请求会充当完整替换。因此,您在请求中省略的所有可选字段都会还原为默认值,而不是保留修改后的政策中的现有值。

如需通过政策更改可用区中所有虚拟机上安装的 Ops Agent 的配置,请使用以下命令:

gcloud compute zone-vm-extension-policies update POLICY_NAME \
  --project=PROJECT_ID \
  --zone=ZONE \
  --extensions=ops-agent 
  --config-from-file=ops-agent="OPS_AGENT_CONFIG_PATH"

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。
  • ZONE:目标可用区,例如 us-central1-f。
  • OPS_AGENT_CONFIG_PATH:包含 Ops Agent 的 YAML 配置字符串的文件的路径。此文件必须存在于您运行 gcloud 命令的环境中。

    Ops Agent 的配置 YAML 可能很长。与尝试在命令行中输入格式正确的 YAML 相比,将配置放入文件中并将文件传递给 gcloud CLI 的出错率要低得多。

全球

使用带有 --config-from-file 选项或 --config 选项的 gcloud compute global-vm-extension-policies update 命令来指定新配置。

使用 gcloud 更新政策时,请求会充当完整替换。因此,您在请求中省略的所有可选字段都会还原为默认值,而不是保留修改后的政策中的现有值。

如需通过政策更改安装在所有虚拟机上的 Ops Agent 的配置,请使用以下命令:

gcloud compute global-vm-extension-policies update POLICY_NAME \
  --project=PROJECT_ID \
  --extensions=ops-agent  \
  --rollout-predefined-plan=slow_rollout \
  --config-from-file=ops-agent="OPS_AGENT_CONFIG_PATH"

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。
  • OPS_AGENT_CONFIG_PATH:包含 Ops Agent 的 YAML 配置字符串的文件的路径。此文件必须存在于您运行 gcloud 命令的环境中。

    Ops Agent 的配置 YAML 可能很长。与尝试在命令行中输入格式正确的 YAML 相比,将配置放入文件中并将文件传递给 gcloud CLI 的出错率要低得多。

如果您在创建或更新扩展程序政策时为 Ops Agent 提供自定义配置,则该政策会使用自定义配置部署 Ops Agent。您无需手动重启代理。

配置会与扩展程序政策一起存储,因此请勿在配置中包含密码等敏感数据。由于配置存储在扩展程序政策中,因此修改配置文件不会更改代理的配置。您必须使用相应的 gcloud 命令更新随政策存储的配置:

当您为 Ops Agent 提供自定义配置时,虚拟机扩展程序管理器会将该配置复制到目标虚拟机上 Ops Agent 用于 用户指定配置文件的位置:

  • Linux:/etc/google-cloud-ops-agent/config.yaml
  • Windows:C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml

如果虚拟机上存在 config.yaml 文件,则扩展程序政策会覆盖该文件。

如需了解如何使用Google Cloud 控制台和 gcloud CLI 管理虚拟机扩展程序政策,请参阅通过更新虚拟机扩展程序政策来修改扩展程序。

扩展现有全局政策,以纳入新可用区(仅限全局政策)

在创建并发布全局政策后,如果在新的可用区中创建虚拟机,虚拟机扩展程序管理器不会自动将该政策应用于新可用区中的虚拟机。如需将虚拟机包含在新可用区中,您必须重启全局政策发布。

如需重启全局政策发布,请使用 gcloud compute global-vm-extension-policies update 命令并提供 --rollout-retry-uuid=UUID 选项。

例如,假设您使用以下命令创建并发布了全局政策:

gcloud compute global-vm-extension-policies create POLICY_NAME \
  --project=PROJECT_ID \
  --extensions=ops-agent  \
  --version=ops-agent=2.61.0 \
  --rollout-predefined-plan=slow_rollout \
  --config-from-file=ops-agent="/usr/ops-agent-config.yaml"

如需将政策扩展到在之前未使用的可用区中创建的虚拟机,请使用以下命令重启发布:

gcloud compute global-vm-extension-policies update test-policy POLICY_NAME \
  --project=PROJECT_ID \
  --extensions=ops-agent  \
  --version=ops-agent=2.61.0 \
  --rollout-predefined-plan=slow_rollout \
  --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
  --rollout-retry-uuid=UUID

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。
  • UUID:用于标识重试请求的通用唯一标识符 (UUID)。您可以使用任何 UUID 生成器来创建 UUID。如需了解详情,请参阅 重试发布 。

更新全局政策以排除一组可用区(仅限全局)

如需更新全局政策在Google Cloud 项目中排除的可用区,您必须使用新的自定义发布计划,指定要应用该政策的可用区。如需了解如何创建自定义发布计划,请参阅 发布计划简介。如需指定一组可用区,请在创建发布计划时使用 locationSelector.includedLocations 字段。

如需更新使用自定义发布方案的扩展程序政策,请使用以下 gcloud compute global-vm-extension-policies update 命令:

gcloud compute global-vm-extension-policies update POLICY_NAME \
  --project=PROJECT_ID \
  --extensions=ops-agent  \
  --rollout-custom-plan=projects/PROJECT_ID/locations/global/rolloutPlans/NEW_CUSTOM_PLAN_NAME \
  --rollout-retry-uuid=UUID

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。
  • NEW_CUSTOM_PLAN_NAME:与更新后的自定义发布方案关联的名称。
  • UUID:用于标识重试请求的通用唯一标识符 (UUID)。您可以使用任何 UUID 生成器来创建 UUID。如需了解详情,请参阅 重试发布 。

通过删除虚拟机扩展程序政策来卸载 Ops Agent

如需卸载 Ops Agent,请删除管理该代理的虚拟机扩展程序政策。如果另一项有效的低优先级政策适用于某个虚拟机,并且该政策也管理 Ops Agent,则该代理会根据低优先级政策继续安装在该虚拟机上。

虚拟机扩展程序管理器会在政策删除后一分钟内从所有可访问的虚拟机中移除 Ops Agent。如果虚拟机无法访问,则虚拟机扩展程序管理器会跳过代理的删除操作。如果虚拟机再次可用,虚拟机扩展程序管理器会在此时移除代理。

控制台

  1. 在 Google Cloud 控制台中,前往扩展程序政策页面:

    前往扩展程序政策

    如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。

  2. 选择要删除的政策。
  3. 点击删除。
  4. 在确认对话框中点击删除。

gcloud

可用区级

如需删除管理 Ops Agent 的虚拟机扩展程序政策,请使用 gcloud compute zone-vm-extension-policies delete 命令:

gcloud compute zone-vm-extension-policies delete POLICY_NAME \
  --project=PROJECT_ID \
  --zone=ZONE

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。
  • ZONE:目标可用区,例如 us-central1-f。

全球

如需删除管理 Ops Agent 的全局虚拟机扩展程序政策,请使用 gcloud compute global-vm-extension-policies delete 命令:

gcloud compute global-vm-extension-policies delete POLICY_NAME \
  --project=PROJECT_ID \
  --rollout-predefined-plan=slow_rollout

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。

如需加快已启动的删除发布,请发出使用 fast_rollout 方案的新删除命令。您还必须指定 --rollout-retry-uuid=UUID 选项:

gcloud compute global-vm-extension-policies delete POLICY_NAME \
  --project=PROJECT_ID \
  --rollout-predefined-plan=fast_rollout \
  --rollout-retry-uuid=UUID

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。
  • UUID:用于标识重试请求的通用唯一标识符 (UUID)。您可以使用任何 UUID 生成器来创建 UUID。如需了解详情,请参阅 重试发布 。

检索有关虚拟机扩展程序政策的信息

您可以检索有关现有虚拟机扩展程序政策的以下信息:

  • Google Cloud 项目中的所有政策的列表。
  • 特定政策的配置信息。

控制台

  1. 在 Google Cloud 控制台中,前往扩展程序政策页面:

    前往扩展程序政策

    如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。

    此页面列出了项目中的所有虚拟机扩展程序政策。
  2. 如需查看特定扩展程序政策的详细信息,请点击该政策的名称。

gcloud

可用区级

列出虚拟机扩展程序政策

如需列出可用区中所有虚拟机扩展程序政策的相关信息,请使用 gcloud compute zone-vm-extension-policies list 命令:

gcloud compute zone-vm-extension-policies list \
  --project=PROJECT_ID \
  --zone=ZONE \
  --page-size=PAGE_SIZE_INTEGER

替换命令中的以下变量:

  • PROJECT_ID:项目的标识符。
  • ZONE:目标可用区,例如 us-central1-f。
  • PAGE_SIZE_INTEGER:每页列出的政策数量,例如 2。如需详细了解排序和过滤选项,请参阅 gcloud compute zone-vm-extension-policies list。

描述指定的虚拟机扩展程序政策

如需检索可用区中指定政策的配置,请使用 gcloud compute zone-vm-extension-policies describe 命令:

gcloud compute zone-vm-extension-policies describe POLICY_NAME \
  --project=PROJECT_ID \
  --zone=ZONE

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。
  • ZONE:目标可用区,例如 us-central1-f。

全球

列出全球虚拟机扩展程序政策

如需列出有关全球虚拟机扩展程序政策的信息,请使用 gcloud compute global-vm-extension-policies list 命令:

gcloud compute global-vm-extension-policies list \
  --project=PROJECT_ID \
  --page-size=PAGE_SIZE_INTEGER

替换命令中的以下变量:

描述指定的全球虚拟机扩展程序政策

如需检索可用区中指定政策的配置,请使用 gcloud compute global-vm-extension-policies describe 命令:

gcloud compute global-vm-extension-policies describe POLICY_NAME \
  --project=PROJECT_ID

替换命令中的以下变量:

  • POLICY_NAME:虚拟机扩展程序政策的名称。
  • PROJECT_ID:项目的标识符。

如需了解如何使用Google Cloud 控制台和 gcloud CLI 检索虚拟机扩展程序政策的相关信息,请参阅 查看扩展程序政策。

重启由扩展程序政策安装的 Ops Agent

当 Ops Agent 由虚拟机扩展程序管理器安装和管理时,Ops Agent 不由操作系统的系统管理服务(即 Linux 上的 systemd 或 Windows 上的 Windows 服务管理器)管理。因此,Linux systemctl 命令和 Windows *-Service 命令不适用于通过扩展程序政策安装的 Ops Agent。

如需重启由扩展程序政策安装的 Ops Agent,请执行以下操作之一:

  • 重新创建政策。

    1. 删除政策。删除政策会停止并卸载 Ops Agent。

    2. 创建新政策。新政策会安装 Ops Agent 并启动它。

  • 使用优先级更高的临时政策。如果原始政策影响大量虚拟机,但您只想在少数虚拟机上重启 Ops Agent,请向这些虚拟机添加标签,并将新政策配置为按标签过滤。

    例如,如果优先级为 1000 的政策未能启动虚拟机上的 Ops Agent,您可以向虚拟机添加 status=failed 等标签。然后,创建优先级更高的新政策,例如 500。例如,Google Cloud CLI 命令可能如下所示:

    可用区级

    gcloud compute zone-vm-extension-policies create POLICY_NAME \
      --project=PROJECT_ID \
      --zone=ZONE \
      --extensions=ops-agent  \
      --inclusion-labels=status=failed \
      --priority=500 \
      --config-from-file=ops-agent=/usr/ops-agent-config.yaml
    

    替换命令中的以下变量:

    • POLICY_NAME:虚拟机扩展程序政策的名称。
    • PROJECT_ID:项目的标识符。
    • ZONE:目标可用区,例如 us-central1-f。

    全球

    gcloud compute global-vm-extension-policies create POLICY_NAME \
      --project=PROJECT_ID \
      --extensions=ops-agent  \
      --inclusion-labels=status=failed \
      --priority=500 \
      --config-from-file=ops-agent=/usr/ops-agent-config.yaml \
      --rollout-predefined-plan=fast_rollout
    

    替换命令中的以下变量:

    • POLICY_NAME:虚拟机扩展程序政策的名称。
    • PROJECT_ID:项目的标识符。

    新政策成功安装 Ops Agent 后,请删除该政策并从虚拟机中移除标签。Ops Agent 仍安装在虚拟机上,因为原始政策仍处于有效状态。

在虚拟机上启用客机代理调试日志

虚拟机扩展程序管理器政策使用 Compute Engine 客机代理将 Ops Agent 作为虚拟机扩展程序进行管理。如需了解如何为客机代理启用调试日志记录,请参阅查看客机代理的调试日志。

后续步骤