general commands
get the terraform version
terraform version
download and update root modules
terraform get -update=true
open up a terraform interactive terminal
terraform console
create a dot diagram of terraform dependencies
terraform graph | dot -Tpng > graph.png
format terraform code to HCL standards
terraform fmt
validate terraform code syntax
terraform validate
enable tab auto-completion in the terminal
terraform -install-autocomplete
show infromation about provider requirements
terraform providers
login and logout of terraform cloud
terraform login and terraform logout
workspaces
list the available workspaces
terraform workspace list
create a new workspace
terraform workspace new development
select an existing workspace
terraform workspace select default
initilize terraform
initialize terraform in the current working directory
terraform init
skip plugin installation
terraform init -get-plugins=false
force plugin installation from a directory
terraform init -plugin-dir=PATH
upgrade modules and plugins at initilization
terraform init -upgrade
update backend configuration
terraform init -migrate-state -force-copy
skip backend configuration
terraform init -backend=false
use a local backend configuration
terraform init -backend-config=FILE
change state lock timeout (default is zero seconds)
terraform init -lock-timeout=120s
plan terraform
produce a plan with diff between code and state
terraform plan
output a plan file for reference during apply
terraform plan -out current.tfplan
output a plan to show effect of terraform destroy
terraform plan -destroy
target a specific resource for deployment
terraform plan -target=ADDRESS
note that the -target option is also available for the terraform apply and terraform destroy commands.
outputs
list available outputs
terraform output
output a specific value
terraform output NAME
apply terraform
apply the current state of terraform code
terraform apply
specify a previously generated plan to apply
terraform apply current.tfplan
enable auto-approval or automation
terraform apply -auto-approve
destroy terraform
destroy resources managed by terraform state
terraform destroy
enable auto-approval or automation
terraform destroy -auto-approve
manage terraform state
list all resources in terraform state
terraform state list
import a manually created resource into state
terraform state import ADDRESS ID
track an existing resource in state under new name
terraform state mv SOURCE DESTINATION
pull state and save to a local file
terraform state pull > terraform.tfstate
push state to a remote location
terraform state push PATH
replace a resource provider
terraform state replace-provider A B
taint a resource to force redeployment on apply
terraform taint ADDRESS
untaint a prevoiusly tainted resource
terraform untaint ADDRESS