https://developer.hashicorp.com/terraform
블락타입 "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
}
동적 값 할당을 위한 방법
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
: 만든 리소스 지움