我想编写一个shell脚本,它基本上完成了gcloud的所有安装步骤,如下所述:https://cloud.google.com/sdk/?hl=en
但是,当您运行install.sh时,系统会要求您输入授权码,项目ID,是否要帮助改进Google Cloud等等。基本上需要用户输入。
但是,如果我想在没有任何用户的机器上自动执行安装过程,我该怎么做?
答案 0 :(得分:9)
这里有两个不同的问题。
首先,如何在没有提示的情况下安装:
CLOUDSDK_CORE_DISABLE_PROMPTS=1 ./install.sh
(或install.bat)这会禁用所有提示。如果您不喜欢它回答提示的方式,您可以使用标记预先回答它们。如果您提前解决所有问题,则不需要设置CLOUDSDK_CORE_DISABLE_PROMPTS环境变量。运行./install.sh --help获取标志列表。
现在你已经安装了它,你如何认证呢?
如果您使用的是GCE,则可以自动使用机器本身的凭据。如果没有,则需要进行一些设置。
由于这些是自动安装,因此您需要为它们提供服务器密钥。如果涉及到人类,他可以继续正常流程。
密钥可以从开发者控制台下载" API& auth - >凭证&#34 ;.点击"新凭据 - >服务帐户密钥"。 Google建议您使用JSON密钥。
当您拥有该密钥时,需要将其移至新服务器并运行:
gcloud auth activate-service-account --key-file servicekey.json
gcloud config set project MYPROJECT
答案 1 :(得分:1)
这一系列命令应该有所帮助:
file="google-cloud-sdk-101.0.0-linux-x86_64.tar.gz"
link="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/"
curl -L "$link""$file" | tar xz
CLOUDSDK_CORE_DISABLE_PROMPTS=1 ./google-cloud-sdk/install.sh
答案 2 :(得分:0)
按照docs,似乎有一种更好/更优雅的方法:
curl https://sdk.cloud.google.com > install.sh
bash install.sh --disable-prompts