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 |