Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gcloud - How to automate installation of gcloud on a server?

I want to write a shell script which basically goes through all the installation steps for gcloud, as outlined at: https://cloud.google.com/sdk/?hl=en

However, when you are run install.sh, you will be asked to enter an authorization code, your project-id, whether you want to help improve Google Cloud or not and so on. Basically user-inputs are required.

But if I want to automate the installation process on a machine where there will not be any user, how can I do this?

like image 818
activelearner Avatar asked Nov 11 '15 19:11

activelearner


People also ask

Which command is used to configure gcloud?

The gcloud CLI starts you off with a single configuration named default . You can set properties in your configuration by running the gcloud init command or by running gcloud config set directly.

How can I tell if G Cloud is installed?

The first thing to do after successful installation is open your command line and type “gcloud” to check whether Cloud SDK has installed perfectly. Run “gcloud init”, it opens up a new browser window and asks to login into your google cloud account.


2 Answers

There are two separate problems here.

First, how do you install without prompts:

  1. Download the google cloud sdk tar file. This can be found right under the curl command on https://cloud.google.com/sdk/
  2. Untar and cd into the newly created directory.
  3. run CLOUDSDK_CORE_DISABLE_PROMPTS=1 ./install.sh (or install.bat)

This disables all prompts. If you don't like the way it answers the prompts, you can pre-answer them with flags. If you preanswer all the questions, you don't need the CLOUDSDK_CORE_DISABLE_PROMPTS environment variable set. Run ./install.sh --help for a list of flags.


Now that you have it installed, how do you auth it?

If you are on GCE, you can use the credentials on the machine itself automatically. If not, some setup is required.

Since these are automated installs, you want to give them a server key. If there was a human involved, he can just proceed through the normal flow.

Keys can be downloaded from the developer console under "APIs & auth -> Credentials". Click "New credentials -> Service account key". Google recommends you use a JSON key.

When you have that key, you need to move it to the new server and run:

gcloud auth activate-service-account --key-file servicekey.json
gcloud config set project MYPROJECT
like image 183
Stephen Weinberg Avatar answered Oct 08 '22 16:10

Stephen Weinberg


This sequence of commands should help:

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
like image 35
lukeforehand Avatar answered Oct 08 '22 17:10

lukeforehand