1. macos

   brew tap hashicorp/tap

   brew install hashicorp/tap/terraform

 

2. centos 설치

  sudo yum -y install terraform

  sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo

  sudo yum -y install terraform

 

3. aws 인증 설정

   $ export AWS_ACCESS_KEY_ID=(your access key id)

   $ export AWS_SECRET_ACCESS_KEY=(your secret access key)

 

4. terraform 예제

   aws instance 생성 예제

   resource "aws_security_group" "vm" {

         name = "vm instance"

 

         ingress {

              from_port      =  8080

              to_port           =  8080

              protocol         = "tcp"

              cider_blocks  = [ "0.0.0.0/0" ]

         }

   }

 

   resource "aws_instance" "test" {

         ami                                = "ami-xxxxxxxx"

         instance_type              = "t2.micro"

         vpc_security_group_ids = [aws_security_group.instance.id]

 

         user_date = <<-EOF

                     #!/bin/bash

                     echo  "Hello, World" > index.html

                     nohup busybox  httpd -f -p 8080 &

                     EOF

         user_data_replace_on_change = true

 

         tags = {

                     Name = "test.."

         }

   }

 

4. terraform 변수 선언

variable "NAME" {

    description :  "변수에 대한 설명 기술"

    default: "변수의 값, command : -var, file: -var-file, 환경변수: TF_VAR_<variable_name>"

    type: "string, number, bool, list, map, set, object, tuple, any:default... ex: list(number), map(string), type = object({ name = string age = number})"

    validation: "input 값에 대한 validation 정의"

    sensitive: "중요한 정보일 경우 true로 셋팅, 해당 값에 log 되지 않음"    

}

 

output  "NAME" {

     value = "출력하고자 하는 terraform 표현 ex: aws_instance.test.public_ip"

     description = "output value가 어떤건지 설명"

     sensitive = "민감한 정보일 경우 true로 log가 되지 않게 처리"

     depends_on = "code끼지 dependency가 있을 경우"

}

'cloud > IaC' 카테고리의 다른 글

module code for terraform  (0) 2023.08.23
how to use terraform regarding google cloud  (0) 2023.08.21
google terraform IAC example  (0) 2023.08.16

+ Recent posts