2

我无法使用 gcloud 控制台在 GCP 中创建实例:

1.如果脚本是本地的,一切正常:

gcloud compute instances create app \
--boot-disk-size=10GB \
--image-family ubuntu-1604-lts \
--image-project=ubuntu-os-cloud \
--machine-type=g1-small \
--restart-on-failure \
--metadata-from-file startup-script=install.sh

2. 如果我使用 gsutil URI 使用 startup-script-url,如下所示:

gcloud compute instances create app \
--boot-disk-size=10GB \
--image-family ubuntu-1604-ltsm \
--image-project=ubuntu-os-cloud \
--machine-type=g1-small \
--restart-on-failure \
--metadata-from-file startup-script-url=gs://mbps54/install.sh

然后我收到:

错误:(gcloud.compute.instances.create)无法读取文件 [gs://mbps54/install.sh]。[Errno 2] 没有这样的文件或目录:'gs://mbps54/install.sh' gsutil URI 是 gs://mbps54/install.sh

3. 如果我用公共 URL 使用 startup-script-url,像这样:

gcloud compute instances create reddit-app \
--boot-disk-size=10GB \
--image-family ubuntu-1604-ltsm \
--image-project=ubuntu-os-cloud \
--machine-type=g1-small \
--restart-on-failure \
--metadata-from-file startup-script-url=https://storage.googleapis.com/mbps54/install.sh

我收到了:**

错误:(gcloud.compute.instances.create)无法读取文件 [https://storage.googleapis.com/mbps54/install.sh]:[Errno 2] 没有这样的文件或目录:'https://storage. googleapis.com/mbps54/install.sh'

4. 这是我的存储桶设置 GPC 存储桶设置

我可以从任何其他 PC上打开https://storage.googleapis.com/mbps54/install.sh 。此外,为了确保访问是公开的,我这样做了:

gsutil defacl set public-read gs://mbps54
gsutil -m acl set -R -a public-read gs://mbps54

5. 这个bucket url是公开的,可以从任何PC打开 https://storage.googleapis.com/mbps54/install.sh从其他PC打开。

有人可以帮忙,我的配置和脚本有什么问题吗?

4

1 回答 1

4

您正在使用该--metadata-from-file标志,它希望您提供一个本地文件。如果您想从 URL 指定启动脚本,则需要该--metadata标志,即:

--metadata startup-script-url=URL

选项卡下的https://cloud.google.com/compute/docs/startupscript#startupscriptrunninginstances中提到了这一点gcloud

使用 gcloud 命令行工具,使用 instances add-metadata 命令将元数据添加到实例。使用任何可用的启动脚本键:

--metadata startup-script=CONTENTS:使用此键直接提供启动脚本内容。

--metadata startup-script-url=URL:使用此键为启动脚本文件提供 Cloud Storage URL。`--来自文件的元数据

startup-script=FILE:提供本地存储的启动脚本文件。

例如:

--metadata-from-file startup-script=PATH_TO_FILE

gcloud compute instances add-metadata EXAMPLE_INSTANCE \   --metadata
startup-script-url=gs://BUCKET/FILE ```
于 2021-04-21T07:31:22.013 回答