본문 바로가기

네이버클라우드플랫폼(Ncloud)/테라폼

테라폼 NGINX - Tomcat연동

Centos 7.8 기준

NGINX , Tomcat 연동

서버 이미지는

cat << EOF > /etc/yum.repos.d/nginx.repo
[nginx]
name=Nginx Repository \$basearch - Archive
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
enabled=1
gpgcheck=1
gpgkey=https://nginx.org/keys/nginx_signing.key
EOF

sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

 

이 내용을 서버에 기록하고 서버이미지를 만듭니다.

 

 

만들고 나면

 

서버이니스크립트에 적어 만들어 보겠습니다.

 

#!/bin/bash
sed -i '10i\    proxy_pass http://localhost:8080;'  /etc/nginx/conf.d/default.conf
systemctl restart nginx

넣을 내용 입니다.

 

localhost로 만들었지만 바꾸어 주시면됩니다.

 

localhost에 저같은 경우 로드밸런서 도메인 데이터 값을 넣었습니다.

data "ncloud_lb" "data_pri_lb" {
  id = ncloud_lb.create_pri_lb.id
}

각자 필요한 참조 값을 넣어주시면 됩니다

.

 

 

#server.tf

#web 이니스크립트
resource "ncloud_init_script" "create_web_init" {
  name = "${var.pnoun}-web-con"
   content    = "#!/bin/bash \n sed -i '10i\\    proxy_pass http://${data.ncloud_lb.data_pri_lb.domain}:8080;'  /etc/nginx/conf.d/default.conf \n systemctl restart nginx"
  depends_on = [ncloud_lb.create_lb]
}
#private server nic
resource "ncloud_network_interface" "create_nic_pri" {
  count                 = length(var.server_pri_CIDR)
  name                  = "${var.pnoun}-pri-nic-${count.index + 1}"
  subnet_no             = ncloud_subnet.create_pri_subnet[count.index].id
  private_ip            = var.server_pri_CIDR[count.index]
  access_control_groups = [ncloud_vpc.create_vpc.default_access_control_group_no]
}
#private server
resource "ncloud_server" "create_pri_sv" {
  count                     = length(var.server_pri_CIDR)
  subnet_no                 = ncloud_subnet.create_pri_subnet[count.index].id
  name                      = "${var.pnoun}-pri-sv-${count.index + 1}"
  member_server_image_no    = 23104957
  server_product_code       = "SVR.VSVR.STAND.C002.M008.NET.HDD.B050.G002"
  description               = "${var.pnoun}-pri-sv-${count.index + 1} is best tip!!"
   init_script_no           = "${ncloud_init_script.create_was_init.id}"
   login_key_name           = ncloud_login_key.create_key.key_name
  network_interface {
    network_interface_no = ncloud_network_interface.create_nic_pri[count.index].id
    order                = 0
  }
}

 

서버이미지번호는 23104957이지만 각자 만든 공유 번호를 넣어주시면 됩니다.

https://bo20cy.tistory.com/8

 

테라폼 Auto Scaling Group 생성(+ 서버이미지 적용)

테라폼 Auto Scaling Group 생성(+ 서버이미지 적용) 테라폼 Lunch Configuration 생성 resource "ncloud_launch_configuration" "lc" { name = "my-lc" server_image_product_code = "SW.VSVR.OS.LNX64.CNTOS.0703.B050" server_product_code = "SVR.VSVR.H

bo20cy.tistory.com

(서버이미지 설명)

 

이제 테라폼만 작동시키면 연동이 완료가 됩니다.

 

output에 공인 ip를 출력하면 더욱 좋습니다.

예시)

#output.tf
output "server_public_ip" {
  value       = ncloud_public_ip.public-ip.*.public_ip
  description = "The public IP of the Instance"
}

 

공인ip 에 들어가 보면

 

톰캣이 받겨줍니다.