Terraform 시작

김성인·2023년 10월 24일
0

[CI/CD] 🪀Terraform

목록 보기
1/9

https://developer.hashicorp.com/terraform

기본 Syntax

블락타입 "label" {
	key = value
    nested_block {
    	key = value
    }
}
# local_file : provider_resource type
resource "local_file" "hello"{
  filename = "/tmp/hello.txt"
  content = "hello world"
  file_permission = "0777"
}

매개변수

ex)

resource "키워드" label"{
  변수명 = "값"
  변수명 = "값"
}

변수

variable "변수명"{
  key = value
  key = value
}

provider "aws"{
  region = var.변수명
}

${var.변수명}

출력

인스턴스에 대한 매니패스트 정보

output "instance_public_ip"{
  value = aws_instance.example.public_ip
}

Interpolation

동적 값 할당을 위한 방법

resource "aws_security_group" "example"{
  name = "example"
  description = "Example group for ${aws_instance.example.id}"
}

함수

length() ..

조건문

resource "aws_instance" "example"{
  instance_type = var.environment == "prod" ? "t2.large" : "t2.micro"

반복문

variable "instance_count"{
  default = 3
}

resource "aws_instance" "example"{
  count = var.instance_count
  ami = "ami-xxx"
  instance_type = "t2.micro"
  
  tags = {
    Name = "example-instance-${count.index}"
  }
}

terraform init : 프로바이더 디펜던시, Lock/State 파일 생성
terraform plan : 어떤 리소스를 만들지 예시 확인
terraform apply : 만든 리소스 적용
terraform destroy : 만든 리소스 지움

0개의 댓글