반응형
테라폼 모듈화 테스트
디렉토리 구조
.
├── main.tf
├── modules
│ ├── EC2
│ │ ├── main.tf
│ │ └── script
│ │ └── install_web1.sh
│ ├── RDS
│ └── VPC
├── provider.tf
└── variables.tf
루트 모듈
provider.tf
$ vim provider.tf
### ./provider.tf
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "3.25.0"
}
}
}
provider "aws" {
# Configuration options
shared_credentials_file = "~/.aws/credentials"
region = var.aws_region
profile = "terraformA"
}
variables.tf
$ vim variables.tf
### ./variables.tf
variable "aws_region" {
default = "us-east-1"
description = "AWS 리전"
}
main.tf
$ vim main.tf
### ./main.tf
module "launch_template" {
source = "./modules/EC2"
}
EC2 모듈
modules/EC2/main.tf
$ vim modules/EC2/main.tf
### ./modules/EC2/main.tf
resource "aws_key_pair" "tf_key_pair-4wxyz" {
key_name = "4wxyz"
public_key = file("~/aws-key-pair/4wxyz.pub")
}
resource "aws_instance" "my-instance" {
ami = "ami-047a51fa27710816e"
instance_type = "t2.micro"
key_name = aws_key_pair.tf_key_pair-4wxyz.key_name
user_data = file("./modules/EC2/script/install_web1.sh")
}
modules/EC2/script/install_web1.sh
$ vim modules/EC2/script/install_web1.sh
### ./modules/EC2/script/install_web1.sh
#! /bin/bash
sudo yum install -y httpd
sudo systemctl --now enable httpd
echo "<h1>Deployed via Terraform</h1>" | sudo tee /var/www/html/index.html
728x90
반응형
'퍼블릭 클라우드' 카테고리의 다른 글
[Terraform] 테라폼 모듈화 테스트 (0) | 2021.02.17 |
---|---|
[ping] Pingcloud-cli 툴 (0) | 2021.02.10 |
[Terraform] 테라폼 키 페어 생성 (0) | 2021.02.03 |
[Terraform] 테라폼 보안 그룹에 정책 추가 (0) | 2021.02.03 |
[Terraform] 테라폼 ALB(로드밸런서) 생성 (0) | 2021.02.03 |