Bird
Raised Fist0
GCPcloud~5 mins

Startup scripts for automation in GCP - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is a startup script in Google Cloud Platform (GCP)?
A startup script is a set of commands that automatically run when a virtual machine (VM) instance starts. It helps automate setup tasks like installing software or configuring settings.
Click to reveal answer
beginner
Where do you specify a startup script for a VM in GCP?
You specify a startup script in the VM instance's metadata under the key 'startup-script'. This script runs every time the VM boots.
Click to reveal answer
beginner
Why use startup scripts instead of manual setup on VMs?
Startup scripts automate repetitive tasks, ensure consistency across VMs, save time, and reduce human errors during setup.
Click to reveal answer
intermediate
How can you debug a startup script if it fails on a GCP VM?
Check the serial port output logs of the VM in the GCP Console. Logs often show errors from the startup script to help identify issues.
Click to reveal answer
beginner
What is a common format for startup scripts in GCP VMs?
Startup scripts are usually shell scripts (bash) for Linux VMs or PowerShell scripts for Windows VMs.
Click to reveal answer
Where do you add a startup script for a GCP VM?
AIn the IAM permissions
BIn the VM's firewall rules
CIn the Cloud Storage bucket
DIn the VM's metadata under 'startup-script'
What happens when a startup script runs on a VM?
AIt runs commands automatically when the VM starts
BIt deletes the VM
CIt changes the VM's machine type
DIt pauses the VM
Which log helps you debug startup script errors on a GCP VM?
ACloud DNS logs
BCloud Audit logs
CSerial port output logs
DBilling logs
What scripting language is commonly used for Linux VM startup scripts?
APython
BBash shell script
CPowerShell
DJavaScript
Why automate VM setup with startup scripts?
ATo save time and ensure consistent setup
BTo increase VM cost
CTo disable VM networking
DTo manually configure each VM
Explain what a startup script is and how it helps automate VM setup in GCP.
Think about what happens automatically when a VM starts.
You got /4 concepts.
    Describe how you would troubleshoot a startup script that is not working on a GCP VM.
    Where does the VM show boot messages and errors?
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a startup script in a Google Cloud VM instance?
      easy
      A. To automate tasks when the VM boots
      B. To manually start the VM
      C. To create a new VM instance
      D. To delete files from the VM

      Solution

      1. Step 1: Understand startup script role

        Startup scripts run automatically when a VM starts to perform tasks without manual intervention.
      2. Step 2: Identify correct purpose

        Among the options, only automating tasks at boot matches the startup script function.
      3. Final Answer:

        To automate tasks when the VM boots -> Option A
      4. Quick Check:

        Startup script = automate tasks at boot [OK]
      Hint: Startup scripts run automatically at VM boot time [OK]
      Common Mistakes:
      • Confusing startup scripts with manual commands
      • Thinking startup scripts create or delete VMs
      • Assuming startup scripts run after user login
      2. Which command correctly adds a startup script to a new VM instance using gcloud CLI?
      easy
      A. gcloud compute instances create my-vm --metadata startup='echo Hello'
      B. gcloud compute instances create my-vm --script-startup='echo Hello'
      C. gcloud compute instances create my-vm --startup='echo Hello'
      D. gcloud compute instances create my-vm --metadata startup-script='echo Hello'

      Solution

      1. Step 1: Recall correct flag for startup script

        The correct metadata key to add a startup script is 'startup-script'.
      2. Step 2: Match command syntax

        gcloud compute instances create my-vm --metadata startup-script='echo Hello' uses '--metadata startup-script' correctly; others use invalid flags.
      3. Final Answer:

        gcloud compute instances create my-vm --metadata startup-script='echo Hello' -> Option D
      4. Quick Check:

        Use --metadata startup-script to add scripts [OK]
      Hint: Use --metadata startup-script flag with gcloud create [OK]
      Common Mistakes:
      • Using incorrect flag names like --script-startup
      • Confusing metadata keys with other flags
      • Missing quotes around the script content
      3. Given this startup script added to a VM:
      #!/bin/bash
      echo "Hello World" > /var/log/startup.log

      What will happen when the VM boots?
      medium
      A. The VM will fail to boot due to script error
      B. The file /var/log/startup.log will contain 'Hello World'
      C. Nothing happens because echo is not allowed
      D. The file /var/log/startup.log will be deleted

      Solution

      1. Step 1: Analyze the script commands

        The script writes the text 'Hello World' into the file /var/log/startup.log using echo and redirection.
      2. Step 2: Understand script effect on boot

        Since startup scripts run as root, the file will be created or overwritten with the text.
      3. Final Answer:

        The file /var/log/startup.log will contain 'Hello World' -> Option B
      4. Quick Check:

        Startup script writes text to log file [OK]
      Hint: Startup scripts run as root and can write files [OK]
      Common Mistakes:
      • Assuming echo command is blocked
      • Thinking the file will be deleted instead of created
      • Believing the VM will fail due to simple echo
      4. You wrote this startup script:
      #!/bin/bash
      apt-get update
      apt-get install nginx -y

      But nginx is not installed after VM boots. What is the likely problem?
      medium
      A. The script lacks 'sudo' before commands
      B. The script is missing the shebang line
      C. The script runs before network is ready
      D. The script should use 'yum' instead of 'apt-get'

      Solution

      1. Step 1: Check script commands and environment

        The script uses apt-get which requires network access to update and install packages.
      2. Step 2: Identify timing issue

        Startup scripts may run before network is fully ready, causing apt-get to fail silently.
      3. Final Answer:

        The script runs before network is ready -> Option C
      4. Quick Check:

        Network must be ready before package install [OK]
      Hint: Ensure network is ready before package installs in startup scripts [OK]
      Common Mistakes:
      • Adding sudo unnecessarily (scripts run as root)
      • Ignoring network readiness in startup timing
      • Using wrong package manager for Debian-based VM
      5. You want to automate VM setup to install Apache, create a website folder, and start the service on boot. Which startup script snippet correctly achieves this?
      hard
      A. #!/bin/bash apt-get update apt-get install apache2 -y mkdir /var/www/html systemctl enable apache2 systemctl start apache2
      B. #!/bin/bash apt-get install apache2 mkdir /var/www/html service apache2 stop
      C. #!/bin/bash apt-get update apt-get install apache2 -y mkdir -p /var/www/html systemctl start apache2
      D. #!/bin/bash yum update -y yum install apache2 -y mkdir /var/www systemctl restart apache2

      Solution

      1. Step 1: Verify package manager and commands

        For Debian-based VMs, apt-get is correct. Apache package is apache2. Creating /var/www/html is needed.
      2. Step 2: Check service management commands

        #!/bin/bash apt-get update apt-get install apache2 -y mkdir /var/www/html systemctl enable apache2 systemctl start apache2 uses 'systemctl enable' to start Apache on boot and 'systemctl start' to start immediately, which is best practice.
      3. Step 3: Compare other options

        #!/bin/bash apt-get update apt-get install apache2 -y mkdir -p /var/www/html systemctl start apache2 misses enabling service on boot. #!/bin/bash apt-get install apache2 mkdir /var/www/html service apache2 stop stops service instead of starting. #!/bin/bash yum update -y yum install apache2 -y mkdir /var/www systemctl restart apache2 uses yum (wrong for Debian).
      4. Final Answer:

        #!/bin/bash apt-get update apt-get install apache2 -y mkdir /var/www/html systemctl enable apache2 systemctl start apache2 -> Option A
      5. Quick Check:

        Enable and start service for automation [OK]
      Hint: Enable and start services to run on boot in startup scripts [OK]
      Common Mistakes:
      • Forgetting to enable service to start on boot
      • Using wrong package manager for the OS
      • Stopping service instead of starting it