Olá pessoal, Espero que todos estejam bem.
Na aula 03, onde criamos arquivos com terraform, decidi ir um pouco além do conteudo e pensei, porque não criar um script que pode copiar a pasta de uma aplicaçao ou projeto, e já criar nossa EC2 com estes arquivos? Depois de algumas estudando e utilizando algumas ferramentas, criei este script que faz exatamente isso: Cria uma instancia EC2 já com o codigo do projeto e com a porta 8080 liberada. Gostaria de compartilhar o codigo com voces e, claro, sugestoes sempre vindas.
Obrigado aos instrutores Guilherme Lima e Leonardo Sartorello pelo conteudo.
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.16"
}
}
required_version = ">= 1.2.0"
}
provider "aws" {
region = "us-east-1"
}
resource "aws_instance" "app_server" {
ami = "ami-080e1f13689e07408"
instance_type = "t2.micro"
key_name = "lab"
tags = {
Name = "Primeira Instancia"
}
connection {
type = "ssh"
user = "ubuntu"
private_key = file("~/Desktop/.pem") *local da chave pem*
host = self.public_ip
}
provisioner "file" {
source = "~/Desktop/ecom_tools" - *aqui esta a pasta dos meus arquivos*
destination = "/home/ubuntu/ecom_tools"
}
# Executar script após a cópia dos arquivos
user_data = <<-EOF
#!/bin/bash
nohup busybox httpd -f -p 8080 -h /home/ubuntu/ecom_tools &
EOF
}
resource "aws_security_group" "instance_sg" {
name = "instance_sg"
description = "Security group for instance"
# Regra de ingresso para liberar a porta 8080
ingress {
from_port = 8080
to_port = 8080
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
}