预览配置

本页面介绍如何在创建部署之前预览配置文件。如需详细了解配置,请阅读配置概览

编写配置文件后,您可以在创建部署前预览配置。通过预览配置,您可以查看 Deployment Manager 将会创建但实际上并未实例化的任何实际资源。Deployment Manager 服务通过以下方式预览配置:

  1. 展开完整配置,包括任何模板。
  2. 创建部署和“空壳”资源。

发出 insert() 请求时,您可以使用 preview 查询参数预览配置。

准备工作

预览新配置

通过使用 gcloud 命令行工具或向 API 发出直接请求来预览配置。

gcloud

如果使用的是 gcloud 命令行工具,请使用带有 --preview 标志的 create 子命令:

gcloud deployment-manager deployments create example-config --config configuration-file.yaml \
     --preview

服务器返回状态为 IN_PREVIEW 的资源的列表供您查看:

The fingerprint of the deployment is ulPDrJON8E5ySHKC5fcukw==
Waiting for create [operation-1492785372594-54dae2ddbff50-58d45d53-12d483cf]...done.
Create operation operation-1492785372594-54dae2ddbff50-58d45d53-12d483cf completed successfully.
NAME                      TYPE                 STATE       ERRORS  INTENT
datadisk-example  compute.v1.disk      IN_PREVIEW  []      CREATE_OR_ACQUIRE
vm-example        compute.v1.instance  IN_PREVIEW  []      CREATE_OR_ACQUIRE

API

在 API 中,使用 insert() 方法,并在请求正文中包含 targetname 字段以及 preview=true 查询参数。在 target 字段中提供您的配置。

例如,以下 API 请求可预览一个简单的模板:

POST https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments?preview=true

{
 "name": "example-config",
 "target": {
  "config": {
    "content":  "resources:\n- name: vm-created-by-cloud-config\n  type: compute.v1.instance\n  properties:\n    zone: us-central1-a\n    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n    disks:\n    - deviceName: boot\n      type: PERSISTENT\n      boot: true\n      autoDelete: true\n      initializeParams:\n        diskName: disk-created-by-cloud-config\n        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619\n    networkInterfaces:\n    networkInterfaces:\n    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default"
   }
  }
}

部署处于预览模式时,您可以通过以下三种方式之一继续部署:

执行多个预览

如果要更改配置并执行其他预览,请使用带有 --preview 标志的 update 命令:

gcloud deployment-manager deployments update example-config \
    --config new-config.yaml --preview

在 API 中,使用现有部署发出 PUT() 请求,并提供 preview=true 查询参数。请求正文必须包含 intenttargetname 字段。例如,以下 API 请求预览了一个简单的更新:

PUT https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/example-config?preview=true

{
 "target": {
  "config": {
   "content": "resources:\n- name: vm-created-by-cloud-config\n  type: compute.v1.instance\n  properties:\n    zone: us-central1-a\n    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n    disks:\n    - deviceName: boot\n      type: PERSISTENT\n      boot: true\n      autoDelete: true\n      initializeParams:\n        diskName: disk-created-by-cloud-config\n        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619\n    networkInterfaces:\n    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default"
  }
 },
 "name": "example-config"
}

部署或取消预览

预览部署后,您可以通过执行更新并提交配置来继续部署。例如,假设您有一个名为 example-config 的部署当前处于预览模式。您可以通过运行以下命令继续部署:

gcloud deployment-manager deployments update example-config

Deployment Manager 使用上次预览的配置创建部署。

或者,如果您不想继续使用该配置,则可以取消预览,然后删除部署:

gcloud deployment-manager deployments cancel-preview example-config

部署处于预览模式时,您无法使用其他配置继续进行部署。例如,假设您有一个名为example-config的部署,使用名为 vm.yaml 的配置并处于预览模式下。您决定跳过预览过程,将名为 two_vms.yaml 的新配置部署于同一配置。example-config 仍处于预览模式时,您无法部署新配置。取消预览,然后使用新配置更新部署

后续步骤