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
Terraform destroy for cleanup
📖 Scenario: You have created a simple cloud infrastructure using Terraform. Now, you want to learn how to clean up and remove all the resources you created to avoid extra costs.
🎯 Goal: Learn how to write a Terraform configuration for a basic resource and then use terraform destroy to clean up the resources safely.
📋 What You'll Learn
Create a Terraform configuration file with a simple resource
Initialize Terraform in the project directory
Apply the Terraform configuration to create the resource
Use terraform destroy to remove the resource
💡 Why This Matters
🌍 Real World
Cloud engineers often create resources for testing or development. Cleaning up with <code>terraform destroy</code> helps avoid unnecessary costs and keeps the cloud environment tidy.
💼 Career
Knowing how to safely create and destroy infrastructure with Terraform is essential for cloud infrastructure management roles.
Progress0 / 4 steps
1
Create a Terraform configuration with an AWS S3 bucket
Create a file named main.tf and write a Terraform configuration that defines an AWS S3 bucket resource named my_bucket with the bucket name my-unique-bucket-12345. Use the AWS provider with region us-east-1.
Terraform
Hint
Start by declaring the AWS provider with the region us-east-1. Then define an S3 bucket resource with the exact name my_bucket and bucket name my-unique-bucket-12345.
2
Initialize Terraform in the project directory
Write the Terraform CLI command to initialize the Terraform working directory so that the AWS provider plugin is downloaded and ready.
Terraform
Hint
Use the command terraform init to prepare your working directory.
3
Apply the Terraform configuration to create the S3 bucket
Write the Terraform CLI command to apply the configuration and create the S3 bucket resource. Use the -auto-approve flag to skip manual approval.
Terraform
Hint
Use terraform apply -auto-approve to create the resources without manual confirmation.
4
Destroy the Terraform-managed infrastructure to clean up
Write the Terraform CLI command to destroy all the resources created by Terraform. Use the -auto-approve flag to skip manual approval.
Terraform
Hint
Use terraform destroy -auto-approve to remove all resources without manual confirmation.
Practice
(1/5)
1. What does the terraform destroy command do?
easy
A. It updates existing resources without deleting them.
B. It deletes all resources created by Terraform in the current workspace.
C. It creates new resources defined in the configuration.
D. It shows the current state of resources without making changes.
Solution
Step 1: Understand the purpose of terraform destroy
This command is designed to remove all resources that Terraform manages in the current workspace. Unlike terraform apply which creates or updates resources, terraform destroy deletes them. It does not just show state or update resources.
Final Answer:
It deletes all resources created by Terraform in the current workspace. -> Option B
Quick Check:
terraform destroy = deletes resources [OK]
Hint: Destroy means delete all created resources [OK]
Common Mistakes:
Confusing destroy with apply
Thinking destroy only shows resources
Assuming destroy updates resources
2. Which of the following is the correct syntax to run terraform destroy without asking for confirmation?
easy
A. terraform destroy -force
B. terraform destroy --yes
C. terraform destroy --confirm
D. terraform destroy -auto-approve
Solution
Step 1: Recall the flag to skip confirmation
The correct flag to skip the confirmation prompt is -auto-approve. -force, --yes, and --confirm are not valid flags for terraform destroy.
Final Answer:
terraform destroy -auto-approve -> Option D
Quick Check:
Skip confirmation = -auto-approve [OK]
Hint: Use -auto-approve to skip confirmation [OK]
Common Mistakes:
Using -force instead of -auto-approve
Typing --yes which is invalid
Assuming --confirm works
3. Given the following Terraform commands run in order: terraform apply -auto-approve terraform destroy What will happen after the second command?
medium
A. All resources created by the first command will be deleted after confirmation.
B. Resources will be updated but not deleted.
C. Nothing will happen because destroy requires -auto-approve.
D. Terraform will show an error because destroy must be run before apply.
Solution
Step 1: Understand the effect of terraform apply -auto-approve
This command creates or updates resources without asking for confirmation. This command will prompt for confirmation before deleting all resources created by Terraform.
Final Answer:
All resources created by the first command will be deleted after confirmation. -> Option A
Quick Check:
Destroy deletes resources after confirmation [OK]
Hint: Destroy deletes resources after confirmation unless skipped [OK]
Common Mistakes:
Thinking destroy needs -auto-approve to work
Believing destroy updates resources
Assuming destroy must run before apply
4. You ran terraform destroy but it failed with an error about a locked state file. What should you do to fix this?
medium
A. Run terraform init again to reset the state.
B. Manually delete the state file from your local machine.
C. Use terraform force-unlock with the lock ID to unlock the state.
D. Delete all resources manually in the cloud provider console.
Solution
Step 1: Understand state locking in Terraform
Terraform locks the state file during operations to prevent conflicts. If locked, commands like destroy fail. terraform force-unlock with the lock ID safely removes the lock so you can continue.
Final Answer:
Use terraform force-unlock with the lock ID to unlock the state. -> Option C
Quick Check:
Unlock state with force-unlock command [OK]
Hint: Use terraform force-unlock to fix locked state errors [OK]
Common Mistakes:
Deleting state file manually causing data loss
Running terraform init which doesn't unlock state
Manually deleting cloud resources instead of fixing state
5. You want to automate cleanup of your test environment using Terraform. Which approach safely destroys all resources without manual confirmation and logs the output to a file?
hard
A. Run terraform destroy -auto-approve > destroy.log to skip confirmation and save output.
B. Run terraform apply -destroy -auto-approve to destroy and log output automatically.
C. Run terraform destroy --force --log=destroy.log to force destroy and log output.
D. Run terraform delete -auto-approve > destroy.log to delete resources and log output.
Solution
Step 1: Identify correct command to destroy without confirmation
terraform destroy -auto-approve skips confirmation safely. Using shell redirection with > destroy.log saves the command output to a log file.
Final Answer:
Run terraform destroy -auto-approve > destroy.log to skip confirmation and save output. -> Option A
Quick Check:
Destroy + auto-approve + output redirection = Run terraform destroy -auto-approve > destroy.log to skip confirmation and save output. [OK]
Hint: Use -auto-approve and > file to automate and log destroy [OK]
Common Mistakes:
Using invalid flags like --force or --log
Confusing apply with destroy for cleanup
Using terraform delete which is not a valid command