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
Scripting with gcloud
📖 Scenario: You are working as a cloud engineer managing Google Cloud Platform resources. You want to automate the creation and management of a Compute Engine virtual machine using simple scripts with the gcloud command-line tool.
🎯 Goal: Build a step-by-step script using gcloud commands to create a VM instance, configure its zone, and add a startup script that runs when the VM boots.
📋 What You'll Learn
Use gcloud config set compute/zone to set the default zone
Create a VM instance named my-vm-instance with the e2-micro machine type
Add a startup script that echoes 'Hello, Cloud!' to a file on the VM
Verify the VM instance creation command includes the startup script metadata
💡 Why This Matters
🌍 Real World
Automating cloud resource management saves time and reduces errors in real projects.
💼 Career
Cloud engineers and DevOps professionals use gcloud scripting daily to manage Google Cloud resources efficiently.
Progress0 / 4 steps
1
Set the default compute zone
Write the gcloud command to set the default compute zone to us-central1-a using gcloud config set compute/zone.
GCP
Hint
Use the command gcloud config set compute/zone us-central1-a to set the zone.
2
Create a VM instance named my-vm-instance
Write the gcloud command to create a VM instance named my-vm-instance with machine type e2-micro.
GCP
Hint
Use gcloud compute instances create my-vm-instance --machine-type=e2-micro to create the VM.
3
Add a startup script to the VM instance
Modify the VM creation command to include a startup script that writes 'Hello, Cloud!' to /var/log/startup-script.log using the metadata flag --metadata startup-script.
GCP
Hint
Add --metadata startup-script="echo 'Hello, Cloud!' > /var/log/startup-script.log" to the create command.
4
Verify the VM instance creation command
Ensure the full command includes setting the zone, creating the VM named my-vm-instance with machine type e2-micro, and the startup script metadata as shown.
GCP
Hint
Check that all parts of the command are included exactly as shown.
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
Step 1: Understand the command structure
The command uses gcloud compute instances list, which is designed to list resources.
Step 2: Identify the resource targeted
The resource targeted is virtual machine instances under compute service.
Final Answer:
It shows all virtual machine instances in your project. -> Option C
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
Step 1: Check the correct command order
The correct order is gcloud compute instances create followed by the instance name.
Step 2: Verify flag syntax
The zone flag must be --zone=us-central1-a with an equals sign.
Final Answer:
gcloud compute instances create my-vm --zone=us-central1-a -> Option D
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
Step 1: Understand the filter flag
The filter limits results to instances in zone us-east1-b, so both vm1 and vm2 match.
Step 2: Understand the format flag
The format value(name) outputs only the names, each on a new line.
Final Answer:
vm1\nvm2 -> Option B
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:
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
Step 1: Check flag syntax
The zone flag must be written as --zone=us-west1-b with an equals sign.
Step 2: Confirm command support
The delete command is valid and does not require --force unless confirmation is skipped.
Final Answer:
Missing '=' sign in the --zone flag -> Option A
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
Step 1: Understand shell loop syntax
The correct bash loop syntax is for i in 1 2 3; do ... done.
Step 2: Check command inside loop
The command uses variable substitution app-$i and correct flag --zone=europe-west1-c.
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.
Final Answer:
for i in 1 2 3; do gcloud compute instances create app-$i --zone=europe-west1-c; done -> Option A
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