【问题标题】:Unable to make instance on Google Cloud Platform with startup-script-url无法使用 startup-script-url 在 Google Cloud Platform 上创建实例
【发布时间】:2021-07-15 07:34:34
【问题描述】:

我无法使用 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 用户启动脚本 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.这是我的存储桶设置

我可以从任何其他 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.此存储桶网址是公开的,可从任何 PC 上打开 https://storage.googleapis.com/mbps54/install.sh 从其他电脑打开。

谁能帮忙,我的配置和脚本有什么问题?

【问题讨论】:

    标签: google-cloud-platform bucket gsutil gpc


    【解决方案1】:

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

    --metadata startup-script-url=URL
    

    https://cloud.google.com/compute/docs/startupscript#startupscriptrunninginstancesgcloud 标签下提到了这一点。

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

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

    --metadata startup-script-url=URL:为启动提供云存储 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 ```
    

    【讨论】:

    • 非常感谢!有用! “--metadata startup-script-url=gs://mbps54/install.sh” - 这是正确的语法。
    • 很高兴它现在可以工作了 :) 请考虑将此答案标记为已接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 2021-01-15
    相关资源
    最近更新 更多