我在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。
创建实例并手动粘贴启动脚本后,它可以正常运行。
有谁知道我在这里做错了什么?
答案 0 :(得分:0)
这很有效。我的问题与用户帐户有关。我没有以默认用户身份登录(例如:username@instance-id
)。
如果您正在阅读此问题,请确保您打算为此运行此用户名并进行相应管理。