使用 Deployment Manager 模板配置防火墙和启动脚本时出现问题

Problem while configure a Firewall and a Startup Script with Deployment Manager template

我想在 .yaml 文件

中使用 Deployment Manager 模板配置防火墙和启动脚本

以下是我需要执行的步骤

  1. 已创建新的 Deployment Manager 部署
  2. 部署包括一个具有嵌入式 启动脚本
  3. 有启动脚本的虚拟机也有标签项 称为 http
  4. 存在允许端口 80 (http) 流量的防火墙规则,并且是 使用值为 http
  5. 的标记应用
  6. 虚拟机使用Apache web响应web请求 服务器
  7. 检查 Deployment Manager 是否包含启动脚本和防火墙 资源

下面是我创建的示例文件,但在部署文件时显示第 3 步(具有启动脚本的虚拟机也有一个名为 http 的标记项)未配置。

如果我遗漏了什么,请帮助我。

- name: my-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: zones/us-central1-a/machineTypes/n1-standard-1
    sourceRanges: ["0.0.0.0/0"]
    targetTags: ["webserver"]
    allowed:
    - IPProtocol: TCP
    ports: ["80"]
    metadata:
      items:
      - key: startup-script
        value: |
         #! /bin/bash
         apt-get update
         apt-get install -y apache2
         cat <<EOF > /var/www/html/index.html
         <html><body><h1>Welcome to Apache</h1>
         <p>This page was created from a simple startup script!</p>
         </body></html>
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-9-stretch-v20180814
    networkInterfaces:
    - network: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-dee231a39b26c176/global/networks/default
      accessConfigs:
      - name: External NAT
        type: ONE_TO_ONE_NAT

选项 "value" 应该是字符串格式。

例如:

metadata:
      items:
      - key: startup-script
        value: "apt-get update \n apt-get install -y apache2"

具有启动脚本的虚拟机也有一个名为 http) 的标记项未配置。 因为它表示必须为您的 vm 实例提及作为 http 的标记项。 只需在 vm-instance

的属性中的 zone->machinetype 之后提及一个标签
zone: your-zone
machineType: your-machine-type
    tags:
        items:
        - 'http'