Step-by-Step Tutorial for Using the
removed
Block in Terraform
Step by Step in terraform To remove a resource from your Terraform configuration & state file without destroying the real infrastructure object it manages
Old Method – Using Command Line
Here is a step-by-step guide to remove a resource from your Terraform configuration and state file without destroying the real infrastructure object:
1. Identify the Resource to Be Removed
- Locate the resource in your Terraform configuration that you want to remove.
- Note the resource’s name and type (e.g.,
aws_instance.example
).
2. Run the terraform state rm
Command
- The
terraform state rm
command removes a resource from the Terraform state file without affecting the real infrastructure. - Use the following syntax:
terraform state rm <resource_address>
- Example:
terraform state rm aws_instance.example
3. Verify State File Update
- Check the Terraform state to ensure the resource has been removed:
terraform state list
- Confirm that the resource no longer appears in the list.
4. Remove the Resource from Configuration
- Open your Terraform configuration file (
*.tf
). - Delete the corresponding block of the resource you removed from the state file.
5. Run terraform plan
to Validate
- Execute a
terraform plan
to ensure the configuration aligns with the state:terraform plan
- Verify that Terraform does not attempt to recreate the resource you just removed.
6. Apply Changes (If Necessary)
- If the
terraform plan
shows changes due to dependent resources, apply those changes to update the infrastructure:terraform apply
Best Practices
- Backup the State File: Always backup your
terraform.tfstate
file before making changes.cp terraform.tfstate terraform.tfstate.bak
- Use Workspaces if Required: Ensure you are in the correct workspace if you’re managing multiple environments.
Result
The resource is no longer managed by Terraform but still exists in the real infrastructure.
New Method using Removed Block
The removed
block in Terraform (introduced in version 1.7) provides a safe way to remove resources from the Terraform state without destroying them in the real infrastructure. This is especially useful when you want Terraform to stop managing specific resources but retain their existence in your cloud environment.
What is the removed
Block?
The removed
block explicitly informs Terraform that certain resources are no longer managed by the configuration. During terraform apply
, Terraform removes these resources from the state without attempting to delete them in the actual infrastructure.
# Step 1: Identify the resource
resource "aws_instance" "example" {
ami = "ami-12345678"
instance_type = "t2.micro"
}
# Step 2: Replace the resource block with the removed block
removed {
from = aws_instance.example
}
# Step 3: Run Terraform commands
terraform plan
terraform apply
- Top 10 Website Development Companies in Vadodara - December 20, 2024
- Compare SAST, DAST and RASP & its Tools for DevSecOps - December 19, 2024
- Comparing AWS, Azure, and Google Cloud in terms of services - December 19, 2024