Introduction
Terraform allows you to automate your infrastructure tasks, making it easier to manage complex infrastructure environments.
In this article, I'll explore the essential Terraform commands that include terraform init
, terraform plan
, terraform apply
, terraform destroy
, terraform state
, terraform validate
, terraform fmt
, and terraform providers
.
We'll also discuss the options of the terraform apply
command that enable you to customize how Terraform applies changes.
terraform init
terraform init
initializes a new or existing Terraform project by downloading the necessary providers and modules, creating a .terraform directory to store configuration files, and generating a terraform.tfstate file to store the current state of your infrastructure.
csharp
$ terraform init
terraform plan
terraform plan
analyzes your Terraform code and shows you what resources will be created, modified, or destroyed.
$ terraform plan
terraform apply
terraform apply
applies the changes that Terraform planned in the previous step by creating, modifying, or destroying the resources that you've defined in your Terraform code.
$ terraform apply
In addition to the basic usage of terraform apply
, there are several options that you can use to customize how Terraform applies changes.
-auto-approve
This option automatically approves and applies the changes without prompting for confirmation.
$ terraform apply -auto-approve
-var
This option allows you to specify variable values at the command line.
$ terraform apply -var="region=us-west-2"
-target
This option allows you to apply changes to a specific resource instead of applying changes to all resources.
$ terraform apply -target=aws_instance.example
-input=false
This option disables user input, such as confirmation prompts or variable input.
$ terraform apply -input=false
-parallelism=n
This option allows you to control the number of resource operations that Terraform performs in parallel.
$ terraform apply -parallelism=10
-refresh=false
This option disables the refreshing of state data before applying changes.
$ terraform apply -refresh=false
terraform destroy
terraform destroy
destroys the resources that Terraform has created. This command is useful when you want to tear down your infrastructure or start fresh.
$ terraform destroy
terraform state
terraform state
manages the state of your infrastructure by allowing you to view and modify the state of your resources in the terraform.tfstate file.
$ terraform state list
terraform validate
terraform validate
validates your Terraform code by checking for syntax errors, invalid references, and other issues.
$ terraform validate
terraform fmt
terraform fmt
formats your Terraform code consistently and makes it easier to read and understand.
$ terraform fmt
terraform providers
terraform providers
manages the providers that you use in your Terraform code by allowing you to list, install, and update providers.
$ terraform providers
References