Last active
November 27, 2018 11:22
-
-
Save carlessanagustin/9ad5dd60f219f7beeb741f856b5ff2ba to your computer and use it in GitHub Desktop.
Install & setup Google SDK tools in Ubuntu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
export SOURCE_FOLDER=/tmp | |
export DESTINATION_FOLDER=tmp | |
export BUCKET=backup_bucket | |
#echo "lalalalalala" > /tmp/lala.txt | |
# Service Account role: roles/storage.objectAdmin = Storage Object Admin | |
export KEY=Service_Account.json | |
export NEWUSER=mybackup | |
export CRON="00 10 * * *" | |
# setup new user environment | |
if id -u $NEWUSER > /dev/null 2>&1; then | |
useradd -s /bin/bash -m $NEWUSER | |
fi | |
export PRIVATE_KEY=/home/$NEWUSER/$KEY | |
cp ./$KEY $PRIVATE_KEY | |
chmod 400 $PRIVATE_KEY | |
export SSH_FOLDER=/home/$NEWUSER/.ssh && \ | |
mkdir -p $SSH_FOLDER && \ | |
chmod 700 $SSH_FOLDER && \ | |
echo "Host *" > $SSH_FOLDER/config && \ | |
echo " StrictHostKeyChecking no" >> $SSH_FOLDER/config && \ | |
chmod 600 $SSH_FOLDER/config && \ | |
chown -Rf $NEWUSER:$NEWUSER /home/$NEWUSER | |
# install requirements | |
apt-get update && apt-get install -y lsb-core curl ssh jq && \ | |
export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \ | |
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \ | |
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \ | |
apt-get update -y && apt-get install google-cloud-sdk -y | |
# gcloud activation | |
export CLIENT_EMAIL=$(jq '.client_email' $PRIVATE_KEY | cut -d "\"" -f 2) | |
export PROJECT_ID=$(jq '.project_id' $PRIVATE_KEY | cut -d "\"" -f 2) | |
sudo -H -u $NEWUSER -s bash gcloud auth activate-service-account $CLIENT_EMAIL --key-file=$PRIVATE_KEY --project=$PROJECT_ID | |
GSUTIL_COMMAND="/usr/bin/gsutil -m rsync -r $SOURCE_FOLDER gs://$BUCKET/$DESTINATION_FOLDER" | |
# cron job | |
export CRONTAB_FILE=/var/spool/cron/crontabs/$NEWUSER | |
echo "$CRON $GSUTIL_COMMAND" >> $CRONTAB_FILE | |
chmod 600 $CRONTAB_FILE | |
chown $NEWUSER:crontab $CRONTAB_FILE | |
echo "Running: sudo -H -u $NEWUSER -s bash $GSUTIL_COMMAND" | |
sudo -H -u $NEWUSER -s bash $GSUTIL_COMMAND |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment