Olá segui todos os passos do video mas ao acessar a url do load balanacer para faze ro teste de carga, deu erro 502 na página. Seguem os códigos:
main.tf
terraform {
required_providers{
aws = {
source = "hashicorp/aws"
version = "~> 3.27"
}
}
required_version = ">= 0.14.9"
}
provider "aws" {
region = var.regiao_aws
}
resource "aws_launch_template" "maquina" {
image_id = "ami-0cb91c7de36eed2cb"
instance_type = var.instancia
key_name = var.chave
tags = {
Name = "Terraform Ansible Python"
}
security_group_names = [ var.grupoDeSeguranca ]
user_data = filebase64("ansible.sh")
}
resource "aws_key_pair" "chaveSSH"{
key_name = var.chave
public_key = file("${var.chave}.pub")
}
resource "aws_autoscaling_group" "grupo" {
availability_zones = [ "${var.regiao_aws}a", "${var.regiao_aws}b" ]
name = var.nomeGrupo
max_size = var.maximo
min_size = var.minimo
launch_template {
id = aws_launch_template.maquina.id
version = "$Latest"
}
target_group_arns = [ aws_lb_target_group.alvoLoadBalancer.arn ]
}
resource "aws_default_subnet" "subnet_1"{
availability_zone = "${var.regiao_aws}a"
}
resource "aws_default_subnet" "subnet_2"{
availability_zone = "${var.regiao_aws}b"
}
resource "aws_lb" "loadBalancer"{
internal = false
subnets = [ aws_default_subnet.subnet_1.id,aws_default_subnet.subnet_2.id ]
security_groups = [aws_security_group.acesso_geral.id]
}
resource "aws_lb_target_group" "alvoLoadBalancer"{
name = "maquinasAlvo"
port = "8000"
protocol = "HTTP"
vpc_id = aws_default_vpc.default.id
}
resource "aws_lb_listener" "entradaLoadBalancer"{
load_balancer_arn = aws_lb.loadBalancer.arn
port = "8000"
protocol = "HTTP"
default_action {
type = "forward"
target_group_arn = aws_lb_target_group.alvoLoadBalancer.arn
}
}
resource "aws_default_vpc" "default"{
}
ansible.sh
#!/bin/bash
cd /home/ubuntu
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3 get-pip.py
sudo python3 -m pip install ansible
tee -a playbook.yml > /dev/null <<EOT
- hosts: localhost
tasks:
- name: Instalando o python3, virtualenv
apt:
pkg:
- python3
- virtualenv
update_cache: 'yes'
become: 'yes'
- name: Git Clone
ansible.builtin.git:
repo: 'https://github.com/guilhermeonrails/clientes-leo-api.git'
dest: /home/ubuntu/tcc
version: master
force: yes
- name: Instalando dependencias com pip(django e django Rest)
pip:
virtualenv: /home/ubuntu/tcc/venv
requirements: /home/ubuntu/tcc/requirements.txt
- name: Verificando se o projeto ja existe
stat:
path: /home/ubuntu/tcc/setup/settings.py
register: projeto
- name: Iniciando o projeto
shell: >-
. /home/ubuntu/tcc/venv/bin/activate; django-admin startproject setup
/home/ubuntu/tcc/
when: not projeto.stat.exists
- name: Alterando o hosts do settings
lineinfile:
path: /home/ubuntu/tcc/setup/settings.py
regexp: ALLOWED_HOSTS
line: 'ALLOWED_HOSTS = ["*"]'
backrefs: 'yes'
- name: Instalar setuptools
pip:
name: setuptools
virtualenv: /home/ubuntu/tcc/venv
- name: Configurando o banco de dados
shell: '. /home/ubuntu/tcc/venv/bin/activate; python /home/ubuntu/tcc/manage.py migrate'
- name: Carregando os dados iniciais
shell: '. /home/ubuntu/tcc/venv/bin/activate; python /home/ubuntu/tcc/manage.py loaddata clientes.json'
- name: Iniciando o servidor
shell: '. /home/ubuntu/tcc/venv/bin/activate; nohup python /home/ubuntu/tcc/manage.py runserver 0.0.0.0:8000 &'
EOT
sudo ansible-playbook playbook.yml