Terraform Cheat Sheet

Terraform cheat sheet

terraform init

Initializes a working directory containing Terraform configuration files. This is the first command that should be run after writing a new Terraform configuration or cloning an existing one from version control. It is safe to run this command multiple times.

Command: init

terraform plan

Creates an execution plan, which lets you preview the changes that Terraform plans to make to your infrastructure. By default, when Terraform creates a plan it:

  • Reads the current state of any already-existing remote objects to make sure that the Terraform state is up-to-date.
  • Compares the current configuration to the prior state and note any differences.
  • Proposes a set of change actions that should, if applied, make the remote objects match the configuration.

terraform apply

Executes the actions proposed in a Terraform plan.

terraform apply [options] [plan file]

Command: apply

terraform fmt

Used to rewrite Terraform configuration files to a canonical format and style. This command applies a subset of the Terraform language style conventions, along with other minor adjustments for readability.

terraform fmt

Command: fmt

Style conventions

terraform show

Used to provide human-readable output from a state or plan file. This can be used to inspect a plan to ensure that the planned operations are expected or to inspect the current state as Terraform sees it.

terraform show [options] [file]

Command: show

terraform validate

Validates the configuration files in a directory, referring only to the configuration and not accessing any remote services such as remote state, provider APIs, etc.

Validate runs checks that verify whether a configuration is syntactically valid and internally consistent, regardless of any provided variables or existing state. It is thus primarily useful for the general verification of reusable modules, including the correctness of attribute names and value types.

It is safe to run this command automatically, for example as a post-save check in a text editor or as a test step for a reusable module in a CI system.

terraform validate

Validation requires an initialized working directory with any referenced plugins and modules installed. To initialize a working directory for validation without accessing any configured backend, use:

terraform init -backend=false

Command: validate

Last modified July 21, 2024: update (e2ae86c)