Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Reclamação] Problema com user_data - Não encontrei soluçao em outros topicos

Fiz conforme explicado na aula e não funcionou, vi em outro tópico que era preciso adicionar o parametro user_data_replace_on_change = true e tambem não funcionou..

Vi em outro tópico o instrutor respondeu que user_data trás problemas ao alterar maquinas já existentes que é usado para criação de máquinas. Então, qual o sentido de fazer alteração assim no video?

Por fim, meu main ficou conforme abaixo, conectei na máquina e quando dou ls não aparece nada..

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Já está virando rotina passar mais tempo arrumando bugs do que fazer o que está em aulas da alura..

3 respostas

Salve Weslei. Td na paz?

Eu tive um problema parecido e simplesmente destrúi a máquina e refiz o processo terraform destroy terraform apply

Cara, uma dica que gostaria de dar é que você tente aproveitar os bugs para aprendizagem. Com os bugs, vc aprenderá mais ainda, seja vendo stackoverflow, fóruns, chatgpt. Você aprende mais com erros do que com acertos.

Forte abraço !

Se no user data o nescessario para subir um apache ou algo não vai funcionar.


############### AMAZON LINUX #################

#!/bin/bash
sudo yum update -y
sudo yum install httpd -y
sudo systemctl enable httpd.service
sudo systemctl restart httpd

############### DEBIAN / UBUNTU #################

#!/bin/bash
sudo apt-get update -y
sudo apt-get install apache2 -y
sudo systemctl enable apache2.service
sudo systemctl restart apache2
solução!

Caso alguem queira tentar, o meu terraform.tf ficou assim e funcionou legal

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-022e1a32d3f742bd8"
  instance_type = "t2.micro"
  key_name = "ECS2LINUX"

  // etapa muito importante é criar já o disco criptografado. Faltou isso por enquanto no curso
  root_block_device {
    volume_size           = 8
    encrypted             = true
    delete_on_termination = true
  }

  // Já criei 3 grupos de segurança liberando as portas 22, 80 e 3389
  vpc_security_group_ids = [
    "sg-0f1600ea6b4466791",
    "sg-06791247a7c751872",
    "sg-0a25adc05246bd21d"
  ]

  // instala o serviço do httpd, starta e já configura pra rodar caso a maquina reinicie. Cria o arquivo e já coloca dentro da pasta. 
  user_data = <<-EOF
    #!/bin/bash
    yum update -y
    yum install httpd -y
    service httpd start
    chkconfig httpd on
    cd /var/www/html
    echo "<html><h1>Teste com Terraform OK</h1></html>" > index.html
    EOF

  tags = {
    Name = "EC2LinuxTF",
    CreatedAt = "2023-06-22",
    Responsable = "Thiago Brito",
    TicketID = "None"
  }
}

Após algumas pesquisas, finalmente este modelo funcionou pra mim. Realmente o curso está desatualizado e acho que poderiam ter mais este zelo para que os alunos ganhem tempo. Praticar é bom quando já se sabe o mínimo e não quando estamos tentando aprender algo ainda.