Terraform usage

From wikinotes

Documentation

terraform cli https://www.terraform.io/cli
debugging https://www.terraform.io/internals/debugging

Usage

terraform fmt  # autoformat terraform files

terraform init     # install dependencies
terraform plan     # show what is required to deploy
terraform apply    # deploy instance
terraform destroy  # delete instance

Secrets Management

The simplest way is probably a combination of direnv and pass.

# ${PROJECT}/main.tf

variable "vultr_api_key" {
  type = string
}

provider "vultr" {
  api_key = (var.vultr_api_key)
}

# ...
# ${PROJECT}/.envrc

export TF_VAR_vultr_api_key="$(pass foo/bar/api_key)"
cd ${PROJECT}
direnv allow
terraform init