soundararajan.c
soundararajan.c

Reputation: 2567

Take snapshots in GCP using script

I need to take a snaphots of all my servers from script in all projects in GCP.

Project count : 10

Servers per project : 05

Written the script in a Server: Automation-server

Script has:

gcloud compute --project $PROJECT_ID disks snapshot ${DEVICE_NAME} --snapshot-names gcp-${DEVICE_NAME}-${DATE} --zone ${INSTANCE_ZONE})

As of now i have configured my E-mail id in the Server X with gcloud auth (My E-mail id has access to all of my projects so that i can able to take snapshots of all the servers) So i can able to do the same via scripting.

I wish not to do this via a user authentication(mentioning the E-mail id) .

Is there any possiblity for doing the above via any application or using any api-key etc.., By granting the access of all the projects to a application or api-key and by using that , taking the snapshots from the script

This will be used in :

If a user X has access to 5 projects , and an user Y has access to another set of 5 projects.

Need to take snapshots for all the 10 projects using script at this time if the gcloud auth was done via an application or api-key etc..,

Is it possible or any other way for the above case

Upvotes: 2

Views: 349

Answers (1)

David
David

Reputation: 9721

This is possible:

  1. Create a service account in cloud project.
  2. Go to each of your 10 projects, and grant the service account either "Editor", "compute.instanceAdmin" or "compute.storageAdmin" IAM permission.
  3. Use gcloud auth activate-service-account in your script to have the script run as the service account.

You could also use multiple service accounts for different projects, and switch between the.

Upvotes: 1

Related Questions