3
respostas

EOF não funciona

Prezados,

Executei o seguinte user_data (modificado de acordo com algumas soluções vistas no fórum) e mesmo assim ele não criou o arquivo index pelo terraform: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Tentativa 2, retirei o "-" da abertura do eof: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

tenta esse tutorial, esse curso está cheio de lacunas nas informações : https://cursos.alura.com.br/forum/topico-sugestao-solucao-para-quem-nao-conseguiu-sobrescrever-o-arquivo-index-html-272587

Opa, valeu pela informação!

Fiz algumas alterações no main.tf:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "app_server" {
  ami           = "ami-0735c191cf914754d"
  instance_type = "t2.micro"
  key_name      = "iac-joao"
  user_data = "${file("init.sh")}"
  user_data_replace_on_change = true
  vpc_security_group_ids = ["sg-0393ae1af9cbee85b"]
  tags = {
    Name = "Teste AWS Terraform"
  }
}

Note que utilizei o arquivo externo init.sh. Segue abaixo o código do arquivo:

#!/bin/bash
sudo cd /home/ubuntu
sudo /bin/echo "<h1>Feito com Terraform</h1>" > index.html
sudo nohup busybox httpd -f -p 8080 &

Percebi que precisava do sudo para que os comandos fossem executados como root. Além disso, não sei por que mas no windows o bloco de comandos bash como apresentado na aula não era executado quando inserido no main.tf, mas em um arquivo externo ( init.sh ) ele executou os comandos corretamente.