Skip to content

Instantly share code, notes, and snippets.

@b0noI
Created December 16, 2018 23:29
Show Gist options
  • Save b0noI/147293522cf6d00a9c57a284abcd1ca6 to your computer and use it in GitHub Desktop.
Save b0noI/147293522cf6d00a9c57a284abcd1ca6 to your computer and use it in GitHub Desktop.
# usage: start_dlvm_for_user tf-latest-cpu [email protected] my-awesome-instance my-project us-west1-b
function start_dlvm_for_user() {
export IMAGE_FAMILY=$1
export USER_GOOGLE_ACCOUNT_MAIL=$2
export INSTANCE_NAME=$3
export PROJECT_ID=$4
export ZONE=$5
export INSTANCE_TYPE="n1-standard-8"
SERVICE_ACCOUNT_NAME="${INSTANCE_NAME}-sa"
gcloud iam service-accounts create "${SERVICE_ACCOUNT_NAME}"
gcloud iam service-accounts add-iam-policy-binding \
"${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
--member="user:${USER_GOOGLE_ACCOUNT_MAIL}" --role="roles/iam.serviceAccountUser"
# Replace osAdminLogin with osLogin is you do NOT want the user to have an
# ability to act as root.
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member="serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/compute.osAdminLogin"
gcloud compute instances create $INSTANCE_NAME \
--zone=$ZONE \
--image-family=$IMAGE_FAMILY \
--image-project=deeplearning-platform-release \
--machine-type=$INSTANCE_TYPE \
--boot-disk-size=120GB \
--min-cpu-platform=Intel\ Skylake \
--metadata enable-oslogin=TRUE \
--service-account ${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment