One of Terraform’s most powerful features is its ability to show you exactly what changes it will make before applying them. The terraform plan
command generates an execution plan, detailing the resources to be created, updated, or destroyed. This transparency helps you avoid surprises when deploying infrastructure.
terraform plan
. Terraform will analyze your configurations and current state to produce a detailed plan.-out
flag, e.g., terraform plan -out=myplan.tfplan
.-destroy
flag, e.g., terraform plan -destroy
.Suppose your main.tf
file defines an AWS EC2 instance:
resource "aws_instance" "example" {
ami = "ami-123456"
instance_type = "t2.micro"
}
Running terraform plan
will produce output like this:
Terraform will perform the following actions:
# aws_instance.example will be created
+ resource "aws_instance" "example" {
+ ami = "ami-123456"
+ instance_type = "t2.micro"
...
}
Plan: 1 to add, 0 to change, 0 to destroy.
This output tells you that Terraform will create one new resource (aws_instance.example
).
If you want to save this plan to apply it later, run terraform plan -out=example.tfplan
. This stores the plan in a file that can be used with the terraform apply
command.
Imagine you're about to deploy changes to a production environment. Running terraform plan
allows you to review the impact of those changes in advance, giving you a chance to catch potential issues before they occur. Sharing the plan with stakeholders also ensures everyone is aligned on what’s about to happen.
The terraform plan
command is your crystal ball for infrastructure management. By showing you what changes will occur, it helps you maintain control and confidence over your deployments. Always plan before you apply!