Bird
Raised Fist0
Terraformcloud~5 mins

Terraform state rm for removing resources - 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 does the terraform state rm command do?
It removes a resource from Terraform's state file without deleting the actual resource in the cloud or infrastructure.
Click to reveal answer
intermediate
Why would you use terraform state rm instead of terraform destroy?
Because terraform state rm only removes the resource from Terraform's tracking, leaving the resource intact, while terraform destroy deletes the resource from the infrastructure.
Click to reveal answer
beginner
What is a common use case for terraform state rm?
When a resource is deleted manually outside Terraform, and you want to remove it from the state file to avoid errors during future Terraform runs.
Click to reveal answer
beginner
How do you specify which resource to remove using terraform state rm?
You provide the resource address, like terraform state rm aws_instance.example, where aws_instance.example is the resource address in the state.
Click to reveal answer
intermediate
What should you be careful about when using terraform state rm?
Removing a resource from state means Terraform no longer manages it, so changes or deletions to that resource won't be tracked or applied by Terraform.
Click to reveal answer
What happens to the actual cloud resource when you run terraform state rm?
AThe resource remains in the cloud but is removed from Terraform's state.
BThe resource is deleted from the cloud.
CTerraform updates the resource configuration.
DTerraform backs up the resource.
Which command would you use to delete a resource both from Terraform and the cloud?
Aterraform state rm
Bterraform destroy
Cterraform apply
Dterraform init
If a resource was deleted manually outside Terraform, what should you do to avoid errors in Terraform runs?
ANothing, Terraform will handle it automatically.
BRun <code>terraform apply</code> immediately.
CRun <code>terraform init</code> again.
DRun <code>terraform state rm</code> for that resource.
How do you specify the resource to remove in terraform state rm?
ABy resource ID in the cloud provider console.
BBy resource tag.
CBy resource address in Terraform state, like <code>aws_instance.example</code>.
DBy resource type only.
What is a risk of using terraform state rm carelessly?
ATerraform will lose track of the resource and not manage future changes.
BTerraform might delete the resource accidentally.
CTerraform will crash during apply.
DThe resource will be duplicated.
Explain what terraform state rm does and when you would use it.
Think about managing Terraform's knowledge of resources versus the actual resources.
You got /4 concepts.
    Describe the difference between terraform state rm and terraform destroy.
    One affects Terraform's tracking, the other affects the real resource.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the terraform state rm command do?
      easy
      A. Deletes the resource from the cloud provider and Terraform state
      B. Removes a resource from Terraform's state without deleting the actual resource
      C. Updates the resource configuration in Terraform files
      D. Creates a new resource and adds it to the state

      Solution

      1. Step 1: Understand the purpose of terraform state rm

        This command tells Terraform to stop tracking a resource by removing it from the state file.
      2. Step 2: Recognize it does not delete the actual resource

        The real resource remains intact in the cloud; only Terraform forgets it.
      3. Final Answer:

        Removes a resource from Terraform's state without deleting the actual resource -> Option B
      4. Quick Check:

        State removal only forgets resource [OK]
      Hint: Remember: state rm forgets resource, does not delete it [OK]
      Common Mistakes:
      • Thinking it deletes the actual resource
      • Confusing it with terraform destroy
      • Assuming it updates resource configuration
      2. Which of the following is the correct syntax to remove a resource named aws_instance.example from Terraform state?
      easy
      A. terraform rm state aws_instance.example
      B. terraform remove aws_instance.example
      C. terraform state rm aws_instance.example
      D. terraform state delete aws_instance.example

      Solution

      1. Step 1: Recall the correct command structure

        The command to remove a resource from state is terraform state rm <resource_name>.
      2. Step 2: Match the resource name format

        The resource name is aws_instance.example, so the full command is terraform state rm aws_instance.example.
      3. Final Answer:

        terraform state rm aws_instance.example -> Option C
      4. Quick Check:

        Correct command syntax [OK]
      Hint: Use 'terraform state rm' followed by resource name [OK]
      Common Mistakes:
      • Swapping 'rm' and 'state' keywords
      • Using 'remove' or 'delete' instead of 'rm'
      • Incorrect command order
      3. Given the following Terraform state command:
      terraform state rm aws_s3_bucket.my_bucket

      What will happen after running this command?
      medium
      A. Terraform will remove the S3 bucket from state but the bucket remains in AWS
      B. Terraform will update the S3 bucket configuration in the state
      C. Terraform will delete the S3 bucket from AWS and remove it from state
      D. Terraform will show an error because the command is incomplete

      Solution

      1. Step 1: Understand the effect of terraform state rm

        This command removes the resource from Terraform's state file only.
      2. Step 2: Recognize the real resource remains untouched

        The actual S3 bucket in AWS is not deleted or changed by this command.
      3. Final Answer:

        Terraform will remove the S3 bucket from state but the bucket remains in AWS -> Option A
      4. Quick Check:

        State removal keeps resource intact [OK]
      Hint: State rm forgets resource, does not delete it in cloud [OK]
      Common Mistakes:
      • Assuming the resource is deleted from AWS
      • Thinking the state file is updated with new config
      • Believing the command is incomplete
      4. You ran terraform state rm aws_instance.web but later realized you still want Terraform to manage this instance. What is the best way to fix this?
      medium
      A. Run terraform import aws_instance.web <instance_id> to re-add it to state
      B. Run terraform state add aws_instance.web to add it back
      C. Run terraform state rm aws_instance.web again to undo
      D. Delete the instance manually and recreate it

      Solution

      1. Step 1: Understand that terraform state rm only removes from state

        Once removed, Terraform no longer tracks the resource.
      2. Step 2: Use terraform import to re-add the existing resource to state

        This command links the real resource back to Terraform's state file.
      3. Final Answer:

        Run terraform import aws_instance.web <instance_id> to re-add it to state -> Option A
      4. Quick Check:

        Import command restores resource to state [OK]
      Hint: Use terraform import to re-add removed resources [OK]
      Common Mistakes:
      • Trying to use a non-existent 'state add' command
      • Running state rm again expecting undo
      • Deleting resource unnecessarily
      5. You want to stop managing a resource google_compute_instance.vm1 with Terraform but keep it running in your cloud. Which sequence of commands achieves this safely?
      hard
      A. Run terraform state rm google_compute_instance.vm1 then manually delete the resource
      B. Run terraform destroy -target=google_compute_instance.vm1 to remove it from cloud and state
      C. Remove the resource block from Terraform files and run terraform apply
      D. Run terraform state rm google_compute_instance.vm1 only to remove it from state and keep it running

      Solution

      1. Step 1: Use terraform state rm to remove resource from state

        This stops Terraform from managing the resource but does not delete it.
      2. Step 2: Avoid deleting the resource or removing config to keep it running

        Deleting or removing config and applying would delete or recreate the resource.
      3. Final Answer:

        Run terraform state rm google_compute_instance.vm1 only to remove it from state and keep it running -> Option D
      4. Quick Check:

        State rm forgets resource, keeps it running [OK]
      Hint: State rm removes from Terraform control, resource stays alive [OK]
      Common Mistakes:
      • Deleting resource after state rm
      • Using terraform destroy which deletes resource
      • Removing config without state rm causes resource deletion