Bird
Raised Fist0
GCPcloud~5 mins

Scripting with gcloud in GCP - Commands & Configuration

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Sometimes you want to automate tasks in Google Cloud instead of doing them by hand. Scripting with gcloud lets you write commands that run one after another to manage your cloud resources quickly and reliably.
When you want to create multiple virtual machines without clicking in the console each time
When you need to update firewall rules regularly based on changing needs
When you want to back up data from a storage bucket every day automatically
When you want to deploy an app and set up its environment in one go
When you want to check the status of your cloud resources and save the results
Commands
This command sets your active Google Cloud project so that all following commands apply to it.
Terminal
gcloud config set project example-project-123
Expected OutputExpected
Updated property [core/project].
This command creates a new virtual machine named example-vm in the specified zone with a medium machine type.
Terminal
gcloud compute instances create example-vm --zone=us-central1-a --machine-type=e2-medium
Expected OutputExpected
Created [https://www.googleapis.com/compute/v1/projects/example-project-123/zones/us-central1-a/instances/example-vm]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS example-vm us-central1-a e2-medium 10.128.0.2 34.68.123.45 RUNNING
--zone - Specifies the zone where the VM will be created
--machine-type - Defines the size and power of the VM
This command lists all virtual machines in your current project, so you can verify your VM was created.
Terminal
gcloud compute instances list
Expected OutputExpected
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS example-vm us-central1-a e2-medium 10.128.0.2 34.68.123.45 RUNNING
This command deletes the example-vm virtual machine without asking for confirmation because of the --quiet flag.
Terminal
gcloud compute instances delete example-vm --zone=us-central1-a --quiet
Expected OutputExpected
Deleted [https://www.googleapis.com/compute/v1/projects/example-project-123/zones/us-central1-a/instances/example-vm].
--quiet - Skips confirmation prompts for automation
Key Concept

If you remember nothing else from this pattern, remember: scripting with gcloud lets you automate cloud tasks by running commands in order without manual clicks.

Common Mistakes
Not setting the active project before running commands
Commands may run in the wrong project or fail because the project is not specified
Always run 'gcloud config set project your-project-id' before other commands
Forgetting to specify the zone when creating or deleting VMs
The command will fail or act on the wrong zone because zone is required for these operations
Always include the --zone flag with the correct zone value
Running delete commands without the --quiet flag in scripts
The script will pause waiting for confirmation, breaking automation
Use --quiet to skip confirmation prompts in scripts
Summary
Set the active project with 'gcloud config set project' to target your cloud resources.
Create and manage virtual machines using 'gcloud compute instances' commands with proper flags.
Use 'gcloud compute instances list' to check the status of your VMs.
Add the --quiet flag in scripts to avoid manual confirmation prompts during deletions.

Practice

(1/5)
1. What does the gcloud compute instances list command do?
easy
A. It deletes all virtual machine instances.
B. It creates a new virtual machine instance.
C. It shows all virtual machine instances in your project.
D. It updates the configuration of an instance.

Solution

  1. Step 1: Understand the command structure

    The command uses gcloud compute instances list, which is designed to list resources.
  2. Step 2: Identify the resource targeted

    The resource targeted is virtual machine instances under compute service.
  3. Final Answer:

    It shows all virtual machine instances in your project. -> Option C
  4. Quick Check:

    List command = show resources [OK]
Hint: List commands show resources, create commands add resources [OK]
Common Mistakes:
  • Confusing list with create or delete commands
  • Assuming it modifies instances instead of listing
  • Ignoring the service and resource part of the command
2. Which of the following is the correct syntax to create a new Compute Engine instance named my-vm in zone us-central1-a using gcloud?
easy
A. gcloud create instances my-vm --zone us-central1-a
B. gcloud instances create my-vm --zone us-central1-a
C. gcloud compute create instance my-vm zone=us-central1-a
D. gcloud compute instances create my-vm --zone=us-central1-a

Solution

  1. Step 1: Check the correct command order

    The correct order is gcloud compute instances create followed by the instance name.
  2. Step 2: Verify flag syntax

    The zone flag must be --zone=us-central1-a with an equals sign.
  3. Final Answer:

    gcloud compute instances create my-vm --zone=us-central1-a -> Option D
  4. Quick Check:

    Correct syntax uses 'compute instances create' and '--zone=' [OK]
Hint: Use full service and resource names with flags using '=' [OK]
Common Mistakes:
  • Omitting 'compute' or 'instances' keywords
  • Using space instead of '=' in flags
  • Wrong command order or missing flags
3. What will be the output of this command if there are two instances named vm1 and vm2 in zone us-east1-b?

gcloud compute instances list --filter="zone:(us-east1-b)" --format="value(name)"
medium
A. vm1 vm2
B. vm1\nvm2
C. ["vm1", "vm2"]
D. Error: Invalid filter syntax

Solution

  1. Step 1: Understand the filter flag

    The filter limits results to instances in zone us-east1-b, so both vm1 and vm2 match.
  2. Step 2: Understand the format flag

    The format value(name) outputs only the names, each on a new line.
  3. Final Answer:

    vm1\nvm2 -> Option B
  4. Quick Check:

    Filter + value format = names on separate lines [OK]
Hint: value(name) outputs names line by line, not space separated [OK]
Common Mistakes:
  • Expecting space-separated names instead of new lines
  • Thinking output is JSON array
  • Misreading filter syntax as invalid
4. You wrote this script line to delete a Compute Engine instance:

gcloud compute instances delete my-instance --zone us-west1-b

But it fails with an error. What is the most likely cause?
medium
A. Missing '=' sign in the --zone flag
B. Instance name is incorrect
C. Delete command requires --force flag
D. gcloud command does not support delete

Solution

  1. Step 1: Check flag syntax

    The zone flag must be written as --zone=us-west1-b with an equals sign.
  2. Step 2: Confirm command support

    The delete command is valid and does not require --force unless confirmation is skipped.
  3. Final Answer:

    Missing '=' sign in the --zone flag -> Option A
  4. Quick Check:

    Flags need '=' between flag and value [OK]
Hint: Flags require '=' between name and value [OK]
Common Mistakes:
  • Using space instead of '=' in flags
  • Assuming delete needs --force always
  • Thinking delete command is unsupported
5. You want to write a script that creates three Compute Engine instances named app-1, app-2, and app-3 in zone europe-west1-c. Which script snippet correctly uses a loop with gcloud commands?
hard
A. for i in 1 2 3; do gcloud compute instances create app-$i --zone=europe-west1-c; done
B. gcloud compute instances create app-1 app-2 app-3 --zone europe-west1-c
C. for i in 1..3; gcloud compute instances create app-i --zone=europe-west1-c; done
D. gcloud create instances app-{1..3} --zone=europe-west1-c

Solution

  1. Step 1: Understand shell loop syntax

    The correct bash loop syntax is for i in 1 2 3; do ... done.
  2. Step 2: Check command inside loop

    The command uses variable substitution app-$i and correct flag --zone=europe-west1-c.
  3. Step 3: Verify other options

    gcloud compute instances create app-1 app-2 app-3 --zone europe-west1-c creates all instances in one command but does not use a loop. Options A and D have syntax errors or invalid commands.
  4. Final Answer:

    for i in 1 2 3; do gcloud compute instances create app-$i --zone=europe-west1-c; done -> Option A
  5. Quick Check:

    Bash loop with correct flags and variable substitution [OK]
Hint: Use 'for i in 1 2 3; do ... done' for loops in bash [OK]
Common Mistakes:
  • Using invalid loop syntax like '1..3'
  • Missing 'do' and 'done' in loop
  • Incorrect flag syntax without '='
  • Trying to create multiple instances without loop or correct command