Install

  • Install Doc

  • Linux

    1
    2
    3
    4
    wget https://releases.hashicorp.com/terraform/1.7.5/terraform_1.7.5_linux_amd64.zip
    unzip terraform_1.7.5_linux_amd64.zip
    mv terraform /usr/local/bin/
    terraform version

HashiCorp Configuration Language (HCL)

1
2
3
4
<block> <parameters> {
key1 = value1
key2 = value2
}

image-20240324111828041

Simple Case

  • local.tf

    1
    2
    3
    4
    resource "local_file" "hello" {
    filename = "../hello-terrafrom/hello.txt"
    content = "hello world"
    }
  • terraform init

    image-20240324174137663

  • terraform plan

    image-20240324174239152

  • tefform apply

    image-20240324174311669

  • terraform show

    image-20240324175612805

  • terraform destroy

    image-20240324200600716

Terraform Concepts

image-20240324200904227

input variables

variables.tf

image-20240324201120735

variables empty in variables.tf

image-20240324202128085

  • interactive mode

    image-20240324202200917

  • command line flags

    image-20240324202221246

  • environment variables

    image-20240324202249183

  • variable defination file

    image-20240324202406524

Varivable definition precedence

image-20240324202604670

image-20240324202617482

Resource Attribute Reference

image-20240324203209622

Resource Dependencies

image-20240324203419226

image-20240324203507611

output variables

image-20240324203800353

image-20240324203909320

lifecycle

image-20240324205704571

create_before_destroy

  • before

    image-20240324205030729

  • after

    image-20240324205109096

prevent_destroy

image-20240324205255055

ignore_changes

image-20240324205645392

Data source

image-20240324210150157

Resource and Data source

image-20240324210253805

for_each

  • loop in terraform

    image-20240324210652566

Reference