Bird
Raised Fist0
Terraformcloud~20 mins

When workspaces are appropriate in Terraform - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Terraform Workspace Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Purpose of Terraform Workspaces

Which scenario best describes when to use Terraform workspaces?

AManaging multiple environments like dev, staging, and prod within the same configuration.
BStoring sensitive variables securely outside of Terraform state files.
CRunning Terraform commands faster by caching resources locally.
DAutomatically scaling cloud resources based on traffic.
Attempts:
2 left
💡 Hint

Think about how Terraform separates state for different deployments.

Architecture
intermediate
2:00remaining
Workspace Usage in Infrastructure Architecture

You have a Terraform configuration for a web app. You want to deploy it to two AWS accounts: one for testing and one for production. How should you use workspaces?

AUse one workspace and change the AWS provider credentials manually before each deploy.
BCreate separate workspaces named 'test' and 'prod' and switch between them to deploy to each account.
CCreate multiple Terraform configurations, one per account, without using workspaces.
DUse workspaces only for different regions, not accounts.
Attempts:
2 left
💡 Hint

Workspaces help manage multiple states but consider provider credentials.

service_behavior
advanced
2:00remaining
Effect of Workspace Switch on Terraform State

What happens to the Terraform state when you switch from the 'default' workspace to a new workspace named 'feature'?

ATerraform loads a separate state file for 'feature', isolating its resources from 'default'.
BTerraform merges the 'feature' workspace state with the 'default' workspace state.
CTerraform deletes the 'default' workspace state and replaces it with 'feature' state.
DTerraform keeps using the 'default' workspace state regardless of the switch.
Attempts:
2 left
💡 Hint

Think about how workspaces isolate state files.

security
advanced
2:00remaining
Security Considerations with Terraform Workspaces

Which statement about security when using Terraform workspaces is true?

AWorkspaces store sensitive data separately from the state file to enhance security.
BWorkspaces automatically encrypt all sensitive variables in the state file.
CUsing multiple workspaces prevents unauthorized access to any state files by default.
DWorkspaces do not encrypt state files; sensitive data must be protected by backend encryption or access controls.
Attempts:
2 left
💡 Hint

Consider how Terraform stores state and sensitive data.

Best Practice
expert
2:00remaining
Best Practice for Using Workspaces in Large Teams

In a large team managing multiple environments with Terraform, what is the best practice regarding workspaces?

AUse a single workspace for all environments to simplify management.
BCreate one workspace per team member to avoid conflicts.
CUse workspaces only for short-lived feature branches; use separate configurations or backends for long-term environments.
DAvoid workspaces entirely and manage state files manually.
Attempts:
2 left
💡 Hint

Think about state isolation and team collaboration challenges.

Practice

(1/5)
1. What is the main purpose of using terraform workspaces?
easy
A. To store Terraform modules
B. To write Terraform code faster
C. To manage multiple environments like development and production with one configuration
D. To increase the speed of Terraform apply

Solution

  1. Step 1: Understand workspace purpose

    Workspaces allow you to keep separate states for different environments using the same Terraform code.
  2. Step 2: Compare options

    Options A, B, and C do not relate to managing environments or state separation.
  3. Final Answer:

    To manage multiple environments like development and production with one configuration -> Option C
  4. Quick Check:

    Workspaces = separate environment states [OK]
Hint: Workspaces separate states for different environments [OK]
Common Mistakes:
  • Thinking workspaces speed up Terraform runs
  • Confusing workspaces with modules
  • Believing workspaces store code
2. Which command correctly switches to a workspace named testing?
easy
A. terraform workspace select testing
B. terraform switch workspace testing
C. terraform workspace switch testing
D. terraform use workspace testing

Solution

  1. Step 1: Recall correct workspace switch syntax

    The correct command to switch workspaces is terraform workspace select [name].
  2. Step 2: Validate options

    Options A, B, and D use incorrect command syntax not recognized by Terraform.
  3. Final Answer:

    terraform workspace select testing -> Option A
  4. Quick Check:

    Switch workspace = terraform workspace select [name] [OK]
Hint: Use 'terraform workspace select <name>' to switch [OK]
Common Mistakes:
  • Using 'switch' instead of 'select'
  • Mixing command order
  • Adding extra words like 'workspace' twice
3. Given the commands below, what will be the output of terraform workspace show after these steps?
terraform workspace new dev
terraform workspace select dev
terraform workspace new prod
terraform workspace select prod
terraform workspace show
medium
A. prod
B. dev
C. default
D. Error: workspace not found

Solution

  1. Step 1: Follow workspace creation and switching

    First, 'dev' workspace is created and switched to. Then 'prod' workspace is created and switched to.
  2. Step 2: Check current workspace

    After switching to 'prod', running 'terraform workspace show' outputs the current workspace name, which is 'prod'.
  3. Final Answer:

    prod -> Option A
  4. Quick Check:

    Last switched workspace = prod [OK]
Hint: Last 'terraform workspace select' sets current workspace [OK]
Common Mistakes:
  • Assuming default workspace remains active
  • Confusing creation with switching
  • Expecting error without reason
4. You run terraform workspace select staging but get an error saying the workspace does not exist. What should you do to fix this?
medium
A. Rename the workspace to default
B. Run terraform init again
C. Delete the current workspace and try again
D. Run terraform workspace new staging to create it first

Solution

  1. Step 1: Understand error cause

    The error means the workspace 'staging' does not exist yet in Terraform state.
  2. Step 2: Create the missing workspace

    Use terraform workspace new staging to create it before switching.
  3. Final Answer:

    Run terraform workspace new staging to create it first -> Option D
  4. Quick Check:

    Workspace must exist before select [OK]
Hint: Create workspace before using it [OK]
Common Mistakes:
  • Trying to switch without creating workspace
  • Reinitializing Terraform unnecessarily
  • Deleting workspaces without cause
5. You want to manage three environments: dev, test, and prod using one Terraform configuration. Which approach best uses workspaces to achieve this safely?
hard
A. Use one workspace and manually change resource names for each environment
B. Create separate workspaces named dev, test, prod and switch before applying changes
C. Create three separate Terraform configurations for each environment
D. Use workspaces only for prod and dev, but not test

Solution

  1. Step 1: Identify workspace use for multiple environments

    Workspaces allow managing multiple environment states with one config by switching between them.
  2. Step 2: Evaluate options for safety and simplicity

    Create separate workspaces named dev, test, prod and switch before applying changes uses separate workspaces for each environment, which is safe and clean. Use one workspace and manually change resource names for each environment risks conflicts. Create three separate Terraform configurations for each environment duplicates code. Use workspaces only for prod and dev, but not test is inconsistent.
  3. Final Answer:

    Create separate workspaces named dev, test, prod and switch before applying changes -> Option B
  4. Quick Check:

    Separate workspaces = safe multi-env management [OK]
Hint: Use one workspace per environment for safety [OK]
Common Mistakes:
  • Mixing environments in one workspace
  • Duplicating configs unnecessarily
  • Ignoring test environment