728x90
반응형
# 테라폼에서 변수를 활용한 인프라 생성
- 변수를 활용한 인프라 생성은 재사용 측면에서 유용하다. 변수값만 변경하여 새로운 리소스 환경을 생성할 수 있다.
- 일단 파일의 구성은 아래와 같다. (main.tf, output.tf, vars.tf)
- 생성할 테라폼 main.tf 코드는 아래와 같다.
provider "aws" {
region = "ap-northeast-2"
}
resource "aws_instance" "example" {
ami = "ami-0eddbd81024d3fbdd"
instance_type = "t2.micro"
vpc_security_group_ids = ["${aws_security_group.instance.id}"]
user_data = <<-EOF
#!/bin/bash
sudo yum install -y httpd -f -p "${var.server_port}"
echo "Honglab WebServer" > /var/www/html/index.html
sudo systemctl start httpd
sudo systemctl enable httpd
EOF
tags = {
Name = "terraform-example"
}
}
resource "aws_security_group" "instance" {
name = "terraform-example-instance"
ingress {
from_port = var.server_port
to_port = var.server_port
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
}
- vars.tf 파일의 내용은 아래와 같다.
아래의 코드를 설명하면
description : 해당 변수를 설명
default : 기본값 (기본값에 따라 타입을 자동으로 설정)
type : 타입은 해당 변수값의 타입을 지정하는 옵션이다. string외에도 다른 속성 값들이 존재한다.
variable "server_port" {
description = "The port the server will use for HTTP requests"
default = 8080
}
- output.tf 파일의 내용은 아래와 같다.
output "public_ip" {
value = aws_instance.example.public_ip
}
728x90
반응형