Terraform usage: Difference between revisions
From wikinotes
(Created page with " = Usage = <blockquote> <syntaxhighlight lang="bash"> terraform fmt # autoformat terraform files </syntaxhighlight> </blockquote><!-- Usage -->") |
|||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Documentation = | |||
<blockquote> | |||
{| class="wikitable" | |||
|- | |||
| terraform cli || https://www.terraform.io/cli | |||
|- | |||
| debugging || https://www.terraform.io/internals/debugging | |||
|- | |||
|} | |||
</blockquote><!-- Documentation --> | |||
= Usage = | = Usage = | ||
Line 5: | Line 14: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
terraform fmt # autoformat terraform files | 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 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Usage --> | </blockquote><!-- Usage --> | ||
= Secrets Management = | |||
<blockquote> | |||
The simplest way is probably a combination of [[direnv]] and [[pass]]. | |||
<syntaxhighlight lang="tf"> | |||
# ${PROJECT}/main.tf | |||
variable "vultr_api_key" { | |||
type = string | |||
} | |||
provider "vultr" { | |||
api_key = (var.vultr_api_key) | |||
} | |||
# ... | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash"> | |||
# ${PROJECT}/.envrc | |||
export TF_VAR_vultr_api_key="$(pass foo/bar/api_key)" | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash"> | |||
cd ${PROJECT} | |||
direnv allow | |||
terraform init | |||
</syntaxhighlight> | |||
</blockquote><!-- Secrets Management --> |
Latest revision as of 21:38, 25 September 2022
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