本页介绍了如何使用虚拟机管理器中的政策编排器功能,在文件夹或组织中的不同项目和可用区中创建、更新或删除操作系统政策资源。
准备工作
- 查看操作系统政策和操作系统政策分配任务。
- 查看 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 在本地客户端上,创建或下载操作系统政策文件。该文件必须是 JSON 或 YAML 文件。如需详细了解如何创建操作系统政策,或者查看示例操作系统政策,请参阅操作系统政策。
在 Google Cloud 控制台中,前往操作系统政策页面。
点击 Google Cloud 控制台操作栏中的项目选择器,然后选择要用于创建政策编排器的文件夹。
点击创建政策编排器。
为政策编排器指定名称和说明。请参阅资源命名惯例。虚拟机管理器会向政策编排器分配唯一的编排器 ID。如有需要,您可以修改此 ID。
在操作系统政策部分中,上传操作系统政策文件。
可选:在状态部分中,选择以下选项之一以指定政策编排器的行为:
ACTIVE
:创建后,政策编排器会立即执行操作。STOPPED
:在此状态下创建的政策编排器不会立即执行任何操作。您稍后可以修改政策编排器以更改其状态。
在操作字段中,选择 UPSERT 操作。
在编排范围部分中,指定要部署操作系统政策的文件夹和项目。您必须仅在此类字段中输入项目编号和文件夹编号,例如
123456,7654321
。选择包含您要应用操作系统政策的虚拟机的可用区。或者,点击全选,将操作系统政策更改应用于所有区域中的资源。
可选:在目标虚拟机实例部分中,指定要将操作系统政策应用到的目标虚拟机。
- 选择操作系统系列。
您可以通过指定包含和排除标签来进一步过滤虚拟机。
例如,您可以在测试环境中选择全部 Ubuntu 虚拟机,并通过指定以下内容来排除运行 Google Kubernetes Engine 的虚拟机:
- 操作系统系列:
ubuntu
- 包含:
env:test
、env:staging
- 排除:
goog-gke-node
- 操作系统系列:
为操作系统政策分配指定发布计划。
- 指定波次规模(也称为中断预算)。例如:10%。
- 指定等待时间。例如 15 分钟。
点击创建。
创建或下载 JSON 或 YAML 格式的操作系统政策分配资源。如需详细了解此文件和示例政策分配任务,请参阅操作系统政策分配任务。
使用
beta os-config policy-orchestrators create
命令在指定范围内创建和发布操作系统政策分配任务。ORCHESTRATOR_NAME
:政策编排器的名称。请参阅资源命名惯例。OS_POLICY_ASSIGNMENT_FILE
:您在上一步中创建的操作系统政策分配文件的绝对路径。POLICY_ID
:政策编排器的唯一 ID。如果您未指定值,政策编排器会为编排器资源分配唯一 ID。QUOTA_PROJECT_ID
:配额项目或结算项目的项目 ID。ORCHESTRATOR_NAME
:政策编排器的名称。请参阅资源命名惯例。FOLDER_NUMBER
:您要创建政策编排器的文件夹的文件夹编号。OS_POLICY_ASSIGNMENT_FILE
:您在上一步中创建的操作系统政策分配文件的绝对路径。POLICY_ID
:政策编排器的唯一 ID。如果您未指定值,政策编排器会为编排器资源分配唯一 ID。PROJECT_NUMBERS
:您要为其应用操作系统政策分配的项目列表。您必须指定项目编号,即项目的唯一数字 ID。QUOTA_PROJECT_ID
:配额项目或结算项目的项目 ID。ORCHESTRATOR_NAME
:政策编排器的名称。请参阅资源命名惯例。FOLDER_NUMBER
:您要创建政策编排器的文件夹的文件夹编号。OS_POLICY_ASSIGNMENT_FILE
:您在上一步中创建的操作系统政策分配文件的绝对路径。POLICY_ID
:政策编排器的唯一 ID。如果您未指定值,政策编排器会为编排器资源分配唯一 ID。PROJECT_NUMBERS
:您要为其应用操作系统政策分配的项目列表。您必须指定项目编号,即项目的唯一数字 ID。创建或下载操作系统政策分配文件。该文件必须是 JSON 文件。如需详细了解如何创建操作系统政策分配任务,或者查看示例操作系统政策分配任务,请参阅操作系统政策分配任务。
根据您要创建政策编排器的范围,使用以下方法之一:
PROJECT_NUMBER
:您要在其中创建政策编排器的项目的数字 ID。JSON_OS_POLICY_ORCHESTRATOR
:政策编排器对象,采用 JSON 格式,用于定义编排器范围、受编排资源和编排状态。如需详细了解参数和格式,请参阅Resource: folders.locations.global.policyOrchestrators
。- 将示例转换为 JSON
发出以下请求:
POST https://osconfig.googleapis.com/v2beta/projects/123456/locations/global/policyOrchestrators { "action": "UPSERT", "orchestratedResource": { "osPolicyAssignmentV1Payload": { "instanceFilter": { "inventories": [ { "osShortName": "windows" } ] }, "osPolicies": [ { "id": "install-msi-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "install-msi", "pkg": { "desiredState": "INSTALLED", "msi": { "source": { "gcs": { "bucket": "my-bucket", "generation": "1619136883923956", "object": "my-app.msi" } } } } } ] } ] } ], "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": "300s" } } }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
QUOTA_PROJECT_ID
:配额项目或结算项目的项目 ID。FOLDER_NUMBER
:您要在其中创建政策编排器的文件夹的数字 ID。JSON_OS_POLICY_ORCHESTRATOR
:政策编排器对象,采用 JSON 格式,用于定义编排器范围、受编排资源和编排状态。如需详细了解参数和格式,请参阅Resource: folders.locations.global.policyOrchestrators
。- 将示例转换为 JSON
发出以下请求:
POST https://osconfig.googleapis.com/v2beta/folders/123456/locations/global/policyOrchestrators \ -H "x-goog-user-project: my-quota-project { "action": "UPSERT", "orchestratedResource": { "osPolicyAssignmentV1Payload": { "instanceFilter": { "inventories": [ { "osShortName": "windows" } ] }, "osPolicies": [ { "id": "install-msi-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "install-msi", "pkg": { "desiredState": "INSTALLED", "msi": { "source": { "gcs": { "bucket": "my-bucket", "generation": "1619136883923956", "object": "my-app.msi" } } } } } ] } ] } ], "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": "300s" } } }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
QUOTA_PROJECT_ID
:配额项目或结算项目的项目 ID。ORGANIZATION_NUMBER
:您要在其中创建政策编排器的组织的数字 ID。JSON_OS_POLICY_ORCHESTRATOR
:政策编排器对象,采用 JSON 格式,用于定义编排器范围、受编排资源和编排状态。如需详细了解参数和格式,请参阅Resource: organizations.locations.global.policyOrchestrators
。- 将示例转换为 JSON
发出以下请求:
POST https://osconfig.googleapis.com/v2beta/organizations/567890/locations/global/policyOrchestrators \ -H "x-goog-user-project: my-quota-project { "action": "UPSERT", "orchestratedResource": { "osPolicyAssignmentV1Payload": { "instanceFilter": { "inventories": [ { "osShortName": "windows" } ] }, "osPolicies": [ { "id": "install-msi-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "install-msi", "pkg": { "desiredState": "INSTALLED", "msi": { "source": { "gcs": { "bucket": "my-bucket", "generation": "1619136883923956", "object": "my-app.msi" } } } } } ] } ] } ], "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": "300s" } } }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
- 在本地客户端上,创建或下载操作系统政策文件。该文件必须是 JSON 或 YAML 文件。如需详细了解如何创建操作系统政策,或者查看示例操作系统政策,请参阅操作系统政策。
在 Google Cloud 控制台中,前往操作系统政策页面。
点击 Google Cloud 控制台操作栏中的项目选择器,然后选择要用于创建政策编排器的文件夹。
点击创建政策编排器。
为政策编排器指定名称和说明。请参阅资源命名惯例。虚拟机管理器会向政策编排器分配唯一的编排器 ID。如有需要,您可以修改此 ID。
在操作系统政策部分中,选择并上传操作系统政策文件。
可选:在状态部分中,选择以下选项之一以指定政策编排器的行为:
ACTIVE
:创建后,政策编排器会立即执行操作。STOPPED
:在此状态下创建的政策编排器不会立即执行任何操作。您稍后可以修改政策编排器以更改其状态。
在操作字段中,选择删除操作。
在编排范围部分中,指定要部署操作系统政策的文件夹和项目。您必须仅在此类字段中输入项目编号和文件夹编号,例如
123456,7654321
。选择包含您要应用操作系统政策的虚拟机的可用区。
可选:在目标虚拟机实例部分中,指定要将操作系统政策应用到的目标虚拟机。
- 选择操作系统系列。
您可以通过指定包含和排除标签来进一步过滤虚拟机。
例如,您可以在测试环境中选择全部 Ubuntu 虚拟机,并通过指定以下内容来排除运行 Google Kubernetes Engine 的虚拟机:
- 操作系统系列:
ubuntu
- 包含:
env:test
、env:staging
- 排除:
goog-gke-node
- 操作系统系列:
为操作系统政策分配指定发布计划。
- 指定波次规模(也称为中断预算)。例如:10%。
- 指定等待时间。例如 15 分钟。
点击创建。
FOLDER_NUMBER
:您要从中删除操作系统政策资源的文件夹的数字 ID。POLICY_ID
:操作系统政策编排器资源的政策 ID。QUOTA_PROJECT_ID
:配额项目或结算项目的项目 ID。FOLDER_NUMBER
:您要从中删除操作系统政策资源的文件夹的数字 ID。POLICY_ID
:操作系统政策编排器资源的政策 ID。QUOTA_PROJECT_ID
:配额项目或结算项目的项目 ID。ORGANIZATION_NUMBER
:您要从中删除操作系统政策资源的组织的数字 ID。POLICY_ID
:操作系统政策编排器资源的政策 ID。PROJECT_NUMBER
:您要在其中创建政策编排器的项目的数字 ID。JSON_OS_POLICY_ORCHESTRATOR
:政策编排器对象,采用 JSON 格式,用于定义编排器范围、受编排资源和编排状态。如需详细了解参数和格式,请参阅Resource: folders.locations.global.policyOrchestrators
。QUOTA_PROJECT_ID
:配额项目或结算项目的项目 ID。FOLDER_NUMBER
:您要从中删除操作系统政策资源的文件夹的数字 ID。JSON_OS_POLICY_ORCHESTRATOR
:JSON 格式的政策编排器对象,用于定义政策 ID、编排器范围、受编排资源和编排状态。如需详细了解参数和格式,请参阅Resource: folders.locations.global.policyOrchestrators
。QUOTA_PROJECT_ID
:配额项目或结算项目的项目 ID。ORGANIZATION_NUMBER
:您要从中删除操作系统政策资源的组织的数字 ID。JSON_OS_POLICY_ORCHESTRATOR
:JSON 格式的政策编排器对象,用于定义政策 ID、编排器范围、受编排资源和编排状态。如需详细了解参数和格式,请参阅Resource: organizations.locations.global.policyOrchestrators
。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
跨项目和可用区创建或更新操作系统政策分配
您可以创建政策编排器,以便将操作系统政策应用于项目、文件夹或组织中的选定资源。
控制台
如需创建政策编排器并在文件夹中应用操作系统政策分配,请执行以下操作:
gcloud
如需创建政策编排器,请完成以下步骤:
项目
gcloud beta compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID \
替换以下内容:
示例
gcloud beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --policy-type=os_policy_assignment_v1 \ --policy-file=/downloads/assignment-config.yaml \ --policy-id=policy-123 \
文件夹
gcloud --billing-project=QUOTA_PROJECT_ID beta compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --folder=FOLDER_NUMBER \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID \ --include-projects=PROJECT_NUMBERS
替换以下内容:
示例
gcloud --billing-project=my-quota-project beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --folder=123456 \ --policy-type=os_policy_assignment_v1 \ --policy-file=/downloads/assignment-config.yaml \ --policy-id=policy-123 \ --include-projects=87654321,4567890
组织
gcloud --billing-project=QUOTA_PROJECT_ID beta compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --organization=ORGANIZATION_NUMBER \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID \ --include-projects=PROJECT_NUMBERS
替换以下内容:
示例
gcloud --billing-project=my-quota-project beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --organization=123456 \ --policy-type=os_policy_assignment_v1 \ --policy-file=/downloads/assignment-config.yaml \ --policy-id=policy-123 \ --include-projects=87654321,4567890
REST
如需创建政策编排器,请完成以下步骤:
项目
向
projects.locations.global.policyOrchestrators.create
方法发送POST
请求。在请求正文中,粘贴上一步中的操作系统政策分配任务规范。
POST https://osconfig.googleapis.com/v2beta/projects/PROJECT_NUMBER/locations/global/policyOrchestrators { JSON_OS_POLICY_ORCHESTRATOR }
替换以下内容:
示例
例如,如需使用示例操作系统政策分配任务创建操作系统政策分配任务,以安装从 Cloud Storage 存储桶下载的 Windows MSI,请完成以下步骤:
文件夹
向
folders.locations.global.policyOrchestrators.create
方法发送POST
请求。在请求正文中,粘贴上一步中的操作系统政策分配任务规范。
POST https://osconfig.googleapis.com/v2beta/folders/FOLDER_NUMBER/locations/global/policyOrchestrators -H "x-goog-user-project: QUOTA_PROJECT_ID" { JSON_OS_POLICY_ORCHESTRATOR }
替换以下内容:
示例
例如,如需使用示例操作系统政策分配任务创建操作系统政策分配任务,以安装从 Cloud Storage 存储桶下载的 Windows MSI,请完成以下步骤:
组织
向
organizations.locations.global.policyOrchestrators.create
方法发送POST
请求。在请求正文中,粘贴上一步中的操作系统政策分配任务规范。
POST https://osconfig.googleapis.com/v2beta/organizations/ORGANIZATION_NUMBER/locations/global/policyOrchestrators \ -H "x-goog-user-project: QUOTA_PROJECT_ID" { JSON_OS_POLICY_ORCHESTRATOR }
替换以下内容:
示例
例如,如需使用示例操作系统政策分配任务创建操作系统政策分配任务,以安装从 Cloud Storage 存储桶下载的 Windows MSI,请完成以下步骤:
从多个项目中删除操作系统政策分配
您可以使用政策编排器,通过为操作系统政策资源指定唯一的政策 ID,从文件夹或组织中的多个项目中删除操作系统政策。
控制台
如需删除文件夹中的操作系统政策,请执行以下操作:
gcloud
如需使用政策编排器从多个项目中删除操作系统政策,请使用
beta os-config policy-orchestrators create
命令,并为与操作系统政策分配关联的policy-id
指定操作为delete
。项目
gcloud beta compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID \ --action=delete
替换以下内容:
示例
gcloud beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --policy-type=os_policy_assignment_v1 --policy-id=my-policy \ --action=delete
文件夹
gcloud --billing-project=QUOTA_PROJECT_ID beta compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --policy-type=os_policy_assignment_v1 \ --policy-id=POLICY_ID \ --action=delete
替换以下内容:
示例
gcloud --billing-project=my-quota-project beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --folder=123456 \ --policy-type=os_policy_assignment_v1 \ --policy-id=my-policy \ --action=delete
组织
gcloud --billing-project=QUOTA_PROJECT_ID beta compute os-config policy-orchestrators create ORCHESTRATOR_NAME \ --organization=ORGANIZATION_NUMBER \ --policy-type=os_policy_assignment_v1 \ --policy-id=POLICY_ID \ --action=delete
替换以下内容:
示例
gcloud --billing-project=my-quota-project beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --organization=987654321 --policy-type=os_policy_assignment_v1 --policy-id=my-policy \ --action=delete
REST
如需创建用于从多个项目中删除操作系统政策的政策编排器,请使用以下方法之一,并将操作指定为
DELETE
:项目
向
projects.locations.global.policyOrchestrators.create
方法发送POST
请求。在请求正文中,指定与操作系统政策分配关联的政策 ID。
POST https://osconfig.googleapis.com/v2beta/projects/PROJECT_NUMBER/locations/global/policyOrchestrators { JSON_OS_POLICY_ORCHESTRATOR }
替换以下内容:
示例
POST https://osconfig.googleapis.com/v2beta/projects/567890/locations/global/policyOrchestrators { "action": "DELETE", "orchestratedResource": { "id": "my-policy", "osPolicyAssignmentV1Payload": {} }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
文件夹
向
folders.locations.global.policyOrchestrators.create
方法发送POST
请求。在请求正文中,指定与操作系统政策分配关联的政策 ID。
POST https://osconfig.googleapis.com/v2beta/folders/FOLDER_NUMBER/locations/global/policyOrchestrators -H "x-goog-user-project: QUOTA_PROJECT_ID" { JSON_OS_POLICY_ORCHESTRATOR }
替换以下内容:
示例
例如,如需从多个项目中删除操作系统政策资源,请发出以下请求:
POST https://osconfig.googleapis.com/v2beta/folders/567890/locations/global/policyOrchestrators -H "x-goog-user-project: my-quota-project { "action": "DELETE", "orchestratedResource": { "id": "my-policy", "osPolicyAssignmentV1Payload": {} }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
组织
向
organizations.locations.global.policyOrchestrators.create
方法发送POST
请求。在请求正文中,指定与操作系统政策分配关联的政策 ID。
POST https://osconfig.googleapis.com/v2beta/organizations/ORGANIZATION_NUMBER/locations/global/policyOrchestrators -H "x-goog-user-project: QUOTA_PROJECT_ID" { JSON_OS_POLICY_ORCHESTRATOR }
替换以下内容:
示例
例如,如需从多个项目中删除操作系统政策资源,请发出以下请求:
POST https://osconfig.googleapis.com/v2beta/organizations/567890/locations/global/policyOrchestrators -H "x-goog-user-project: my-quota-project { "action": "DELETE", "orchestratedResource": { "id": "my-policy", "osPolicyAssignmentV1Payload": {} }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-22。
-