Bird
Raised Fist0
Terraformcloud~20 mins

Terraform plan for preview - 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 Plan Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ service_behavior
intermediate
2:00remaining
What does the Terraform plan command show?

When you run terraform plan, what is the main output you see?

AThe current state of your infrastructure after applying changes.
BA detailed log of errors encountered during deployment.
CThe final cost estimate of your cloud resources.
DA list of changes Terraform will make to your infrastructure without applying them.
Attempts:
2 left
💡 Hint

Think about what you want to see before making changes.

🧠 Conceptual
intermediate
2:00remaining
Why use Terraform plan before apply?

Why is it important to run terraform plan before terraform apply?

ATo speed up the deployment by skipping validation.
BTo preview changes and avoid unexpected modifications to infrastructure.
CTo delete all existing resources before creating new ones.
DTo automatically fix errors in the configuration files.
Attempts:
2 left
💡 Hint

Consider safety and control over infrastructure changes.

❓ Configuration
advanced
2:00remaining
Which Terraform command previews changes without applying?

Given these commands, which one previews infrastructure changes without applying them?

Aterraform plan
Bterraform apply -auto-approve
Cterraform destroy
Dterraform init
Attempts:
2 left
💡 Hint

Look for the command that shows changes but does not make them.

❓ Architecture
advanced
2:00remaining
What does Terraform plan use to compare infrastructure?

When running terraform plan, what two sources does Terraform compare to decide what changes to show?

AThe last applied plan and the current configuration files.
BThe cloud provider's billing data and the state file.
CThe current state file and the desired configuration files.
DThe local machine's resource usage and the cloud provider's API.
Attempts:
2 left
💡 Hint

Think about what Terraform knows and what you want it to do.

❓ security
expert
3:00remaining
What security risk can occur if you skip Terraform plan?

If you skip running terraform plan and directly run terraform apply, what security risk might you face?

AUnintended deletion or exposure of sensitive resources without review.
BAutomatic encryption of all data without user consent.
CTerraform will disable all security groups by default.
DYour credentials will be logged in plain text in the state file.
Attempts:
2 left
💡 Hint

Consider what happens if changes are applied without preview.

Practice

(1/5)
1. What is the main purpose of the terraform plan command?
easy
A. To destroy all existing infrastructure
B. To apply changes directly to cloud resources
C. To initialize the Terraform working directory
D. To preview changes Terraform will make without applying them

Solution

  1. Step 1: Understand the role of terraform plan

    This command shows what changes Terraform will make but does not apply them.
  2. Step 2: Compare with other commands

    terraform apply applies changes, terraform destroy removes resources, and terraform init initializes the directory.
  3. Final Answer:

    To preview changes Terraform will make without applying them -> Option D
  4. Quick Check:

    Preview changes = terraform plan [OK]
Hint: Plan previews changes, apply makes changes [OK]
Common Mistakes:
  • Confusing plan with apply
  • Thinking plan modifies resources
  • Mixing plan with init or destroy
2. Which of the following is the correct syntax to run a Terraform plan with a specific variable file named vars.tfvars?
easy
A. terraform plan --vars-file=vars.tfvars
B. terraform plan --varfile vars.tfvars
C. terraform plan -var-file=vars.tfvars
D. terraform plan -varfile=vars.tfvars

Solution

  1. Step 1: Recall correct flag for variable files

    The correct flag is -var-file with a hyphen between var and file.
  2. Step 2: Check syntax correctness

    terraform plan -var-file=vars.tfvars uses -var-file=vars.tfvars, which is the official syntax. Other options use incorrect flags.
  3. Final Answer:

    terraform plan -var-file=vars.tfvars -> Option C
  4. Quick Check:

    Use -var-file=filename for variable files [OK]
Hint: Use -var-file=filename to specify variable files [OK]
Common Mistakes:
  • Using --varfile instead of -var-file
  • Mixing underscores or missing hyphens
  • Using --vars-file which is invalid
3. Given this Terraform plan output snippet:
  # aws_instance.example will be created
  + resource "aws_instance" "example" {
      + ami           = "ami-123456"
      + instance_type = "t2.micro"
    }

What does the plus sign (+) before the resource indicate?
medium
A. The resource will be created
B. The resource will be destroyed
C. The resource will be updated in place
D. The resource is unchanged

Solution

  1. Step 1: Understand Terraform plan symbols

    The plus sign (+) means Terraform plans to add or create the resource.
  2. Step 2: Differentiate from other symbols

    Minus (-) means destroy, ~ means update, no symbol means unchanged.
  3. Final Answer:

    The resource will be created -> Option A
  4. Quick Check:

    Plus sign (+) = create resource [OK]
Hint: Plus (+) means create, minus (-) means destroy [OK]
Common Mistakes:
  • Confusing + with update or destroy
  • Ignoring symbols and guessing
  • Assuming no symbol means create
4. You run terraform plan but get this error:
Error: No configuration files found!

What is the most likely cause?
medium
A. You ran the command outside the Terraform configuration directory
B. You forgot to run terraform init first
C. Your Terraform version is outdated
D. Your cloud provider credentials are missing

Solution

  1. Step 1: Analyze the error message

    The error says no configuration files found, meaning Terraform can't find .tf files.
  2. Step 2: Identify common causes

    This usually happens if you run the command outside the folder containing Terraform files.
  3. Final Answer:

    You ran the command outside the Terraform configuration directory -> Option A
  4. Quick Check:

    No config files = wrong directory [OK]
Hint: Run plan inside folder with .tf files [OK]
Common Mistakes:
  • Assuming init fixes missing files
  • Blaming credentials for config file errors
  • Ignoring current working directory
5. You want to preview changes only for a specific resource named aws_s3_bucket.mybucket without affecting others. Which command achieves this?
hard
A. terraform plan -only=aws_s3_bucket.mybucket
B. terraform plan -target=aws_s3_bucket.mybucket
C. terraform plan --filter=aws_s3_bucket.mybucket
D. terraform plan -resource=aws_s3_bucket.mybucket

Solution

  1. Step 1: Recall how to target specific resources in plan

    The -target flag limits the plan to specified resources.
  2. Step 2: Verify correct flag usage

    terraform plan -target=aws_s3_bucket.mybucket uses -target=aws_s3_bucket.mybucket, which is the correct syntax. Other options are invalid flags.
  3. Final Answer:

    terraform plan -target=aws_s3_bucket.mybucket -> Option B
  4. Quick Check:

    Use -target to preview specific resources [OK]
Hint: Use -target=resource_name to limit plan scope [OK]
Common Mistakes:
  • Using non-existent flags like -only or --filter
  • Forgetting to specify resource type and name
  • Assuming plan always shows all resources