gce启动启动脚本没有激活

时间:2017-05-30 01:03:55

标签: python google-compute-engine

我在python脚本中定义了以下启动脚本变量:

default_startup_script = """
#! /bin/bash
cd ~/git/gcloud;
git config --global user.email "my.email@gmail.com";
git config --global user.name "my.name";
git stash;
git pull https://user:pw@bitbucket.org/url/my_repo.git;
"""

以及以下配置:

    config = {
      "name": "instance-bfb6559d-788f-48b7-85a3-8ff3ab6e5a60",
      "zone": "projects/username-165421/zones/us-east1-b",
      "machineType": "projects/username-165421/zones/us-east1-b/machineTypes/f1-micro",
      "metadata": {
        "items": [{'key':'startup-script','value':default_startup_script}]
      },
      "tags": {
        "items": [
          "http-server",
          "https-server"
        ]
      },
      "disks": [
        {
          "type": "PERSISTENT",
          "boot": True,
          "mode": "READ_WRITE",
          "autoDelete": True,
          "deviceName": "instance-4",
          "initializeParams": {
              "sourceImage": "projects/username-165421/global/images/image-id",
              "diskType": "projects/username-165421/zones/us-east1-b/diskTypes/pd-standard",
              "diskSizeGb": "10"
          }
        }
      ],
      "canIpForward": False,
      "networkInterfaces": [
        {
          "network": "projects/username-165421/global/networks/default",
          "subnetwork": "projects/username-165421/regions/us-east1/subnetworks/default",
          "accessConfigs": [
            {
              "name": "External NAT",
              "type": "ONE_TO_ONE_NAT"
            }
          ]
        }
      ],
      "description": "",
      "labels": {},
      "scheduling": {
        "preemptible": False,
        "onHostMaintenance": "MIGRATE",
        "automaticRestart": True
      },
      "serviceAccounts": [
        {
          "email": "123456-compute@developer.gserviceaccount.com",
          "scopes": [
            "https://www.googleapis.com/auth/devstorage.read_only",
            "https://www.googleapis.com/auth/logging.write",
            "https://www.googleapis.com/auth/monitoring.write",
            "https://www.googleapis.com/auth/servicecontrol",
            "https://www.googleapis.com/auth/service.management.readonly",
            "https://www.googleapis.com/auth/trace.append"
          ]
        }
      ]
    }

现在 - 实例创建没有问题,但启动脚本不会触发。

我正在通过运行来创建实例:

compute.instances().insert(
        project=project,
        zone=zone,
        body=config).execute()

所有样本均来自here

创建实例并手动粘贴启动脚本后,它可以正常运行。

有谁知道我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

这很有效。我的问题与用户帐户有关。我没有以默认用户身份登录(例如username@instance-id)。

如果您正在阅读此问题,请确保您打算为此运行此用户名并进行相应管理。