You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.5 KiB
Bash
109 lines
3.5 KiB
Bash
5 years ago
|
#!/usr/bin/env bash
|
||
|
# vim:ts=4:sts=4:sw=4:et
|
||
|
#
|
||
|
# Author: Hari Sekhon
|
||
|
# Date: 2019-11-14 20:56:43 +0000 (Thu, 14 Nov 2019)
|
||
|
#
|
||
|
# https://github.com/harisekhon/bash-tools
|
||
|
#
|
||
|
# License: see accompanying Hari Sekhon LICENSE file
|
||
|
#
|
||
|
# If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish
|
||
|
#
|
||
|
# https://www.linkedin.com/in/harisekhon
|
||
|
#
|
||
|
|
||
5 years ago
|
# Install Google Cloud SDK - uses packages where available or else installs to $HOME via the script installer
|
||
|
#
|
||
|
# You may want to install manually if using Google App Engine as the docs say to not use the packaged versions of gcloud
|
||
|
# when installing the app engine add-ons (probably due to path write permissions)
|
||
|
|
||
5 years ago
|
set -euo pipefail
|
||
|
[ -n "${DEBUG:-}" ] && set -x
|
||
|
|
||
5 years ago
|
if type -P gcloud &>/dev/null; then
|
||
|
echo "GCloud already installed, skipping..."
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
5 years ago
|
#apt_version="123.0.0-0"
|
||
|
#yum_version="123.0.0"
|
||
|
|
||
|
# installs to $HOME/google-cloud-sdk
|
||
|
install_root_dir="$HOME"
|
||
|
|
||
|
apt_optional_packages="
|
||
|
google-cloud-sdk-app-engine-python \
|
||
|
google-cloud-sdk-app-engine-python-extras \
|
||
|
google-cloud-sdk-app-engine-java \
|
||
|
google-cloud-sdk-app-engine-go \
|
||
|
google-cloud-sdk-datalab \
|
||
|
google-cloud-sdk-datastore-emulator \
|
||
|
google-cloud-sdk-pubsub-emulator \
|
||
|
google-cloud-sdk-cbt \
|
||
|
google-cloud-sdk-cloud-build-local \
|
||
|
google-cloud-sdk-bigtable-emulator \
|
||
|
kubectl
|
||
|
"
|
||
|
|
||
|
yum_optional_packages="
|
||
|
google-cloud-sdk-app-engine-python
|
||
|
google-cloud-sdk-app-engine-python-extras
|
||
|
google-cloud-sdk-app-engine-java
|
||
|
google-cloud-sdk-app-engine-go
|
||
|
google-cloud-sdk-bigtable-emulator
|
||
|
google-cloud-sdk-datalab
|
||
|
google-cloud-sdk-datastore-emulator
|
||
|
google-cloud-sdk-cbt
|
||
|
google-cloud-sdk-cloud-build-local
|
||
|
google-cloud-sdk-pubsub-emulator
|
||
|
kubectl
|
||
|
"
|
||
|
|
||
|
sudo=sudo
|
||
|
[ $EUID -eq 0 ] && sudo=""
|
||
|
|
||
|
echo "Installing Google Cloud SDK"
|
||
|
if type -P yum &>/dev/null; then
|
||
|
$sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOF
|
||
|
[google-cloud-sdk]
|
||
|
name=Google Cloud SDK
|
||
|
baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64
|
||
|
enabled=1
|
||
|
gpgcheck=1
|
||
|
repo_gpgcheck=1
|
||
|
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
|
||
|
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
|
||
|
EOF
|
||
|
yum install -y google-cloud-sdk #-$yum_version
|
||
|
# want splitting to single line
|
||
|
# shellcheck disable=SC2086
|
||
|
yum install -y $yum_optional_packages
|
||
|
# https://cloud.google.com/sdk/docs/downloads-apt-get
|
||
|
elif type -P apt-get &>/dev/null; then
|
||
|
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | $sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
|
||
|
$sudo apt-get install -y apt-transport-https ca-certificates
|
||
5 years ago
|
curl -sS https://packages.cloud.google.com/apt/doc/apt-key.gpg |
|
||
|
$sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
|
||
5 years ago
|
$sudo apt-get update
|
||
|
$sudo apt-get install -y google-cloud-sdk #=$apt_version
|
||
|
# want splitting to single line
|
||
|
# shellcheck disable=SC2086
|
||
|
$sudo apt-get install -y $apt_optional_packages
|
||
|
elif [[ "$(uname -s)" =~ Darwin|Linux ]]; then
|
||
|
# https://cloud.google.com/sdk/docs/downloads-interactive
|
||
|
install_script="$(mktemp -t gcloud_installer.sh.XXXXXX)"
|
||
5 years ago
|
curl -sS https://sdk.cloud.google.com > "$install_script"
|
||
5 years ago
|
chmod +x "$install_script"
|
||
|
"$install_script" --disable-prompts --install-dir="$install_root_dir"
|
||
|
else
|
||
|
echo "Unsupported OS '$(uname -s)'" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# requires interactive prompts
|
||
|
#echo "Initializing gcloud..."
|
||
|
#gcloud init
|
||
5 years ago
|
echo
|
||
5 years ago
|
echo "Done. You will need to run 'gcloud init' to set up your profile."
|