테라폼을 이용하여 젠킨스 EC2 서버 배포 하기 !
provider "aws" {
region = "ap-northeast-2"
}
module "security_group" {
source = "../modules/security-group"
}
resource "aws_instance" "jenkins_server" {
ami = var.ami
instance_type = var.instance_type
security_groups = [module.security_group.sg_id]
user_data = <<-EOF
#!/bin/bash
set -e
# Java 설치
sudo dnf install -y java-17-amazon-corretto
# Jenkins 레포 등록
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
# sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key
# Jenkins 설치
sudo dnf install -y jenkins
# Jenkins 서비스 실행
sudo systemctl enable jenkins
sudo systemctl start jenkins
EOF
tags = {
Name = "jenkins-server"
}
}
resource "aws_security_group" "jenkins_sg" {
# Jenkins UI (8080 포트)
ingress {
from_port = 8080
to_port = 8080
protocol = "tcp"
cidr_blocks = [""] // ip addr
}
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = [""] // ip addr
}
# 모든 아웃바운드 트래픽 허용
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
output "sg_id" {
value = aws_security_group.jenkins_sg.id
}
terraform init
terraform apply
간단한 젠킨스 서버 배포완료